From 795050c75dcbe7eb400864aac3a5c5f35ddc3ed6 Mon Sep 17 00:00:00 2001 From: Amir Hossein Baghaie Date: Tue, 8 Dec 2020 13:57:05 +0330 Subject: [PATCH 001/326] Rename ----------------------------------.md to CONTENT_CONTRIBUTE_TEMPLATE.md --- ...------------------------.md => CONTENT_CONTRIBUTE_TEMPLATE.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/ISSUE_TEMPLATE/{----------------------------------.md => CONTENT_CONTRIBUTE_TEMPLATE.md} (100%) diff --git a/.github/ISSUE_TEMPLATE/----------------------------------.md b/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md similarity index 100% rename from .github/ISSUE_TEMPLATE/----------------------------------.md rename to .github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md From 86712a0312c3f2be35ee966b66e97ad4611b54be Mon Sep 17 00:00:00 2001 From: Amir Hossein Baghaie Date: Fri, 11 Dec 2020 21:22:30 +0330 Subject: [PATCH 002/326] Add email template [ugly but working] (#13) * Add email template --- EMAIL_TEMPLATES/sample.html | 130 ++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 EMAIL_TEMPLATES/sample.html diff --git a/EMAIL_TEMPLATES/sample.html b/EMAIL_TEMPLATES/sample.html new file mode 100644 index 0000000..5475c6e --- /dev/null +++ b/EMAIL_TEMPLATES/sample.html @@ -0,0 +1,130 @@ + + + + خبرنامه شماره یک + + + + + +

+

+ خبر‌نامه مهندسان نرم‌افزار +

+

+ شماره اول - چهارشنبه - ۱۹ آذر ۱۳۹۹ +

+
+ +
+

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

+
+
+

+ لغو اشتراک :(
+ (در صورت تمایل خوشحال میشویم علت لغو اشتراک شما را بدانیم. به ما + ایمیل بزنید) +

+
+ + + \ No newline at end of file From cdec2e11184e09e1045167bb8ee3c64423198a79 Mon Sep 17 00:00:00 2001 From: Amir Hossein Baghaie Date: Fri, 11 Dec 2020 21:53:53 +0330 Subject: [PATCH 003/326] Update issue templates --- .../CONTENT_CONTRIBUTE_TEMPLATE.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md index 4c3589a..0bb57ef 100644 --- a/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md @@ -1,15 +1,21 @@ --- name: قالب مشارکت در تهیه محتوای خبرنامه about: برای مشارکت و تهیه محتوای هفتگی خبرنامه، کافیست اطلاعات پست خود را وارد تمپلیت - کنید. بین کلمات نیم‌فاصله گذاشته شده تا راحت با یک کلیک انتخاب و سپس توسط شما پر - شود + کنید. title: معرفی مطلب جدید برای خبرنامه labels: content assignees: amirbagh75, Hameds --- -name: "نام‌(دلخواه)" -link: "لینک‌مطلب" -title: "عنوانی‌برای‌مقاله" -description: "توضیحاتی‌درباره‌مقاله" +##### نام و نام‌خانوادگی شما (اختیاری) +name: "" + +##### لینک صحیح مطلب را وارد نمایید. +link: "" + +##### عنوان مطلب (یا یک عنوان اختیاری بنویسید یا هم عنوان خود مقاله رو کپی کنید) +title: "" + +##### خلاصه‌ای حداکثر ۲ الی ۳ خطی درباره محتوای مقاله بنویسید. +description: "" From 1d33c36c526533ecae4aef049d58c0866da22131 Mon Sep 17 00:00:00 2001 From: Amir Hossein Baghaie Date: Mon, 14 Dec 2020 20:10:47 +0330 Subject: [PATCH 004/326] Update issue templates --- .../CONTENT_CONTRIBUTE_TEMPLATE.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md index 0bb57ef..f65a772 100644 --- a/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md @@ -8,14 +8,23 @@ assignees: amirbagh75, Hameds --- -##### نام و نام‌خانوادگی شما (اختیاری) -name: "" +##### نام و نام‌خانوادگی شما +##### مثلا: +##### امیرحسین بقایی +fullName: "" ##### لینک صحیح مطلب را وارد نمایید. -link: "" +##### مثلا: +##### https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ +postLink: "" ##### عنوان مطلب (یا یک عنوان اختیاری بنویسید یا هم عنوان خود مقاله رو کپی کنید) -title: "" +##### مثلا: +##### کوبرنتیز چیست؟ +postTitle: "" ##### خلاصه‌ای حداکثر ۲ الی ۳ خطی درباره محتوای مقاله بنویسید. -description: "" +##### مثلا: +##### این مقاله رو توی وبلاگ کوبرنتیز درباره نحوه عملکرد سیستم کوبرنتیز نوشته که با خوندنش +##### میتونین دید خوبی از عملکرد چنین سیستم‌هایی در مقیاس‌های بالا پیدا کنید. +postDescription: "" From 37e247f38a55f087964f1a1e4a9cdebd57d601e5 Mon Sep 17 00:00:00 2001 From: Amir Hossein Baghaie Date: Mon, 14 Dec 2020 21:33:08 +0330 Subject: [PATCH 005/326] Update issue templates --- .github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md index f65a772..8a00bb1 100644 --- a/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md @@ -9,22 +9,13 @@ assignees: amirbagh75, Hameds --- ##### نام و نام‌خانوادگی شما -##### مثلا: -##### امیرحسین بقایی fullName: "" -##### لینک صحیح مطلب را وارد نمایید. -##### مثلا: -##### https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ +##### لینک مطلب رو کامل وارد کنید. postLink: "" ##### عنوان مطلب (یا یک عنوان اختیاری بنویسید یا هم عنوان خود مقاله رو کپی کنید) -##### مثلا: -##### کوبرنتیز چیست؟ postTitle: "" ##### خلاصه‌ای حداکثر ۲ الی ۳ خطی درباره محتوای مقاله بنویسید. -##### مثلا: -##### این مقاله رو توی وبلاگ کوبرنتیز درباره نحوه عملکرد سیستم کوبرنتیز نوشته که با خوندنش -##### میتونین دید خوبی از عملکرد چنین سیستم‌هایی در مقیاس‌های بالا پیدا کنید. postDescription: "" From 928b6246dc195a855709d60f2c135e59a4719e9b Mon Sep 17 00:00:00 2001 From: amirbagh75 Date: Mon, 14 Dec 2020 21:41:25 +0330 Subject: [PATCH 006/326] Add template engine + Fix texts in main site --- .gitignore | 38 +-- EMAIL_TEMPLATES/newsletter.html | 97 ++++++ composer.json | 4 +- composer.lock | 550 +++++++++++++++++++++++++++++++- fetch_issues.php | 22 -- index.html | 293 +++++++++-------- main.php | 62 ++++ 7 files changed, 855 insertions(+), 211 deletions(-) create mode 100644 EMAIL_TEMPLATES/newsletter.html delete mode 100644 fetch_issues.php create mode 100644 main.php diff --git a/.gitignore b/.gitignore index a02de76..8762e37 100644 --- a/.gitignore +++ b/.gitignore @@ -2,47 +2,11 @@ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 # User-specific stuff -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/**/usage.statistics.xml -.idea/**/dictionaries -.idea/**/shelf - -# Generated files -.idea/**/contentModel.xml - -# Sensitive or high-churn files -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml -.idea/**/dbnavigator.xml - -# Gradle -.idea/**/gradle.xml -.idea/**/libraries - -# Gradle and Maven with auto-import -# When using Gradle or Maven with auto-import, you should exclude module files, -# since they will be recreated, and may cause churn. Uncomment if using -# auto-import. -# .idea/artifacts -# .idea/compiler.xml -# .idea/jarRepositories.xml -# .idea/modules.xml -# .idea/*.iml -# .idea/modules -# *.iml -# *.ipr +.idea/ # CMake cmake-build-*/ -# Mongo Explorer plugin -.idea/**/mongoSettings.xml - # File-based project format *.iws diff --git a/EMAIL_TEMPLATES/newsletter.html b/EMAIL_TEMPLATES/newsletter.html new file mode 100644 index 0000000..2e52cef --- /dev/null +++ b/EMAIL_TEMPLATES/newsletter.html @@ -0,0 +1,97 @@ + + + + خبرنامه شماره یک + + + + + +

+

+ خبر‌نامه مهندسان نرم‌افزار +

+

+ شماره {{ newsletterNumber }} - {{ currentDate }} +

+
+
    + {% for post in posts %} +
  • + {{ post.postTitle }} +
  • +

    + {{ post.postDescription }} +
    + مطالعه مطلب اصلی +

    + {% if loop.last != true %} +
    + {% endif %} + {% endfor %} +
+
+

+ در این شماره از خبرنامه، دوستان خوبی به نام‌های + {% for post in posts %} + {% if loop.last %} + {{ post.userFullName }} + {% else %} + {{ post.userFullName }}, + {% endif %} + {% endfor %} + در تهیه محتوا کمک کردند. +

+
+
+

+ لغو اشتراک +
+ (در صورت تمایل خوشحال میشویم علت لغو اشتراک شما را بدانیم. به ما + ایمیل بزنید) +

+
+ + + \ No newline at end of file diff --git a/composer.json b/composer.json index 443794d..d19d444 100644 --- a/composer.json +++ b/composer.json @@ -3,6 +3,8 @@ "php": "^7.4.0", "knplabs/github-api": "^2.17", "php-http/guzzle6-adapter": "^2.0", - "symfony/yaml": "^5.2" + "symfony/yaml": "^5.2", + "twig/twig": "^3.0", + "morilog/jalali": "^3.2" } } diff --git a/composer.lock b/composer.lock index 3feb58b..828f4d6 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,73 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2a7af87251292995ffc474d59166b78d", + "content-hash": "28287adcad7f8dd106f9a6e6ad5d7d65", "packages": [ + { + "name": "beberlei/assert", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/beberlei/assert.git", + "reference": "5367e3895976b49704ae671f75bc5f0ba1b986ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/beberlei/assert/zipball/5367e3895976b49704ae671f75bc5f0ba1b986ab", + "reference": "5367e3895976b49704ae671f75bc5f0ba1b986ab", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-intl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "php": "^7.0 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "*", + "phpstan/phpstan": "*", + "phpunit/phpunit": ">=6.0.0", + "yoast/phpunit-polyfills": "^0.1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Assert\\": "lib/Assert" + }, + "files": [ + "lib/Assert/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de", + "role": "Lead Developer" + }, + { + "name": "Richard Quadling", + "email": "rquadling@gmail.com", + "role": "Collaborator" + } + ], + "description": "Thin assertion library for input validation in business models.", + "keywords": [ + "assert", + "assertion", + "validation" + ], + "support": { + "issues": "https://github.com/beberlei/assert/issues", + "source": "https://github.com/beberlei/assert/tree/v3.3.0" + }, + "time": "2020-11-13T20:02:54+00:00" + }, { "name": "clue/stream-filter", "version": "v1.5.0", @@ -352,6 +417,158 @@ ], "time": "2020-11-14T17:07:32+00:00" }, + { + "name": "morilog/jalali", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/morilog/jalali.git", + "reference": "7ea78b84ce3b5546b01217febb2fba4915dac5e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/morilog/jalali/zipball/7ea78b84ce3b5546b01217febb2fba4915dac5e5", + "reference": "7ea78b84ce3b5546b01217febb2fba4915dac5e5", + "shasum": "" + }, + "require": { + "beberlei/assert": "3.*", + "nesbot/carbon": "^1.21 || ^2.0", + "php": "^7.0 | ^7.1 | ^7.2 | ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Morilog\\Jalali\\": "src" + }, + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Milad Rey", + "email": "miladr@gmail.com" + }, + { + "name": "Morteza Parvini", + "email": "m.parvini@outlook.com" + } + ], + "description": "This Package helps developers to easily work with Jalali (Shamsi or Iranian) dates in PHP applications, based on Jalali (Shamsi) DateTime class.", + "keywords": [ + "Jalali", + "date", + "datetime", + "laravel", + "morilog" + ], + "support": { + "issues": "https://github.com/morilog/jalali/issues", + "source": "https://github.com/morilog/jalali/tree/v3.2.0" + }, + "time": "2020-12-01T21:26:31+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.42.0", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "d0463779663437392fe42ff339ebc0213bd55498" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d0463779663437392fe42ff339ebc0213bd55498", + "reference": "d0463779663437392fe42ff339ebc0213bd55498", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/translation": "^3.4 || ^4.0 || ^5.0" + }, + "require-dev": { + "doctrine/orm": "^2.7", + "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", + "kylekatarnls/multi-tester": "^2.0", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.54", + "phpunit/phpunit": "^7.5 || ^8.0", + "squizlabs/php_codesniffer": "^3.4" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev", + "dev-3.x": "3.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "http://nesbot.com" + }, + { + "name": "kylekatarnls", + "homepage": "http://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "http://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "funding": [ + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2020-11-28T14:25:28+00:00" + }, { "name": "php-http/cache-plugin", "version": "1.7.1", @@ -1508,6 +1725,86 @@ ], "time": "2020-10-23T14:02:19+00:00" }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" + }, { "name": "symfony/polyfill-php72", "version": "v1.20.0", @@ -1746,6 +2043,177 @@ ], "time": "2020-10-23T14:02:19+00:00" }, + { + "name": "symfony/translation", + "version": "v5.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "52f486a707510884450df461b5a6429dd7a67379" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/52f486a707510884450df461b5a6429dd7a67379", + "reference": "52f486a707510884450df461b5a6429dd7a67379", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15", + "symfony/translation-contracts": "^2.3" + }, + "conflict": { + "symfony/config": "<4.4", + "symfony/dependency-injection": "<5.0", + "symfony/http-kernel": "<5.0", + "symfony/twig-bundle": "<5.0", + "symfony/yaml": "<4.4" + }, + "provide": { + "symfony/translation-implementation": "2.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/http-kernel": "^5.0", + "symfony/intl": "^4.4|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^4.4|^5.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v5.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-11-28T11:24:18+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105", + "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v2.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-28T13:05:58+00:00" + }, { "name": "symfony/yaml", "version": "v5.2.0", @@ -1820,6 +2288,82 @@ } ], "time": "2020-11-28T10:57:20+00:00" + }, + { + "name": "twig/twig", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "b02fa41f3783a2616eccef7b92fbc2343ffed737" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/b02fa41f3783a2616eccef7b92fbc2343ffed737", + "reference": "b02fa41f3783a2616eccef7b92fbc2343ffed737", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" + }, + "require-dev": { + "psr/container": "^1.0", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2020-10-27T19:28:23+00:00" } ], "packages-dev": [], @@ -1828,7 +2372,9 @@ "stability-flags": [], "prefer-stable": false, "prefer-lowest": false, - "platform": [], + "platform": { + "php": "^7.4.0" + }, "platform-dev": [], "plugin-api-version": "2.0.0" } diff --git a/fetch_issues.php b/fetch_issues.php deleted file mode 100644 index 5990e06..0000000 --- a/fetch_issues.php +++ /dev/null @@ -1,22 +0,0 @@ -api('issue')->all('softwaretalks', 'newsletter', [ - 'labels' => 'content', - 'state' => 'open', -]); - -foreach ($issues as $issue) { - try { - $parsed = Yaml::parse($issue['body']); - print_r($parsed); - } catch (ParseException $exception) { - printf('Unable to parse the YAML string: %s', $exception->getMessage()); - } -} \ No newline at end of file diff --git a/index.html b/index.html index fc3cf4f..7ea8569 100644 --- a/index.html +++ b/index.html @@ -1,149 +1,144 @@ - - - - - خبرنامه مهندسین نرم‌افزار - - - - - - - - - - - - -
- - - - -
-
-

نحوه مشارکت در تامین محتوای خبرنامه

-

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

-

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

-
- -
-

آرشیو خبرنامه‌های ارسال شده

-

هنوز خبرنامه‌ای ارسال نشده است.

-
- -
-

درباره پروژه

-

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

-
-
- - - -
- - -
- - - - - - - - - + + + + + خبرنامه مهندسین نرم‌افزار + + + + + + + + + + + + +
+ + + + +
+
+

نحوه مشارکت در تامین محتوای خبرنامه

+

+ برای این که بتونین مطلب مدنظرتون رو با اسم خودتون با بقیه به‌وسیله خبرنامه به اشتراک بزارید، چند تا کار خیلی ساده رو + باید انجام بدید: +

+
    +
  • اول از همه باید توی گیتهاب یک اکانت داشته باشید. پس اگر ندارید ثبت‌نام کنید. +
  • +
  • + وارد صفحه ایجاد issue جدید در پروژه خبرنامه بشید. یعنی اینجا. +
  • +
  • + بالای صفحه یک نوار میبینید که تیترش اینه:
    قالب مشارکت در تهیه محتوای خبرنامه. کافیه روی + دکمه Get started کلیک کنین. +
  • +
  • + خب، تقریبا کار تمومه؛ کافیه محتواتون رو وارد کنید. دقت کنید که محتواها رو بین علامت double quotes یا + همون " " قرار بدید. این که مقاله با چه فرمتی باید وارد بشه، داخل همون صفحه توضیحاتش رو میتونید + ببینید. +
  • +
  • + هر وقت همه چیز رو با خیال راحت وارد کردید و مطمئن بودید که همه چیز درسته، روی دکمه Submit new issue + کلیک کنید. مطلب شما وارد بخش issues میشه و بقیه‌اش رو به عهده اسکریپت‌ها بزارید. +
  • +
    +

    بعد از این که مطلب‌تون رو وارد کردین این اتفاقات رخ میده:

    +
      +
    • اگر مطلب شما طبق قوانین خبرنامه تایید بشه، لیبل verify رو دریافت میکنه. اگر هم تایید نشه کمک‌تون میکنیم تغییرات لازمه رو اعمال کنین.
    • +
    • ما هر هفته خبرنامه ارسال میکنیم. اگر مطلب شما جزو مقالات ارسالی هفته جاری باشه، لیبل current-week رو دریافت میکنه. +
    • +
    • وقتی مطلب شما با موفقیت ارسال میشه، اون issue رو close میکنیم.
    • +
    +
+
+ +
+

آرشیو خبرنامه‌های ارسال شده

+

هنوز خبرنامه‌ای ارسال نشده است.

+
+ +
+

قوانین

+

+ در حال تکمیل شدن ... +

+
+
+ + + +
+ + +
+ + + + + + + + + diff --git a/main.php b/main.php new file mode 100644 index 0000000..27e6473 --- /dev/null +++ b/main.php @@ -0,0 +1,62 @@ +api('issue')->all('softwaretalks', 'newsletter', [ + 'labels' => 'content,current-week,verified', + 'state' => 'open', +]); + +foreach ($issues as $issue) { + try { + $posts[] = Yaml::parse($issue['body']); + } catch (ParseException $exception) { + printf('Unable to parse the YAML string: %s', $exception->getMessage()); + } +} + +/* + * 2- make html template based on contents + */ +$loader = new FilesystemLoader('./EMAIL_TEMPLATES/'); +$twig = new Environment($loader, [ + 'strict_variables' => true, +]); + +try { + $template = $twig->render('newsletter.html', [ + 'currentDate' => jdate()->format('%A, %d %B %y'), + 'newsletterNumber' => '1', + 'posts' => $posts, + ]); + print_r($template); +} catch (Exception $exception) { + printf('Unable to render template: %s', $exception->getMessage()); +} + +/* + * 3- send email to all subscribers + */ + + +/* + * 4- close related issues + */ + + +/* + * 5- add archive to website + */ From cb526573532a44b379db5f40d4ce6fc004c62638 Mon Sep 17 00:00:00 2001 From: Amir Hossein Baghaie Date: Mon, 14 Dec 2020 21:45:31 +0330 Subject: [PATCH 007/326] Delete sample.html --- EMAIL_TEMPLATES/sample.html | 130 ------------------------------------ 1 file changed, 130 deletions(-) delete mode 100644 EMAIL_TEMPLATES/sample.html diff --git a/EMAIL_TEMPLATES/sample.html b/EMAIL_TEMPLATES/sample.html deleted file mode 100644 index 5475c6e..0000000 --- a/EMAIL_TEMPLATES/sample.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - خبرنامه شماره یک - - - - - -

-

- خبر‌نامه مهندسان نرم‌افزار -

-

- شماره اول - چهارشنبه - ۱۹ آذر ۱۳۹۹ -

-
-
    -
  • - تیتر مطلب اول -
  • -

    - اگر شما یک طراح هستین و یا با طراحی های گرافیکی سروکار دارید به متن های برخورده اید که با نام لورم ایپسوم - شناخته می‌شوند. لورم ایپسوم یا طرح‌نما (به انگلیسی: Lorem ipsum) متنی ساختگی و بدون معنی است که برای امتحان - فونت و یا پر کردن فضا در یک طراحی گرافیکی و یا صنعت چاپ استفاده میشود. طراحان وب و گرافیک از این متن برای - پرکردن صفحه و ارائه شکل کلی طرح استفاده می‌کنند. -
    مطالعه مطلب اصلی -

    - -
  • - تیتر مطلب دوم -
  • -

    - اگر شما یک طراح هستین و یا با طراحی های گرافیکی سروکار دارید به متن های برخورده اید که با نام لورم ایپسوم - شناخته می‌شوند. لورم ایپسوم یا طرح‌نما (به انگلیسی: Lorem ipsum) متنی ساختگی و بدون معنی است که برای امتحان - فونت و یا پر کردن فضا در یک طراحی گرافیکی و یا صنعت چاپ استفاده میشود. طراحان وب و گرافیک از این متن برای - پرکردن صفحه و ارائه شکل کلی طرح استفاده می‌کنند. -
    مطالعه مطلب اصلی -

    - -
  • - تیتر مطلب سوم -
  • -

    - اگر شما یک طراح هستین و یا با طراحی های گرافیکی سروکار دارید به متن های برخورده اید که با نام لورم ایپسوم - شناخته می‌شوند. لورم ایپسوم یا طرح‌نما (به انگلیسی: Lorem ipsum) متنی ساختگی و بدون معنی است که برای امتحان - فونت و یا پر کردن فضا در یک طراحی گرافیکی و یا صنعت چاپ استفاده میشود. طراحان وب و گرافیک از این متن برای - پرکردن صفحه و ارائه شکل کلی طرح استفاده می‌کنند. -
    مطالعه مطلب اصلی -

    - -
  • - تیتر مطلب چهارم -
  • -

    - اگر شما یک طراح هستین و یا با طراحی های گرافیکی سروکار دارید به متن های برخورده اید که با نام لورم ایپسوم - شناخته می‌شوند. لورم ایپسوم یا طرح‌نما (به انگلیسی: Lorem ipsum) متنی ساختگی و بدون معنی است که برای امتحان - فونت و یا پر کردن فضا در یک طراحی گرافیکی و یا صنعت چاپ استفاده میشود. طراحان وب و گرافیک از این متن برای - پرکردن صفحه و ارائه شکل کلی طرح استفاده می‌کنند. -
    مطالعه مطلب اصلی -

    - -
  • - تیتر مطلب پنجم -
  • -

    - اگر شما یک طراح هستین و یا با طراحی های گرافیکی سروکار دارید به متن های برخورده اید که با نام لورم ایپسوم - شناخته می‌شوند. لورم ایپسوم یا طرح‌نما (به انگلیسی: Lorem ipsum) متنی ساختگی و بدون معنی است که برای امتحان - فونت و یا پر کردن فضا در یک طراحی گرافیکی و یا صنعت چاپ استفاده میشود. طراحان وب و گرافیک از این متن برای - پرکردن صفحه و ارائه شکل کلی طرح استفاده می‌کنند. -
    مطالعه مطلب اصلی -

    -
-
-

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

-
-
-

- لغو اشتراک :(
- (در صورت تمایل خوشحال میشویم علت لغو اشتراک شما را بدانیم. به ما - ایمیل بزنید) -

-
- - - \ No newline at end of file From 9a6a549cccede8e4b4061ff6bbcbf12d25ae166e Mon Sep 17 00:00:00 2001 From: Hamed Saeedi Date: Wed, 16 Dec 2020 12:32:21 +0330 Subject: [PATCH 008/326] Create CNAME --- CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 CNAME diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..cca3344 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +newsletter.softwaretalks.ir \ No newline at end of file From 198571885a955eb7b16a1c57eb188fc2ff5e0e17 Mon Sep 17 00:00:00 2001 From: Hamed Saeedi Date: Wed, 16 Dec 2020 12:37:34 +0330 Subject: [PATCH 009/326] Delete CNAME --- CNAME | 1 - 1 file changed, 1 deletion(-) delete mode 100644 CNAME diff --git a/CNAME b/CNAME deleted file mode 100644 index cca3344..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -newsletter.softwaretalks.ir \ No newline at end of file From f405ed7e29c25e222eb0c24f0aff58bdec470cb2 Mon Sep 17 00:00:00 2001 From: Hamed Saeedi Date: Wed, 16 Dec 2020 12:37:49 +0330 Subject: [PATCH 010/326] Create CNAME --- CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 CNAME diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..cca3344 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +newsletter.softwaretalks.ir \ No newline at end of file From e47f7876105b3f502bb7e23cbc02cb0dfe727167 Mon Sep 17 00:00:00 2001 From: Amir Hossein Baghaie Date: Mon, 21 Dec 2020 12:03:26 +0330 Subject: [PATCH 011/326] Add signup link --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 7ea8569..491b61e 100644 --- a/index.html +++ b/index.html @@ -57,7 +57,7 @@

خبرنامه مهندسین نرم‌افزار

@@ -90,21 +89,6 @@

-
-

برایِ بهبودِ خبرنامه نظرتون رو با ما در میان بگذارید.

-
- -
-
-

لینک‌هایِ جالبتون رو از طریقِ زیر برایِ ما ارسال کنین:

From 278ff5ed1bf81f6f306e6ea01f922624d2131bd7 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Mon, 26 Jul 2021 00:41:53 +0430 Subject: [PATCH 172/326] Add send time to index.html --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 1e42c2c..6ce39d2 100644 --- a/index.html +++ b/index.html @@ -60,7 +60,7 @@

ما مهندسایِ نرم‌افزار و علاقه‌مندانِ کامپیوتر هرازگاهی با مطالبِ جالبی برخورد می‌کنیم که می‌تونه به دردِ بقیه هم بخوره. خبرنامهٔ نرم‌افزاریِ SoftwareTalks - جایی برای اشتراکِ این مطالبه. + جایی برای اشتراکِ این مطالبه. در حال حاضر، هر پنجشنبه خبرنامه ارسال میشود.

From 7a1bafd42829f507b8d56cf53698664c76d67e2b Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Mon, 26 Jul 2021 01:04:44 +0430 Subject: [PATCH 173/326] Fix Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9e77899..b767fba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ RUN docker-php-ext-install intl RUN curl -sS https://getcomposer.org/installer | php -- --version=2.0.9 --install-dir=/usr/local/bin --filename=composer COPY . /app/newsletter -WORKDIR /app/newsletter +WORKDIR /app/newsletter/src RUN composer install From 5eba64785a01795ecb6a811f2b5de93318c78a85 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Mon, 26 Jul 2021 01:07:14 +0430 Subject: [PATCH 174/326] Update CNAME --- CNAME | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CNAME b/CNAME index cca3344..b67cd5b 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -newsletter.softwaretalks.ir \ No newline at end of file +newsletter.softwaretalks.com \ No newline at end of file From 8c72b1b3c69f50c786120f62f9bf0ecd6d69275a Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Mon, 26 Jul 2021 01:07:27 +0430 Subject: [PATCH 175/326] Update CNAME --- CNAME | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CNAME b/CNAME index b67cd5b..cca3344 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -newsletter.softwaretalks.com \ No newline at end of file +newsletter.softwaretalks.ir \ No newline at end of file From 2047c9fbf393a06134e25053e964b261338a827d Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Wed, 28 Jul 2021 13:50:45 +0430 Subject: [PATCH 176/326] =?UTF-8?q?=D8=A8=D9=87=20=D8=A7=D9=85=DB=8C=D8=AF?= =?UTF-8?q?=20=D8=B1=D9=88=D8=B2=D9=87=D8=A7=DB=8C=20=D8=A8=D9=87=D8=AA?= =?UTF-8?q?=D8=B1=20...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/index.html b/index.html index 6ce39d2..6a7428c 100644 --- a/index.html +++ b/index.html @@ -171,10 +171,7 @@

قوانین

- خبرنامهٔ نرم‌افزاریِ SoftwareTalks با محدودکردن حق استفاده از اینترنت مخالف میباشد. - - اطلاعات بیشتر - + تلاشمان را کردیم ولی شد آنچه که باید میشد. #طرح_صیانت

From 7355ff3f2a4ed636f333bb7acdbdd4094463dd1b Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Wed, 28 Jul 2021 15:51:00 +0430 Subject: [PATCH 177/326] =?UTF-8?q?=D8=A8=D9=87=20=D8=A7=D9=85=DB=8C=D8=AF?= =?UTF-8?q?=20=D8=B1=D9=88=D8=B2=D9=87=D8=A7=DB=8C=20=D8=A8=D9=87=D8=AA?= =?UTF-8?q?=D8=B1=20...=20:black=5Fheart:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 6a7428c..868aa38 100644 --- a/index.html +++ b/index.html @@ -171,7 +171,7 @@

قوانین

- تلاشمان را کردیم ولی شد آنچه که باید میشد. #طرح_صیانت + تلاشمان را کردیم ولی شد آنچه که نباید میشد. #طرح_صیانت

From 421dc35d61a9d749c3ee2e10209623f039af85c7 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 29 Jul 2021 12:04:51 +0430 Subject: [PATCH 178/326] Update subscribers counter --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 868aa38..eff100d 100644 --- a/index.html +++ b/index.html @@ -185,8 +185,8 @@

قوانین

From 12f380a773ac94f4243384a3d0c61489cabf2c1c Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 5 Aug 2021 06:41:05 +0000 Subject: [PATCH 184/326] Add Archive --- archives/num27.html | 77 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 archives/num27.html diff --git a/archives/num27.html b/archives/num27.html new file mode 100644 index 0000000..4ff13b2 --- /dev/null +++ b/archives/num27.html @@ -0,0 +1,77 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

+ Softwaretalks Logo +

خبرنامهٔ Softwaretalks

+

+ شمارهٔ ۲۷ - پنجشنبه، ۱۴ مرداد ۱۴۰۰ +

+
+
    +
  • + ترجمه کتاب eloquent js به فارسی
    کتاب eloquent js خیلی ساده و راحت مباحث جالبی در JS رو مطرح میکنه که مهران عفتی عزیز این کتاب رو به زبان فارسی هم ترجمه کرده و میتونید این کتاب رو به زبان فارسی به صورت آنلاین مطالعه کنید. +
  • +
  • + ‏Event Loop جاوااسکریپت به زبان ساده
    اگر شما هم از دنیای زبان‌های برنامه‌نویسی چندنخی (Multithreaded) به دنیای تک‌نخی جاوااسکریپت مهاجرت کرده باشین، ممکنه رفتار Promiseها و دستورات async براتون گیج کننده باشه. این ویدیو به زبان ساده مفاهیم بنیادی مربوط به این قابلیت‌ها رو توضیح میده. +
  • +
  • + چرا از Null استفاده نکنیم؟
    نویسنده در این مقاله نظر خودش رو درباره علل عدم استفاده از Null در برنامه‌نویسی بیان کرده که خوندنش احتمالا نکات جالبی برای بررسی و تفکر بیشتر برامون داره. +
  • +
  • + داکر چگونه ایزوله‌سازی را فراهم می‌کند؟
    داکر با استفاده از ویژگی‌هایی که تو سیستم‌عامل‌ها وجود داره، برای ما یک محیط ایزوله‌ای رو فراهم می‌کند. اینکه این ایزوله‌سازی سازی چطوری انجام میشه و داکر از چه ویژگی‌هایی استفاده می‌کنه بحثیه که تو این پست به اون پرداخته میشه. +
  • +
+
+

+ تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + مصطفی فرزان، + + + Vahid Fathi. + + شما نیز می‌توانید مشارکت کنید. +

+
+

Pakat Logo
ارسال شده توسط پاکت

سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

+
+ + From b73fcf7c40800c5fa7a3c996a968312481cb3103 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 5 Aug 2021 11:13:48 +0430 Subject: [PATCH 185/326] Add archive (num 27) --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index a39427a..95359c4 100644 --- a/index.html +++ b/index.html @@ -110,6 +110,7 @@

آرشیو خبرنامه‌های سال ۱۴۰۰

    +
  • خبرنامه شماره ۲۷ - پنجشنبه، ۱۴ مرداد
  • خبرنامه شماره ۲٦ - پنجشنبه، ۰۷ مرداد
  • خبرنامه شماره ۲۵ - پنجشنبه، ۳۱ تیر
  • خبرنامه شماره ۲۴ - پنجشنبه، ۲۴ تیر
  • From 994c0b015f70bfad4d820b404e3bcd07129a86fa Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 5 Aug 2021 11:14:40 +0430 Subject: [PATCH 186/326] Update contributors section --- README.md | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index c790641..04d05f0 100644 --- a/README.md +++ b/README.md @@ -25,44 +25,46 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. -ohmydevops +ohmydevops Hameds hassan-shahbazi amirshnll -Amiir-Dev -mokarchi +ghost royapakzad +mokarchi alinaseri07 +ariaieboy afzouni -ashkanRmk AliKarbasiCom -ariaieboy +ashkanRmk +Rahmanism s-alielyasi -SirwanAfifi pykello +SirwanAfifi VahidNaderi -Rahmanism -numb95 amirmojiry -mahdiAkhi -asadise -anvaari +numb95 irnb DearRude -markpash -Mvahedii -iamvee -vghaderi +anvaari +asadise +mahdiAkhi +hamedsj +kokabi1365 Aliiior mayazdi -rashid2003 -mohas -hamedsj +vahidfathi itshaadi -kokabi1365 -hnaseri1990 +Mvahedii +mahdithejedi +m2-farzan +iamvee xhdix +markpash +vghaderi +hnaseri1990 +mohas mrmmg -mahdithejedi +rashid2003 From 565a5e7a58ba8915beb2d8938fa08c79ca1b3614 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 12 Aug 2021 21:17:28 +0000 Subject: [PATCH 187/326] Add Archive --- archives/num28.html | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 archives/num28.html diff --git a/archives/num28.html b/archives/num28.html new file mode 100644 index 0000000..a1a613f --- /dev/null +++ b/archives/num28.html @@ -0,0 +1,83 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

    + Softwaretalks Logo +

    خبرنامهٔ Softwaretalks

    +

    + شمارهٔ ۲۸ - پنجشنبه، ۲۱ مرداد ۱۴۰۰ +

    +
    +
      +
    • + وب چطور کار میکند؟
      وقتی در مرورگر میزنیم google.com و اینتر میکنیم، چه اتفاقاتی میفتد؟ در این مطلب نویسنده به ترتیب سعی کرده مهم‌ترین اتفاقات رو بررسی کنه. +
    • +
    • + با من حرف بزن! سیر تا پیاز دادن بازخورد
      یادگیری مهارت‌های نرم جز اون دسته از مواردیه که، ما رو تو مسیر رشد بهتری قرار می‌دهد. توانایی دادن بازخورد از چمله اون چیزهاییه باعث بهبود کار و روحیه تیمی میشه. پس این شما و این یک مطلب خوب در رابطه با این موضوع! +
    • +
    • + داکر و آشنایی با overlay2
      در ادامه مطلب هفته‌ی قبل هفته نامه(ایزوله‌سازی داکر)، این بار سراغ فایل سیستم‌ها تو داکر میریم. اینکه داکر چطور به کمک فایل سیستم‌ها(تو این مطلب به طور خاص overlay) ایزوله‌سازی فایل‌ها رو برای ما مهیا می‌کنه. ایده و نحوه مهندسی این موضوع از جمله مواردیه که می‌تونه براتون جالب باشه! +
    • +
    • + ترجمه فارسی کتاب هنر کد خوانا
      این ترجمه کتاب The Art Of Readable Code است که در دو قالب PDF و Markdown در مخزن گیت‌هابی قرار داده شده است. +
    • +
    • + ترجمه فارسی مفاهیم کد تمیز در جاوااسکریپت
      ترجمه‌ فارسی 'کدتمیز در جاوااسکریپت' را بخوانید و اگر مشکلی در ترجمه مشاهده کردید حتما در بهترشدن ترجمه مشارکت کنید. +
    • +
    +
    +

    + تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + وحید فتحی، + + + حامد سعیدی، + + + امیر شکری. + + شما نیز می‌توانید مشارکت کنید. +

    +
    +

    Pakat Logo
    ارسال شده توسط پاکت

    سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

    +
    + + From 2c4bad59ddb54bbbcef8291bb2191881df61b615 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 13 Aug 2021 10:37:29 +0430 Subject: [PATCH 188/326] Add archive (num 28) --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 95359c4..949ad68 100644 --- a/index.html +++ b/index.html @@ -110,6 +110,7 @@

    آرشیو خبرنامه‌های سال ۱۴۰۰

      +
    • خبرنامه شماره ۲۸ - پنجشنبه، ۲۱ مرداد
    • خبرنامه شماره ۲۷ - پنجشنبه، ۱۴ مرداد
    • خبرنامه شماره ۲٦ - پنجشنبه، ۰۷ مرداد
    • خبرنامه شماره ۲۵ - پنجشنبه، ۳۱ تیر
    • From f1234a36e4da6f885887e1f245299f59eaff290a Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 13 Aug 2021 10:50:14 +0430 Subject: [PATCH 189/326] Update contributors section --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 04d05f0..3e309e4 100644 --- a/README.md +++ b/README.md @@ -25,10 +25,10 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. -ohmydevops -Hameds +ohmydevops +Hameds hassan-shahbazi -amirshnll +amirshnll ghost royapakzad mokarchi @@ -40,24 +40,24 @@ Rahmanism s-alielyasi pykello +vahidfathi SirwanAfifi VahidNaderi -amirmojiry numb95 +amirmojiry +mahdiAkhi irnb DearRude anvaari asadise -mahdiAkhi hamedsj kokabi1365 Aliiior mayazdi -vahidfathi +m2-farzan itshaadi Mvahedii mahdithejedi -m2-farzan iamvee xhdix markpash From 439e20ac927197488a61f84f443fa30e70e6119a Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 26 Aug 2021 12:44:19 +0430 Subject: [PATCH 190/326] -- --- src/modules/counter.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index f127a56..c8b1088 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -7,8 +7,8 @@ function newsletterCounter(): int $now = Carbon::now(); // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); - // '- 4' Because we did not send the newsletter for 4 weeks in Farvardin 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 4; + // minus 4, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 1 week in Mordad 1400. + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 5; return $newsletterNumber; -} \ No newline at end of file +} From 92f76eca1f6bc0a01d68e2b01fb1291394ad9066 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 26 Aug 2021 08:34:03 +0000 Subject: [PATCH 191/326] Add Archive --- archives/num29.html | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 archives/num29.html diff --git a/archives/num29.html b/archives/num29.html new file mode 100644 index 0000000..5fcdcd0 --- /dev/null +++ b/archives/num29.html @@ -0,0 +1,83 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

      + Softwaretalks Logo +

      خبرنامهٔ Softwaretalks

      +

      + شمارهٔ ۲۹ - پنجشنبه، ۰۴ شهریور ۱۴۰۰ +

      +
      +
        +
      • + موزیک‌ویدیوی Up&Up گروه Coldplay چطور ساخته شد؟
        اگر موزیک‌ویدیوی تخیلی و جالب Up&Up گروه Coldplay رو دیده باشید احتمالا از دیدن خلاقیت و وصل‌کردن چیزهای غیرمرتبط بهم لذت بردین. ولی اگر به پشت‌صحنه‌ این‌جور چیزها علاقه دارید، میتونید توی این ویدیو ببینید که چطور این ایده پیاده شده. +
      • +
      • + بهانه های توسعه دهنده ها
        این سایت رو هر بار که بازش میکنی بهت یه بهونه جدید میده که بدیش به کارفرما :))) +
      • +
      • + کار با HttpClient در C#
        در این مطلب با نحوه کار با HttpClient در سی شارپ آشنا می‌شوید و با مثال‌هایی نحوه ایجاد درخواست‌های Get و Post را خواهید دید. همچنین نحوه ارسال چندین درخواست به صورت async را مشاهده خواهید کرد. +
      • +
      • + چطور برای کدها کامنت بنویسیم؟
        در این مقاله از وبلاگ Stack Overflow درباره ۹ قانون کامنت نویسی در کد به عنوان Best Practice صحبت شده است. +
      • +
      • + کتابچه الزامات امنیتی داکر
        در این کتابچه مباحث امن‌سازی مرتبط با داکر به همراه توضیحات ابتدایی کار با داکر و دستورات اصلی داده شده است. +
      • +
      +
      +

      + تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + امید پاکدل، + + + Rahmanism، + + + حامد سعیدی. + + شما نیز می‌توانید مشارکت کنید. +

      +
      +

      Pakat Logo
      ارسال شده توسط پاکت

      سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

      +
      + + From 6e8a0a66dd4a1b9d2b244160db81286aa5b6d862 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 26 Aug 2021 13:10:25 +0430 Subject: [PATCH 192/326] Update contributors section --- README.md | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 3e309e4..def4676 100644 --- a/README.md +++ b/README.md @@ -25,46 +25,47 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. -ohmydevops -Hameds +ohmydevops +Hameds hassan-shahbazi amirshnll ghost royapakzad mokarchi alinaseri07 -ariaieboy +Rahmanism afzouni -AliKarbasiCom ashkanRmk -Rahmanism -s-alielyasi +ariaieboy +AliKarbasiCom pykello vahidfathi -SirwanAfifi VahidNaderi +s-alielyasi +SirwanAfifi numb95 amirmojiry mahdiAkhi -irnb -DearRude anvaari +irnb asadise -hamedsj +DearRude +markpash +Mvahedii +iamvee +m2-farzan kokabi1365 Aliiior mayazdi -m2-farzan -itshaadi -Mvahedii -mahdithejedi -iamvee -xhdix -markpash +rashid2003 +mohas +hamedsj +omidpakdel vghaderi +itshaadi hnaseri1990 -mohas +mahdithejedi mrmmg -rashid2003 - +xhdix + From 62d3239f534e04fa526e257c239e25bff0d112aa Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 26 Aug 2021 13:14:24 +0430 Subject: [PATCH 193/326] Update subscribers counter --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 949ad68..b1a3bd3 100644 --- a/index.html +++ b/index.html @@ -189,8 +189,8 @@

      قوانین

      window.onload = function(){ var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۶۶۱ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۶۶۱ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۶۹۵ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۶۹۵ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From 47d360f6be37c63583232a617c3a575bbbc90b66 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 26 Aug 2021 13:16:07 +0430 Subject: [PATCH 194/326] Add archive (num 29) --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index b1a3bd3..9cdb6b1 100644 --- a/index.html +++ b/index.html @@ -110,6 +110,7 @@

      آرشیو خبرنامه‌های سال ۱۴۰۰

        +
      • خبرنامه شماره ۲۹ - پنجشنبه، ۰۴ شهریور
      • خبرنامه شماره ۲۸ - پنجشنبه، ۲۱ مرداد
      • خبرنامه شماره ۲۷ - پنجشنبه، ۱۴ مرداد
      • خبرنامه شماره ۲٦ - پنجشنبه، ۰۷ مرداد
      • From 5e5c84321e99f29befbbce5833c66acaf1d9e0b5 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Fri, 3 Sep 2021 14:11:45 +0000 Subject: [PATCH 195/326] Add Archive --- archives/num30.html | 90 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 archives/num30.html diff --git a/archives/num30.html b/archives/num30.html new file mode 100644 index 0000000..c346ef4 --- /dev/null +++ b/archives/num30.html @@ -0,0 +1,90 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

        + Softwaretalks Logo +

        خبرنامهٔ Softwaretalks

        +

        + شمارهٔ ۳۰ - جمعه، ۱۲ شهریور ۱۴۰۰ +

        +
        +
          +
        • + بوت چندگانه روی فلش مموری
          احتمالا شده که یه فلش مموری رو با ایمیج ویندوز بوت کرده باشید. اگه بخواید رو همون فلش ایمیج لینوکس بریزید قاعدتا باید دوباره فرمتش کنید. Ventoy ابزار جدیدیه که به شما امکان داشتن چنتا ایمیج روی یک فلش مموری رو میده بدون نیاز به فرمت و پارتیشن بندی دوباره. کافیه یه بار روی یه فلش نصبش کنید. بار اول پارتیشن بندی انجام میشه. از این به بعد هر ایمیج iso، img و حتی vhd رو روی فلش کپی کنید، ventoy اون رو به لیست بوتش اضافه می‌کنه و نیاز به هیچ کار دیگه‌ای نیست. با ایمیج‌های متعددی تست شده و بعیده کارتون رو راه نندازه. 👌 +
        • +
        • + بهبود کارایی در دات نت ۶
          در این بلاگ شما با خلاصه‌ای از تغییرات زیاد دات نت ۶ آشنا می‌شوید و کارایی این نسخه‌ی دات نت با نسخه‌های قبلی مقایسه می‌شود. خواندن این مطلب را به برنامه نویسان سی شارپ اکیدا توصیه می‌کنم. +
        • +
        • + سوالات مصاحبه فنی علی بابا
          سرویس علی بابا در ایران مجموعه‌ای از سوالاتی که در مصاحبه فنی طرح می‌کنند را به صورت اپن‌سورس در گیت‌هاب منتشر کردند +
        • +
        • + چگونه اطلاعات شخصی شما به صورت آنلاین محافظت می شود؟
          در این نوشته در مورد حریم خصوصی و اهمیت حفظ آن می خوانید و به بررسی قوانین مختلف در این حوزه پرداخته می شود و شیوه نامه های امنیتی کوتاهی را مطالعه خواهید کرد ... +
        • +
        • + نحوه استفاده از HttpPatch در Asp.Net Core
          به طور معمول برای ویرایش اطلاعات از HttpPut استفاده میکنیم. در این حالت باید تمامی فیلدهای مربوط به موجودیت را ارسال کنیم. اما اگر فقط یکی دوتا از فیلدها نیاز به ویرایش داشته باشند چه نیازی به ارسال مابقی فیلدهاست؟ +با استفاده از HttpPatch میتوانیم فقط فیلدهایی را که نیاز به ویرایش دارند را به API ارسال کنیم. +
        • +
        • + ایجاد سرویس ویندوز برای اجرای خودکار تسک ها با استفاده از Topshelf, Quartz و log4net
          توی خیلی از سازمان ها و شرکتها, نیاز به یکسری تسک هست که سرساعت خاصی انجام بشن. مثل تهیه یک گزارش, ارسال یک فایل و ... اگر تعداد اینها زیاد باشه بهتر هست که از یک سرویس برای اینکار استفاده بشه. این مطلب بهمون کمک میکنه که سرویس بهتری بسازیم. اینجا از Topshelf, Quartz و log4net با هم استفاده شده. +
        • +
        +
        +

        + تأمین‌کنندگانِ محتوا در این شماره: + + Rahmanism، + + + احمدرضا ساغری، + + + حامد سعیدی، + + + امیر شکری، + + + میرحسین حسینیون . + + شما نیز می‌توانید مشارکت کنید. +

        +
        +

        Pakat Logo
        ارسال شده توسط پاکت

        سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

        +
        + + From fa1a6da2b62e183bb77b6e477406cfb75d79b3ac Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 3 Sep 2021 18:43:07 +0430 Subject: [PATCH 196/326] Add archive (num 30) --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 9cdb6b1..369437c 100644 --- a/index.html +++ b/index.html @@ -110,6 +110,7 @@

        آرشیو خبرنامه‌های سال ۱۴۰۰

          +
        • خبرنامه شماره ۳۰ - جمعه، ۱۲ شهریور
        • خبرنامه شماره ۲۹ - پنجشنبه، ۰۴ شهریور
        • خبرنامه شماره ۲۸ - پنجشنبه، ۲۱ مرداد
        • خبرنامه شماره ۲۷ - پنجشنبه، ۱۴ مرداد
        • From 83d24e0f23c944cf4a4fb40c639a58847502466d Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 3 Sep 2021 18:43:39 +0430 Subject: [PATCH 197/326] Update subscribers counter --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 369437c..9eb3fb5 100644 --- a/index.html +++ b/index.html @@ -191,8 +191,8 @@

          قوانین

          window.onload = function(){ var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۶۹۵ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۶۹۵ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۷۰۰ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۷۰۰ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From 8c87d5b283d5baee4aa99b1ff5049ab6ae92ba64 Mon Sep 17 00:00:00 2001 From: Amir Shokri Date: Thu, 16 Sep 2021 18:35:25 +0430 Subject: [PATCH 198/326] =?UTF-8?q?=D8=A7=D9=81=D8=B2=D9=88=D8=AF=D9=86=20?= =?UTF-8?q?=D9=82=D8=A7=D9=84=D8=A8=20=D8=A7=D8=B1=D8=B3=D8=A7=D9=84=20?= =?UTF-8?q?=D8=A7=DB=8C=D9=85=DB=8C=D9=84=20=D8=AA=DB=8C=D8=B1=D9=87=20-?= =?UTF-8?q?=20=D9=88=DB=8C=DA=98=E2=80=8C=D9=87=E2=80=8C=D9=86=D8=A7=D9=85?= =?UTF-8?q?=D9=87=20=DA=A9=D8=B1=D9=88=D9=86=D8=A7=20(#322)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * افزودن قالب ارسال ایمیل تیره - ویژ‌ه‌نامه کرونا --- .github/workflows/production.yaml | 1 + .github/workflows/production_dark.yaml | 53 +++++++++++++++++ .github/workflows/staging.yaml | 1 + .github/workflows/staging_dark.yaml | 40 +++++++++++++ src/BOTTOM_CONTENT_HTML_DARK.txt | 1 + src/EMAIL_TEMPLATES/newsletter_dark.html | 72 ++++++++++++++++++++++++ src/TOP_CONTENT_HTML_DARK.txt | 1 + src/configs.php | 45 ++++++++------- src/send_newsletter.php | 26 ++++++--- 9 files changed, 211 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/production_dark.yaml create mode 100644 .github/workflows/staging_dark.yaml create mode 100644 src/BOTTOM_CONTENT_HTML_DARK.txt create mode 100644 src/EMAIL_TEMPLATES/newsletter_dark.html create mode 100644 src/TOP_CONTENT_HTML_DARK.txt diff --git a/.github/workflows/production.yaml b/.github/workflows/production.yaml index e8b2368..390cefc 100644 --- a/.github/workflows/production.yaml +++ b/.github/workflows/production.yaml @@ -37,6 +37,7 @@ jobs: BOTTOM_CONTENT_HTML: ${{ env.BOTTOM_CONTENT_HTML }} TOP_CONTENT_HTML: ${{ env.TOP_CONTENT_HTML }} SEND_ENV: "production" + IS_DARK: "false" - name: Commit Archive file run: | diff --git a/.github/workflows/production_dark.yaml b/.github/workflows/production_dark.yaml new file mode 100644 index 0000000..01e28a9 --- /dev/null +++ b/.github/workflows/production_dark.yaml @@ -0,0 +1,53 @@ +name: "♨️ Send email dark - Production" + +on: + workflow_dispatch: + +jobs: + send-email-for-all-users: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '7.4' + tools: composer:v2 + + - name: Install Composer dependencies + run: | + cd src + composer install --no-progress --optimize-autoloader --quiet + + - name: Import BOTTOM_CONTENT_HTML_DARK and TOP_CONTENT_HTML into env + shell: bash + run: | + cd src + echo "BOTTOM_CONTENT_HTML_DARK=$(cat BOTTOM_CONTENT_HTML_DARK.txt)" >> $GITHUB_ENV + echo "TOP_CONTENT_HTML=$(cat TOP_CONTENT_HTML.txt)" >> $GITHUB_ENV + + - name: Run script + run: php src/send_newsletter.php + env: + PAKAT_SMTP_USERNAME: ${{ secrets.PAKAT_SMTP_USERNAME }} + PAKAT_SMTP_PASSWORD: ${{ secrets.PAKAT_SMTP_PASSWORD }} + PAKAT_API_KEY: ${{ secrets.PAKAT_API_KEY }} + BOTTOM_CONTENT_HTML_DARK: ${{ env.BOTTOM_CONTENT_HTML_DARK }} + TOP_CONTENT_HTML: ${{ env.TOP_CONTENT_HTML }} + SEND_ENV: "production" + IS_DARK: "true" + + - name: Commit Archive file + run: | + git config --local user.email "ohmydevops@gmail.com" + git config --local user.name "ohmydevops" + git add -A + git commit -m "Add Archive" + + - name: Push Archive file + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: main diff --git a/.github/workflows/staging.yaml b/.github/workflows/staging.yaml index 640d36e..957a8e2 100644 --- a/.github/workflows/staging.yaml +++ b/.github/workflows/staging.yaml @@ -37,3 +37,4 @@ jobs: BOTTOM_CONTENT_HTML: ${{ env.BOTTOM_CONTENT_HTML }} TOP_CONTENT_HTML: ${{ env.TOP_CONTENT_HTML }} SEND_ENV: "test" + IS_DARK: "false" diff --git a/.github/workflows/staging_dark.yaml b/.github/workflows/staging_dark.yaml new file mode 100644 index 0000000..3e69d45 --- /dev/null +++ b/.github/workflows/staging_dark.yaml @@ -0,0 +1,40 @@ +name: "🍊 Send email dark - Test" + +on: + workflow_dispatch: + +jobs: + send-email-for-test-users: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '7.4' + tools: composer:v2 + + - name: Install Composer dependencies + run: | + cd src + composer install --no-progress --optimize-autoloader --quiet + + - name: Import BOTTOM_CONTENT_HTML_DARK and TOP_CONTENT_HTML into env + shell: bash + run: | + cd src + echo "BOTTOM_CONTENT_HTML_DARK=$(cat BOTTOM_CONTENT_HTML_DARK.txt)" >> $GITHUB_ENV + echo "TOP_CONTENT_HTML=$(cat TOP_CONTENT_HTML.txt)" >> $GITHUB_ENV + + - name: Run script + run: php src/send_newsletter.php + env: + PAKAT_SMTP_USERNAME: ${{ secrets.PAKAT_SMTP_USERNAME }} + PAKAT_SMTP_PASSWORD: ${{ secrets.PAKAT_SMTP_PASSWORD }} + PAKAT_API_KEY: ${{ secrets.PAKAT_API_KEY }} + BOTTOM_CONTENT_HTML_DARK: ${{ env.BOTTOM_CONTENT_HTML_DARK }} + TOP_CONTENT_HTML: ${{ env.TOP_CONTENT_HTML }} + SEND_ENV: "test" + IS_DARK: "true" diff --git a/src/BOTTOM_CONTENT_HTML_DARK.txt b/src/BOTTOM_CONTENT_HTML_DARK.txt new file mode 100644 index 0000000..fe99bc5 --- /dev/null +++ b/src/BOTTOM_CONTENT_HTML_DARK.txt @@ -0,0 +1 @@ +

          Pakat Logo
          ارسال شده توسط پاکت

          سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

          diff --git a/src/EMAIL_TEMPLATES/newsletter_dark.html b/src/EMAIL_TEMPLATES/newsletter_dark.html new file mode 100644 index 0000000..f1e57d9 --- /dev/null +++ b/src/EMAIL_TEMPLATES/newsletter_dark.html @@ -0,0 +1,72 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

          + Softwaretalks Logo +

          خبرنامهٔ Softwaretalks

          +

          + شمارهٔ {{ newsletterNumber }} - {{ currentDate }} +

          + {% if topContent is not empty %} +
          {{ topContent|raw }}
          + {% endif %} +
          + +
          +

          + تأمین‌کنندگانِ محتوا در این شماره: + {% for contributor in contributors %} + {% if loop.last %} + {{ contributor }}. + {% else %} + {{ contributor }}، + {% endif %} + {% endfor %} شما نیز می‌توانید مشارکت کنید. +

          + {% if bottomContent is not empty %} +
          +
          {{ bottomContent|raw }}
          + {% endif %} +
          + + \ No newline at end of file diff --git a/src/TOP_CONTENT_HTML_DARK.txt b/src/TOP_CONTENT_HTML_DARK.txt new file mode 100644 index 0000000..0be4ef1 --- /dev/null +++ b/src/TOP_CONTENT_HTML_DARK.txt @@ -0,0 +1 @@ +

          این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده ی خود را بر اثر کرونا از دست داده اند سیاه پوش شده است.

          \ No newline at end of file diff --git a/src/configs.php b/src/configs.php index e81f788..bd60c09 100644 --- a/src/configs.php +++ b/src/configs.php @@ -9,25 +9,28 @@ } return [ - 'REPOSITORY_ORGANIZATION' => 'softwaretalks', - 'REPOSITORY_NAME' => 'newsletter', - 'LABELS' => [ - 'content', - 'current-week', - 'verified' - ], - 'STATE' => 'open', - 'EMAIL_TEMPLATE_DIR' => __DIR__ . '/EMAIL_TEMPLATES/', - 'EMAIL_TEMPLATE_FILE_NAME' => 'newsletter.html', - 'PAKAT_API_KEY' => getenv('PAKAT_API_KEY', true), - 'PAKAT_SMTP_HOST' => 'smtp-relay.sendinblue.com', - 'PAKAT_SMTP_PORT' => '587', - 'PAKAT_EMAIL_NAME' => 'Softwaretalks newsletter', - 'PAKAT_EMAIL_ADDRESS' => 'newsletter@softwaretalks.ir', - 'PAKAT_SMTP_DEBUG' => false, - 'NEWSLETTER_TEST_LIST_ID' => 8, - 'NEWSLETTER_LIST_ID' => 2, - 'SEND_ENV' => getenv('SEND_ENV', true), - 'TOP_CONTENT_HTML' => getenv('TOP_CONTENT_HTML', true), - 'BOTTOM_CONTENT_HTML' => getenv('BOTTOM_CONTENT_HTML', true) + 'REPOSITORY_ORGANIZATION' => 'softwaretalks', + 'REPOSITORY_NAME' => 'newsletter', + 'LABELS' => [ + 'content', + 'current-week', + 'verified' + ], + 'STATE' => 'open', + 'EMAIL_TEMPLATE_DIR' => __DIR__ . '/EMAIL_TEMPLATES/', + 'EMAIL_TEMPLATE_FILE_NAME' => 'newsletter.html', + 'EMAIL_TEMPLATE_DARK_FILE_NAME' => 'newsletter_dark.html', + 'PAKAT_API_KEY' => getenv('PAKAT_API_KEY', true), + 'PAKAT_SMTP_HOST' => 'smtp-relay.sendinblue.com', + 'PAKAT_SMTP_PORT' => '587', + 'PAKAT_EMAIL_NAME' => 'Softwaretalks newsletter', + 'PAKAT_EMAIL_ADDRESS' => 'newsletter@softwaretalks.ir', + 'PAKAT_SMTP_DEBUG' => false, + 'NEWSLETTER_TEST_LIST_ID' => 8, + 'NEWSLETTER_LIST_ID' => 2, + 'SEND_ENV' => getenv('SEND_ENV', true), + 'TOP_CONTENT_HTML' => getenv('TOP_CONTENT_HTML', true), + 'BOTTOM_CONTENT_HTML' => getenv('BOTTOM_CONTENT_HTML', true), + 'BOTTOM_CONTENT_HTML_DARK' => getenv('BOTTOM_CONTENT_HTML_DARK', true), + 'IS_DARK' => getenv('IS_DARK', true) ]; diff --git a/src/send_newsletter.php b/src/send_newsletter.php index 5e88521..4efe2d1 100644 --- a/src/send_newsletter.php +++ b/src/send_newsletter.php @@ -46,14 +46,24 @@ * 3- Generate HTML template */ printf('--> Generate HTML template' . PHP_EOL); -$htmlTemplate = generateHtmlTemplate( - $posts, - $configs['EMAIL_TEMPLATE_FILE_NAME'], - $configs['EMAIL_TEMPLATE_DIR'], - $configs['TOP_CONTENT_HTML'], - $configs['BOTTOM_CONTENT_HTML'], - $newsletterNumber -); +if($configs['IS_DARK'] === 'true') + $htmlTemplate = generateHtmlTemplate( + $posts, + $configs['EMAIL_TEMPLATE_DARK_FILE_NAME'], + $configs['EMAIL_TEMPLATE_DIR'], + $configs['TOP_CONTENT_HTML_DARK'], + $configs['BOTTOM_CONTENT_HTML_DARK'], + $newsletterNumber + ); +else + $htmlTemplate = generateHtmlTemplate( + $posts, + $configs['EMAIL_TEMPLATE_FILE_NAME'], + $configs['EMAIL_TEMPLATE_DIR'], + $configs['TOP_CONTENT_HTML'], + $configs['BOTTOM_CONTENT_HTML'], + $newsletterNumber + ); $minifiedHtmlTemplate = convertToMinifiedHtmlTemplate($htmlTemplate); /* From 5d728f2a5b1f76456a129e2a9af50d0827c1801f Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 16 Sep 2021 18:42:45 +0430 Subject: [PATCH 199/326] Fix envs bug (TOP_CONTENT_HTML_DARK) --- .github/workflows/production_dark.yaml | 2 +- .github/workflows/staging_dark.yaml | 2 +- src/configs.php | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/production_dark.yaml b/.github/workflows/production_dark.yaml index 01e28a9..8c75e05 100644 --- a/.github/workflows/production_dark.yaml +++ b/.github/workflows/production_dark.yaml @@ -35,7 +35,7 @@ jobs: PAKAT_SMTP_PASSWORD: ${{ secrets.PAKAT_SMTP_PASSWORD }} PAKAT_API_KEY: ${{ secrets.PAKAT_API_KEY }} BOTTOM_CONTENT_HTML_DARK: ${{ env.BOTTOM_CONTENT_HTML_DARK }} - TOP_CONTENT_HTML: ${{ env.TOP_CONTENT_HTML }} + TOP_CONTENT_HTML_DARK: ${{ env.TOP_CONTENT_HTML_DARK }} SEND_ENV: "production" IS_DARK: "true" diff --git a/.github/workflows/staging_dark.yaml b/.github/workflows/staging_dark.yaml index 3e69d45..de597b4 100644 --- a/.github/workflows/staging_dark.yaml +++ b/.github/workflows/staging_dark.yaml @@ -35,6 +35,6 @@ jobs: PAKAT_SMTP_PASSWORD: ${{ secrets.PAKAT_SMTP_PASSWORD }} PAKAT_API_KEY: ${{ secrets.PAKAT_API_KEY }} BOTTOM_CONTENT_HTML_DARK: ${{ env.BOTTOM_CONTENT_HTML_DARK }} - TOP_CONTENT_HTML: ${{ env.TOP_CONTENT_HTML }} + TOP_CONTENT_HTML_DARK: ${{ env.TOP_CONTENT_HTML_DARK }} SEND_ENV: "test" IS_DARK: "true" diff --git a/src/configs.php b/src/configs.php index bd60c09..8b3a24e 100644 --- a/src/configs.php +++ b/src/configs.php @@ -30,6 +30,7 @@ 'NEWSLETTER_LIST_ID' => 2, 'SEND_ENV' => getenv('SEND_ENV', true), 'TOP_CONTENT_HTML' => getenv('TOP_CONTENT_HTML', true), + 'TOP_CONTENT_HTML_DARK' => getenv('TOP_CONTENT_HTML_DARK', true), 'BOTTOM_CONTENT_HTML' => getenv('BOTTOM_CONTENT_HTML', true), 'BOTTOM_CONTENT_HTML_DARK' => getenv('BOTTOM_CONTENT_HTML_DARK', true), 'IS_DARK' => getenv('IS_DARK', true) From e4a6d307bd595d50c35b3e30233da544a4416036 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 16 Sep 2021 18:47:44 +0430 Subject: [PATCH 200/326] Fix envs in github actions file (TOP_CONTENT_HTML_DARK) --- .github/workflows/production_dark.yaml | 4 ++-- .github/workflows/staging_dark.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/production_dark.yaml b/.github/workflows/production_dark.yaml index 8c75e05..0138ceb 100644 --- a/.github/workflows/production_dark.yaml +++ b/.github/workflows/production_dark.yaml @@ -21,12 +21,12 @@ jobs: cd src composer install --no-progress --optimize-autoloader --quiet - - name: Import BOTTOM_CONTENT_HTML_DARK and TOP_CONTENT_HTML into env + - name: Import BOTTOM_CONTENT_HTML_DARK and TOP_CONTENT_HTML_DARK into env shell: bash run: | cd src echo "BOTTOM_CONTENT_HTML_DARK=$(cat BOTTOM_CONTENT_HTML_DARK.txt)" >> $GITHUB_ENV - echo "TOP_CONTENT_HTML=$(cat TOP_CONTENT_HTML.txt)" >> $GITHUB_ENV + echo "TOP_CONTENT_HTML_DARK=$(cat TOP_CONTENT_HTML_DARK.txt)" >> $GITHUB_ENV - name: Run script run: php src/send_newsletter.php diff --git a/.github/workflows/staging_dark.yaml b/.github/workflows/staging_dark.yaml index de597b4..c319265 100644 --- a/.github/workflows/staging_dark.yaml +++ b/.github/workflows/staging_dark.yaml @@ -21,12 +21,12 @@ jobs: cd src composer install --no-progress --optimize-autoloader --quiet - - name: Import BOTTOM_CONTENT_HTML_DARK and TOP_CONTENT_HTML into env + - name: Import BOTTOM_CONTENT_HTML_DARK and TOP_CONTENT_HTML_DARK into env shell: bash run: | cd src echo "BOTTOM_CONTENT_HTML_DARK=$(cat BOTTOM_CONTENT_HTML_DARK.txt)" >> $GITHUB_ENV - echo "TOP_CONTENT_HTML=$(cat TOP_CONTENT_HTML.txt)" >> $GITHUB_ENV + echo "TOP_CONTENT_HTML_DARK=$(cat TOP_CONTENT_HTML_DARK.txt)" >> $GITHUB_ENV - name: Run script run: php src/send_newsletter.php From 07e22fe5d7f9d39dbc27509c7ce21c1d89d22a51 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 16 Sep 2021 18:52:02 +0430 Subject: [PATCH 201/326] enhance background color width --- src/EMAIL_TEMPLATES/newsletter_dark.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/EMAIL_TEMPLATES/newsletter_dark.html b/src/EMAIL_TEMPLATES/newsletter_dark.html index f1e57d9..7743e75 100644 --- a/src/EMAIL_TEMPLATES/newsletter_dark.html +++ b/src/EMAIL_TEMPLATES/newsletter_dark.html @@ -1,5 +1,5 @@ - + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks @@ -30,7 +30,7 @@ - +

          Date: Thu, 16 Sep 2021 18:55:23 +0430 Subject: [PATCH 202/326] -- --- src/modules/counter.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index c8b1088..e4eee7c 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -7,8 +7,8 @@ function newsletterCounter(): int $now = Carbon::now(); // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); - // minus 4, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 1 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 5; + // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 6; return $newsletterNumber; } From dce5f50366643adb27f905ef4acd74e2dda61849 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 16 Sep 2021 18:58:56 +0430 Subject: [PATCH 203/326] Fix Semi-Space --- src/TOP_CONTENT_HTML_DARK.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TOP_CONTENT_HTML_DARK.txt b/src/TOP_CONTENT_HTML_DARK.txt index 0be4ef1..4974b8a 100644 --- a/src/TOP_CONTENT_HTML_DARK.txt +++ b/src/TOP_CONTENT_HTML_DARK.txt @@ -1 +1 @@ -

          این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده ی خود را بر اثر کرونا از دست داده اند سیاه پوش شده است.

          \ No newline at end of file +

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

          From c6d34c84f52d66414564a8becd0e0ed3e1b1ec37 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Fri, 17 Sep 2021 23:17:14 +0430 Subject: [PATCH 204/326] Fix dark theme for mail clients --- src/EMAIL_TEMPLATES/newsletter_dark.html | 78 ++++++++++++------------ src/TOP_CONTENT_HTML_DARK.txt | 2 +- 2 files changed, 41 insertions(+), 39 deletions(-) diff --git a/src/EMAIL_TEMPLATES/newsletter_dark.html b/src/EMAIL_TEMPLATES/newsletter_dark.html index 7743e75..db13af2 100644 --- a/src/EMAIL_TEMPLATES/newsletter_dark.html +++ b/src/EMAIL_TEMPLATES/newsletter_dark.html @@ -1,5 +1,5 @@ - + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks @@ -30,43 +30,45 @@ - -

          - Softwaretalks Logo -

          خبرنامهٔ Softwaretalks

          -

          - شمارهٔ {{ newsletterNumber }} - {{ currentDate }} -

          - {% if topContent is not empty %} -
          {{ topContent|raw }}
          - {% endif %} -
          - -
          -

          - تأمین‌کنندگانِ محتوا در این شماره: - {% for contributor in contributors %} - {% if loop.last %} - {{ contributor }}. - {% else %} - {{ contributor }}، - {% endif %} - {% endfor %} شما نیز می‌توانید مشارکت کنید. -

          - {% if bottomContent is not empty %} + +
          +

          + Softwaretalks Logo +

          خبرنامهٔ Softwaretalks

          +

          + شمارهٔ {{ newsletterNumber }} - {{ currentDate }} +

          + {% if topContent is not empty %} +
          {{ topContent|raw }}
          + {% endif %}
          -
          {{ bottomContent|raw }}
          - {% endif %} -
          + +
          +

          + تأمین‌کنندگانِ محتوا در این شماره: + {% for contributor in contributors %} + {% if loop.last %} + {{ contributor }}. + {% else %} + {{ contributor }}، + {% endif %} + {% endfor %} شما نیز می‌توانید مشارکت کنید. +

          + {% if bottomContent is not empty %} +
          +
          {{ bottomContent|raw }}
          + {% endif %} +
          +
          \ No newline at end of file diff --git a/src/TOP_CONTENT_HTML_DARK.txt b/src/TOP_CONTENT_HTML_DARK.txt index 4974b8a..8f81ca1 100644 --- a/src/TOP_CONTENT_HTML_DARK.txt +++ b/src/TOP_CONTENT_HTML_DARK.txt @@ -1 +1 @@ -

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

          +

          این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده‌ی خود را بر اثر کرونا از دست داده‌اند، سیاه‌پوش شده‌است

          From 6a58632fd1f839ced875fdd213a163ca1c14443c Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Fri, 17 Sep 2021 18:51:24 +0000 Subject: [PATCH 205/326] Add Archive --- archives/num31.html | 77 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 archives/num31.html diff --git a/archives/num31.html b/archives/num31.html new file mode 100644 index 0000000..09ad7e9 --- /dev/null +++ b/archives/num31.html @@ -0,0 +1,77 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

          + Softwaretalks Logo +

          خبرنامهٔ Softwaretalks

          +

          + شمارهٔ ۳۱ - جمعه، ۲٦ شهریور ۱۴۰۰ +

          +
          +
            +
          • + طراحی ماژولار مونولتیک
            در این سلسله مطالب، نویسنده تلاش کرده تجربیات و نظراتش رو درباره طراحی ماژولار (قطعه قطعه) نرم‌افزارهای مونولتیک بنویسه که خوندنش خالی از لطف نیست و میتونه ماها رو با مباحث یا کلمات کلیدی جدیدی آشنا بکنه. +
          • +
          • + Ship / Show / Ask
            مارتین فولر در این نوشته به معرفی شیوه branching تحت عنوان Ship Show Ask می‌پردازد. در این شیوه قانون این است که Code Review یا تایید برای ادغام شدن همه Pull Requestها لازم نیست و افراد می‌توانند PRهای خودشان را ادغام کنند. branch ها نیز باید به صورت مداوم rebase شوند. فولر در این نوشته بخش‌های مختلف این شیوه را توضیح می‌دهد. +
          • +
          • + هوش مصنوعی جایگزین مهندس های نرم افزار هم می شود؟
            هوش مصنوعی که این روزها خیلی بین آدم ها اسمش هست و در مورد اون حرف میزنن این پیشرفت های زیادی کرده یه روز هوش مصنوعی نقاشی میکشه یه روز آهنگ میسازه یه روز فیلم تولید میکنه اما ممکنه جایگزین برنامه نویس ها هم بشه؟؟؟ برای مطالعه ی کامل روی لینک محتوا بزنید ... +
          • +
          • + Visualize کردن کد مخازن در گیت‌هاب
            نمایش کل ساختار یک پروژه در یک نگاه تصویری +
          • +
          +
          +

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

          +
          +

          Pakat Logo
          ارسال شده توسط پاکت

          سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

          +
          + + From 49b1f79796bc25f5732fea6361637bd179790773 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Fri, 17 Sep 2021 18:53:48 +0000 Subject: [PATCH 206/326] Add Archive --- archives/num31.html | 85 +++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 41 deletions(-) diff --git a/archives/num31.html b/archives/num31.html index 09ad7e9..e400ee8 100644 --- a/archives/num31.html +++ b/archives/num31.html @@ -30,48 +30,51 @@ - -

          - Softwaretalks Logo -

          خبرنامهٔ Softwaretalks

          -

          - شمارهٔ ۳۱ - جمعه، ۲٦ شهریور ۱۴۰۰ -

          -
          -
            -
          • - طراحی ماژولار مونولتیک
            در این سلسله مطالب، نویسنده تلاش کرده تجربیات و نظراتش رو درباره طراحی ماژولار (قطعه قطعه) نرم‌افزارهای مونولتیک بنویسه که خوندنش خالی از لطف نیست و میتونه ماها رو با مباحث یا کلمات کلیدی جدیدی آشنا بکنه. -
          • -
          • - Ship / Show / Ask
            مارتین فولر در این نوشته به معرفی شیوه branching تحت عنوان Ship Show Ask می‌پردازد. در این شیوه قانون این است که Code Review یا تایید برای ادغام شدن همه Pull Requestها لازم نیست و افراد می‌توانند PRهای خودشان را ادغام کنند. branch ها نیز باید به صورت مداوم rebase شوند. فولر در این نوشته بخش‌های مختلف این شیوه را توضیح می‌دهد. -
          • -
          • - هوش مصنوعی جایگزین مهندس های نرم افزار هم می شود؟
            هوش مصنوعی که این روزها خیلی بین آدم ها اسمش هست و در مورد اون حرف میزنن این پیشرفت های زیادی کرده یه روز هوش مصنوعی نقاشی میکشه یه روز آهنگ میسازه یه روز فیلم تولید میکنه اما ممکنه جایگزین برنامه نویس ها هم بشه؟؟؟ برای مطالعه ی کامل روی لینک محتوا بزنید ... -
          • -
          • - Visualize کردن کد مخازن در گیت‌هاب
            نمایش کل ساختار یک پروژه در یک نگاه تصویری -
          • -
          -
          -

          - تأمین‌کنندگانِ محتوا در این شماره: - - امیرحسین بقایی، + +

          +

          + Softwaretalks Logo +

          خبرنامهٔ Softwaretalks

          +

          + شمارهٔ ۳۱ - جمعه، ۲٦ شهریور ۱۴۰۰ +

          +

          این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده‌ی خود را بر اثر کرونا از دست داده‌اند، سیاه‌پوش شده‌است

          +
          +
            +
          • + طراحی ماژولار مونولتیک
            در این سلسله مطالب، نویسنده تلاش کرده تجربیات و نظراتش رو درباره طراحی ماژولار (قطعه قطعه) نرم‌افزارهای مونولتیک بنویسه که خوندنش خالی از لطف نیست و میتونه ماها رو با مباحث یا کلمات کلیدی جدیدی آشنا بکنه. +
          • +
          • + Ship / Show / Ask
            مارتین فولر در این نوشته به معرفی شیوه branching تحت عنوان Ship Show Ask می‌پردازد. در این شیوه قانون این است که Code Review یا تایید برای ادغام شدن همه Pull Requestها لازم نیست و افراد می‌توانند PRهای خودشان را ادغام کنند. branch ها نیز باید به صورت مداوم rebase شوند. فولر در این نوشته بخش‌های مختلف این شیوه را توضیح می‌دهد. +
          • +
          • + هوش مصنوعی جایگزین مهندس های نرم افزار هم می شود؟
            هوش مصنوعی که این روزها خیلی بین آدم ها اسمش هست و در مورد اون حرف میزنن این پیشرفت های زیادی کرده یه روز هوش مصنوعی نقاشی میکشه یه روز آهنگ میسازه یه روز فیلم تولید میکنه اما ممکنه جایگزین برنامه نویس ها هم بشه؟؟؟ برای مطالعه ی کامل روی لینک محتوا بزنید ... +
          • +
          • + Visualize کردن کد مخازن در گیت‌هاب
            نمایش کل ساختار یک پروژه در یک نگاه تصویری +
          • +
          +
          +

          + تأمین‌کنندگانِ محتوا در این شماره: - - حامد سعیدی، + امیرحسین بقایی، + - - امیر شکری. + حامد سعیدی، + - شما نیز می‌توانید مشارکت کنید. -

          -
          -

          Pakat Logo
          ارسال شده توسط پاکت

          سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

          -
          + امیر شکری. + + شما نیز می‌توانید مشارکت کنید. +

          +
          +

          Pakat Logo
          ارسال شده توسط پاکت

          سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

          +
          +
          - + \ No newline at end of file From c3cba63f6d82035d33612858a4961d1651011f1d Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sun, 19 Sep 2021 12:24:02 +0430 Subject: [PATCH 207/326] Update index.html (add archive 31) --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 9eb3fb5..bb5704d 100644 --- a/index.html +++ b/index.html @@ -110,6 +110,7 @@

          آرشیو خبرنامه‌های سال ۱۴۰۰

            +
          • خبرنامه شماره ۳۱ - جمعه، ۲٦ شهریور
          • خبرنامه شماره ۳۰ - جمعه، ۱۲ شهریور
          • خبرنامه شماره ۲۹ - پنجشنبه، ۰۴ شهریور
          • خبرنامه شماره ۲۸ - پنجشنبه، ۲۱ مرداد
          • From 0c4879e3673db22439e09e52b5d07fd4a948771d Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Fri, 24 Sep 2021 17:09:41 +0000 Subject: [PATCH 208/326] Add Archive --- archives/num32.html | 80 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 archives/num32.html diff --git a/archives/num32.html b/archives/num32.html new file mode 100644 index 0000000..0b9cff1 --- /dev/null +++ b/archives/num32.html @@ -0,0 +1,80 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +
            +

            + Softwaretalks Logo +

            خبرنامهٔ Softwaretalks

            +

            + شمارهٔ ۳۲ - جمعه، ۰۲ مهر ۱۴۰۰ +

            +

            این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده‌ی خود را بر اثر کرونا از دست داده‌اند، سیاه‌پوش شده‌است

            +
            +
              +
            • + با واژه‌دان زیباتر بنویسید
              «برایِ این دکمه چه اسمی انتخاب کنم؟»، «این پیامِ خطا را چگونه بنویسم؟»، «این قابلیت را با چه عباراتی توضیح بدهم؟»، «برایِ این منو از چه کلماتی استفاده کنم؟» واژه‌دان کمک می‌کند تا سریع‌تر جوابِ این سوالات را پیدا کنید. این برنامه خصوصاً برایِ UX Writerها ابزاری مفید و حیاتی است..." +
            • +
            • + راهنمای کامل شیوه برخورد با آدم‌های چغر و بد بدن در حوزه توسعه نرم‌افزار
              در این سایت، راهنمایی در خصوص تیپ‌های مختلف آدم‌ها در نقش‌های مختلف مرتبط با توسعه نرم‌افزار و چگونگی سر و کله زدن با آن‌ها به تفکیک بیان شده است. +
            • +
            • + ساختار سوییچ‌کیس وارد پایتون می شود!
              توی این مطلب، قراره بهتون بگیم که سوییچ‌کیس‌ها چی هستن و اون‌ها رو در آینده چجوری در پایتون پیاده میکنیم. +
            • +
            • + سه تنظیم گیت که بهتره پیش فرض باشن
              تنظیماتی در گیت وجود‌ داره که اگه به صورت پیش‌فرض فعال باشن، احتمالا از خیلی دردسرها جلوگیری می‌کنن و با پیشگیری از این مشکلات باعث صرفه جویی در وقت و اعصاب و ... می‌شن. +
            • +
            +
            +

            + تأمین‌کنندگانِ محتوا در این شماره: + + سیدایوب کوکبی، + + + حامد سعیدی، + + + Rahmanism. + + شما نیز می‌توانید مشارکت کنید. +

            +
            +

            Pakat Logo
            ارسال شده توسط پاکت

            سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

            +
            +
            + + \ No newline at end of file From b30088a82d1046505857ba349f15c5f1a25f1f5e Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 24 Sep 2021 20:42:55 +0330 Subject: [PATCH 209/326] Add archive (num 32) --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index bb5704d..e664827 100644 --- a/index.html +++ b/index.html @@ -110,6 +110,7 @@

            آرشیو خبرنامه‌های سال ۱۴۰۰

              +
            • خبرنامه شماره ۳۲ - جمعه، ۰۲ مهر
            • خبرنامه شماره ۳۱ - جمعه، ۲٦ شهریور
            • خبرنامه شماره ۳۰ - جمعه، ۱۲ شهریور
            • خبرنامه شماره ۲۹ - پنجشنبه، ۰۴ شهریور
            • From 9c6f0cffa8981e442c6cc950001e8b8a61ff3ab5 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sun, 26 Sep 2021 09:25:30 +0330 Subject: [PATCH 210/326] Update contributors section --- README.md | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index def4676..5cdfeda 100644 --- a/README.md +++ b/README.md @@ -25,47 +25,50 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. -ohmydevops -Hameds +ohmydevops +Hameds hassan-shahbazi -amirshnll +amirshnll ghost +Rahmanism royapakzad mokarchi alinaseri07 -Rahmanism afzouni ashkanRmk ariaieboy AliKarbasiCom -pykello -vahidfathi VahidNaderi -s-alielyasi SirwanAfifi -numb95 +s-alielyasi +vahidfathi +pykello amirmojiry -mahdiAkhi +kokabi1365 anvaari irnb -asadise +mahdiAkhi DearRude -markpash -Mvahedii -iamvee -m2-farzan -kokabi1365 -Aliiior +asadise +numb95 +Gnkalk +Cinorid mayazdi -rashid2003 -mohas hamedsj -omidpakdel vghaderi itshaadi -hnaseri1990 +Mvahedii mahdithejedi +xhdix +Aliiior +rashid2003 +iamvee +m2-farzan +markpash +hhosseinioun +hnaseri1990 +omidpakdel mrmmg -xhdix +mohas From 8696193fbcd92645b7066e6ea245b9748d303367 Mon Sep 17 00:00:00 2001 From: Ayub Kokabi <44271870+kokabi1365@users.noreply.github.com> Date: Thu, 30 Sep 2021 18:05:56 +0330 Subject: [PATCH 211/326] =?UTF-8?q?=D8=A8=D8=A7=D8=B2=D8=B7=D8=B1=D8=A7?= =?UTF-8?q?=D8=AD=DB=8C=D9=90=20=D8=AC=D8=B2=D8=A6=DB=8C=D9=90=20=D9=84?= =?UTF-8?q?=D9=88=DA=AF=D9=88=20(#330)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Round the corners of the letters in the logo --- favicons/apple-touch-icon.png | Bin 3069 -> 4064 bytes favicons/favicon-16x16.png | Bin 793 -> 471 bytes favicons/favicon-32x32.png | Bin 950 -> 902 bytes favicons/logo.svg | 17 +++++++++++++++++ 4 files changed, 17 insertions(+) create mode 100644 favicons/logo.svg diff --git a/favicons/apple-touch-icon.png b/favicons/apple-touch-icon.png index 8df3defa51aced0ef8ceddd162c977c46aa89768..7605c45d621b4862980b5e3e93df0db6416fb82b 100644 GIT binary patch literal 4064 zcmdUy`9BkmAIJ60Cn_c@S0?1X5(;yMjV;V=saz>{XwKYM4wO^Iulf)9l*rI5ebLrSO(c`xXTpfA)2aTtmm2Qb9nD?LQNa*E(terUuuFvbk$6&Q#H7{ z40Jf3j=TF;alG%-+PiMDH{EtKDt*zCA76<_}B;z2%rBYu?2s>n+Lm4|kre~t)0W9^TMdq*z?uLe1X!kqUb%czw5elGAs!j?$1(^f$|YVnO9Ql@T^%W^N#&G zq3rxTJEt1hWVov$4zz@K!7L%T^IUVY80zKwHI&3(PdaNW0xwDQ@&`(5ij_|k{-$qdiQ4M?<>w@ZSpI&jZ!^3MF{LJt8pT;$+Q^cyy8enBw!WL<)~)aq zK7`rq=9zd|>CEifl%4&P z$v9!$?I`HmXg>3)v&cL;U9e*tFb4O`gd8XuHSQQT_P(oYUYqDU%>&zV*-Iyaf~}z# z^yz2bOKg(C*AQ*^A*Gx|8A(p1m^YTqCjeZt#Xv-@eQ3=t;-(ORyrB0hBU`8a)vzyJ z9eLOU`tF`3igJYI0p+gPI3_ScZj1M+3Jk#8L7Nhc=H(O#IHl*;U8We8UoPoy%uZG< zw?^RA>qlueD?QQ)^3UJ!8lQJF=(m12ZWSJjjXckpjAz#?9rfIqs7B2lK%S7b1qw}z zY1ucp<`i+1%HU&(jyr2Qp4d*LrmSL+m3X?H%Tux(YQzoYYK|5~yq~Bv&gaYSW?Ej# zh$(I`ijMd0{jpFe<{sq5cOrB6+>lFj8tykv{5(KG+QOG)CTpF*;P<*ATqktqi7MmZ z47amo%<3lG@-30EEbm+afp7gbdiiBZ%n*a72SED};i>@)?5Zv98Mv@WgP|MEqFxe8w z$D~I*=ay-^>i7N6y}+RjN8%rHR%FMJ>Ot49rRl8Ng%|BicFL?1wToJ477qMeBML5p z?gU0Y7Uvc{o-C}hsPwZ4%93&B5}zlVkd>PM{v}G)3wuOXT9^1g(>ZSss}EX+ONjh8;*Vlf zPVLJD%gv3q>Et-4LgI`>f@q`<7^YqGxKFGj|LaoyfQuHA|CR3GJHd;&?>!hxC8a07 zPSkzrttj{A;mWDastD(Vh!JT<4GX;$X&SI{tG%V*z{l=afn2rsvOZIAZd>VzN1C=m zYtYz>?Z=0(39fFDsi>Zh0Ft^?+w(^Ui&Dn4?-@l+*MNC`Fu-b48v)l$fIQ(uKJ>1i zJ>5-`V}YMGCvseqA`d=gxPJKL9w)Ap@J$|9bBkJ7TX40`%qqvu#=h}KPB8|a1+lwr zu1n?@H8>M+gR;3`ayVA%r@Hnq{mPilV78P19&x-euWmJwpiq7*JM1;grDmTzKxh+o z_gB2~&(~s7Yr90v>jIepG;HH#==m#nnG0fMo&^PBd!W_nEj7O6A*dlpDL1;5S+?oW z$ILI(w|+zphVWzrVfzWl6|1uPHFJVqY*U(84$c zKiHPpD*%PIdE^2VNE+nrZl3UZEXFk}nt{<}w@)3{rWQw2XT}^XFDJueY~N_sHJ4{D z+l?;#knsyiP~&K&ci4|cxtcAR9+!j4@Pb#0 zI~#*0x>itZkW_>f2n;)dFa7zVWbma|=da;xSnA~pNmP1{zj^29zLlTQc~X8vBH-^d zc^3SGZ0dpIT(zaPR*{g{8H)Ahjd+D&GkTr!zSPxK(@9Ia02y`1PeoY)#1+(Unv@%5bzBFk}{eXG4;EvA9v!P0v}F=czmku11vY+se?Y*sU~BMGfoouP7gj zzMoRtw-PMVePSalYkMS%5$mq_feyL4*z1R{iG0VF7{ut!T|I^T{(6;@ye)wv?`8t7 ztKI4O$vnk9=y1E&+{6ysTINM7tYH7zkFmFFbjS=5zx+fw@1o{m%G;A=hu>gWs`}o1 zK~~`8*UOH7kIwgM1Eh27X_cz~KKmobK9XUASQW-iXg78Iw*YNm;hS^x_zHROq671} ztip|i{$iceo4jso3bdwmBVn5jil+x{tt(NRPRhF*xc*KvQ{lYut`G}WZ(~61Lm2_W z>2K(SJvXgr<7-BvR!pC+dz4U5iyc}N1`Hog!hjqo*M<@J&SU_;T#S_qmR~sKRL|a* zYg27%hkjCQ4;nV=V7<(PQe~N__QQ}81g!HTYorQ&pwSvh653%+H$yUAFdqwE*0yB` zBbG+>iKJqufe+~+t*%VX^!qT8L?3jkOd7Xb+h`Uy@eijwO0}t}zW7=B%tzCb4v{K2 z)hTBmR1tb`H_$44>`Rg>ozzW`44jtrBb5PTB4}XHMIC4C&I@G7Wr0Kkce(;U{ z7$-K}nFHD%hX*?T2;T|NY>eeLn&p7be^{-g=8J{rJUzoD_46(OyI^q6cFK&g4+M`E z?Va7iZ}=^MYL+)gpbW0y`6MJNj(Qn%N^&&Lm^C4BFeuiwzPazLdhu)Z9;K zJ@rOzU7*G^pgV!fqf~jz{`*3>%IFI6QEN=y5#;ukl13e3e|HEm{o6->>ux6wG<|;Z z5?=&i8Sa!rDl>fXdy2fu?^QK4R1*>WY;JyA=tD-K7wr*an``KU25El}dmo_jY?>Mc z+*~{u@HRH8iLE$zhdwm1b8eRVY^PnsvdpWRLN+V;O~?gM9v)VnRT3j$)V>&ffBi(M zH=!SCKV$X$m2FT*sm6u*Q6saE9O;XzV;JbYM$Tvy+x5pgcNlndm1v9Ny^s{4?zFg3 zw`fSlmm?lOWb0HHkCE6|aA_35iFz_AfKQ4-C4;B0X3MJO)%`5+Sl4r!@@%b$NQrsJd$m{h)>vA2LwCj3&u4F5SGjKrxVUgvG%VwI6*J}` zKVA5i(!Vv|K*~$b5CJUhIFsVF#?#8)Pd`nv8TdjIlVec^Vod?NtKFJ6T4({|MPF_F z2kMWGHN*{mN2MI`f`94&I6a_rJ6mku>mQN$9pA+(VYxBn3d^c&X_nv=>}w?) zFI~rIyhw%XN3|@Ph<318Yh-(*|2N{n?n#p`cwVr($6co$ydu-is@U^NRCH$COkKK} z51CA{Y+0$;TbSSf7GxPV6TwnN0!t=U@O5zl0R0Mfz;>q4LvYTW;BY^Q zbTzZoXPJ%D--+G3#_L`Wo4>pa1YcPmJYs*9VQ)*XZxa0Uql!4n~Jb4DR{xI&}=q_pv#6 zS}Rxw3YN`GE&!-WmYQ&T(tMibJ+9Aa+&E79#SU9~6PH1}3ReKyM)Lh|a*R@rnEM*o za>V_y?iR5enmW<^u|l%vjc5_FfLGh6DlPq7Nb7wLZyCY~P|ffa5+XY!^eMBqJcol0 zZ6bgY*IW_|0JcMeadq)8c4`ZH%Dk5vSOGXlNg1KojUiGp5Dw#U-kVEy@;(k$2aWna&L literal 3069 zcmd5;c{J2*8~&AKd+p>aV;}pz??mG@V~H5DWr?w6nPD_BSyPiOjCF)emcg66NF!N_ zGK5G8*~&h=cE-*({rUaz{r{flzMt#d*Zo}gea?NJ=bR_W_PRMc>lIc20N7zrh#ehY z{dVT_^u4||6G4XyekRr?08p3CcI?GSk43$qcGdt8B?SO+i2!g&r{b0XAVLKImOTML zFCPE|kcG`R4CslAw=K;fz}fFr(n`vrGb~7`b2tESbo};n{4y4Cbdm`Tvo>RzImgE& zAap5-=_vrP`oJJ2@OwX2C!!EjjMb<<1iqju3%-M2tD3(+XyBGwg3=QSx zUvlLYbP>S^o|L9p7ifq%dRw^!D*WlPBJzr6lA>xVUpaWb=CybNGcu<>-I4~ZPY}*pk*f#m~OZhjgfEx8^MIk(B z>Zd8Qx~f*wFM+5tF`ho}iMFnC&O<$=tlaszW<6p)3W~?Oon8rDbclZ$;<1=B)zk3p zP>b07P$n-=J-~McOD;go%@tk@G`8J|A4Ktzt;#$Gw8GYcVa{WvX>`SNF^8 z6#?NqZWJW=G3P`?d*6bc%+6kx}5jbCbo9E^~4T^6cTIs$g}gXiNn1RPj0|D{JXh6m-a? zqOs=Qd4v`C;XYIr#&W^6{lp*no`-~EcnE*2bAiz~)^Bpy0~4iS>lsP$$|P@BS4eWo z6pT>ouEx&`;*i+oc4Rs!;?Y-z_>Nv>j+7Pwk6W1Gn?=Hmd}i(_X0krIQ^@63*4NUw z=iRfVFU(w4Qh&&|o6*ZHC8Yyx&?0k+PtQJ(Icv5$8U9B7&k*Zs_@AC zcoCLb6h)(WkDpxy!wT0&O8%*!<(#j@XG1KsjP1B&;fLX#VbP|r4nf<%hI{f?qW$c5 z`UNPxamg82kc&5t6j|Mmds;QRMDs()JyDZ`K0!gniGikdSp47IxIT7$&p4KOX z&Br-Pn}XKeHz<@PrR zg7P^97XxDMrGc}_6P(XnsXjA2zmjSQ5jT1}}G>v41!>F_3sCcevm61rD25_kO?1y|e8V;0G%7XO=>>=@AvUztq%}8@ z$dfl#O_=-4NZ|va#SFgj-FhSR1og(KU^PXcX|CY=JSXPZ|JEcsMkb!iVNyuDKFb5d zT7E=>obE2pwAL!<5M@qN7OdawQEAv`w9jr=d9a+0ZRXJO%*#`+^u9E7QsaGegUH(G z)nI$!eQ(dH+xIIM=A!rAY!}ee?^4pQ)OnF8c+Jow$yJOYe}4Og=t6t31xLQ*^(ftz zHEwmpo`2NA#w)8kXH!}62ju7JHu8NRo@%H`Jay!3ZLY{5`R65*5I@TJZT1(Z5{*9F zmCy&}v(&i~YxD{gA-QJU5?oY6Hh$4)WiIjz-Xx1P>GIb(K4P*tp^^yQ0VGOJ<2%U_ zjft>!TT6_g!-4$L0Vu&o%CJ6Qw@!Kuy3^u-QdZqfS=+%(K7Jq~BD+H$X}1~=)?J_0 zJO69ZvEn-DMG5w8bz|D@qD%vPT?bq{ezsOVshUHCo_=D z_CWKLVdSN|!n4VD2aHW1xiK>vKiSe#Lr&AMpMs|Q9>%{EZ0zFD9DRNm2$dP4<*@4- zv_793YJE#=4f!>4accV3EB?R0W^H0+rjT6KE1y#nd5=z2w?1Wc-26)u?Y~PZSm3jtvl5t9D|;AJX)z7 z)_gmzT$88`HM^-a?QYALkeD(g%~2c^gOF15#E3a;TNSx#d93^_OKN9NG_C49d$Kxt zJC@t#n*RJw%-w{lWNS}qRK1`1C1pNS*=c1!mRSAx8q`AA*s~%_OGLS~kz+!x{1{G= z;sUc51&MslOHSUlta6#j0Bb0Z87)Yu!Hy)YJsr4ld~;932+Oar3?W2mE+z*UD4DYI zc0Z6b@_ftcSf>njI+j9zz+5U7xH?B8?;cua#}2bJ-q6%Q)o z5pD{CKzcZ7>@Tt1AQo@(ChYM8yfg>RI6QW_dwldiepR&9OoP|$XCr&yz0i+FvtOl_ z>cR!f5KmgSKfUu1wh)TpMHJfSba_E=kIqi}1|K;rK%18LieFTxbXq}fuZIYaZH@0w zDGqg)q;6N{>XZd6F+_iv6fD)(26MK0N!~8|Y4C-ua$n~U!(itH=U7=N9>HR-J;QA{ z@zkizIKs!T-VZ0dmh(sqa=C?jU|9o#`|QjoJ#spjDXqjDa3v|rJQeL$*vOk<2en^f zQ8&7sT8xjfD{#C#x$lPmu1Z={_u!#j7ffm;D-Jg_?8qxm-Euq(wjVqRSH?ywU2yq#2m4T8 zG{!3o0U*5sLeNSf2(+k%l8Ta=>ZWKw4*k&0D7X{a&I==o3=8!Q2ttUWBasNv03_NQ z0PYpeZvDZGa+HzzWYgORo3{fPB-oU^*?1**EwlI-cts&`8l6525)E+C-qCN}ANoFk gJ}~vhK}#%@fMo%0^p>gS?-l^e>^kJ7sb|7}0l7(^TL1t6 diff --git a/favicons/favicon-16x16.png b/favicons/favicon-16x16.png index fb9a67f980fd3d932e88a7e6bd5f7f6693bb253b..fade899152411d7148884c9f8d345325a40f8e08 100644 GIT binary patch delta 456 zcmV;(0XP1c2G;|S8Gix*005AYXf^-<00v@9M??Ss00000`9r&Z00009a7bBm001r{ z001r{0eGc9b^rhYcS%G+R47wpxE#tv0*YW`xEw+X3TGjt0*{7E0Sp)Yq3BW&!=+#Z z7lDEppsFu;14+iK(cD+S=yE6{P{WmIt}8GRD2n3;tM+2J*MIEs^VNgDKfnI{`3;C( zEU&p!W%c*R7a;om{`sG8pCIBu#Bk9MWY@3vFWw(scB{ztZk_$TI{WLXl2_yS@3#d# znUVVc|Nj@O>hHG(KkNy4*cZldF@WKM55w0xr@uY8_+n+}s|}qmS2oAUrgKxf>ou|DSv)&OMJ*`N1>Y50!; z{{8#=;l#R2!R$a&fu=xgKxnvCqyt8}w~O_FB#?bGM?n?nF<`U+L-ukQGtfU*qBwyu y1JwZZ2NZcj89-k_r9;5chs32UX%L0T&;S7SuyJHoQ!dB=000014Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>pq>^{^{)2Z}-mr zczWYzuG-ZY-j}NyZ)Pdp$dtdCqjED(?PiYhqY07s8k~N;e)#LvgU^@tTu+g>8pHGT z*2$Nv8XixKe$eTEJyrTjILrNJ_uECf|NsBj$($|<^e(r^ebDO75o!mWj>eR-Gv)iZl$2$ac#7DSHnLmHNqfd-ekXMx3wB}&HI7h)1O`e{S zt^uLF-myN;!QRptZGG$J?Q2{(aUzm0Xkx zq!^403@vmG40VkRLJZ8UjEt>}EVT^`tqcqj&w4PTXvob^$xN%ntwCVIhrK`zk{}y` z^V3So6N^$A3KBE(O7!wlOB77>4D^f)KPqHS1u6=!3W+EQN-S3>D9TUE%t=)!sVqoU z$Sf!Uy0&7@<4-&sg<%>Rr~FT!@q8M@z^u%zm&`4!EbKj5gjra@rNQKI3bXR&5QWn> nuADe>=7`J@_R|d>3%v9gUWp5qd~z}cS;64x>gTe~DWM4fQ?NM0 diff --git a/favicons/favicon-32x32.png b/favicons/favicon-32x32.png index 46cd512ec340a2195c00e6f36f4eb1232725351f..d084a79d91a5f39c4104b2d61e6fcd967116fd18 100644 GIT binary patch delta 890 zcmV-=1BLvy2Zjfb8Gix*008_L?V|ty00v@9M??Ss00000`9r&Z00009a7bBm001r{ z001r{0eGc9b^rhaCP_p=R7gwhm0d_vVHn5X&3O?Rffw0DHzD~E6x3DFMHE&`Gq-dT zq|zt~@?-d|bkR*-)J0d`Nq*-=ptn&F6hb7`cFu8AC&ZSzGk=waI%R9yIme!7=e*mQ zZcZW*!o!clyYoEf`Jeasct<8HGxrG2th3)aOeQP#3a*^ks}802`)dva(y~ti@RY7K z^d4I%R_dd6NCH=`Nf1z8Gix~`VM~+18RE`K9k#&Sz?k$M`O_*0qsM(Y>vEm-C!^#c zb+~ZUWV1KX2Y-}i9-l~XNXATE-fYup`uVs64O2?^!H&?fTMPxnNJyf+RKj{ukTAQADhdVcSyj)$y-!BqB^KNH1^`+#8 zH9}^xBI`a$5JF2XzQ5h`s=+(h;vH-S_yJtFUl_4G27fYjKL@P*Kr`SSXbG<@LZIMJ z&ePM3{@@%1t*<+j9Y8^xmI6tLfUBpccH$g?R9G*mC?ZS=&8LCbt|8W|cn`Q)cxz>R z5_6>?6yq71(a(<%yn>sx32S*PXHtfeqY0WkgG7rHrFFJ>TCb zmlqjo=leQ09G~P0xw`Z=8faGnFgpsRSP59zwttlOGWmL*Og}n~oh}M|Un5ixv%E_I zXKn6QU=ADd<5&u(ALc{D!9YQv`R;1ykeC1voU_C8)l>qBgO`f1TmvECcihWi4e=1L z187r82(NyAg96G4s1it3&+S*(=lSvU3N+iKNh5a=dkdq4el392&%B2rNU{U(P%EVk zOLIEhzBuv(@D6uGE8NESH}Sm=G>%l{(q2eXgO4n&IK Q8UO$Q07*qoM6N<$f?++H(EtDd literal 950 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081EXw!Pl)T~5QfXa43`2K zE(I}MOAx--==^wM%;QP1k0-_4%u>8p@A!Cf+}&#HFV_$M{rUa>|9}7g{rh-&)Bpef zZ=}n7yL;x}zrX+g{{47j?Zdu^hkfB+ZXW;r@zt|=`OlY>|NH&pUX#Z~ABIc*K*O2d z9a{eL#og;EGM54vo=i)AyKBbXTH8C-)_1C{ZsluSiD17R%Jl9qP|dx|K@2x@)qXs? z_5a`BzdyeI{r=_e_s_rIKYxF4(aju{2b}?*FYLUQC~`TN@yXPr7t5+&EU$UKtmeha z`mZ;S{rmIlVQ=U~KZg6w9{+y*c)q0KW{&dBY-ONHPv_+Pdi&(}yJxpcjedW6{d9KL z+r4w&?3(#uZ+91=>ODC? zHUnpYM`SSr1K%MKW)#)%Y5)qdmw5WRvOi)JVHcMb>tvq|6#D7u;uvCaIypgtmE*t( z7UmwFGd>y&O6L!qI>yH)GlwVU&YKeqI_D3cKF-g`B*W9>l)x6!Ag`jYqoksu)wRgM z!-HdCL#MNkM~suuO|Cpm#Y{=F8KOR$oQghibtN#AE}67xLf0y(GZTGYIXOwqigH-6 zcJXPBvaR#>O=vVwKGWakcFaj_S(-yaUSj6aj+G6K7jH#4aB$`1NE(V7+=#qsZDD0) zWx1PU=PtvAng%S4YNiGS-#>_aateRY%Tgm#+xq8%=nv&a2LFW(4$da5P8tdt5&U<> zr*Q}fNr}lZiuLq#^>wytbu>47u(_qB%{Z>~n9Yil&xnEH+(QF1vrAIKz(7zfag8WR zNi0dVN-jzTQVd20h8DU8hPp-uAqM7FM#fe~mf8k}Rt5%%XFV8EH00)|WTsW()*vw9 z!(N~UNstY}`DrEPiAAXl1&Nt?C3<L7 z=AhYlmGw# diff --git a/favicons/logo.svg b/favicons/logo.svg new file mode 100644 index 0000000..e70f4e8 --- /dev/null +++ b/favicons/logo.svg @@ -0,0 +1,17 @@ + + + + + + From 5bfa7ba13308b9ce7318697194c2da3d9c23ea1d Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Sat, 9 Oct 2021 05:34:33 +0000 Subject: [PATCH 212/326] Add Archive --- archives/num35.html | 80 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 archives/num35.html diff --git a/archives/num35.html b/archives/num35.html new file mode 100644 index 0000000..9fd7115 --- /dev/null +++ b/archives/num35.html @@ -0,0 +1,80 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +
              +

              + Softwaretalks Logo +

              خبرنامهٔ Softwaretalks

              +

              + شمارهٔ ۳۵ - شنبه، ۱۷ مهر ۱۴۰۰ +

              +

              این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده‌ی خود را بر اثر کرونا از دست داده‌اند، سیاه‌پوش شده‌است

              +
              +
                +
              • + چطور لاگ بنویسیم؟
                در این مطلب، نویسنده به بیان تجربیات ساده ولی مهمی از کار با Log ها و این که چطور Log بنویسیم میپردازه که احتمالا برای ما نیز مفیده. +
              • +
              • + هفت حقیقت شگفت انگیز بعد از تبدیل شدن به توسعه دهنده نرم افزار
                در این دست‌نوشته حقیقت‌هایی در مورد اینکه بعد از تبدیل‌شدن به یک توسعه دهنده نرم‌افزار با آن روبرو می شوید می‌خونید البته برای هر فرد تفاوت‌هایی شاید وجود داشته باشه ولی خیلی از این حقایق کاملا برای همه یکسان است؛ مثل تفاوت محیط کار و محیط تحصیل، یادگیری بی‌انتها، نیازمندی به اشتیاق و ... +
              • +
              • + چه شکلی با چندخط کد میشه 25 برابر سایت رو سریع کرد
                خیلی کوتاه داخل این نوشته توضیح داده میشه که چه شکلی با Radis و CDN میشه صفحات رو تا 25 برابر سریعتر کرد. جزئیات زیادی داخل نوشته هست که حتما کامل بخونید .... +
              • +
              • + بهبود کارآیی رنگ‌آمیزی جفت براکت‌ها در VS Code
                در این نوشته فنی، مساله پیدا کردن و رنگی کردن جفت براکت‌ها در کدها داخل VS Code و بهبود کارآیی ۱۰ هزار برابری این کار بررسی شده +
              • +
              +
              +

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

              +
              +

              Pakat Logo
              ارسال شده توسط پاکت

              سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

              +
              +
              + + \ No newline at end of file From 596c57880ddc419c9f535b51aa2a169ffdd9fcf0 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sat, 9 Oct 2021 09:09:24 +0330 Subject: [PATCH 213/326] Add archive (num 35) --- index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.html b/index.html index e664827..4a7d3ee 100644 --- a/index.html +++ b/index.html @@ -110,6 +110,8 @@

              آرشیو خبرنامه‌های سال ۱۴۰۰

                +
              • خبرنامه شماره ۳۵ - شنبه، ۱۷ مهر
              • +
              • خبرنامه شماره ۳۳ - پنجشنبه، ۰۸ مهر
              • خبرنامه شماره ۳۲ - جمعه، ۰۲ مهر
              • خبرنامه شماره ۳۱ - جمعه، ۲٦ شهریور
              • خبرنامه شماره ۳۰ - جمعه، ۱۲ شهریور
              • From 71be07911b1ba2fcf74e07096628cd02796b3ba2 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Sat, 16 Oct 2021 07:40:39 +0000 Subject: [PATCH 214/326] Add Archive --- archives/num36.html | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 archives/num36.html diff --git a/archives/num36.html b/archives/num36.html new file mode 100644 index 0000000..dc416c6 --- /dev/null +++ b/archives/num36.html @@ -0,0 +1,83 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +
                +

                + Softwaretalks Logo +

                خبرنامهٔ Softwaretalks

                +

                + شمارهٔ ۳٦ - شنبه، ۲۴ مهر ۱۴۰۰ +

                +

                این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده‌ی خود را بر اثر کرونا از دست داده‌اند، سیاه‌پوش شده‌است

                +
                +
                  +
                • + چطور امنیت HTML رو به شکل صحیح پیاده کنیم؟
                  این مقاله یکی از چندین بخش مربوط به ساخت صحیح فرم‌های HTML است که به مباحث امنیت فرم‌ها با توضیح مفاهیم و مثال می‌پردازد +
                • +
                • + فلاتر یا ری اکت نیتیو !؟
                  یک مقایسه ی کامل بین فلاتر و ری اکت نیتیو را به طور کامل بخوانید و بعد از این مقایسه انتخاب بهتری برای شروع یکی از این موارد داشته باشید ... +
                • +
                • + بهمون دروغ گفتن، جاوااسکریپت اتفاقا خیلی سریعه
                  یه قانون معروف هست که میگه: هر اپی رو که بشه با جاوااسکریپت نوشت، بالاخره حتما با جاوااسکریپت نوشته خواهد شد. +
                • +
                • + سلام IPv6: آموزشی مختصر مناسب کابران IPv4
                  در این مقاله، نویسنده نحوه کار مفاهیم شناخته شد‌ه IPv4 را، با محوریت شبکه‌های خانگی و اداری کوچک، در IPv6 توضیح می‌دهد. بنابراین اگر درباره DHCP یا NAT اطلاعاتی دارید و کنجکاوید بدانید نحوه عملکرد آن‌ها در IPv6 چگونه است، این مطلب مناسب شماست. +
                • +
                +
                +

                + تأمین‌کنندگانِ محتوا در این شماره: + + حامد سعیدی، + + + امیر شکری، + + + Rahmanism، + + + slashsbin. + + شما نیز می‌توانید مشارکت کنید. +

                +
                +

                Pakat Logo
                ارسال شده توسط پاکت

                سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

                +
                +
                + + \ No newline at end of file From 6aa1201ff57dc000db02daa4a52c42492210deb1 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sat, 16 Oct 2021 11:13:23 +0330 Subject: [PATCH 215/326] Add archive (num 36) --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 4a7d3ee..8d473c3 100644 --- a/index.html +++ b/index.html @@ -110,6 +110,7 @@

                آرشیو خبرنامه‌های سال ۱۴۰۰

                  +
                • خبرنامه شماره ۳٦ - شنبه، ۲۴ مهر
                • خبرنامه شماره ۳۵ - شنبه، ۱۷ مهر
                • خبرنامه شماره ۳۳ - پنجشنبه، ۰۸ مهر
                • خبرنامه شماره ۳۲ - جمعه، ۰۲ مهر
                • From ed1e588740482bb55926a79c7281891dd015bd13 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sat, 30 Oct 2021 10:11:21 +0330 Subject: [PATCH 216/326] Update counter.php --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index e4eee7c..4ef9553 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 6; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 7; return $newsletterNumber; } From 1b76177f9c8ee6d9d78bd850b9f7679f744234f5 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Sat, 30 Oct 2021 06:44:06 +0000 Subject: [PATCH 217/326] Add Archive --- archives/num37.html | 80 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 archives/num37.html diff --git a/archives/num37.html b/archives/num37.html new file mode 100644 index 0000000..a32e828 --- /dev/null +++ b/archives/num37.html @@ -0,0 +1,80 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                  + Softwaretalks Logo +

                  خبرنامهٔ Softwaretalks

                  +

                  + شمارهٔ ۳۷ - شنبه، ۰۸ آبان ۱۴۰۰ +

                  +
                  +
                    +
                  • + آپدیت کانتینرها به وسیله واچ‌تاور
                    گاهی شرایطی پیش‌میاد که نمیتونیم از بیرون به سروری متصل بشیم و درخواست آپدیت یا به‌روزرسانی یک کانتینر رو بدیم. در این شرایط باید از داخل سرور به بیرون متصل بشیم و در صورت نیاز به‌روز‌رسانی‌های لازم رو انجام بدیم. ابزار خوبی که برای آپدیت کانتینرها در این شرایط ساخته‌شده، نامش Watchtower هست. در صورتی که شما هم شرایط مشابهی دارید شاید این ابزار با امکانات خوبی که داره گره از کارتون باز کنه به‌جای این که بخواید این ساختار رو مجدد خودتون اختراع کنید. +
                  • +
                  • + ایونت لوپ‌ها چطور کار میکنند؟ (با بررسی ابزار ReactPHP)
                    در این مطلب نویسنده تلاش کرده توضیحاتی رو درباره مفهوم Event Loop ارائه کنه و مفاهیم عملی رو با ابزار محبوبی در دنیای PHP یعنی ReactPHP توضیح بده. +
                  • +
                  • + آشنایی با دنیای برنامه‌های آفلاین و سرویس‌ورکرها
                    در این مطلب که تصویرسازی‌های خوبی هم داره، نویسنده تلاش کرده مباحث و امکانات و راه‌حل‌های چالش‌های مرسوم در دنیای اپلیکیشن‌های آفلاین وب رو توضیح بده. +
                  • +
                  • + در حادثه اخیر، فیسبوک چطور به صورت موقت از اینترنت محو شد؟
                    در این نوشته از وبلاگ Cloudflare درباره حادثه اکتبر ۲۰۲۱ که منجر به قطع سرویس‌های فیسبوک در دنیا شد و تاثیر آن بر اینترنت صحبت شده است. +
                  • +
                  • + آموزش مجوز های ACL در Linux
                    چطوری دسترسی دقیق تری در لینوکس به کاربران بدهیم! +
                  • +
                  +
                  +

                  + تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + حامد سعیدی، + + + Majid Ganji. + + شما نیز می‌توانید مشارکت کنید. +

                  +
                  +

                  Pakat Logo
                  ارسال شده توسط پاکت

                  سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

                  +
                  + + From 68d1cdc5b5c7570010cdce3583b5ce01be6b3fc6 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sat, 30 Oct 2021 10:18:22 +0330 Subject: [PATCH 218/326] Big update - Add archive 37 link - Remove Sianat div - Update Subscribers counter --- index.html | 381 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 232 insertions(+), 149 deletions(-) diff --git a/index.html b/index.html index 8d473c3..e8ca5d7 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,8 @@ Background picture: https://www.itl.cat/wallview/iRiwTJi_neon-city-1920x1080-light-emitting-diode/ --> - + + @@ -43,148 +44,229 @@ خبرنامهٔ نرم‌افزاریِ SoftwareTalks - + - +
                  - - - - -
                  -
                  -
                    -
                  1. رویِ لینکِ زیر کلیک کنین؛
                  2. -
                  3. ایمیلتون رو وارد کنین؛
                  4. -
                  5. ایمیلی که براتون می‌آد رو تأیید کنین.
                  6. -
                  - -
                  - -
                  -

                  لینک‌هایِ جالبتون رو از طریقِ زیر برایِ ما ارسال کنین:

                  - -
                    -
                  1. به این صفحه مراجعه کنین.
                  2. -
                  3. رویِ دکمهٔ Get Started کلیک کنین.
                  4. -
                  5. لینکِ مورد نظرتون رو طبقِ شیوه‌نامه وارد کنین و در آخر submit بزنین.
                  6. -
                  - -

                  - اگه مطلبِ شما طبقِ قوانین باشه برچسبِ verify می‌خوره و اگه نه کمکتون می‌کنیم تغییراتِ لازم رو اعمال کنین. اگه مطلبِ شما جزوِ مقالات - ارسالیِ هفتهٔ جاری باشه برچسبِ current-week می‌خوره. و درنهایت بعد از ارسالِ موفقِ خبرنامه issue بسته می‌شه. -

                  -
                  -

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

                  - -
                  - -
                  -

                  آرشیو خبرنامه‌های سال ۱۴۰۰

                  -
                    -
                  • خبرنامه شماره ۳٦ - شنبه، ۲۴ مهر
                  • -
                  • خبرنامه شماره ۳۵ - شنبه، ۱۷ مهر
                  • -
                  • خبرنامه شماره ۳۳ - پنجشنبه، ۰۸ مهر
                  • -
                  • خبرنامه شماره ۳۲ - جمعه، ۰۲ مهر
                  • -
                  • خبرنامه شماره ۳۱ - جمعه، ۲٦ شهریور
                  • -
                  • خبرنامه شماره ۳۰ - جمعه، ۱۲ شهریور
                  • -
                  • خبرنامه شماره ۲۹ - پنجشنبه، ۰۴ شهریور
                  • -
                  • خبرنامه شماره ۲۸ - پنجشنبه، ۲۱ مرداد
                  • -
                  • خبرنامه شماره ۲۷ - پنجشنبه، ۱۴ مرداد
                  • -
                  • خبرنامه شماره ۲٦ - پنجشنبه، ۰۷ مرداد
                  • -
                  • خبرنامه شماره ۲۵ - پنجشنبه، ۳۱ تیر
                  • -
                  • خبرنامه شماره ۲۴ - پنجشنبه، ۲۴ تیر
                  • -
                  • خبرنامه شماره ۲۳ - پنجشنبه، ۱۷ تیر
                  • -
                  • خبرنامه شماره ۲۲ - پنجشنبه، ۱۰ تیر
                  • -
                  • خبرنامه شماره ۲۱ - پنجشنبه، ۰۳ تیر
                  • -
                  • خبرنامه شماره ۲۰ - پنجشنبه، ۲۷ خرداد
                  • -
                  • خبرنامه شماره ۱۹ - پنجشنبه، ۱۹ خرداد
                  • -
                  • خبرنامه شماره ۱۸ - پنجشنبه، ۱۳ خرداد
                  • -
                  • خبرنامه شماره ۱۷ - پنجشنبه، ۰۶ خرداد
                  • -
                  • خبرنامه شماره ۱۶ - پنجشنبه، ۳۰ اردیبهشت
                  • -
                  • خبرنامه شماره ۱۵ - پنجشنبه، ۲۳ اردیبهشت
                  • -
                  • خبرنامه شماره ۱۴ - پنجشنبه، ۱۶ اردیبهشت
                  • -
                  • خبرنامه شماره ۱۳ - جمعه، ۱۰ اردیبهشت
                  • -
                  • خبرنامه شماره ۱۲ - جمعه، ۳ اردیبهشت
                  • -
                  • خبرنامه شماره ۱۱ - پنجشنبه، ۱۹ فروردین
                  • -
                  -

                  آرشیو خبرنامه‌های سال ۱۳۹۹

                  -
                    -
                  • خبرنامه شماره ۱۰ - جمعه، ۲۲ اسفند ۹۹ -
                  • -
                  • خبرنامه شماره ۹ - پنجشنبه، ۱۴ اسفند -
                  • -
                  • خبرنامه شماره ۸ - پنجشنبه، ۰۷ اسفند -
                  • -
                  • خبرنامه شماره ۷ - پنجشنبه، ۳۰ بهمن -
                  • -
                  • خبرنامه شماره ٦ - پنجشنبه، ۲۳ بهمن -
                  • -
                  • خبرنامه شماره ۵ - پنجشنبه، ۱٦ بهمن -
                  • -
                  • خبرنامه شماره ۴ - پنجشنبه، ۰۹ بهمن -
                  • -
                  • خبرنامه شماره ۳ - پنجشنبه ۲ بهمن
                  • -
                  • خبرنامه شماره ۲ - پنجشنبه، ۲۵ دی
                  • -
                  • خبرنامه شماره ۱ - پنجشنبه، ۱۸ دی
                  • -
                  • خبرنامه شماره ۰ - پنجشنبه، ۱۱ دی
                  • -
                  -
                  - - -
                  - - - + + +
                  -
                  -

                  - تلاشمان را کردیم ولی شد آنچه که نباید میشد. #طرح_صیانت -

                  -
                  - @@ -193,22 +275,23 @@

                  قوانین

                  - + + From 8a26404605f3ae7c1c85532a5c5caaf0ffd9e314 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sat, 30 Oct 2021 10:21:35 +0330 Subject: [PATCH 219/326] Update contributors section --- README.md | 55 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 5cdfeda..63b6b49 100644 --- a/README.md +++ b/README.md @@ -24,51 +24,54 @@ ## مشارکت‌کنندگان به ترتیب تعداد پست‌های ارسالی برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. - -ohmydevops -Hameds + +ohmydevops +Hameds hassan-shahbazi -amirshnll +amirshnll +Rahmanism ghost -Rahmanism -royapakzad mokarchi +royapakzad alinaseri07 +AliKarbasiCom +ariaieboy afzouni ashkanRmk -ariaieboy -AliKarbasiCom -VahidNaderi -SirwanAfifi -s-alielyasi vahidfathi pykello -amirmojiry +s-alielyasi +VahidNaderi +SirwanAfifi kokabi1365 -anvaari -irnb mahdiAkhi +irnb +anvaari DearRude -asadise numb95 -Gnkalk -Cinorid +asadise +amirmojiry +majidganji mayazdi -hamedsj +Aliiior +slashsbin +alirezasalehizadeh vghaderi itshaadi Mvahedii -mahdithejedi -xhdix -Aliiior -rashid2003 -iamvee +Gnkalk +Cinorid +hhosseinioun +omidpakdel m2-farzan +mohas +iamvee +rashid2003 markpash -hhosseinioun +mahdithejedi hnaseri1990 -omidpakdel +xhdix mrmmg -mohas +hamedsj From 5ddc9be4c27b274a9aaf185e6800227513fc8a8a Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Mon, 1 Nov 2021 11:20:55 +0330 Subject: [PATCH 220/326] Feature/php8.0 (#353) * Update Dockerfile for php8.0 * Add .dockerignore * Update GitHub actions for php8.0 * Update composer for php8.0 --- .dockerignore | 7 + .github/workflows/production.yaml | 2 +- .github/workflows/production_dark.yaml | 2 +- .github/workflows/staging.yaml | 2 +- .github/workflows/staging_dark.yaml | 2 +- Dockerfile | 2 +- src/composer.json | 8 +- src/composer.lock | 1143 +++++++++++------------- 8 files changed, 559 insertions(+), 609 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..ee3a9a3 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +.idea/ +.idea_modules/ + +**/vendor/** + +.git +.github \ No newline at end of file diff --git a/.github/workflows/production.yaml b/.github/workflows/production.yaml index 390cefc..3f3ac60 100644 --- a/.github/workflows/production.yaml +++ b/.github/workflows/production.yaml @@ -13,7 +13,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: '8.0' tools: composer:v2 - name: Install Composer dependencies diff --git a/.github/workflows/production_dark.yaml b/.github/workflows/production_dark.yaml index 0138ceb..eb9d09f 100644 --- a/.github/workflows/production_dark.yaml +++ b/.github/workflows/production_dark.yaml @@ -13,7 +13,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: '8.0' tools: composer:v2 - name: Install Composer dependencies diff --git a/.github/workflows/staging.yaml b/.github/workflows/staging.yaml index 957a8e2..eedb752 100644 --- a/.github/workflows/staging.yaml +++ b/.github/workflows/staging.yaml @@ -13,7 +13,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: '8.0' tools: composer:v2 - name: Install Composer dependencies diff --git a/.github/workflows/staging_dark.yaml b/.github/workflows/staging_dark.yaml index c319265..60c160b 100644 --- a/.github/workflows/staging_dark.yaml +++ b/.github/workflows/staging_dark.yaml @@ -13,7 +13,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: '8.0' tools: composer:v2 - name: Install Composer dependencies diff --git a/Dockerfile b/Dockerfile index b767fba..4cdada6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM php:7.4-cli-alpine +FROM php:8.0-cli-alpine RUN apk add --update --no-cache zip libzip-dev icu-dev RUN docker-php-ext-install zip diff --git a/src/composer.json b/src/composer.json index 4fa7277..302ea5f 100644 --- a/src/composer.json +++ b/src/composer.json @@ -1,15 +1,15 @@ { "require": { - "php": "^7.4.0", - "knplabs/github-api": "^2.17", - "php-http/guzzle6-adapter": "^2.0", + "php": "^7.4 || ^8.0", + "knplabs/github-api": "^3.0", + "php-http/guzzle7-adapter": "^1.0", "symfony/yaml": "^5.2", "twig/twig": "^3.0", "morilog/jalali": "^3.2", "phpmailer/phpmailer": "^6.2", "sendinblue/api-v3-sdk": "7.x.x", "wyrihaximus/html-compress": "^4.1", - "amirbagh75/chalqoz": "^1.0", + "amirbagh75/chalqoz": "^1.2", "nesbot/carbon": "^2.43" } } diff --git a/src/composer.lock b/src/composer.lock index 41a4eec..56899bb 100644 --- a/src/composer.lock +++ b/src/composer.lock @@ -4,24 +4,27 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "aa5175b3506b23358bac8824676c6b63", + "content-hash": "ba0ef59ab424f963699cd7af8e70f052", "packages": [ { "name": "amirbagh75/chalqoz", - "version": "1.0.2", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/amirbagh75/chalqoz.git", - "reference": "613cbd0ee4c6380db90c0137c2e69c921dfbafb7" + "url": "https://github.com/ohmydevops/chalqoz.git", + "reference": "d3443e7f23f285b6cb12b5ec4729a1801c61b506" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amirbagh75/chalqoz/zipball/613cbd0ee4c6380db90c0137c2e69c921dfbafb7", - "reference": "613cbd0ee4c6380db90c0137c2e69c921dfbafb7", + "url": "https://api.github.com/repos/ohmydevops/chalqoz/zipball/d3443e7f23f285b6cb12b5ec4729a1801c61b506", + "reference": "d3443e7f23f285b6cb12b5ec4729a1801c61b506", "shasum": "" }, "require": { - "php": "~7.0" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9" }, "type": "library", "autoload": { @@ -36,8 +39,8 @@ "authors": [ { "name": "Amirhossein Baghaie", - "email": "amirbagh75@gmail.com", - "homepage": "https://amirbagh75.ir", + "email": "ohmydevops@gmail.com", + "homepage": "https://ohmydevops.ir", "role": "Developer" } ], @@ -48,28 +51,27 @@ "php" ], "support": { - "issues": "https://github.com/amirbagh75/chalqoz/issues", - "source": "https://github.com/amirbagh75/chalqoz/tree/1.0.2" + "issues": "https://github.com/ohmydevops/chalqoz/issues", + "source": "https://github.com/ohmydevops/chalqoz/tree/1.2.0" }, - "time": "2020-11-22T10:59:05+00:00" + "time": "2021-11-01T07:30:18+00:00" }, { "name": "beberlei/assert", - "version": "v3.3.0", + "version": "v3.3.1", "source": { "type": "git", "url": "https://github.com/beberlei/assert.git", - "reference": "5367e3895976b49704ae671f75bc5f0ba1b986ab" + "reference": "5e721d7e937ca3ba2cdec1e1adf195f9e5188372" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beberlei/assert/zipball/5367e3895976b49704ae671f75bc5f0ba1b986ab", - "reference": "5367e3895976b49704ae671f75bc5f0ba1b986ab", + "url": "https://api.github.com/repos/beberlei/assert/zipball/5e721d7e937ca3ba2cdec1e1adf195f9e5188372", + "reference": "5e721d7e937ca3ba2cdec1e1adf195f9e5188372", "shasum": "" }, "require": { "ext-ctype": "*", - "ext-intl": "*", "ext-json": "*", "ext-mbstring": "*", "ext-simplexml": "*", @@ -81,6 +83,9 @@ "phpunit/phpunit": ">=6.0.0", "yoast/phpunit-polyfills": "^0.1.0" }, + "suggest": { + "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles" + }, "type": "library", "autoload": { "psr-4": { @@ -114,21 +119,21 @@ ], "support": { "issues": "https://github.com/beberlei/assert/issues", - "source": "https://github.com/beberlei/assert/tree/v3.3.0" + "source": "https://github.com/beberlei/assert/tree/v3.3.1" }, - "time": "2020-11-13T20:02:54+00:00" + "time": "2021-04-18T20:11:03+00:00" }, { "name": "clue/stream-filter", "version": "v1.5.0", "source": { "type": "git", - "url": "https://github.com/clue/php-stream-filter.git", + "url": "https://github.com/clue/stream-filter.git", "reference": "aeb7d8ea49c7963d3b581378955dbf5bc49aa320" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/aeb7d8ea49c7963d3b581378955dbf5bc49aa320", + "url": "https://api.github.com/repos/clue/stream-filter/zipball/aeb7d8ea49c7963d3b581378955dbf5bc49aa320", "reference": "aeb7d8ea49c7963d3b581378955dbf5bc49aa320", "shasum": "" }, @@ -169,8 +174,8 @@ "stream_filter_register" ], "support": { - "issues": "https://github.com/clue/php-stream-filter/issues", - "source": "https://github.com/clue/php-stream-filter/tree/v1.5.0" + "issues": "https://github.com/clue/stream-filter/issues", + "source": "https://github.com/clue/stream-filter/tree/v1.5.0" }, "funding": [ { @@ -255,37 +260,44 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.5", + "version": "7.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" + "reference": "7008573787b430c1c1f650e3722d9bba59967628" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", - "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628", + "reference": "7008573787b430c1c1f650e3722d9bba59967628", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.6.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.17.0" + "guzzlehttp/promises": "^1.4", + "guzzlehttp/psr7": "^1.7 || ^2.0", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" }, "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.5 || ^9.3.5", "psr/log": "^1.1" }, "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.5-dev" + "dev-master": "7.3-dev" } }, "autoload": { @@ -305,6 +317,11 @@ "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], "description": "Guzzle is a PHP HTTP client library", @@ -315,27 +332,47 @@ "framework", "http", "http client", + "psr-18", + "psr-7", "rest", "web service" ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/6.5" + "source": "https://github.com/guzzle/guzzle/tree/7.3.0" }, - "time": "2020-06-16T21:01:06+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://github.com/alexeyshockov", + "type": "github" + }, + { + "url": "https://github.com/gmponos", + "type": "github" + } + ], + "time": "2021-03-23T11:33:13+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.4.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "60d379c243457e073cff02bc323a2a86cb355631" + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", - "reference": "60d379c243457e073cff02bc323a2a86cb355631", + "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", "shasum": "" }, "require": { @@ -347,7 +384,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.5-dev" } }, "autoload": { @@ -363,10 +400,25 @@ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle promises library", @@ -375,35 +427,52 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.0" + "source": "https://github.com/guzzle/promises/tree/1.5.1" }, - "time": "2020-09-30T07:37:28+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2021-10-22T20:56:57+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.7.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" + "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72", + "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0" }, "provide": { + "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + "bamarni/composer-bin-plugin": "^1.4.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.8 || ^9.3.10" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -411,30 +480,53 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "2.1-dev" } }, "autoload": { "psr-4": { "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, { "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], "description": "PSR-7 message implementation that also provides common utility methods", @@ -450,9 +542,23 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.7.0" + "source": "https://github.com/guzzle/psr7/tree/2.1.0" }, - "time": "2020-09-30T07:37:11+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2021-10-06T17:43:30+00:00" }, { "name": "jalle19/php-yui-compressor", @@ -498,41 +604,50 @@ }, { "name": "knplabs/github-api", - "version": "v2.19.0", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/KnpLabs/php-github-api.git", - "reference": "271b3ca6f7b315c3dae1fcf2be8bb2912a93587d" + "reference": "0442abd1361956e3a87e71683154c5c33c5a0dad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/php-github-api/zipball/271b3ca6f7b315c3dae1fcf2be8bb2912a93587d", - "reference": "271b3ca6f7b315c3dae1fcf2be8bb2912a93587d", + "url": "https://api.github.com/repos/KnpLabs/php-github-api/zipball/0442abd1361956e3a87e71683154c5c33c5a0dad", + "reference": "0442abd1361956e3a87e71683154c5c33c5a0dad", "shasum": "" }, "require": { - "php": "^7.1", - "php-http/cache-plugin": "^1.4", - "php-http/client-common": "^1.6 || ^2.0", - "php-http/client-implementation": "^1.0", - "php-http/discovery": "^1.0", - "php-http/httplug": "^1.1 || ^2.0", + "ext-json": "*", + "php": "^7.2.5 || ^8.0", + "php-http/cache-plugin": "^1.7.1", + "php-http/client-common": "^2.3", + "php-http/discovery": "^1.12", + "php-http/httplug": "^2.2", + "php-http/multipart-stream-builder": "^1.1.2", "psr/cache": "^1.0", - "psr/http-message": "^1.0" + "psr/http-client-implementation": "^1.0", + "psr/http-factory-implementation": "^1.0", + "psr/http-message": "^1.0", + "symfony/deprecation-contracts": "^2.2", + "symfony/polyfill-php80": "^1.17" }, "require-dev": { - "cache/array-adapter": "^0.4", - "guzzlehttp/psr7": "^1.2", - "php-http/guzzle6-adapter": "^1.0 || ^2.0", - "php-http/mock-client": "^1.2", - "phpstan/phpstan": "^0.12.23", - "phpunit/phpunit": "^7.0 || ^8.0" + "guzzlehttp/guzzle": "^7.2", + "guzzlehttp/psr7": "^1.7", + "http-interop/http-factory-guzzle": "^1.0", + "php-http/mock-client": "^1.4.1", + "phpstan/extension-installer": "^1.0.5", + "phpstan/phpstan": "^0.12.57", + "phpstan/phpstan-deprecation-rules": "^0.12.5", + "phpunit/phpunit": "^8.5 || ^9.4", + "symfony/cache": "^5.1.8", + "symfony/phpunit-bridge": "^5.2" }, "type": "library", "extra": { "branch-alias": { - "dev-2.x": "2.19.x-dev", - "dev-master": "3.0.x-dev" + "dev-2.x": "2.20.x-dev", + "dev-master": "3.3.x-dev" } }, "autoload": { @@ -565,7 +680,7 @@ ], "support": { "issues": "https://github.com/KnpLabs/php-github-api/issues", - "source": "https://github.com/KnpLabs/php-github-api/tree/v2.19.0" + "source": "https://github.com/KnpLabs/php-github-api/tree/v3.3.0" }, "funding": [ { @@ -573,7 +688,7 @@ "type": "github" } ], - "time": "2020-12-21T18:32:50+00:00" + "time": "2021-05-20T20:28:41+00:00" }, { "name": "linkorb/jsmin-php", @@ -638,16 +753,16 @@ }, { "name": "matthiasmullie/minify", - "version": "1.3.65", + "version": "1.3.66", "source": { "type": "git", "url": "https://github.com/matthiasmullie/minify.git", - "reference": "227f19062451c55a797e0cc667ef983834e6580c" + "reference": "45fd3b0f1dfa2c965857c6d4a470bea52adc31a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/227f19062451c55a797e0cc667ef983834e6580c", - "reference": "227f19062451c55a797e0cc667ef983834e6580c", + "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/45fd3b0f1dfa2c965857c6d4a470bea52adc31a6", + "reference": "45fd3b0f1dfa2c965857c6d4a470bea52adc31a6", "shasum": "" }, "require": { @@ -657,8 +772,8 @@ }, "require-dev": { "friendsofphp/php-cs-fixer": "~2.0", - "matthiasmullie/scrapbook": "~1.0", - "phpunit/phpunit": "~4.8" + "matthiasmullie/scrapbook": "dev-master", + "phpunit/phpunit": ">=4.8" }, "suggest": { "psr/cache-implementation": "Cache implementation to use with Minify::cache" @@ -696,7 +811,7 @@ ], "support": { "issues": "https://github.com/matthiasmullie/minify/issues", - "source": "https://github.com/matthiasmullie/minify/tree/1.3.65" + "source": "https://github.com/matthiasmullie/minify/tree/1.3.66" }, "funding": [ { @@ -712,7 +827,7 @@ "type": "github" } ], - "time": "2020-12-27T21:43:29+00:00" + "time": "2021-01-06T15:18:10+00:00" }, { "name": "matthiasmullie/path-converter", @@ -958,32 +1073,33 @@ }, { "name": "nesbot/carbon", - "version": "2.43.0", + "version": "2.53.1", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "d32c57d8389113742f4a88725a170236470012e2" + "reference": "f4655858a784988f880c1b8c7feabbf02dfdf045" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d32c57d8389113742f4a88725a170236470012e2", - "reference": "d32c57d8389113742f4a88725a170236470012e2", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/f4655858a784988f880c1b8c7feabbf02dfdf045", + "reference": "f4655858a784988f880c1b8c7feabbf02dfdf045", "shasum": "" }, "require": { "ext-json": "*", "php": "^7.1.8 || ^8.0", "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { "doctrine/orm": "^2.7", - "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.0", "kylekatarnls/multi-tester": "^2.0", "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^0.12.54", - "phpunit/phpunit": "^7.5 || ^8.0", + "phpunit/phpunit": "^7.5.20 || ^8.5.14", "squizlabs/php_codesniffer": "^3.4" }, "bin": [ @@ -992,8 +1108,8 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev", - "dev-3.x": "3.x-dev" + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" }, "laravel": { "providers": [ @@ -1019,15 +1135,15 @@ { "name": "Brian Nesbitt", "email": "brian@nesbot.com", - "homepage": "http://nesbot.com" + "homepage": "https://markido.com" }, { "name": "kylekatarnls", - "homepage": "http://github.com/kylekatarnls" + "homepage": "https://github.com/kylekatarnls" } ], "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "http://carbon.nesbot.com", + "homepage": "https://carbon.nesbot.com", "keywords": [ "date", "datetime", @@ -1047,20 +1163,20 @@ "type": "tidelift" } ], - "time": "2020-12-17T20:55:32+00:00" + "time": "2021-09-06T09:29:23+00:00" }, { "name": "nikic/php-parser", - "version": "v4.10.4", + "version": "v4.13.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" + "reference": "50953a2691a922aa1769461637869a0a2faa3f53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/50953a2691a922aa1769461637869a0a2faa3f53", + "reference": "50953a2691a922aa1769461637869a0a2faa3f53", "shasum": "" }, "require": { @@ -1101,22 +1217,22 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.0" }, - "time": "2020-12-20T10:01:03+00:00" + "time": "2021-09-20T12:20:58+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { @@ -1161,22 +1277,22 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/master" + "source": "https://github.com/phar-io/manifest/tree/2.0.3" }, - "time": "2020-06-27T14:33:11+00:00" + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", - "version": "3.0.4", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" + "reference": "bae7c545bef187884426f042434e561ab1ddb182" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", - "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", + "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", + "reference": "bae7c545bef187884426f042434e561ab1ddb182", "shasum": "" }, "require": { @@ -1212,29 +1328,29 @@ "description": "Library for handling version information and constraints", "support": { "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.0.4" + "source": "https://github.com/phar-io/version/tree/3.1.0" }, - "time": "2020-12-13T23:18:30+00:00" + "time": "2021-02-23T14:00:09+00:00" }, { "name": "php-http/cache-plugin", - "version": "1.7.1", + "version": "1.7.2", "source": { "type": "git", "url": "https://github.com/php-http/cache-plugin.git", - "reference": "a1cb3e2a4f095f820e0a0e078f3dfd2d9c83a0f7" + "reference": "922409f10541b0d581b8ffe5cd810f4efc9e9e32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/cache-plugin/zipball/a1cb3e2a4f095f820e0a0e078f3dfd2d9c83a0f7", - "reference": "a1cb3e2a4f095f820e0a0e078f3dfd2d9c83a0f7", + "url": "https://api.github.com/repos/php-http/cache-plugin/zipball/922409f10541b0d581b8ffe5cd810f4efc9e9e32", + "reference": "922409f10541b0d581b8ffe5cd810f4efc9e9e32", "shasum": "" }, "require": { "php": "^7.1 || ^8.0", "php-http/client-common": "^1.9 || ^2.0", "php-http/message-factory": "^1.0", - "psr/cache": "^1.0", + "psr/cache": "^1.0 || ^2.0", "symfony/options-resolver": "^2.6 || ^3.0 || ^4.0 || ^5.0" }, "require-dev": { @@ -1271,22 +1387,22 @@ ], "support": { "issues": "https://github.com/php-http/cache-plugin/issues", - "source": "https://github.com/php-http/cache-plugin/tree/master" + "source": "https://github.com/php-http/cache-plugin/tree/1.7.2" }, - "time": "2020-07-13T10:55:38+00:00" + "time": "2021-04-14T06:06:08+00:00" }, { "name": "php-http/client-common", - "version": "2.3.0", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/php-http/client-common.git", - "reference": "e37e46c610c87519753135fb893111798c69076a" + "reference": "29e0c60d982f04017069483e832b92074d0a90b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/client-common/zipball/e37e46c610c87519753135fb893111798c69076a", - "reference": "e37e46c610c87519753135fb893111798c69076a", + "url": "https://api.github.com/repos/php-http/client-common/zipball/29e0c60d982f04017069483e832b92074d0a90b2", + "reference": "29e0c60d982f04017069483e832b92074d0a90b2", "shasum": "" }, "require": { @@ -1346,22 +1462,22 @@ ], "support": { "issues": "https://github.com/php-http/client-common/issues", - "source": "https://github.com/php-http/client-common/tree/2.3.0" + "source": "https://github.com/php-http/client-common/tree/2.4.0" }, - "time": "2020-07-21T10:04:13+00:00" + "time": "2021-07-05T08:19:25+00:00" }, { "name": "php-http/discovery", - "version": "1.13.0", + "version": "1.14.1", "source": { "type": "git", "url": "https://github.com/php-http/discovery.git", - "reference": "788f72d64c43dc361e7fcc7464c3d947c64984a7" + "reference": "de90ab2b41d7d61609f504e031339776bc8c7223" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/788f72d64c43dc361e7fcc7464c3d947c64984a7", - "reference": "788f72d64c43dc361e7fcc7464c3d947c64984a7", + "url": "https://api.github.com/repos/php-http/discovery/zipball/de90ab2b41d7d61609f504e031339776bc8c7223", + "reference": "de90ab2b41d7d61609f504e031339776bc8c7223", "shasum": "" }, "require": { @@ -1378,8 +1494,7 @@ "puli/composer-plugin": "1.0.0-beta10" }, "suggest": { - "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories", - "puli/composer-plugin": "Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details." + "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories" }, "type": "library", "extra": { @@ -1415,27 +1530,27 @@ ], "support": { "issues": "https://github.com/php-http/discovery/issues", - "source": "https://github.com/php-http/discovery/tree/1.13.0" + "source": "https://github.com/php-http/discovery/tree/1.14.1" }, - "time": "2020-11-27T14:49:42+00:00" + "time": "2021-09-18T07:57:46+00:00" }, { - "name": "php-http/guzzle6-adapter", - "version": "v2.0.1", + "name": "php-http/guzzle7-adapter", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/php-http/guzzle6-adapter.git", - "reference": "6074a4b1f4d5c21061b70bab3b8ad484282fe31f" + "url": "https://github.com/php-http/guzzle7-adapter.git", + "reference": "fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/guzzle6-adapter/zipball/6074a4b1f4d5c21061b70bab3b8ad484282fe31f", - "reference": "6074a4b1f4d5c21061b70bab3b8ad484282fe31f", + "url": "https://api.github.com/repos/php-http/guzzle7-adapter/zipball/fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01", + "reference": "fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "^6.0", - "php": "^7.1", + "guzzlehttp/guzzle": "^7.0", + "php": "^7.2 | ^8.0", "php-http/httplug": "^2.0", "psr/http-client": "^1.0" }, @@ -1445,19 +1560,18 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "ext-curl": "*", - "php-http/client-integration-tests": "^2.0", - "phpunit/phpunit": "^7.4" + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.0|^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "0.2.x-dev" } }, "autoload": { "psr-4": { - "Http\\Adapter\\Guzzle6\\": "src/" + "Http\\Adapter\\Guzzle7\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1466,25 +1580,21 @@ ], "authors": [ { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - }, - { - "name": "David de Boer", - "email": "david@ddeboer.nl" + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" } ], - "description": "Guzzle 6 HTTP Adapter", + "description": "Guzzle 7 HTTP Adapter", "homepage": "http://httplug.io", "keywords": [ "Guzzle", "http" ], "support": { - "issues": "https://github.com/php-http/guzzle6-adapter/issues", - "source": "https://github.com/php-http/guzzle6-adapter/tree/master" + "issues": "https://github.com/php-http/guzzle7-adapter/issues", + "source": "https://github.com/php-http/guzzle7-adapter/tree/1.0.0" }, - "time": "2018-12-16T14:44:03+00:00" + "time": "2021-03-09T07:35:15+00:00" }, { "name": "php-http/httplug", @@ -1550,16 +1660,16 @@ }, { "name": "php-http/message", - "version": "1.10.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/php-http/message.git", - "reference": "39db36d5972e9e6d00ea852b650953f928d8f10d" + "reference": "39eb7548be982a81085fe5a6e2a44268cd586291" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/message/zipball/39db36d5972e9e6d00ea852b650953f928d8f10d", - "reference": "39db36d5972e9e6d00ea852b650953f928d8f10d", + "url": "https://api.github.com/repos/php-http/message/zipball/39eb7548be982a81085fe5a6e2a44268cd586291", + "reference": "39eb7548be982a81085fe5a6e2a44268cd586291", "shasum": "" }, "require": { @@ -1575,15 +1685,15 @@ "ergebnis/composer-normalize": "^2.6", "ext-zlib": "*", "guzzlehttp/psr7": "^1.0", + "laminas/laminas-diactoros": "^2.0", "phpspec/phpspec": "^5.1 || ^6.3", - "slim/slim": "^3.0", - "zendframework/zend-diactoros": "^1.0" + "slim/slim": "^3.0" }, "suggest": { "ext-zlib": "Used with compressor/decompressor streams", "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories", - "slim/slim": "Used with Slim Framework PSR-7 implementation", - "zendframework/zend-diactoros": "Used with Diactoros Factories" + "laminas/laminas-diactoros": "Used with Diactoros Factories", + "slim/slim": "Used with Slim Framework PSR-7 implementation" }, "type": "library", "extra": { @@ -1618,9 +1728,9 @@ ], "support": { "issues": "https://github.com/php-http/message/issues", - "source": "https://github.com/php-http/message/tree/1.10.0" + "source": "https://github.com/php-http/message/tree/1.12.0" }, - "time": "2020-11-11T10:19:56+00:00" + "time": "2021-08-29T09:13:12+00:00" }, { "name": "php-http/message-factory", @@ -1676,6 +1786,68 @@ }, "time": "2015-12-19T14:08:53+00:00" }, + { + "name": "php-http/multipart-stream-builder", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/multipart-stream-builder.git", + "reference": "11c1d31f72e01c738bbce9e27649a7cca829c30e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/11c1d31f72e01c738bbce9e27649a7cca829c30e", + "reference": "11c1d31f72e01c738bbce9e27649a7cca829c30e", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/discovery": "^1.7", + "php-http/message-factory": "^1.0.2", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0" + }, + "require-dev": { + "nyholm/psr7": "^1.0", + "php-http/message": "^1.5", + "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Message\\MultipartStream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + } + ], + "description": "A builder class that help you create a multipart stream", + "homepage": "http://php-http.org", + "keywords": [ + "factory", + "http", + "message", + "multipart stream", + "stream" + ], + "support": { + "issues": "https://github.com/php-http/multipart-stream-builder/issues", + "source": "https://github.com/php-http/multipart-stream-builder/tree/1.2.0" + }, + "time": "2021-05-21T08:32:01+00:00" + }, { "name": "php-http/promise", "version": "1.1.0", @@ -1788,16 +1960,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.2.2", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", "shasum": "" }, "require": { @@ -1808,7 +1980,8 @@ "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.2" + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" }, "type": "library", "extra": { @@ -1838,22 +2011,22 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" }, - "time": "2020-09-03T19:13:55+00:00" + "time": "2021-10-19T17:43:47+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.4.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae", + "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae", "shasum": "" }, "require": { @@ -1861,7 +2034,8 @@ "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "*" + "ext-tokenizer": "*", + "psalm/phar": "^4.8" }, "type": "library", "extra": { @@ -1887,22 +2061,22 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1" }, - "time": "2020-09-17T18:55:26+00:00" + "time": "2021-10-02T14:08:47+00:00" }, { "name": "phpmailer/phpmailer", - "version": "v6.2.0", + "version": "v6.5.1", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "e38888a75c070304ca5514197d4847a59a5c853f" + "reference": "dd803df5ad7492e1b40637f7ebd258fee5ca7355" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e38888a75c070304ca5514197d4847a59a5c853f", - "reference": "e38888a75c070304ca5514197d4847a59a5c853f", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/dd803df5ad7492e1b40637f7ebd258fee5ca7355", + "reference": "dd803df5ad7492e1b40637f7ebd258fee5ca7355", "shasum": "" }, "require": { @@ -1914,13 +2088,15 @@ "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "doctrine/annotations": "^1.2", + "php-parallel-lint/php-console-highlighter": "^0.5.0", + "php-parallel-lint/php-parallel-lint": "^1.3", "phpcompatibility/php-compatibility": "^9.3.5", "roave/security-advisories": "dev-latest", - "squizlabs/php_codesniffer": "^3.5.6", - "yoast/phpunit-polyfills": "^0.2.0" + "squizlabs/php_codesniffer": "^3.6.0", + "yoast/phpunit-polyfills": "^1.0.0" }, "suggest": { - "ext-mbstring": "Needed to send email in multibyte encoding charset", + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", "league/oauth2-google": "Needed for Google XOAUTH2 authentication", "psr/log": "For optional PSR-3 debug logging", @@ -1957,7 +2133,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.2.0" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.5.1" }, "funding": [ { @@ -1965,37 +2141,37 @@ "type": "github" } ], - "time": "2020-11-25T15:24:57+00:00" + "time": "2021-08-18T09:14:16+00:00" }, { "name": "phpspec/prophecy", - "version": "1.12.2", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "245710e971a030f42e08f4912863805570f23d39" + "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", - "reference": "245710e971a030f42e08f4912863805570f23d39", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", + "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", + "php": "^7.2 || ~8.0, <8.2", "phpdocumentor/reflection-docblock": "^5.2", "sebastian/comparator": "^3.0 || ^4.0", "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^6.0", + "phpspec/phpspec": "^6.0 || ^7.0", "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -2030,29 +2206,29 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.12.2" + "source": "https://github.com/phpspec/prophecy/tree/1.14.0" }, - "time": "2020-12-19T10:15:11+00:00" + "time": "2021-09-10T09:02:12+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.5", + "version": "9.2.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1" + "reference": "cf04e88a2e3c56fc1a65488afd493325b4c1bc3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1", - "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/cf04e88a2e3c56fc1a65488afd493325b4c1bc3e", + "reference": "cf04e88a2e3c56fc1a65488afd493325b4c1bc3e", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.10.2", + "nikic/php-parser": "^4.13.0", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -2101,7 +2277,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.8" }, "funding": [ { @@ -2109,7 +2285,7 @@ "type": "github" } ], - "time": "2020-11-28T06:44:49+00:00" + "time": "2021-10-30T08:01:38+00:00" }, { "name": "phpunit/php-file-iterator", @@ -2354,16 +2530,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.0", + "version": "9.5.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe" + "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e16c225d57c3d6808014df6b1dd7598d0a5bbbe", - "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c814a05837f2edb0d1471d6e3f4ab3501ca3899a", + "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a", "shasum": "" }, "require": { @@ -2375,11 +2551,11 @@ "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.1", + "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-code-coverage": "^9.2.7", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -2393,7 +2569,7 @@ "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3", + "sebastian/type": "^2.3.4", "sebastian/version": "^3.0.2" }, "require-dev": { @@ -2441,7 +2617,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.0" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.10" }, "funding": [ { @@ -2453,7 +2629,7 @@ "type": "github" } ], - "time": "2020-12-04T05:05:53+00:00" + "time": "2021-09-25T07:38:51+00:00" }, { "name": "psr/cache", @@ -3214,16 +3390,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.2", + "version": "5.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" + "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49", + "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49", "shasum": "" }, "require": { @@ -3266,7 +3442,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.3" }, "funding": [ { @@ -3274,7 +3450,7 @@ "type": "github" } ], - "time": "2020-10-26T15:55:19+00:00" + "time": "2021-06-11T13:31:12+00:00" }, { "name": "sebastian/lines-of-code", @@ -3565,16 +3741,16 @@ }, { "name": "sebastian/type", - "version": "2.3.1", + "version": "2.3.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" + "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914", + "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914", "shasum": "" }, "require": { @@ -3609,7 +3785,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" + "source": "https://github.com/sebastianbergmann/type/tree/2.3.4" }, "funding": [ { @@ -3617,7 +3793,7 @@ "type": "github" } ], - "time": "2020-10-26T13:18:59+00:00" + "time": "2021-06-15T12:49:02+00:00" }, { "name": "sebastian/version", @@ -3674,23 +3850,23 @@ }, { "name": "sendinblue/api-v3-sdk", - "version": "v7.2.0", + "version": "v7.4.4", "source": { "type": "git", "url": "https://github.com/sendinblue/APIv3-php-library.git", - "reference": "4b7c9b1c0aadd90d7fc24286e4247add57606e6c" + "reference": "c169d8ceb74b211199fb11586389fb9aa2c37790" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sendinblue/APIv3-php-library/zipball/4b7c9b1c0aadd90d7fc24286e4247add57606e6c", - "reference": "4b7c9b1c0aadd90d7fc24286e4247add57606e6c", + "url": "https://api.github.com/repos/sendinblue/APIv3-php-library/zipball/c169d8ceb74b211199fb11586389fb9aa2c37790", + "reference": "c169d8ceb74b211199fb11586389fb9aa2c37790", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "guzzlehttp/guzzle": "^6.2 || ^7.0", + "guzzlehttp/guzzle": "<=7.3.0", "php": ">=5.6" }, "require-dev": { @@ -3731,26 +3907,27 @@ ], "support": { "issues": "https://github.com/sendinblue/APIv3-php-library/issues", - "source": "https://github.com/sendinblue/APIv3-php-library/tree/v7.2.0" + "source": "https://github.com/sendinblue/APIv3-php-library/tree/v7.4.4" }, - "time": "2020-11-03T07:43:07+00:00" + "time": "2021-08-25T08:49:42+00:00" }, { "name": "symfony/css-selector", - "version": "v5.2.1", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054" + "reference": "7fb120adc7f600a59027775b224c13a33530dd90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/f789e7ead4c79e04ca9a6d6162fc629c89bd8054", - "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90", + "reference": "7fb120adc7f600a59027775b224c13a33530dd90", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -3779,10 +3956,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony CssSelector Component", + "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.1" + "source": "https://github.com/symfony/css-selector/tree/v5.3.4" }, "funding": [ { @@ -3798,20 +3975,20 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:02:38+00:00" + "time": "2021-07-21T12:38:00+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.2.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", "shasum": "" }, "require": { @@ -3820,7 +3997,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -3849,7 +4026,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/master" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" }, "funding": [ { @@ -3865,27 +4042,27 @@ "type": "tidelift" } ], - "time": "2020-09-07T11:33:47+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.2.1", + "version": "v5.3.7", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "87a2a4a766244e796dd9cb9d6f58c123358cd986" + "reference": "4b78e55b179003a42523a362cc0e8327f7a69b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/87a2a4a766244e796dd9cb9d6f58c123358cd986", - "reference": "87a2a4a766244e796dd9cb9d6f58c123358cd986", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4b78e55b179003a42523a362cc0e8327f7a69b5e", + "reference": "4b78e55b179003a42523a362cc0e8327f7a69b5e", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-php73": "~1.0", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -3910,7 +4087,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony OptionsResolver Component", + "description": "Provides an improved replacement for the array_replace PHP function", "homepage": "https://symfony.com", "keywords": [ "config", @@ -3918,7 +4095,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.2.1" + "source": "https://github.com/symfony/options-resolver/tree/v5.3.7" }, "funding": [ { @@ -3934,20 +4111,20 @@ "type": "tidelift" } ], - "time": "2020-10-24T12:08:07+00:00" + "time": "2021-08-04T21:20:46+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.20.0", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41" + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41", - "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", "shasum": "" }, "require": { @@ -3959,7 +4136,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3997,7 +4174,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" }, "funding": [ { @@ -4013,191 +4190,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-intl-idn", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3b75acd829741c768bc8b1f84eb33265e7cc5117", - "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.20.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "727d1096295d807c309fb01a851577302394c897" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897", - "reference": "727d1096295d807c309fb01a851577302394c897", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.20.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", "shasum": "" }, "require": { @@ -4209,7 +4215,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4248,83 +4254,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" }, "funding": [ { @@ -4340,20 +4270,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-05-27T12:26:48+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.20.0", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", - "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", "shasum": "" }, "require": { @@ -4362,7 +4292,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4403,7 +4333,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" }, "funding": [ { @@ -4419,20 +4349,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.20.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" + "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", + "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", "shasum": "" }, "require": { @@ -4441,7 +4371,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4486,7 +4416,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1" }, "funding": [ { @@ -4502,26 +4432,27 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-07-28T13:41:28+00:00" }, { "name": "symfony/translation", - "version": "v5.2.1", + "version": "v5.3.10", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a04209ba0d1391c828e5b2373181dac63c52ee70" + "reference": "6ef197aea2ac8b9cd63e0da7522b3771714035aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a04209ba0d1391c828e5b2373181dac63c52ee70", - "reference": "a04209ba0d1391c828e5b2373181dac63c52ee70", + "url": "https://api.github.com/repos/symfony/translation/zipball/6ef197aea2ac8b9cd63e0da7522b3771714035aa", + "reference": "6ef197aea2ac8b9cd63e0da7522b3771714035aa", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15", + "symfony/polyfill-php80": "^1.16", "symfony/translation-contracts": "^2.3" }, "conflict": { @@ -4532,16 +4463,17 @@ "symfony/yaml": "<4.4" }, "provide": { - "symfony/translation-implementation": "2.0" + "symfony/translation-implementation": "2.3" }, "require-dev": { - "psr/log": "~1.0", + "psr/log": "^1|^2|^3", "symfony/config": "^4.4|^5.0", "symfony/console": "^4.4|^5.0", "symfony/dependency-injection": "^5.0", "symfony/finder": "^4.4|^5.0", "symfony/http-kernel": "^5.0", "symfony/intl": "^4.4|^5.0", + "symfony/polyfill-intl-icu": "^1.21", "symfony/service-contracts": "^1.1.2|^2", "symfony/yaml": "^4.4|^5.0" }, @@ -4576,10 +4508,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Translation Component", + "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.2.1" + "source": "https://github.com/symfony/translation/tree/v5.3.10" }, "funding": [ { @@ -4595,20 +4527,20 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:03:37+00:00" + "time": "2021-10-10T06:43:24+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.3.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105" + "reference": "95c812666f3e91db75385749fe219c5e494c7f95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105", - "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95", + "reference": "95c812666f3e91db75385749fe219c5e494c7f95", "shasum": "" }, "require": { @@ -4620,7 +4552,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -4657,7 +4589,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.3.0" + "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0" }, "funding": [ { @@ -4673,20 +4605,20 @@ "type": "tidelift" } ], - "time": "2020-09-28T13:05:58+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/yaml", - "version": "v5.2.1", + "version": "v5.3.6", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "290ea5e03b8cf9b42c783163123f54441fb06939" + "reference": "4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/290ea5e03b8cf9b42c783163123f54441fb06939", - "reference": "290ea5e03b8cf9b42c783163123f54441fb06939", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7", + "reference": "4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7", "shasum": "" }, "require": { @@ -4729,10 +4661,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.2.1" + "source": "https://github.com/symfony/yaml/tree/v5.3.6" }, "funding": [ { @@ -4748,24 +4680,24 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:02:38+00:00" + "time": "2021-07-29T06:20:01+00:00" }, { "name": "tedivm/jshrink", - "version": "v1.3.3", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/tedious/JShrink.git", - "reference": "566e0c731ba4e372be2de429ef7d54f4faf4477a" + "reference": "0513ba1407b1f235518a939455855e6952a48bbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tedious/JShrink/zipball/566e0c731ba4e372be2de429ef7d54f4faf4477a", - "reference": "566e0c731ba4e372be2de429ef7d54f4faf4477a", + "url": "https://api.github.com/repos/tedious/JShrink/zipball/0513ba1407b1f235518a939455855e6952a48bbc", + "reference": "0513ba1407b1f235518a939455855e6952a48bbc", "shasum": "" }, "require": { - "php": "^5.6|^7.0" + "php": "^5.6|^7.0|^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^2.8", @@ -4796,9 +4728,15 @@ ], "support": { "issues": "https://github.com/tedious/JShrink/issues", - "source": "https://github.com/tedious/JShrink/tree/master" + "source": "https://github.com/tedious/JShrink/tree/v1.4.0" }, - "time": "2019-06-28T18:11:46+00:00" + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/tedivm/jshrink", + "type": "tidelift" + } + ], + "time": "2020-11-30T18:10:21+00:00" }, { "name": "thecodingmachine/safe", @@ -4941,16 +4879,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "75a63c33a8577608444246075ea0af0d052e452a" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", - "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { @@ -4979,7 +4917,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/master" + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" }, "funding": [ { @@ -4987,7 +4925,7 @@ "type": "github" } ], - "time": "2020-07-12T23:59:07+00:00" + "time": "2021-07-28T10:34:58+00:00" }, { "name": "tubalmartin/cssmin", @@ -5048,16 +4986,16 @@ }, { "name": "twig/twig", - "version": "v3.1.1", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "b02fa41f3783a2616eccef7b92fbc2343ffed737" + "reference": "a27fa056df8a6384316288ca8b0fa3a35fdeb569" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/b02fa41f3783a2616eccef7b92fbc2343ffed737", - "reference": "b02fa41f3783a2616eccef7b92fbc2343ffed737", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a27fa056df8a6384316288ca8b0fa3a35fdeb569", + "reference": "a27fa056df8a6384316288ca8b0fa3a35fdeb569", "shasum": "" }, "require": { @@ -5067,12 +5005,12 @@ }, "require-dev": { "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9" + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -5108,7 +5046,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.1.1" + "source": "https://github.com/twigphp/Twig/tree/v3.3.3" }, "funding": [ { @@ -5120,7 +5058,7 @@ "type": "tidelift" } ], - "time": "2020-10-27T19:28:23+00:00" + "time": "2021-09-17T08:44:23+00:00" }, { "name": "voku/html-min", @@ -5191,16 +5129,16 @@ }, { "name": "voku/simple_html_dom", - "version": "4.7.28", + "version": "4.7.29", "source": { "type": "git", "url": "https://github.com/voku/simple_html_dom.git", - "reference": "78d5894c7f0facfb4fb6369af15b1a87baea958c" + "reference": "079067c704b714b7c2813971297bb340307813e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/simple_html_dom/zipball/78d5894c7f0facfb4fb6369af15b1a87baea958c", - "reference": "78d5894c7f0facfb4fb6369af15b1a87baea958c", + "url": "https://api.github.com/repos/voku/simple_html_dom/zipball/079067c704b714b7c2813971297bb340307813e7", + "reference": "079067c704b714b7c2813971297bb340307813e7", "shasum": "" }, "require": { @@ -5248,7 +5186,7 @@ ], "support": { "issues": "https://github.com/voku/simple_html_dom/issues", - "source": "https://github.com/voku/simple_html_dom/tree/4.7.28" + "source": "https://github.com/voku/simple_html_dom/tree/4.7.29" }, "funding": [ { @@ -5268,34 +5206,39 @@ "type": "tidelift" } ], - "time": "2020-11-17T23:30:43+00:00" + "time": "2021-03-29T14:56:56+00:00" }, { "name": "webmozart/assert", - "version": "1.9.1", + "version": "1.10.0", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" + "url": "https://github.com/webmozarts/assert.git", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0 || ^8.0", + "php": "^7.2 || ^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<3.9.1" + "vimeo/psalm": "<4.6.1 || 4.6.2" }, "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" + "phpunit/phpunit": "^8.5.13" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -5318,10 +5261,10 @@ "validate" ], "support": { - "issues": "https://github.com/webmozart/assert/issues", - "source": "https://github.com/webmozart/assert/tree/master" + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.10.0" }, - "time": "2020-07-08T17:02:28+00:00" + "time": "2021-03-09T10:59:23+00:00" }, { "name": "websharks/css-minifier", @@ -5684,8 +5627,8 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.4.0" + "php": "^7.4 || ^8.0" }, "platform-dev": [], - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.1.0" } From 53cb6090cdb1c9f24db18b42236ab9da8bb56d95 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Sat, 6 Nov 2021 08:04:48 +0000 Subject: [PATCH 221/326] Add Archive --- archives/num38.html | 89 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 archives/num38.html diff --git a/archives/num38.html b/archives/num38.html new file mode 100644 index 0000000..1909ffd --- /dev/null +++ b/archives/num38.html @@ -0,0 +1,89 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                  + Softwaretalks Logo +

                  خبرنامهٔ Softwaretalks

                  +

                  + شمارهٔ ۳۸ - شنبه، ۱۵ آبان ۱۴۰۰ +

                  +
                  +
                    +
                  • + دوآپس چیست و چه نقشی در تیم دارد؟
                    همه جا درباره DevOps صحبت میکنن ولی معمولا تعریف دقیقی ازش پیدا نمیشه، یک عده میگن دوآپس یک مجموعه ابزاره و یک عده دیگه میگن مجموعه‌ای از مفاهیم برای پیش‌برد تیم. شاید هم همه این‌ها کنار هم بشه دوآپس. توی این مطلب کمی بیشتر درباره تاریخچه روند توسعه و استقرار نرم‌افزار صحبت شده و این که دوآپس در حال حاضر کجای این چرخه قرار داره. +
                  • +
                  • + شبکه در docker
                    با انواع شبکه در داکر و نحوه کار اون‌ها آشنا میشیم. +
                  • +
                  • + C# Records - خوب، بد، زشت
                    این نوشته ضمن معرفی record در زبان C# در مورد نحوه استفاده و موارد استفاده این قابلیت توضیح می‌دهد. +
                  • +
                  • + (مموری) چگونه پرفرمنس اپلیکیشن اندرویدی را افزایش دهیم؟
                    در این مقاله به بررسی بهبود پرفرمنس اپلیکیشن های اندروید به کمک بهینه سازی مموری می پردازیم. +
                  • +
                  • + ویژگی‌های پنهان گوگل کروم که هر توسعه‌دهنده‌ای باید بداند
                    در این نوشته چند ویژگی خوب و نسبتاً مخفی گوگل کروم که به توسعه‌دهنده‌ها کمک می‌کند تا راحت‌تر به توسعه وب بپردازند معرفی شده. یکی از جالب‌ترین آن‌ها برای من قابلیت Dual Screen Mode بود که برای شبیه‌سازی دستگاه‌های تاشو از آن استفاده می‌شود +
                  • +
                  • + Willingness to look stupid
                    آدمایی که عامدانه سوال‌های احمقانه می‌پرسن در نهایت و پس از گذشت زمان، مسایل رو عمیق‌تر می‌فهمن. +
                  • +
                  +
                  +

                  + تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + Vahid Fathi، + + + حامد سعیدی، + + + شکیب حبیبی، + + + Rahmanism. + + شما نیز می‌توانید مشارکت کنید. +

                  +
                  +

                  Pakat Logo
                  ارسال شده توسط پاکت

                  سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

                  +
                  + + From 09018b862f5592163df541af7019a6410824ec3f Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sat, 6 Nov 2021 01:10:32 -0700 Subject: [PATCH 222/326] Add archive link (num 38) --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index e8ca5d7..1e1ae51 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                  آرشیو خبرنامه‌های سال ۱۴۰۰

                    +
                  • خبرنامه شماره ۳۸ - شنبه، ۱۵ آبان
                  • خبرنامه شماره ۳۷ - شنبه، ۰۸ آبان
                  • From 9b98288099ad703a96773aa1e79a3233f895dbe8 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sun, 7 Nov 2021 00:44:37 +0330 Subject: [PATCH 223/326] Update contributors section --- README.md | 95 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 63b6b49..0468e9f 100644 --- a/README.md +++ b/README.md @@ -25,53 +25,54 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. -ohmydevops -Hameds -hassan-shahbazi -amirshnll -Rahmanism -ghost -mokarchi -royapakzad -alinaseri07 -AliKarbasiCom -ariaieboy -afzouni -ashkanRmk -vahidfathi -pykello -s-alielyasi -VahidNaderi -SirwanAfifi -kokabi1365 -mahdiAkhi -irnb -anvaari -DearRude -numb95 -asadise -amirmojiry -majidganji -mayazdi -Aliiior -slashsbin -alirezasalehizadeh -vghaderi -itshaadi -Mvahedii -Gnkalk -Cinorid -hhosseinioun -omidpakdel -m2-farzan -mohas -iamvee -rashid2003 -markpash -mahdithejedi -hnaseri1990 -xhdix -mrmmg +ohmydevops +Hameds +hassan-shahbazi +amirshnll +Rahmanism +ghost +mokarchi +royapakzad +alinaseri07 +AliKarbasiCom +ariaieboy +vahidfathi +afzouni +ashkanRmk +pykello +s-alielyasi +VahidNaderi +SirwanAfifi +mahdiAkhi +anvaari +numb95 +DearRude +kokabi1365 +irnb +asadise +amirmojiry +omidpakdel +majidganji +slashsbin +Aliiior +Mvahedii +hhosseinioun +mayazdi hamedsj +Gnkalk +mohas +Cinorid +ShakibHabibi +alirezasalehizadeh +itshaadi +vghaderi +iamvee +xhdix +markpash +rashid2003 +hnaseri1990 +mahdithejedi +mrmmg +m2-farzan From 584e7be1f682d3d51ff2c4078d2d1e02c83cb858 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sun, 7 Nov 2021 01:09:06 +0330 Subject: [PATCH 224/326] Fix/check-isProduction-env-from-outside-of-modules (#357) * Add docker-compose for easy developing * Update docker file workdir * Inject listID from outside to module * Inject campaignNamePostFix from outside to module --- Dockerfile | 4 ++-- docker-compose.yml | 17 +++++++++++++++++ src/modules/campaign.php | 9 ++++----- src/send_newsletter.php | 8 +++++--- 4 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile index 4cdada6..5955b51 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,8 @@ RUN docker-php-ext-install intl RUN curl -sS https://getcomposer.org/installer | php -- --version=2.0.9 --install-dir=/usr/local/bin --filename=composer COPY . /app/newsletter -WORKDIR /app/newsletter/src +WORKDIR /app/newsletter -RUN composer install +RUN cd src && composer install ENTRYPOINT ["php"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d344c2f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' + +services: + newsletter: + init: true + container_name: newsletter + build: + context: ./ + ports: + - '8585:80' + environment: + WWWUSER: '${WWWUSER}' + LARAVEL_SAIL: 1 + volumes: + - '.:/app/newsletter/' + restart: always + command: -S 0.0.0.0:80 \ No newline at end of file diff --git a/src/modules/campaign.php b/src/modules/campaign.php index ce0750f..3394aba 100644 --- a/src/modules/campaign.php +++ b/src/modules/campaign.php @@ -12,11 +12,10 @@ function createNewCampaign( GuzzleHttp\Client $httpClient, $newsletterNumber, $minifiedHtmlTemplate, - $isProduction, + $listID, + $campaignNamePostFix, $pakatEmailAddress, $pakatEmailName, - $newsletterTestListID, - $newsletterListID ): string { $campaignID = ""; @@ -27,7 +26,7 @@ function createNewCampaign( ); $emailCampaign = new CreateEmailCampaign([ - 'name' => 'SoftwareTalks #'. $newsletterNumber . ($isProduction ? ' - Production' : ' - Test'), + 'name' => 'SoftwareTalks #'. $newsletterNumber . ' - ' . $campaignNamePostFix, 'subject' => 'خبرنامه شماره ' . Chalqoz::convertEnglishNumbersToPersian($newsletterNumber), 'htmlContent' => $minifiedHtmlTemplate, 'sender' => new CreateEmailCampaignSender([ @@ -35,7 +34,7 @@ function createNewCampaign( 'name' => $pakatEmailName ]), 'recipients' => new CreateEmailCampaignRecipients([ - 'listIds' => $isProduction ? [$newsletterListID] : [$newsletterTestListID], + 'listIds' => [$listID], ]), ]); diff --git a/src/send_newsletter.php b/src/send_newsletter.php index 4efe2d1..6241c14 100644 --- a/src/send_newsletter.php +++ b/src/send_newsletter.php @@ -70,16 +70,18 @@ * 4- Create campaign */ printf('--> Create campaign' . PHP_EOL); +$listID = $isProduction ? $configs['NEWSLETTER_LIST_ID'] : $configs['NEWSLETTER_TEST_LIST_ID']; +$campaignNamePostFix = $isProduction ? 'Production' : 'Test'; + $campaignID = createNewCampaign( $pakatConfig, $httpClient, $newsletterNumber, $minifiedHtmlTemplate, - $isProduction, + $listID, + $campaignNamePostFix, $configs['PAKAT_EMAIL_ADDRESS'], $configs['PAKAT_EMAIL_NAME'], - $configs['NEWSLETTER_TEST_LIST_ID'], - $configs['NEWSLETTER_LIST_ID'] ); /* From 142ce4cd9efa6638f153207426308322a583618c Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 11 Nov 2021 11:57:48 +0330 Subject: [PATCH 225/326] [ci skip] -- --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index 4ef9553..e4eee7c 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 7; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 6; return $newsletterNumber; } From 2cb3ef2f0f1871193545fa313c1446cb88c2a604 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 11 Nov 2021 12:19:12 +0330 Subject: [PATCH 226/326] Update subscribers counter --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 1e1ae51..4d9e9f2 100644 --- a/index.html +++ b/index.html @@ -279,8 +279,8 @@

                    قوانین

                    window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۷۱۷ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۷۱۷ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۷۲۰ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۷۲۰ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From e0b85b3e93bd48d2ad0f92826c2f0bb2d73ffb7a Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 11 Nov 2021 08:50:41 +0000 Subject: [PATCH 227/326] Add Archive --- archives/num39.html | 80 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 archives/num39.html diff --git a/archives/num39.html b/archives/num39.html new file mode 100644 index 0000000..c8f4dc7 --- /dev/null +++ b/archives/num39.html @@ -0,0 +1,80 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                    + Softwaretalks Logo +

                    خبرنامهٔ Softwaretalks

                    +

                    + شمارهٔ ۳۹ - پنجشنبه، ۲۰ آبان ۱۴۰۰ +

                    +
                    +
                      +
                    • + بالاخره Larastan نسخه 1.0 منتشر شد
                      اگر به عنوان توسعه‌دهنده PHP تا به حال از PHPstan استفاده نکرده‌اید حتما سرچش کنید و دربارش بخونید. اگر هم تا حالا استفاده کردین، خبر خوب اینه که برای فریم‌ورک لاراول یک Wrapper نوشتن به اسم Larastan که بهتون کمک میکنه تا کدهاتون رو آنالیز کنه و بتونین کد بهتری بنویسین و از اشتباهات تکراری پرهیز کنین. حالا چند روزی میشه که نسخه 1.0 منتشر شده. +
                    • +
                    • + ایمیل به لینوس توروالدز درباره تفاوت پراسس و ترد
                      دنبال درک عمیقی از تفاوت ترد و پراسس بودم. در بین مطالبی که خوندم این ایمیل رو دیدم که برای لینوس توروالدز فرستاده بودن و توروالدز پاسخ داده بود و سعی کرده بود این موضوع رو از دید خودش و در لینوکس توضیح بده. به نظرم خوندنش میتونه جالب باشه. [البته چیزی که برای من امیرحسین بقایی به صورت شخصی جالب بود این بود که این سوال رو توی سالی که من به دنیا اومده بودم پرسیده بودن و امروز دارم اون سوال رو با بقیه به اشتراک میزارم 😃] +
                    • +
                    • + آشنایی با موتور Nginx، غول قدیمی دنیای وب‌سرورها
                      احتمالا خیلی از ماها برای کارهای کوچیک و بزرگ از Nginx استفاده کردیم. Nginx این غول قدرتمند دنیای وب‌سرورها، برای پردازش درخواست‌هایی که به سمتش میاد از معماری Reactor استفاده میکنه. البته نمیدونم کلمه معماری درسته یا نه؛ شاید هم بهتر باشه بگیم یک جور روش حل مساله. در هر صورت توی این پست وبلاگ رسمی Nginx میتونید ببینید که در هسته این غول زیبا چه خبره. همچنین ارجاعاتی به مقاله‌های دیگری هم داخلش وجود داره که خوندنش به تکمیل شدن موضوع کمک میکنه. +
                    • +
                    • + Build your own (insert technology here)
                      همیشه بهترین راه برای فهمیدن عمیق یک ابزار اینه که بدونیم اون ابزار چطوری ساخته شده. با کمک این ریپو در هر زبان، فریمورک و یا ابزاری که کار می کنید میتونید عمیق بشید. +
                    • +
                    • + refactor یک برنامه sync به async در ASP.NET - بخش اول
                      در این مقاله که در دو بخش تنظیم گردیده است با اصلاح مجدد (refactor) یک برنامه وب همزمان (synchronous) به ناهمزمان (asynchronous) در ASP.NET آشنا خواهیم شد. +
                    • +
                    +
                    +

                    + تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + Mohammad Vahedi، + + + Amir Mokarchi. + + شما نیز می‌توانید مشارکت کنید. +

                    +
                    +

                    Pakat Logo
                    ارسال شده توسط پاکت

                    سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

                    +
                    + + From f27ba889edf8da244fd9e0b1766487079d0b7494 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 11 Nov 2021 12:21:31 +0330 Subject: [PATCH 228/326] Add archive (num 39) --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 4d9e9f2..6f32083 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                    آرشیو خبرنامه‌های سال ۱۴۰۰

                      +
                    • خبرنامه شماره ۳۹ - پنجشنبه، ۲۰ آبان
                    • خبرنامه شماره ۳۸ - شنبه، ۱۵ آبان
                    • خبرنامه شماره ۳۷ - شنبه، ۰۸ آبان Date: Fri, 12 Nov 2021 12:27:30 +0330 Subject: [PATCH 229/326] Update contributors section --- README.md | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 0468e9f..12d8eb1 100644 --- a/README.md +++ b/README.md @@ -25,54 +25,54 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. -ohmydevops +ohmydevops Hameds hassan-shahbazi amirshnll Rahmanism ghost -mokarchi +mokarchi royapakzad alinaseri07 AliKarbasiCom -ariaieboy vahidfathi afzouni ashkanRmk -pykello -s-alielyasi +ariaieboy VahidNaderi +s-alielyasi SirwanAfifi +pykello +kokabi1365 +asadise mahdiAkhi +mvahedii anvaari -numb95 -DearRude -kokabi1365 irnb -asadise +numb95 amirmojiry -omidpakdel -majidganji -slashsbin -Aliiior -Mvahedii -hhosseinioun -mayazdi -hamedsj +DearRude Gnkalk -mohas Cinorid -ShakibHabibi +omidpakdel +vghaderi alirezasalehizadeh +m2-farzan +ShakibHabibi itshaadi -vghaderi iamvee +hhosseinioun +mayazdi +rashid2003 +slashsbin +mahdithejedi +Aliiior xhdix markpash -rashid2003 +hamedsj hnaseri1990 -mahdithejedi +majidganji mrmmg -m2-farzan +mohas From 03a886836de59249b77aa3aa40595ceee5adad04 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 12 Nov 2021 20:36:54 +0330 Subject: [PATCH 230/326] Add Yandex.Metrika --- index.html | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/index.html b/index.html index 6f32083..968c06a 100644 --- a/index.html +++ b/index.html @@ -294,6 +294,23 @@

                      قوانین

                      document.getElementById('youtube_video').src = 'https://www.youtube.com/embed/H17FfYRCaRE' }; + + + + + + From bb81ebad3e4a36ebb4ee3eedad353006f3ba136f Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 12 Nov 2021 20:44:06 +0330 Subject: [PATCH 231/326] Update Yandex.Metrika --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 968c06a..eea9d8e 100644 --- a/index.html +++ b/index.html @@ -305,6 +305,7 @@

                      قوانین

                      clickmap:true, trackLinks:true, accurateTrackBounce:true, + webvisor:true, trackHash:true }); From 3e991551626e7747d0143443925b9835236f366c Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 18 Nov 2021 13:21:53 +0000 Subject: [PATCH 232/326] Add Archive --- archives/num40.html | 86 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 archives/num40.html diff --git a/archives/num40.html b/archives/num40.html new file mode 100644 index 0000000..0fdc893 --- /dev/null +++ b/archives/num40.html @@ -0,0 +1,86 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                      + Softwaretalks Logo +

                      خبرنامهٔ Softwaretalks

                      +

                      + شمارهٔ ۴۰ - پنجشنبه، ۲۷ آبان ۱۴۰۰ +

                      +
                      +
                        +
                      • + کمی درباره‌ی معماری میکروسرویس
                        چند سالی است که در مورد معماری میکروسرویس زیاد می‌شنویم، میکروسرویس معماری است که در آن یک نرم‌افزار از چند سرویس کوچکتر و مستقل تشکیل می‌شود. این نوشته از آی‌بی‌ام به طور خلاصه به مفاهیم این معماری پرداخته است که خواندنش مفید است. +
                      • +
                      • + داکر، multi stage و کاهش حجم
                        کم کردن حجم image داکر روش‌های مختلفی مثل multi staging اینا داره که تواین مطلب با اون‌ها آشنا می‌شیم. +
                      • +
                      • + تفاوت حالت Exec و Shell در داکرفایل‌ها
                        شاید در بعضی داکر فایل‌ها دیده باشید که مثلاً مقدار ENTRYPOINT را گاهی داخل براکت و گاهی بدون براکت نوشته باشند. اما دقیقاً تفاوت اصلی این دو حالت در داکرفایل برای این دستور و دیگر دستورات مثل RUN یا CMD چیه؟ توی این پست خیلی خلاصه و مفید میتونین تفاوت‌هاشون رو مطالعه کنید. +
                      • +
                      • + مروری بر چالش‌های کش‌کردن داده‌ها در Laravel
                        نویسنده در این پست تلاش کرده چالش‌های مرسوم کش کردن داده‌ها در لاراول رو توضیح بده و یک سری راه‌حل و استراتژی رو هم برای رفع مشکلات بررسی کنه. کش‌کردن داده‌ها همونقدر که میتونه سرعت نرم‌افزار رو بهبود بده، میتونه پیچیدگی‌های نگهداری نرم‌افزار رو هم زیاد کنه،‌پس باید بدونیم که داریم چیکار میکنیم. +
                      • +
                      • + تکنیک هک مصاحبه شغلی با روش STAR
                        تکنیک مصاحبه STAR قالب ساده ای را ارائه می دهد که می توانید از آن برای پاسخ به سوالات مصاحبه رفتاری استفاده کنید. بعد از خوندن این نوشته یک چارچوب بسیار ساده پیدا می کنید که سوال های شخصی و فکر کن فلان موقعیت پیش اومده رو میتونید خیلی موفق جواب بدین .... +
                      • +
                      • + افزودن دستگاه های مختلف به Chrome Developer Tools
                        اگر شما هم از بخش Developer Tools مرورگر کروم برای تست رسپانسیو صفحات وب استفاده می کنید حتما نیاز است دستگاه های مورد نظر خود را به آن اضافه کنید. در حالت کلی تعدادی دستگاه پیش فرض در این بخش وجود دارد اما معمولا دستگاه های مورد نظر شما ممکن است در آن نباشد. در این مخزن اطلاعات دستگاه های مختلف و روش افزودن هر کدام را یکجا داشته باشید .... +
                      • +
                      +
                      +

                      + تأمین‌کنندگانِ محتوا در این شماره: + + مرتضی اسدی، + + + وحید فتحی، + + + امیرحسین بقایی، + + + امیر شکری. + + شما نیز می‌توانید مشارکت کنید. +

                      +
                      +

                      Pakat Logo
                      ارسال شده توسط پاکت

                      سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

                      +
                      + + From 95c47cf914355df659d4a29497f59cf9b068e198 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 18 Nov 2021 16:52:39 +0330 Subject: [PATCH 233/326] Add archive (num 40) --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index eea9d8e..e1ce733 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                      آرشیو خبرنامه‌های سال ۱۴۰۰

                        +
                      • خبرنامه شماره ۴۰ - پنجشنبه، ۲۷ آبان
                      • خبرنامه شماره ۳۹ - پنجشنبه، ۲۰ آبان
                      • خبرنامه شماره ۳۸ - شنبه، ۱۵ آبان
                      • خبرنامه شماره ۳۷ - شنبه، ۰۸ آبان Date: Fri, 19 Nov 2021 12:08:55 +0330 Subject: [PATCH 234/326] HTML format --- index.html | 56 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/index.html b/index.html index e1ce733..12ee76c 100644 --- a/index.html +++ b/index.html @@ -122,9 +122,15 @@

                        آرشیو خبرنامه‌های سال ۱۴۰۰

                          -
                        • خبرنامه شماره ۴۰ - پنجشنبه، ۲۷ آبان
                        • -
                        • خبرنامه شماره ۳۹ - پنجشنبه، ۲۰ آبان
                        • -
                        • خبرنامه شماره ۳۸ - شنبه، ۱۵ آبان
                        • +
                        • خبرنامه شماره ۴۰ - پنجشنبه، ۲۷ آبان
                        • +
                        • خبرنامه شماره ۳۹ - پنجشنبه، ۲۰ آبان
                        • +
                        • خبرنامه شماره ۳۸ - شنبه، ۱۵ آبان
                        • خبرنامه شماره ۳۷ - شنبه، ۰۸ آبان
                        • @@ -295,24 +301,32 @@

                          قوانین

                          document.getElementById('youtube_video').src = 'https://www.youtube.com/embed/H17FfYRCaRE' }; - - - - - - + + + + + - + \ No newline at end of file From 9d8e51728b40ca7c57c175868a89541d56126991 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 19 Nov 2021 13:06:54 +0330 Subject: [PATCH 235/326] Add GDPR cookie policy --- assets/css/main.css | 25 ++++++++ assets/js/cookie.js | 151 ++++++++++++++++++++++++++++++++++++++++++++ index.html | 98 ++++++++++++++++++++++------ 3 files changed, 254 insertions(+), 20 deletions(-) create mode 100644 assets/js/cookie.js diff --git a/assets/css/main.css b/assets/css/main.css index c5e75f5..37173a5 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -1771,4 +1771,29 @@ body.is-preload #footer { .link { border-bottom: 0 !important; +} + + +.cookie-notification { + position: fixed; + background-color: rgb(0 0 0 / 97%); + bottom: 0; + width: 100%; + color: white; + padding: 15px; +} + +.cookie-notification_hidden_yes { + display: none; +} + +.cookie-notification__header { + margin-bottom: 10px; + font-size: 18px; +} + +.cookie-notification__body { + max-width: 978px; + text-align: center; + margin: 15px auto; } \ No newline at end of file diff --git a/assets/js/cookie.js b/assets/js/cookie.js new file mode 100644 index 0000000..5dcb63a --- /dev/null +++ b/assets/js/cookie.js @@ -0,0 +1,151 @@ +/*! + * JavaScript Cookie v2.1.2 + * https://github.com/js-cookie/js-cookie + * + * Copyright 2006, 2015 Klaus Hartl & Fagner Brack + * Released under the MIT license + */ +;(function (factory) { + if (typeof define === 'function' && define.amd) { + define(factory); + } else if (typeof exports === 'object') { + module.exports = factory(); + } else { + var OldCookies = window.Cookies; + var api = window.Cookies = factory(); + api.noConflict = function () { + window.Cookies = OldCookies; + return api; + }; + } +}(function () { + function extend () { + var i = 0; + var result = {}; + for (; i < arguments.length; i++) { + var attributes = arguments[ i ]; + for (var key in attributes) { + result[key] = attributes[key]; + } + } + return result; + } + + function init (converter) { + function api (key, value, attributes) { + var result; + if (typeof document === 'undefined') { + return; + } + + // Write + + if (arguments.length > 1) { + attributes = extend({ + path: '/' + }, api.defaults, attributes); + + if (typeof attributes.expires === 'number') { + var expires = new Date(); + expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5); + attributes.expires = expires; + } + + try { + result = JSON.stringify(value); + if (/^[\{\[]/.test(result)) { + value = result; + } + } catch (e) {} + + if (!converter.write) { + value = encodeURIComponent(String(value)) + .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); + } else { + value = converter.write(value, key); + } + + key = encodeURIComponent(String(key)); + key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent); + key = key.replace(/[\(\)]/g, escape); + + return (document.cookie = [ + key, '=', value, + attributes.expires && '; expires=' + attributes.expires.toUTCString(), // use expires attribute, max-age is not supported by IE + attributes.path && '; path=' + attributes.path, + attributes.domain && '; domain=' + attributes.domain, + attributes.secure ? '; secure' : '' + ].join('')); + } + + // Read + + if (!key) { + result = {}; + } + + // To prevent the for loop in the first place assign an empty array + // in case there are no cookies at all. Also prevents odd result when + // calling "get()" + var cookies = document.cookie ? document.cookie.split('; ') : []; + var rdecode = /(%[0-9A-Z]{2})+/g; + var i = 0; + + for (; i < cookies.length; i++) { + var parts = cookies[i].split('='); + var cookie = parts.slice(1).join('='); + + if (cookie.charAt(0) === '"') { + cookie = cookie.slice(1, -1); + } + + try { + var name = parts[0].replace(rdecode, decodeURIComponent); + cookie = converter.read ? + converter.read(cookie, name) : converter(cookie, name) || + cookie.replace(rdecode, decodeURIComponent); + + if (this.json) { + try { + cookie = JSON.parse(cookie); + } catch (e) {} + } + + if (key === name) { + result = cookie; + break; + } + + if (!key) { + result[name] = cookie; + } + } catch (e) {} + } + + return result; + } + + api.set = api; + api.get = function (key) { + return api(key); + }; + api.getJSON = function () { + return api.apply({ + json: true + }, [].slice.call(arguments)); + }; + api.defaults = {}; + + api.remove = function (key, attributes) { + api(key, '', extend(attributes, { + expires: -1 + })); + }; + + api.withConverter = init; + + return api; + } + + return init(function () {}); +})); \ No newline at end of file diff --git a/index.html b/index.html index 12ee76c..23ccf55 100644 --- a/index.html +++ b/index.html @@ -274,6 +274,28 @@

                          قوانین

                          + +
                          @@ -283,6 +305,7 @@

                          قوانین

                          + - - - From 6c7a3604a5296594440737eaa3fe217bd8d754f1 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 19 Nov 2021 13:25:47 +0330 Subject: [PATCH 236/326] Update subscribers counter --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 23ccf55..608bed3 100644 --- a/index.html +++ b/index.html @@ -310,8 +310,8 @@

                          قوانین

                          window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۷۲۰ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۷۲۰ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۷۲۴ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۷۲۴ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From 992571f65c84857f449ee14a3cd41deed88b26b4 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 19 Nov 2021 13:41:27 +0330 Subject: [PATCH 237/326] Update contributors section - Remove RTL div - Add contributors counter --- README.md | 62 +++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 12d8eb1..c306e5e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ ![♨️ Send email - Production](https://github.com/softwaretalks/newsletter/workflows/%E2%99%A8%EF%B8%8F%20Send%20email%20-%20Production/badge.svg) -
                          cover @@ -21,58 +20,57 @@ Youtube cover
                          -## مشارکت‌کنندگان به ترتیب تعداد پست‌های ارسالی +## (۴۹ مشارکت کننده) مشارکت‌کنندگان به ترتیب تعداد پست‌های ارسالی برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. - -ohmydevops + + +ohmydevops Hameds -hassan-shahbazi -amirshnll +amirshnll +hassan-shahbazi Rahmanism ghost mokarchi royapakzad +vahidfathi alinaseri07 AliKarbasiCom -vahidfathi +ariaieboy afzouni ashkanRmk -ariaieboy -VahidNaderi +asadise +pykello s-alielyasi +VahidNaderi SirwanAfifi -pykello -kokabi1365 -asadise +numb95 mahdiAkhi mvahedii -anvaari irnb -numb95 -amirmojiry DearRude -Gnkalk -Cinorid -omidpakdel -vghaderi -alirezasalehizadeh -m2-farzan +anvaari +kokabi1365 +amirmojiry +xhdix ShakibHabibi +majidganji +rashid2003 +omidpakdel itshaadi -iamvee -hhosseinioun +alirezasalehizadeh +hamedsj +Cinorid +mohas mayazdi -rashid2003 -slashsbin +iamvee +vghaderi +Gnkalk +m2-farzan mahdithejedi -Aliiior -xhdix markpash -hamedsj +Aliiior hnaseri1990 -majidganji +slashsbin mrmmg -mohas - -
                          +hhosseinioun From 8a7cfee3299a004a74d9bf09c0929e2a61c4ba3d Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 19 Nov 2021 13:44:10 +0330 Subject: [PATCH 238/326] Fix contributors section --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c306e5e..6351ed4 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. - +
                          ohmydevops Hameds amirshnll @@ -74,3 +74,4 @@ slashsbin mrmmg hhosseinioun +
                          From f62a543e359fe0df2e06a60ce2a63c01ff6e9afa Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 19 Nov 2021 13:52:51 +0330 Subject: [PATCH 239/326] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6351ed4..929cefe 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ Youtube cover -## (۴۹ مشارکت کننده) مشارکت‌کنندگان به ترتیب تعداد پست‌های ارسالی +## مشارکت‌کنندگان به ترتیب تعداد پست‌های ارسالی -برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. +برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. تا این لحظه ۴۹ نفر در تهیه محتوای هر هفته مشارکت کرده‌اند.
                          ohmydevops From cc3995946b7f90c4b4aec4ed27fb5434ac021d15 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Fri, 26 Nov 2021 20:02:45 +0000 Subject: [PATCH 240/326] Add Archive --- archives/num41.html | 92 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 archives/num41.html diff --git a/archives/num41.html b/archives/num41.html new file mode 100644 index 0000000..8d851dc --- /dev/null +++ b/archives/num41.html @@ -0,0 +1,92 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                          + Softwaretalks Logo +

                          خبرنامهٔ Softwaretalks

                          +

                          + شمارهٔ ۴۱ - جمعه، ۰۵ آذر ۱۴۰۰ +

                          +
                          +
                            +
                          • + مهم ترین ساختمان داده هایی که باید در مصاحبه شغلی بدانیم
                            اگر در فرآیند مصاحبه های متعدد شغلی هستید و احتمالا مشکلاتی با سوالات دارید یک بخشی از این مشکلات مربوط به ساختمان داده است که کلیات ساختمان داده هایی که نیاز دارید بدانید به صورت خلاصه در لینک اصلی مقاله لیست شده ... +
                          • +
                          • + در کلودفلر چطور نرم‌افزار می‌سازیم؟
                            در این نوشته منتشر شده در وبلاگ کلودفلر ابتدا روش‌های متداول تولید نرم‌افزار معرفی شده و در ادامه روشی که کلودفلر با آن نرم‌افزار تولید می‌کند توضیح داده شده است. +
                          • +
                          • + ایجاد Backdoor نامرئی در جاوا اسکرپیت
                            در این مقاله بسیار جالب نویسنده این ایده رو داشته که چی می‌شه اگر نتونیم کد Backdoor رو ببینیم؟ در واقع آیا می‌تونیم با کمک کاراکترهای نامرئی در ادیتورها کدی رو داخل کد اصلی قرار بدیم که در بازبینی کدها (Code Review) هم مشخص نباشه؟ پیشنهاد می‌کنم نتیجه رو ببینید. +
                          • +
                          • + طراحی رسپانسیو با مدیاکوئری‌های کمتر
                            هرچند که مدیاکوئری سال‌های سال است که در طراحی رسپانسیو بسیار کاربردی است، اما گاهی باعث می‌شود مدیریت طراحی سخت شود. در این مقاله راه حل‌هایی راه مشاهده خواهید کرد که فلکس و گرید به منظور استفاده کمتر از مدیاکوئری به کار گرفته می‌شوند. +
                          • +
                          • + با این اسکریپت نیازی به پوشه وصایای امام ندارید !
                            اومدیم یه کاری کردیم که دیگه نیازی نباشه به اینکه نگران باشین اگه مامان باباتون فایل های شخصی تون رو پیدا کردن اونا رو توی کلی فولدر مخفی کنین +
                          • +
                          • + OOPS in JavaScript with easy to understand examples 🔥🔥
                            اگه با زبان‌های شی گرا کار کرده باشید، وقتی سراغ جاوااسکریپت میایید هم دوست دارید به همون روش کد بنویسید. اینجا با مثال مفهوم کدنویسی شی گرا در جاوااسکریپت شرح داده شده. +
                          • +
                          • + رشته توییتی از حمید بازرگانی درباره مصاحبه کاری با شرکت‌های بزرگ
                            پارسال با اینکه فکر میکردم آماده‌ام شروع کردم به مصاحبه دادن و تقریبا از هر جا که اپلای کردم ریجکت شدم. یه جای کار میلنگید. اعتماد بنفسم داغون شده بود ..... +
                          • +
                          +
                          +

                          + تأمین‌کنندگانِ محتوا در این شماره: + + امیر شکری، + + + حامد سعیدی، + + + Rahmanism، + + + ایلیا آقامجیدی، + + + امیرحسین بقایی. + + شما نیز می‌توانید مشارکت کنید. +

                          +
                          +

                          Pakat Logo
                          ارسال شده توسط پاکت

                          سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

                          +
                          + + From 3a46c4080ac027cd9b7816d1439e30eeb7811d3e Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 26 Nov 2021 23:36:51 +0330 Subject: [PATCH 241/326] Add archive 41 link --- index.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 608bed3..bf8bab4 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,8 @@

                          آرشیو خبرنامه‌های سال ۱۴۰۰

                            + +
                          • خبرنامه شماره ۴۱ - جمعه، ۰۵ آذر
                          • خبرنامه شماره ۴۰ - پنجشنبه، ۲۷ آبان
                          • @@ -387,4 +389,4 @@

                            قوانین

                            - \ No newline at end of file + From e944262951cffd0c46c05ff57cea2cadde955d8e Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 9 Dec 2021 12:08:55 +0330 Subject: [PATCH 242/326] Update counter.php --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index e4eee7c..4ef9553 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 6; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 7; return $newsletterNumber; } From 34d539ba2646a8ce7a86f484a848f0fdb3e0afe0 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 9 Dec 2021 08:45:11 +0000 Subject: [PATCH 243/326] Add Archive --- archives/num42.html | 92 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 archives/num42.html diff --git a/archives/num42.html b/archives/num42.html new file mode 100644 index 0000000..57ec0ef --- /dev/null +++ b/archives/num42.html @@ -0,0 +1,92 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                            + Softwaretalks Logo +

                            خبرنامهٔ Softwaretalks

                            +

                            + شمارهٔ ۴۲ - پنجشنبه، ۱۸ آذر ۱۴۰۰ +

                            +
                            +
                              +
                            • + ارائه فلیکر درباره همکاری تیم‌های اپریشن و دولوپ
                              احتمالا درباره DevOps تا حالا مطلب زیاد خوندین ولی هیچی به اندازه خوندن تاریخچه هر چیزی به آدم در درک چیزها کمک نمیکنه. چرا چیزی خلق میشه و چرا چیزی وجود داره در حالی که میتونست نباشه؛ این ارائه مهندسان Flicker تقریبا جزو اولین جرقه‌های مفهوم DevOps در زمان خودش یعنی سال‌ ۲۰۰۹ بوده. دیدنش حتما پر از نکات خوبیه که میتونه بهمون کمک کنه در درک DevOps +
                            • +
                            • + خبرنامه ده روزه‌ی آشنایی با php 8.1
                              با عضویت در این خبرنامه، تا ده روز، هر روز با یکی از تغییرات php در نسخه‌ی 8.1 آشنا می‌شوید. به گفته‌ی سازنده، بعد از پایان این ده روز، ارسال خبرنامه متوقف می‌شود و ایمیل شما هم جایی ذخیره نمی‌‌شود. +
                            • +
                            • + حلقه‌تکرار بهتر است یا بازگشتی؟ بررسی عمیق تا لایه سخت‌افزار
                              نویسنده در این مطلب سوال ساده‌ای مطرح کرده ولی برای پاسخ به این سوال ساده تا عمیق‌ترین لایه‌های سیستم‌ پایین میره تا خیلی عمیق‌تر بفهمیم که در واقعیت داره چه اتفاقی میفته وقتی که یک کار رو به صورت بازگشتی انجام میدیم یا به صورت حلقه‌ تکرار +
                            • +
                            • + چندزبانه‌ کردن وب‌اپلیکیشن‌ها بدون درد و خونریزی
                              در این مطلب، خانم زهرا کبیری از تجربه چندزبانه کردن وب‌اپلیکیشن‌ها نوشته‌اند و توضیح داده‌اند چطور این کار به نظر ساده، برای خودشون و تیمشون چالش برانگیز بوده است. +
                            • +
                            • + انتشار اپ فلاتر در testflight برای ios
                              اگر نیاز دارید برنامه هایی که نوشتین رو روی گوشیتون تست کنید حتما testflight رو استفاده کنید اینجوری قبل از نهایی کردن می تونید به بقیه هم برنامتون رو برای تست ارسال کنید؛ در این نوشته روش انجام اینکار رو مرحله به مرحله مطالعه کنید ... +
                            • +
                            • + بکند پی اچ پی با فلاتر
                              این نوشته ی خیلی کوتاه بهتون کمک میکنه که برنامه فلاتر خودتون رو روی یک وب سرور پیاده سازی کنید +
                            • +
                            • + تست بار و پرفورمنس با ابزار پست‌من، آیا واقعا امکان پذیر است؟
                              خیلی از افراد دوست دارن از پست‌من برای تست پرفورمنس API های خودشون استفاده کنند. متأسفانه Postman برای این کار طراحی نشده و فاقد ویژگی های اصلی مورد نیازه. بیایید بررسی کنیم که چرا پست‌من ابزار مناسبی برای این کار نیست. +
                            • +
                            +
                            +

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

                            +
                            +

                            Pakat Logo
                            ارسال شده توسط پاکت

                            سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

                            +
                            + + From 2888486b926d793d5376a4ca6a5c1bb4d987d425 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 9 Dec 2021 12:31:02 +0330 Subject: [PATCH 244/326] Add archive num 42 --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index bf8bab4..067d959 100644 --- a/index.html +++ b/index.html @@ -122,7 +122,7 @@

                            آرشیو خبرنامه‌های سال ۱۴۰۰

                              - +
                            • خبرنامه شماره ۴۲ - پنجشنبه، ۱۸ آذر
                            • خبرنامه شماره ۴۱ - جمعه، ۰۵ آذر
                            • خبرنامه شماره ۴۰ - پنجشنبه، ۲۷ آبان Date: Fri, 10 Dec 2021 10:36:04 +0330 Subject: [PATCH 245/326] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 067d959..1e40075 100644 --- a/index.html +++ b/index.html @@ -312,8 +312,8 @@

                              قوانین

                              window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۷۲۴ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۷۲۴ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۷۳۲ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۷۳۲ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From fb6351997042f2929d5d75b316e4c6806081bda7 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 10 Dec 2021 10:37:04 +0330 Subject: [PATCH 246/326] Update README.md --- README.md | 98 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 51 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 929cefe..2f92350 100644 --- a/README.md +++ b/README.md @@ -25,53 +25,57 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. تا این لحظه ۴۹ نفر در تهیه محتوای هر هفته مشارکت کرده‌اند.
                              -ohmydevops -Hameds -amirshnll -hassan-shahbazi -Rahmanism -ghost -mokarchi -royapakzad -vahidfathi -alinaseri07 -AliKarbasiCom -ariaieboy -afzouni -ashkanRmk -asadise -pykello -s-alielyasi -VahidNaderi -SirwanAfifi -numb95 -mahdiAkhi -mvahedii -irnb -DearRude -anvaari -kokabi1365 -amirmojiry -xhdix -ShakibHabibi -majidganji -rashid2003 -omidpakdel -itshaadi + +ohmydevops +Hameds +amirshnll +hassan-shahbazi +Rahmanism +ghost +mokarchi +royapakzad +vahidfathi +alinaseri07 +s-alielyasi +ariaieboy +afzouni +ashkanRmk +AliKarbasiCom +amirmojiry +VahidNaderi +asadise +SirwanAfifi +pykello +kokabi1365 +irnb +numb95 +mvahedii +anvaari +mahdiAkhi +DearRude +Cinorid +mahdithejedi +m2-farzan alirezasalehizadeh -hamedsj -Cinorid -mohas -mayazdi -iamvee -vghaderi -Gnkalk -m2-farzan -mahdithejedi -markpash +mayazdi +hamedsj +slashsbin +itshaadi +iamvee +hhosseinioun +rashid2003 +Gnkalk +omidpakdel +ShakibHabibi +POOYASP2 +dozheiny +xhdix +vghaderi +markpash +mohas +hnaseri1990 +majidganji +mrmmg Aliiior -hnaseri1990 -slashsbin -mrmmg -hhosseinioun +
                              From 1925bc040bd49db2407b644eeb54ef53bc3aa00e Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 10 Dec 2021 23:17:14 +0330 Subject: [PATCH 247/326] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f92350..f0751ad 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ ## مشارکت‌کنندگان به ترتیب تعداد پست‌های ارسالی -برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. تا این لحظه ۴۹ نفر در تهیه محتوای هر هفته مشارکت کرده‌اند. +برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. تا این لحظه ۵۱ نفر در تهیه محتوای هر هفته مشارکت کرده‌اند.
                              From 51fc46bfdede6768d33462bba553a8e9f191cb15 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Tue, 21 Dec 2021 19:41:06 +0330 Subject: [PATCH 248/326] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 1e40075..b3b06a0 100644 --- a/index.html +++ b/index.html @@ -312,8 +312,8 @@

                              قوانین

                              window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۷۳۲ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۷۳۲ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۷۵۳ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۷۵۳ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From 965be4bea0d8bce64e5aaa1bde4602bd289503ec Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Tue, 21 Dec 2021 22:07:16 +0330 Subject: [PATCH 249/326] Fix metrika cookie problem (#392) --- index.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index b3b06a0..01e3d48 100644 --- a/index.html +++ b/index.html @@ -351,10 +351,12 @@

                              قوانین

                              } function saveAnswer(isOk) { - // Hide the alert. hideMessage(); - // Set cookies. - Cookies.set('agreement', isOk); + if(isOk) { + document.cookie = `agreement=${isOk}; max-age=31536000; path=/`; + } else { + document.cookie = `agreement=${isOk}; max-age=86400; path=/`; + } } function initCounter() { From da3536175746ee7dbc8b6120d1972cd46f47ef28 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 24 Dec 2021 00:14:26 +0330 Subject: [PATCH 250/326] Update BOTTOM_CONTENT_HTML.txt --- src/BOTTOM_CONTENT_HTML.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BOTTOM_CONTENT_HTML.txt b/src/BOTTOM_CONTENT_HTML.txt index eb5d84b..31ee882 100644 --- a/src/BOTTOM_CONTENT_HTML.txt +++ b/src/BOTTOM_CONTENT_HTML.txt @@ -1 +1 @@ -

                              Pakat Logo
                              ارسال شده توسط پاکت

                              سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

                              \ No newline at end of file +

                              From 906fc99d8c349f251be44b118710ec487b81d4f3 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 24 Dec 2021 00:26:41 +0330 Subject: [PATCH 251/326] Update BOTTOM_CONTENT_HTML.txt --- src/BOTTOM_CONTENT_HTML.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BOTTOM_CONTENT_HTML.txt b/src/BOTTOM_CONTENT_HTML.txt index 31ee882..8b13789 100644 --- a/src/BOTTOM_CONTENT_HTML.txt +++ b/src/BOTTOM_CONTENT_HTML.txt @@ -1 +1 @@ -

                              + From fecbcdb215788bc4e412a883845547c00464a0de Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 24 Dec 2021 00:26:53 +0330 Subject: [PATCH 252/326] Update BOTTOM_CONTENT_HTML_DARK.txt --- src/BOTTOM_CONTENT_HTML_DARK.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BOTTOM_CONTENT_HTML_DARK.txt b/src/BOTTOM_CONTENT_HTML_DARK.txt index fe99bc5..8b13789 100644 --- a/src/BOTTOM_CONTENT_HTML_DARK.txt +++ b/src/BOTTOM_CONTENT_HTML_DARK.txt @@ -1 +1 @@ -

                              Pakat Logo
                              ارسال شده توسط پاکت

                              سرویسِ پاکت اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید

                              + From a6399774af2df2320b7a924794d8acea0356620e Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 24 Dec 2021 00:27:27 +0330 Subject: [PATCH 253/326] Update counter.php --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index 4ef9553..f1eeaaa 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 7; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 8; return $newsletterNumber; } From bf35120cae670e20ff5049dd9fe7942337adf055 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 23 Dec 2021 21:00:45 +0000 Subject: [PATCH 254/326] Add Archive --- archives/num43.html | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 archives/num43.html diff --git a/archives/num43.html b/archives/num43.html new file mode 100644 index 0000000..07e1939 --- /dev/null +++ b/archives/num43.html @@ -0,0 +1,75 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                              + Softwaretalks Logo +

                              خبرنامهٔ Softwaretalks

                              +

                              + شمارهٔ ۴۳ - پنجشنبه، ۰۲ دی ۱۴۰۰ +

                              +
                              +
                                +
                              • + گوگل چگونه کار میکند؟ گفتگوی کیانوش مختاریان و احسان آراسته
                                در این برنامه یکی از مهندسان ارشد گوگل، یعنی کیانوش مختاریان به زبان ساده و راحت، سازوکار توسعه نرم‌افزار در گوگل رو توضیح میده. اگر به سازوکارهای مهندسی نرم‌افزار در شرکت‌های بزرگ مثل گوگل علاقه دارید، حتما این گفتگو را تماشا کنید چرا که پر از نکات جالبه. +
                              • +
                              • + چرا دیتابیس سوسکی از نسخه‌بندی تاریخی استفاده میکند؟
                                اگر برای هر پروژه‌ نرم‌افزاری که ایجاد میکنید از SemVer استفاده میکنید و تنها راه نسخه‌بندی نرم‌افزارتون رو همین میبینید، خوبه که با نسخه‌بندی‌های مبتنی بر تاریخ هم آشنا بشید شاید گاهی پاسخ بهتری برای مسئله شما باشند. در این مطلب تیم CockroachDB علت مهاجرت از SemVer به CalVer یا همان Calendar versioning را توضیح میدهند. +
                              • +
                              • + شخم توییتر فارسی (اراضی برنامه نویسان)
                                در این مطلب به تحلیل و بررسی توییت های «لیستی از اهالی فارسی‌زبان آی‌تی توییتر» پرداخته می‌شود و قصد داریم ببینیم برنامه ‌نویسان در توییتر مشغول چه کاری هستند؟! +
                              • +
                              • + چرا توسعه دهنده ها مدیر نمیشن ؟
                                اغلب آدم ها فکر میکنن برنامه نویس ها باید بعد از مدتی تبدیل به مدیر بشن و این فرآیند برای همشون وجود داره ولی در عمل این شکلی نیست ... +
                              • +
                              +
                              +

                              + تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + وحید باقی، + + + امیر شکری. + + شما نیز می‌توانید مشارکت کنید. +

                              +
                              + + From 3f668f9baee62cd905766f0755727addba2775da Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 24 Dec 2021 00:32:09 +0330 Subject: [PATCH 255/326] Add archive num 43 --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 01e3d48..9701be0 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                              آرشیو خبرنامه‌های سال ۱۴۰۰

                              -

                              قوانین

                              +

                              قوانین مشارکت در محتوای خبرنامه

                              +

                              با درنظرگرفتنِ قوانینِ پایین، به‌هرتعداد می‌توانید محتوا پیشنهاد دهید.

                              +
                                +
                              • تاحدامکان عنوان و توضیحِ محتوا کوتاه باشد
                              • +
                              • تاحدامکان از عنوان و توضیحِ فارسی استفاده کنید
                              • +
                              • محتوا با هدفِ تبلیغات و بازاریابی پذیرفته نیست
                              • +
                              • محتوایی که فقط با IP ایران باز می‌شود پذیرفته نیست
                              • +
                              • لینکِ کوتاه پذیرفته نیست مگرآنکه مربوط به سرویس‌دهنده‌یِ خودِ محتوا باشد (مثلاً t.co یا vrgl.ir)
                              • +
                              • در هر شماره فقط یک محتوا مربوط به صفحه‌یِ شخصیِ شما (ویرگول، بلاگ، یوتیوب و ...) پذیرفته می‌شود
                              • +
                              • چنانچه محتوای پیشنهادی مربوط به مسائل روابط عمومی یک شرکت است، با صلاحدید مدیران و تنها از وب سایت رسمی آن شرکت امکان پیشنهاد محتوا وجود دارد و نظرات کارمندان در صفحات شخصی معیار پذیرش محتوای مرتبط با روابط عمومی شرکت‌ها نیست
                              • +
                              • صحت و سقمِ محتوا بر عهده‌یِ نویسنده‌یِ آن است
                              • +
                              +

                              - در دستِ تدوین است.
                              -
                              (مشارکت در - تدوینِ قوانین) + مشارکت و نظر درباره قوانین

                              From 6eadbe5a7a763591f95429a0ad738cfd50f2473d Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sat, 1 Jan 2022 11:59:54 +0330 Subject: [PATCH 258/326] Add donation button (#393) --- index.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 92f716f..5147830 100644 --- a/index.html +++ b/index.html @@ -363,7 +363,7 @@

                              با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا function saveAnswer(isOk) { hideMessage(); - if(isOk) { + if (isOk) { document.cookie = `agreement=${isOk}; max-age=31536000; path=/`; } else { document.cookie = `agreement=${isOk}; max-age=86400; path=/`; @@ -400,6 +400,12 @@

                              با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا }); + + + From 6a642f9b06aa6c78bd6107419966b4a5a0343807 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sat, 1 Jan 2022 12:04:01 +0330 Subject: [PATCH 259/326] Update counter.php --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index f1eeaaa..cc85c51 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 8; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 9; return $newsletterNumber; } From 2c96cb59c73aab50cae893dfa00fb91616fd91fb Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Sat, 1 Jan 2022 08:45:59 +0000 Subject: [PATCH 260/326] Add Archive --- archives/num44.html | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 archives/num44.html diff --git a/archives/num44.html b/archives/num44.html new file mode 100644 index 0000000..bab782e --- /dev/null +++ b/archives/num44.html @@ -0,0 +1,75 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                              + Softwaretalks Logo +

                              خبرنامهٔ Softwaretalks

                              +

                              + شمارهٔ ۴۴ - شنبه، ۱۱ دی ۱۴۰۰ +

                              +
                              + +
                              +

                              + تأمین‌کنندگانِ محتوا در این شماره: + + امیر شکری، + + + حامد سعیدی. + + شما نیز می‌توانید مشارکت کنید. +

                              +
                              + + From 5d1b086e6338c3d592dfa5f2f39211c191e7d3a0 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sat, 1 Jan 2022 12:18:09 +0330 Subject: [PATCH 261/326] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 5147830..eb72715 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                              آرشیو خبرنامه‌های سال ۱۴۰۰

                                +
                              • خبرنامه شماره ۴۴ - شنبه، ۱۱ دی
                              • خبرنامه شماره ۴۳ - پنجشنبه، ۰۲ دی
                              • خبرنامه شماره ۴۲ - پنجشنبه، ۱۸ آذر
                              • خبرنامه شماره ۴۱ - جمعه، ۰۵ آذر
                              • From c2df515e4bca92770c9c5f59c67bf6d90d36ab73 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 7 Jan 2022 15:36:50 +0330 Subject: [PATCH 262/326] Update counter.php --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index cc85c51..10fd3a6 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 9; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 10; return $newsletterNumber; } From bd1e03a3e8646966e14ddbf1ef2b3f0f8608d5a0 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 7 Jan 2022 15:38:19 +0330 Subject: [PATCH 263/326] Update counter.php --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index 10fd3a6..f1eeaaa 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 10; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 8; return $newsletterNumber; } From f861614480c4eb9e96a3fdf47ddb570a4f52e2cb Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Fri, 7 Jan 2022 12:12:57 +0000 Subject: [PATCH 264/326] Add Archive --- archives/num45.html | 72 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 archives/num45.html diff --git a/archives/num45.html b/archives/num45.html new file mode 100644 index 0000000..63fbabb --- /dev/null +++ b/archives/num45.html @@ -0,0 +1,72 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                + Softwaretalks Logo +

                                خبرنامهٔ Softwaretalks

                                +

                                + شمارهٔ ۴۵ - جمعه، ۱۷ دی ۱۴۰۰ +

                                +
                                +
                                  +
                                • + ترجمه گروهی کتاب Django for Professionals
                                  بالاخره بعد از حدود ۴ ماه و با مشارکت ۲۲ نفر، ترجمه کتاب django for professional تموم شد و میتونید مطالعه کنیدش +
                                • +
                                • + همگام‌سازی alias ها
                                  در این نوشته روشی سریع و بدون وابستگی برای همگام‌سازی aliasها روی سیستم عامل‌های مختلف ارائه شده تا با استفاده از gist عمومی گیت‌هاب این همگام‌سازی انجام شود +
                                • +
                                • + حذف کن، ما برمی‌گردونیم! (دیسلایک‌های یوتیوب)
                                  درسته، اقدام عجیب یوتیوب (حذف شمارنده دیسلایک) ممکنه به نفع تولیدکننده‌های ویدیو باشه اما به نفع افرادی که دنبال محتوای باکیفیت در یوتیوب می‌گردن نیست! کافیه این افزونه که توی این مقاله معرفی کردم رو نصب کنی تا بتونی تعداد دیسلایک‌های ویدیوهایی که توی نسخه وب یوتیوب پخش می‌کنی رو ببینی. +
                                • +
                                +
                                +

                                + تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + حامد سعیدی، + + + علی کرباسی. + + شما نیز می‌توانید مشارکت کنید. +

                                +
                                + + From 7c9fa30dc48e7c9c3df419d4b6925dd087b4b125 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 7 Jan 2022 15:45:02 +0330 Subject: [PATCH 265/326] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index eb72715..62372e2 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                آرشیو خبرنامه‌های سال ۱۴۰۰

                                  +
                                • خبرنامه شماره ۴۵ - جمعه، ۱۷ دی
                                • خبرنامه شماره ۴۴ - شنبه، ۱۱ دی
                                • خبرنامه شماره ۴۳ - پنجشنبه، ۰۲ دی
                                • خبرنامه شماره ۴۲ - پنجشنبه، ۱۸ آذر
                                • From 7bbd4ac549a3d011b38ec4b21c7a34ce49b0e965 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 7 Jan 2022 15:47:39 +0330 Subject: [PATCH 266/326] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 62372e2..10d630e 100644 --- a/index.html +++ b/index.html @@ -325,8 +325,8 @@

                                  با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۷۷۳ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۷۷۳ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۷۸۷ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۷۸۷ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From c5b48b5c2f97ce36a09a870a80c0ce254ce496e3 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sat, 8 Jan 2022 12:07:56 +0330 Subject: [PATCH 267/326] Update README.md --- README.md | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index f0751ad..d49b478 100644 --- a/README.md +++ b/README.md @@ -25,10 +25,9 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. تا این لحظه ۵۱ نفر در تهیه محتوای هر هفته مشارکت کرده‌اند.
                                  - -ohmydevops -Hameds -amirshnll +ohmydevops +Hameds +amirshnll hassan-shahbazi Rahmanism ghost @@ -36,46 +35,46 @@ royapakzad vahidfathi alinaseri07 +AliKarbasiCom s-alielyasi ariaieboy afzouni ashkanRmk -AliKarbasiCom -amirmojiry VahidNaderi -asadise +amirmojiry SirwanAfifi +asadise pykello kokabi1365 irnb +DearRude numb95 mvahedii anvaari mahdiAkhi -DearRude -Cinorid +Gnkalk mahdithejedi -m2-farzan -alirezasalehizadeh +Cinorid +vghaderi +majidganji mayazdi -hamedsj -slashsbin -itshaadi iamvee -hhosseinioun -rashid2003 -Gnkalk +itshaadi omidpakdel -ShakibHabibi +rashid2003 +hhosseinioun +alirezasalehizadeh +slashsbin +hamedsj +xhdix +vahidbaghi POOYASP2 dozheiny -xhdix -vghaderi +m2-farzan markpash mohas hnaseri1990 -majidganji +ShakibHabibi mrmmg -Aliiior - +Aliiior
                                  From b76b5a73e58521f52a1564e4c56c649e6389701a Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 13 Jan 2022 08:34:40 +0000 Subject: [PATCH 268/326] Add Archive --- archives/num46.html | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 archives/num46.html diff --git a/archives/num46.html b/archives/num46.html new file mode 100644 index 0000000..c66b974 --- /dev/null +++ b/archives/num46.html @@ -0,0 +1,69 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                  + Softwaretalks Logo +

                                  خبرنامهٔ Softwaretalks

                                  +

                                  + شمارهٔ ۴٦ - پنجشنبه، ۲۳ دی ۱۴۰۰ +

                                  +
                                  +
                                    +
                                  • + کتاب رایگان ردهت برای مهندسان ابرزی
                                    اگر به دنیای ابر علاقه دارید (یا حتی ندارید) خوندن این کتاب که مفید و خلاصه هم هستش، میتونه شما رو با تجربیات دیگر مهندسان آشنا کنه و شاید بعضی نکاتش به کارهای شما نیز کمک کنه. عنوان این کتاب اینه: ۹۷ چیزی که هر مهندس کلود(ابر) باید بدونه؛ که شامل تجربیات افراد مختلفی میشه و خوندنش خالی از لطف نیست. +
                                  • +
                                  • + مخزن‌های ایرانی در یک جا
                                    اخیرا پروژه‌ای رو دیدم که تلاش میکنه مخازن پروژه‌های ایرانی‌ها رو قابل‌دسترس‌تر کنه و با فیلترهایی که داره جستجو کردن و پیدا کردن پروژه‌ها و مخازن گیتهابی ایرانی‌ها رو ساده‌تر کنه. +
                                  • +
                                  • + سوالات فنی مصاحبه شرکت علی‌بابا
                                    در این مخزن گیتهابی، بچه‌های علی‌بابا سوالات فنی مصاحبه‌ها و مفاهیم کلی که در مصاحبه فنی پرسیده میشه رو مطرح کردند که حتی اگر قصد مصاحبه و کار کردن در علی بابا رو ندارید، مرورش میتونه کاربردی و مفید باشه. +
                                  • +
                                  • + مسیر راه یادگیری ASP.NET Core
                                    معین تاجیک عزیز در این مخزن گیتهابی خیلی دقیق و مفصل به مسیر یادگیری تکنولوژی‌ها، ابزارها و مفاهیم دنیای .Net Core پرداخته. +
                                  • +
                                  +
                                  +

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

                                  +
                                  + + From 4f558dd313037c44c70bd59ec20c9b6c489ba093 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 13 Jan 2022 12:06:01 +0330 Subject: [PATCH 269/326] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 10d630e..1edca46 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                  آرشیو خبرنامه‌های سال ۱۴۰۰

                                    +
                                  • خبرنامه شماره ۴٦ - پنجشنبه، ۲۳ دی
                                  • خبرنامه شماره ۴۵ - جمعه، ۱۷ دی
                                  • خبرنامه شماره ۴۴ - شنبه، ۱۱ دی
                                  • خبرنامه شماره ۴۳ - پنجشنبه، ۰۲ دی
                                  • From d1d95903e1a774285123c8a778d29c4f9e7bd62c Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Mon, 17 Jan 2022 00:58:26 +0330 Subject: [PATCH 270/326] 800 subscriber :rocket: :tada: --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 1edca46..0d163dd 100644 --- a/index.html +++ b/index.html @@ -326,8 +326,8 @@

                                    با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۷۸۷ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۷۸۷ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۸۰۰ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۸۰۰ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From ef9e19de1bccb2b84e42229fbf81746ef952ce59 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 20 Jan 2022 09:04:10 +0000 Subject: [PATCH 271/326] Add Archive --- archives/num47.html | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 archives/num47.html diff --git a/archives/num47.html b/archives/num47.html new file mode 100644 index 0000000..b17cf12 --- /dev/null +++ b/archives/num47.html @@ -0,0 +1,75 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                    + Softwaretalks Logo +

                                    خبرنامهٔ Softwaretalks

                                    +

                                    + شمارهٔ ۴۷ - پنجشنبه، ۳۰ دی ۱۴۰۰ +

                                    +
                                    +
                                      +
                                    • + لذت رمزنگاری
                                      لذت رمزنگاری (The Joy of Cryptography) یک کتاب رایگان درباره رمزنگاری است که به دانشجوها (و عموم علاقمندان) کمک می‌کنه با مفاهیم پایه‌ای حوزه رمزنگاری آشنا بشوند. علاوه بر مطالعه آنلاین امکان دانلود نسخه PDF این کتاب هم از سایت هست. +
                                    • +
                                    • + آیا یک ستون جیسونی برای ذخیره‌سازی تعداد زیادی فیلد مرتبط مناسب است؟
                                      فرض کنید برای یک کاربر باید انواع مختلفی از اطلاعات را در یک پایگاه داده‌ی رابطه‌ای ذخیره کنید. طراحی یک ستون جیسونی راهکار جالبی به نظر می‌رسد اما در این مطلب نویسنده این راهکار را به چالش می‌کشد. +
                                    • +
                                    • + لاراول ۹ در راه
                                      احتمالا یکی از اخبار مهم برای اکوسیستم PHP اخبار لاراول و نسخه‌های جدیدش و تغییراتشه؛ پس اگر شما هم دوست دارید بدونید چه خبره، میتونید ببینید قراره در لاراول ۹ چه تغییراتی رو شاهد باشیم. +
                                    • +
                                    • + Conceptهای پیشرفته git که باید بدانید
                                      در این نوشته تعدادی از دستورات پیشرفته مربوط به git که فراتر از کارهای معمول نظیر pull و push و commit هستند معرفی شده است +
                                    • +
                                    +
                                    +

                                    + تأمین‌کنندگانِ محتوا در این شماره: + + حامد سعیدی، + + + امیرحسین مجیری، + + + امیرحسین بقایی. + + شما نیز می‌توانید مشارکت کنید. +

                                    +
                                    + + From 34a151e1dd2548c2f487068c417e1543cc71b2b3 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 20 Jan 2022 12:36:15 +0330 Subject: [PATCH 272/326] Update index.html --- index.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 0d163dd..6f479ba 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                    آرشیو خبرنامه‌های سال ۱۴۰۰

                                      +
                                    • خبرنامه شماره ۴۷ - پنجشنبه، ۳۰ دی
                                    • خبرنامه شماره ۴٦ - پنجشنبه، ۲۳ دی
                                    • خبرنامه شماره ۴۵ - جمعه، ۱۷ دی
                                    • خبرنامه شماره ۴۴ - شنبه، ۱۱ دی
                                    • @@ -326,8 +327,8 @@

                                      با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۸۰۰ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۸۰۰ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۸۰۲ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۸۰۲ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From 2337edb62bc9632e30265d4d0dd249a7236a9865 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 27 Jan 2022 07:52:48 +0000 Subject: [PATCH 273/326] Add Archive --- archives/num48.html | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 archives/num48.html diff --git a/archives/num48.html b/archives/num48.html new file mode 100644 index 0000000..6f29f8c --- /dev/null +++ b/archives/num48.html @@ -0,0 +1,75 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                      + Softwaretalks Logo +

                                      خبرنامهٔ Softwaretalks

                                      +

                                      + شمارهٔ ۴۸ - پنجشنبه، ۰۷ بهمن ۱۴۰۰ +

                                      +
                                      +
                                        +
                                      • + اگر php کار میکنید این وبلاگ براتون میتونه جالب باشه
                                        اگر برنامه‌نویس PHP هستید، وبلاگ آقای Doeke Norg مطالب جالبی درباره پیاده‌سازی برخی الگوریتم‌ها و دیزاین پترن‌ها در PHP داره که خوندنش میتونه برای افراد تازه‌کار یا حتی با تجربه جالب باشه. +
                                      • +
                                      • + امبدینگ متن و کد در اوپن ای‌آی
                                        شرکت OpenAi به تازگی در API خود ویژگی جدیدی تحت عنوان code and text embeddings معرفی کرده که به کمک آن بحثهای text similarity راحت‌تر و سریعتر شده است. +
                                      • +
                                      • + یادگیری گیت پایه تا حرفه‌ای با یک بازی مرحله‌ای
                                        این سایت با گرافیک و بازی مرحله به مرحله کمک می‌کند که گیت را بهتر یاد بگیریم. چه در کار با گیت تازه‌کار باشید چه حرفه‌ای، این سایت می‌تواند برای شما مفید باشد. +
                                      • +
                                      • + تجربه‌نگاری یک مهندس نرم‌افزار
                                        چند وقت پیش توی توییتر دیدم یک مهندس نرم‌افزار ایرانی داره تجربیات فنی کارش و زندگی خودش رو در سندی جمع‌آوری میکنه. برای من مفید بود. به نظرم میتونه برای بقیه هم نکات جالبی داشته باشه. اگر به این سبک مطالب علاقه دارید توصیه میکنم یک نگاهی بندازین بهش +
                                      • +
                                      +
                                      +

                                      + تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + سینا آریا، + + + امیرحسین مجیری. + + شما نیز می‌توانید مشارکت کنید. +

                                      +
                                      + + From a806158896a1c8e738eb03e668f67671c740ae31 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 27 Jan 2022 11:25:17 +0330 Subject: [PATCH 274/326] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 6f479ba..95f3c0d 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                      آرشیو خبرنامه‌های سال ۱۴۰۰

                                        +
                                      • خبرنامه شماره ۴۸ - پنجشنبه، ۰۷ بهمن
                                      • خبرنامه شماره ۴۷ - پنجشنبه، ۳۰ دی
                                      • خبرنامه شماره ۴٦ - پنجشنبه، ۲۳ دی
                                      • خبرنامه شماره ۴۵ - جمعه، ۱۷ دی
                                      • From 18c854b592e2087448c24f3a8e528349a30d4816 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 24 Feb 2022 11:06:42 +0330 Subject: [PATCH 275/326] Update counter.php --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index f1eeaaa..f5b80e2 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 8; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 11; return $newsletterNumber; } From 525874ade0c595d79f46a9add0634b226a365a4e Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 24 Feb 2022 07:47:17 +0000 Subject: [PATCH 276/326] Add Archive --- archives/num49.html | 82 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 archives/num49.html diff --git a/archives/num49.html b/archives/num49.html new file mode 100644 index 0000000..8d06762 --- /dev/null +++ b/archives/num49.html @@ -0,0 +1,82 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                        + Softwaretalks Logo +

                                        خبرنامهٔ Softwaretalks

                                        +

                                        + شمارهٔ ۴۹ - پنجشنبه، ۰۵ اسفند ۱۴۰۰ +

                                        +
                                        +
                                          +
                                        • + مقایسه ایمیج‌های پایه در داکر
                                          در این مطلب نویسنده تلاش کرده ایمیج‌های پایه داکر رو با هم مقایسه کنه و از زوایای مختلف به معایب و مزایای هر کدوم بپردازه. +
                                        • +
                                        • + تجربه پیاده سازی Clean Architecture در صباویژن
                                          اگر مهندس نرم‌افزار هستید، ممکن است خیلی در مورد معماری‌ها مطالعه کرده باشید. می‌توان به معماری Layered به عنوان یکی از محبوب‌ترین معماری‌ها اشاره کرد. معماری‌های زیادی با همین ایده معرّفی شده‌اند. معماری Clean از جمله‌ی همین‌ معماری‌ها است. +ما در صباویژن به تازگی معماری کلین را برای سرویس بکند پیاده‌سازی کرده‌ایم. در این نوشته به صورت مختصر از تجربه‌ها، چرایی و چالش‌هایی که برایمان وجود داشته نوشته‌ام. +
                                        • +
                                        • + کنفرانس اوراکل با موضوع جاوا 18
                                          شرکت اوراکل وبیناری با موضوع جاوا 18 و قابلیتهای جدید آن در تاریخ 24 مارس (4 فروردین) برگزار می‌کند. ثبت نام در این وبینار مجانی است ولی اوراکل به خاطر تحریمهای ایران، امکان وارد کردن اطلاعات ایرانی ندارد. از طرفی میشه اطلاعات کشورهای همسایه رو بدون مشکل موقع ثبت نام وارد کرد. +
                                        • +
                                        • + پیغام خطای خوب چی داره؟
                                          این نوشته که در ردیت و هکرنیوز هم در موردش بحث شده درباره اینه که اجزای یک پیغام خطای خوب چه چیزهایی است و همینطور از Best Practiceها در این حوزه برامون گفته +
                                        • +
                                        • + با این دانش‌ها می‌توانید از آمازون پیشنهاد شغلی فرانت بگیرید
                                          اگر در فرآیند مصاحبه به عنوان فرانت اند دولوپر هستید کافیه این cheatsheet رو مطالعه کنید و دانشتون رو برای کار با شرکت های بزرگتر تطبیق بدین +
                                        • +
                                        +
                                        +

                                        + تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + سینا آریا، + + + حامد سعیدی، + + + امیر شکری. + + شما نیز می‌توانید مشارکت کنید. +

                                        +
                                        + + From 67e3972fa7f2776525a96dd698bc308c028cca42 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 24 Feb 2022 11:24:46 +0330 Subject: [PATCH 277/326] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 95f3c0d..5e87ceb 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                        آرشیو خبرنامه‌های سال ۱۴۰۰

                                          +
                                        • خبرنامه شماره ۴۹ - پنجشنبه، ۰۵ اسفند
                                        • خبرنامه شماره ۴۸ - پنجشنبه، ۰۷ بهمن
                                        • خبرنامه شماره ۴۷ - پنجشنبه، ۳۰ دی
                                        • خبرنامه شماره ۴٦ - پنجشنبه، ۲۳ دی
                                        • From 3cec0bd72b184e920b7589a5e12bd29bceb7eb98 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Wed, 2 Mar 2022 21:22:32 +0330 Subject: [PATCH 278/326] Update README.md --- README.md | 105 +++++++++++++++++++++++++++--------------------------- 1 file changed, 53 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index d49b478..ad0814a 100644 --- a/README.md +++ b/README.md @@ -25,56 +25,57 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. تا این لحظه ۵۱ نفر در تهیه محتوای هر هفته مشارکت کرده‌اند.
                                          -ohmydevops -Hameds -amirshnll -hassan-shahbazi -Rahmanism -ghost -mokarchi -royapakzad -vahidfathi -alinaseri07 -AliKarbasiCom -s-alielyasi -ariaieboy -afzouni -ashkanRmk -VahidNaderi -amirmojiry -SirwanAfifi -asadise -pykello -kokabi1365 -irnb -DearRude -numb95 -mvahedii -anvaari -mahdiAkhi -Gnkalk -mahdithejedi -Cinorid -vghaderi -majidganji -mayazdi -iamvee -itshaadi -omidpakdel -rashid2003 -hhosseinioun -alirezasalehizadeh -slashsbin -hamedsj -xhdix -vahidbaghi -POOYASP2 -dozheiny -m2-farzan -markpash -mohas -hnaseri1990 -ShakibHabibi -mrmmg -Aliiior +ohmydevops +Hameds +amirshnll +hassan-shahbazi +Rahmanism +ghost +mokarchi +royapakzad +vahidfathi +alinaseri07 +AliKarbasiCom +amirmojiry +s-alielyasi +ariaieboy +afzouni +ashkanRmk +asadise +pykello +VahidNaderi +SirwanAfifi +irnb +kokabi1365 +numb95 +SinaArya1 +anvaari +mvahedii +mahdiAkhi +DearRude +POOYASP2 +m2-farzan +Cinorid +mayazdi +slashsbin +omidpakdel +rashid2003 +Aliiior +xhdix +mahdithejedi +iamvee +alirezasalehizadeh +itshaadi +Gnkalk +majidganji +vahidbaghi +dozheiny +vghaderi +hhosseinioun +markpash +mohas +hnaseri1990 +hamedsj +mrmmg +ShakibHabibi
                                          From d19148aac4423a9165abe8d5586b1e71f4073b6c Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Wed, 2 Mar 2022 21:23:18 +0330 Subject: [PATCH 279/326] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ad0814a..3cbc78e 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ ## مشارکت‌کنندگان به ترتیب تعداد پست‌های ارسالی -برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. تا این لحظه ۵۱ نفر در تهیه محتوای هر هفته مشارکت کرده‌اند. +برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. تا این لحظه ۵۳ نفر در تهیه محتوای هر هفته مشارکت کرده‌اند.
                                          ohmydevops From c3be507dcfb7549b088ea51d8e49c4f0cdc9ef43 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 10 Mar 2022 16:56:51 +0330 Subject: [PATCH 280/326] Update counter.php --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index f5b80e2..f8f4136 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 11; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 12; return $newsletterNumber; } From 3c28ecbeb9d77eb0126a3009d6c46b81fe6f0555 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 10 Mar 2022 13:29:21 +0000 Subject: [PATCH 281/326] Add Archive --- archives/num50.html | 78 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 archives/num50.html diff --git a/archives/num50.html b/archives/num50.html new file mode 100644 index 0000000..c474195 --- /dev/null +++ b/archives/num50.html @@ -0,0 +1,78 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                          + Softwaretalks Logo +

                                          خبرنامهٔ Softwaretalks

                                          +

                                          + شمارهٔ ۵۰ - پنجشنبه، ۱۹ اسفند ۱۴۰۰ +

                                          +
                                          + +
                                          +

                                          + تأمین‌کنندگانِ محتوا در این شماره: + + وحید فتحی، + + + حامد سعیدی، + + + امیر شکری. + + شما نیز می‌توانید مشارکت کنید. +

                                          +
                                          + + From 0747d73a14ae0fa6f17599206a070e81fe642fa3 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 10 Mar 2022 17:00:53 +0330 Subject: [PATCH 282/326] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 5e87ceb..04f7394 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                          آرشیو خبرنامه‌های سال ۱۴۰۰

                                            +
                                          • خبرنامه شماره ۵۰ - پنجشنبه، ۱۹ اسفند
                                          • خبرنامه شماره ۴۹ - پنجشنبه، ۰۵ اسفند
                                          • خبرنامه شماره ۴۸ - پنجشنبه، ۰۷ بهمن
                                          • خبرنامه شماره ۴۷ - پنجشنبه، ۳۰ دی
                                          • From 2eb0452479fe9ff7f1024106bea51fca4f7b362a Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 10 Mar 2022 17:02:01 +0330 Subject: [PATCH 283/326] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 04f7394..941a887 100644 --- a/index.html +++ b/index.html @@ -330,8 +330,8 @@

                                            با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۸۰۲ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۸۰۲ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۸۰۷ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۸۰۷ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From 92e76b698b3e9ac4e8cb753815ee1c01491c77eb Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 10 Mar 2022 17:03:19 +0330 Subject: [PATCH 284/326] Update README.md --- README.md | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 3cbc78e..70cb288 100644 --- a/README.md +++ b/README.md @@ -26,51 +26,51 @@
                                            ohmydevops -Hameds -amirshnll +Hameds +amirshnll hassan-shahbazi Rahmanism ghost mokarchi royapakzad -vahidfathi -alinaseri07 +vahidfathi AliKarbasiCom amirmojiry +alinaseri07 s-alielyasi ariaieboy afzouni ashkanRmk -asadise -pykello VahidNaderi SirwanAfifi -irnb +asadise +pykello kokabi1365 -numb95 +irnb +mvahedii +DearRude SinaArya1 +numb95 anvaari -mvahedii mahdiAkhi -DearRude -POOYASP2 -m2-farzan -Cinorid +Gnkalk +mahdithejedi +vahidbaghi +omidpakdel mayazdi slashsbin -omidpakdel +iamvee +itshaadi +Cinorid rashid2003 Aliiior -xhdix -mahdithejedi -iamvee alirezasalehizadeh -itshaadi -Gnkalk +m2-farzan +vghaderi +xhdix majidganji -vahidbaghi +POOYASP2 dozheiny -vghaderi hhosseinioun markpash mohas From e9ce1156b15a1e35cece8b989062a0c036300a8e Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 28 Apr 2022 12:29:44 +0430 Subject: [PATCH 285/326] Update counter.php --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index f8f4136..c038076 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 12; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 18; return $newsletterNumber; } From 9d0d4f7d5545b5da00ed8979e35f27172ac52d15 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 28 Apr 2022 08:03:28 +0000 Subject: [PATCH 286/326] Add Archive --- archives/num51.html | 81 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 archives/num51.html diff --git a/archives/num51.html b/archives/num51.html new file mode 100644 index 0000000..44ea1ee --- /dev/null +++ b/archives/num51.html @@ -0,0 +1,81 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                            + Softwaretalks Logo +

                                            خبرنامهٔ Softwaretalks

                                            +

                                            + شمارهٔ ۵۱ - پنجشنبه، ۰۸ اردیبهشت ۱۴۰۱ +

                                            +
                                            +
                                              +
                                            • + در نام گذاری از «واحد» استفاده کنید
                                              نویسنده پیشنهاد می‌کنه برای خوانایی بیشتر کد و جلوگیری از ابهامات، در نام‌ گذاری متغیرها و خروجی‌ها، واحدشون رو هم ذکر کنیم. و برای مشخص شدن صورت مساله و راه حل کدهای نمونه‌ای رو هم مثال می‌زنه +
                                            • +
                                            • + حمله از طریق کامپایلر
                                              تا به حال به این فکر کردید که چی می‌شه اگر کامپایلر موقع کامپایل یک backdoor به کد شما تزریق کنه؟ آیا می‌تونیم تشخیصش بدیم؟ در این نوشته، نویسنده این مساله رو با زیر ۱۰۰ خط کد و یک دمو نشون داده. نکات؟ اپن‌سورس بودن کامپایلر کمکی نمی‌کنه و هر چه سطح برنامه‌‌ میاد پایین‌تر پیدا کردن چنین مسائلی دشوارتر می‌شه +
                                            • +
                                            • + گیت‌هاب چطور چالش برنامه‌نویسی در مصاحبه‌های فنی رو به انجام می‌رسونه
                                              گیت‌هاب توضیح میده که چطور سعی می‌کنه ارزیابی یک متقاضی در مصاحبه‌های فنی رو تا جای ممکن به روشی که کارها در خود گیت‌هاب پیش میرن شبیه کنه. این مقاله فرآیند تکلیف برنامه‌نویسی‌ای رو که به هر متقاضی داده میشه شرح میده. +
                                            • +
                                            • + معماری تمیز در گولنگ
                                              امروزه هر برنامه نویسی میدونه که اگر میخواد پروژه اش در آینده به بن بست نخوره، و بتونه به راحتی اون رو توسعه بده باید کدش منظم و قابل خواندن باشه توی این مقاله میخوایم باهم مفاهیم معماری تمیز رو توی یه اپلیکیشن گولنگی پیاده سازی کنیم. +
                                            • +
                                            • + با کمک گیت هاب وصیت نامه بسازید
                                              داشتن وصیت نامه در هر شرایطی خوبه مخصوصا وقتی ارسال یک متن از طرف شما باشه برای افرادی که دوست دارید بعد از مرگ شما از این اتفاق با خبر بشن. در این پروژه با بررسی فعالیت های گیت هابتون و تغییر ناگهانی اون در یک مدت خاص یک پیام برای لیست مورد نظر خودتون بفرستید +
                                            • +
                                            +
                                            +

                                            + تأمین‌کنندگانِ محتوا در این شماره: + + حامد سعیدی، + + + رضا غریبی، + + + محمد عباسی، + + + امیر شکری. + + شما نیز می‌توانید مشارکت کنید. +

                                            +
                                            + + From f2a4e89266637b70225ebda73bd0f0c1d46305e2 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 28 Apr 2022 13:51:46 +0430 Subject: [PATCH 287/326] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 941a887..e11df03 100644 --- a/index.html +++ b/index.html @@ -330,8 +330,8 @@

                                            با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۸۰۷ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۸۰۷ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۹۲۷ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۹۲۷ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From f1d5b41e27ffeb6d4c53525908cecc15365d97e9 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 28 Apr 2022 13:53:04 +0430 Subject: [PATCH 288/326] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index e11df03..2662b94 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                            آرشیو خبرنامه‌های سال ۱۴۰۰

                                              +
                                            • خبرنامه شماره ۵۱ - پنجشنبه، ۰۸ اردیبهشت
                                            • خبرنامه شماره ۵۰ - پنجشنبه، ۱۹ اسفند
                                            • خبرنامه شماره ۴۹ - پنجشنبه، ۰۵ اسفند
                                            • خبرنامه شماره ۴۸ - پنجشنبه، ۰۷ بهمن
                                            • From 989bff133699cd239b89bc5cac64a4127dedfef0 Mon Sep 17 00:00:00 2001 From: Reza Gharibi Date: Sat, 30 Apr 2022 12:57:08 +0430 Subject: [PATCH 289/326] Fix archive year (#434) --- index.html | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 2662b94..e1090bb 100644 --- a/index.html +++ b/index.html @@ -120,19 +120,22 @@

                                            +

                                            آرشیو خبرنامه‌های سال ۱۴۰۱

                                            +
                                              +
                                            • خبرنامه شماره ۵۱ - پنجشنبه، ۰۸ اردیبهشت
                                            • +

                                            آرشیو خبرنامه‌های سال ۱۴۰۰

                                              -
                                            • خبرنامه شماره ۵۱ - پنجشنبه، ۰۸ اردیبهشت
                                            • -
                                            • خبرنامه شماره ۵۰ - پنجشنبه، ۱۹ اسفند
                                            • -
                                            • خبرنامه شماره ۴۹ - پنجشنبه، ۰۵ اسفند
                                            • -
                                            • خبرنامه شماره ۴۸ - پنجشنبه، ۰۷ بهمن
                                            • +
                                            • خبرنامه شماره ۵۰ - پنجشنبه، ۱۹ اسفند
                                            • +
                                            • خبرنامه شماره ۴۹ - پنجشنبه، ۰۵ اسفند
                                            • +
                                            • خبرنامه شماره ۴۸ - پنجشنبه، ۰۷ بهمن
                                            • خبرنامه شماره ۴۷ - پنجشنبه، ۳۰ دی
                                            • -
                                            • خبرنامه شماره ۴٦ - پنجشنبه، ۲۳ دی
                                            • -
                                            • خبرنامه شماره ۴۵ - جمعه، ۱۷ دی
                                            • +
                                            • خبرنامه شماره ۴٦ - پنجشنبه، ۲۳ دی
                                            • +
                                            • خبرنامه شماره ۴۵ - جمعه، ۱۷ دی
                                            • خبرنامه شماره ۴۴ - شنبه، ۱۱ دی
                                            • خبرنامه شماره ۴۳ - پنجشنبه، ۰۲ دی
                                            • -
                                            • خبرنامه شماره ۴۲ - پنجشنبه، ۱۸ آذر
                                            • -
                                            • خبرنامه شماره ۴۱ - جمعه، ۰۵ آذر
                                            • +
                                            • خبرنامه شماره ۴۲ - پنجشنبه، ۱۸ آذر
                                            • +
                                            • خبرنامه شماره ۴۱ - جمعه، ۰۵ آذر
                                            • خبرنامه شماره ۴۰ - پنجشنبه، ۲۷ آبان
                                            • From cce4d271633fecb3df39c4fc1fa303c7438493b6 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 2 Jun 2022 06:25:12 +0000 Subject: [PATCH 290/326] Add Archive --- archives/num56.html | 66 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 archives/num56.html diff --git a/archives/num56.html b/archives/num56.html new file mode 100644 index 0000000..8adf6ff --- /dev/null +++ b/archives/num56.html @@ -0,0 +1,66 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                              + Softwaretalks Logo +

                                              خبرنامهٔ Softwaretalks

                                              +

                                              + شمارهٔ ۵٦ - پنجشنبه، ۱۲ خرداد ۱۴۰۱ +

                                              +
                                              +
                                                +
                                              • + یک مرورگر به من بده تا بهت شِل بدم
                                                در این مقاله در این مورد صحبت شده که اگر فقط یک مروگر داشته باشیم چطوری می‌توانیم نفوذ انجام بدیم و چه چیزهایی رو درباره پروتکل‌های مورد استفاده مرورگرها که ممکنه باعث سوء استفاده بشه باید بدونیم +
                                              • +
                                              • + چطور APIهای بهتری طراحی کنیم
                                                این یک نوشته نسبتاً طولانی شامل پیشنهادهای خوب برای نوشتن و بهبود طراحی API هاست و در طول این نوشته درباره اشتباهات معمول و رویکردهای نادرست طراحی هم صحبت می‌شود. +
                                              • +
                                              • + کارهای جالبی که با github.dev می‌توان انجام داد
                                                در این مقاله ۱۰ کاری که مستقیم یا به کمک اکستنشن‌ها می‌توان با نسخه تحت وب ادیتور گیت‌هاب انجام داد معرفی شده است. +
                                              • +
                                              +
                                              +

                                              + تأمین‌کنندگانِ محتوا در این شماره: + + حامد سعیدی. + + شما نیز می‌توانید مشارکت کنید. +

                                              +
                                              + + From 30d1f3782a9a3a9cbce25aec97a30889e1274223 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Tue, 7 Jun 2022 16:38:07 +0430 Subject: [PATCH 291/326] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index e1090bb..b97a6a7 100644 --- a/index.html +++ b/index.html @@ -126,6 +126,7 @@

                                              آرشیو خبرنامه‌های سال ۱۴۰۱

                                            آرشیو خبرنامه‌های سال ۱۴۰۰

                                              +
                                            • خبرنامه شماره ۵۱ - پنجشنبه، ۱۲ خرداد
                                            • خبرنامه شماره ۵۰ - پنجشنبه، ۱۹ اسفند
                                            • خبرنامه شماره ۴۹ - پنجشنبه، ۰۵ اسفند
                                            • خبرنامه شماره ۴۸ - پنجشنبه، ۰۷ بهمن
                                            • From ebd4353773c13d57ec779b57fa5687350b11bdd9 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Tue, 7 Jun 2022 16:41:01 +0430 Subject: [PATCH 292/326] Update and rename num56.html to num52.html --- archives/{num56.html => num52.html} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename archives/{num56.html => num52.html} (98%) diff --git a/archives/num56.html b/archives/num52.html similarity index 98% rename from archives/num56.html rename to archives/num52.html index 8adf6ff..e549d25 100644 --- a/archives/num56.html +++ b/archives/num52.html @@ -39,7 +39,7 @@ >

                                              خبرنامهٔ Softwaretalks

                                              - شمارهٔ ۵٦ - پنجشنبه، ۱۲ خرداد ۱۴۰۱ + شمارهٔ ۵۲ - پنجشنبه، ۱۲ خرداد ۱۴۰۱


                                                From 62c6254f2c42301a947f8e3a933426ac9521eadc Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Tue, 7 Jun 2022 16:42:16 +0430 Subject: [PATCH 293/326] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index b97a6a7..16498c6 100644 --- a/index.html +++ b/index.html @@ -122,11 +122,11 @@

                                                آرشیو خبرنامه‌های سال ۱۴۰۱

                                                  -
                                                • خبرنامه شماره ۵۱ - پنجشنبه، ۰۸ اردیبهشت
                                                • +
                                                • خبرنامه شماره ۵۲ - پنجشنبه، ۰۸ اردیبهشت
                                                • +
                                                • خبرنامه شماره ۵۱ - پنجشنبه، ۱۲ خرداد

                                                آرشیو خبرنامه‌های سال ۱۴۰۰

                                                  -
                                                • خبرنامه شماره ۵۱ - پنجشنبه، ۱۲ خرداد
                                                • خبرنامه شماره ۵۰ - پنجشنبه، ۱۹ اسفند
                                                • خبرنامه شماره ۴۹ - پنجشنبه، ۰۵ اسفند
                                                • خبرنامه شماره ۴۸ - پنجشنبه، ۰۷ بهمن
                                                • From 4f62ae65b65cc86c90d1ef8dd595365831956a14 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Tue, 7 Jun 2022 16:45:09 +0430 Subject: [PATCH 294/326] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 16498c6..d570e0f 100644 --- a/index.html +++ b/index.html @@ -335,8 +335,8 @@

                                                  با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۹۲۷ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۹۲۷ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۹۴۱ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۹۴۱ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From 157e596c2e2d0b3a0d4b75bd79807189f1b78084 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 9 Jun 2022 05:35:18 +0000 Subject: [PATCH 295/326] Add Archive --- archives/num57.html | 72 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 archives/num57.html diff --git a/archives/num57.html b/archives/num57.html new file mode 100644 index 0000000..8bd9d82 --- /dev/null +++ b/archives/num57.html @@ -0,0 +1,72 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                  + Softwaretalks Logo +

                                                  خبرنامهٔ Softwaretalks

                                                  +

                                                  + شمارهٔ ۵۷ - پنجشنبه، ۱۹ خرداد ۱۴۰۱ +

                                                  +
                                                  +
                                                    +
                                                  • + به معماری پیچیده نیازی ندارید، بعضی از مزایای معماری ساده نرم‌افزار
                                                    در این مقاله از شرکتی 1.7 میلیاردی که یک برنامه CRUD با ساده‌ترین و استانداردترین معماری ممکن رو داره صحبت شده: یک monolith پایتون روی Postgres! بدون توجه به ترندها و کادوپیچی معماری‌های پیچیده درباره معماری می‌شه تصمیم گرفت. +
                                                  • +
                                                  • + چطور UTF-8 ایموجی 😂 را به F09F9882 تبدیل می‌کند؟
                                                    این مقاله یک توضیح گویا در مورد UTF-8 و شیوه کار آن داده است که برای کسانی که علاقمند به درک چگونگی کارکردش هستند بسیار مفید است. +
                                                  • +
                                                  • + کتابچه JWT
                                                    در این کتابچه رایگان، توضیحات کاملی درباره مزایا و معایب استفاده از JWT و چگونگی ساخت و استفاده از آن‌ها آمده است. +
                                                  • +
                                                  • + چطور هلم‌چارت‌ها رو مدیریت کنیم؟
                                                    نگه‌داشتن هلم چارت‌ها اگر بدون سازوکار مشخصی باشه میتونه تبدیل به دردسر بشه. در این مطلب نویسنده تلاش کرده راه‌حلی که خودش در شرکتش استفاده میکنه رو توضیح بده تا بتونیم ما هم ازش ایده بگیریم و اگر به کارمون اومد استفاده کنیم. +
                                                  • +
                                                  +
                                                  +

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

                                                  +
                                                  + + From f1b0e9182eec2e2f1cc329b50d406cf0703d8822 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 16 Jun 2022 09:03:12 +0430 Subject: [PATCH 296/326] Update counter.php --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index c038076..2eab7d8 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -8,7 +8,7 @@ function newsletterCounter(): int // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. - $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 18; + $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 23; return $newsletterNumber; } From f7101502aeb9d3a22785aa0d26b8502111e4bb7f Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 16 Jun 2022 09:04:49 +0430 Subject: [PATCH 297/326] -- --- src/modules/counter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/counter.php b/src/modules/counter.php index 2eab7d8..0de6af0 100644 --- a/src/modules/counter.php +++ b/src/modules/counter.php @@ -7,7 +7,7 @@ function newsletterCounter(): int $now = Carbon::now(); // This is our first posting date. (number 1) $newsletterStartDate = $now->createFromDate(2021, 01, 02); - // minus 6, because we did not send the newsletter for 4 weeks in Farvardin 1400 & 2 week in Mordad 1400. + // minus 23, because we did not send the newsletter for 23 weeks $newsletterNumber = (int)(($newsletterStartDate->diffInWeeks($now)) + 1) - 23; return $newsletterNumber; From 21fb2bdba52d735e9f96707ba76f0f1e57dd719b Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 16 Jun 2022 04:36:44 +0000 Subject: [PATCH 298/326] Add Archive --- archives/num53.html | 66 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 archives/num53.html diff --git a/archives/num53.html b/archives/num53.html new file mode 100644 index 0000000..f5ab0a6 --- /dev/null +++ b/archives/num53.html @@ -0,0 +1,66 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                  + Softwaretalks Logo +

                                                  خبرنامهٔ Softwaretalks

                                                  +

                                                  + شمارهٔ ۵۳ - پنجشنبه، ۲٦ خرداد ۱۴۰۱ +

                                                  +
                                                  + +
                                                  +

                                                  + تأمین‌کنندگانِ محتوا در این شماره: + + حامد سعیدی. + + شما نیز می‌توانید مشارکت کنید. +

                                                  +
                                                  + + From 6a617b41f814f0d71406f987ebd2c9feecbe8f1a Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 16 Jun 2022 09:13:42 +0430 Subject: [PATCH 299/326] Add archive --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index d570e0f..71c380f 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                                  آرشیو خبرنامه‌های سال ۱۴۰۱

                                                    +
                                                  • خبرنامه شماره ۵۳ - پنجشنبه، ۲٦ خرداد
                                                  • خبرنامه شماره ۵۲ - پنجشنبه، ۰۸ اردیبهشت
                                                  • خبرنامه شماره ۵۱ - پنجشنبه، ۱۲ خرداد
                                                  From 292f834d76a47002f525c1f5898ae656928327f2 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 23 Jun 2022 05:48:21 +0000 Subject: [PATCH 300/326] Add Archive --- archives/num54.html | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 archives/num54.html diff --git a/archives/num54.html b/archives/num54.html new file mode 100644 index 0000000..410ad1e --- /dev/null +++ b/archives/num54.html @@ -0,0 +1,69 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                  + Softwaretalks Logo +

                                                  خبرنامهٔ Softwaretalks

                                                  +

                                                  + شمارهٔ ۵۴ - پنجشنبه، ۰۲ تیر ۱۴۰۱ +

                                                  +
                                                  +
                                                    +
                                                  • + چرا SELECT * برای کارآیی SQL بد است؟
                                                    در این مطلب مفصل درباره دلایل بد بودن SELECT * برای performance در SQL صحبت شده و موارد مختلفی از افزایش ترافیک شبکه تا افزایش مصرف CPU روی سرور تشریح شده است +
                                                  • +
                                                  • + ساده‌ترین راهنمای .bashrc
                                                    این مقاله ضمن بررسی موارد ابتدایی bash درباره متغیرها و رشته‌ها و اتوماسیون به کمک bash توضیح می‌دهد +
                                                  • +
                                                  • + پردازش تصویر، اساس جلوه‌های ویژه در سینما
                                                    حتما همه شما جلوه‌های ویژه رو در فیلم‌ها و تبلیغات تلویزیونی و اینترنتی دیدین، اما سوال اصلی این هست که این جلوه‌های ویژه یا همون VFX چطوری ساخته و پردازش میشن و به فیلم ها اضافه میشن؟ یکی از علومی که اساس جلوه‌های ویژه رو تشکیل میده، علم پردازش تصویره. اما شاید براتون سوال بشه که دقیقا پردازش تصویر چطوری به جلوه‌های ویژه کمک میکنه. توی این ویدیو جذاب و کوتاه با کارهای پایه در جلوه‌های ویژه آشنا میشید +
                                                  • +
                                                  +
                                                  +

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

                                                  +
                                                  + + From 029c1c42d2367c6839e192374540edf9c3ef3112 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 23 Jun 2022 13:26:14 +0430 Subject: [PATCH 301/326] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 71c380f..9f6b2e5 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                                  آرشیو خبرنامه‌های سال ۱۴۰۱

                                                    +
                                                  • خبرنامه شماره ۵۴ - پنجشنبه، ۰۲ تیر
                                                  • خبرنامه شماره ۵۳ - پنجشنبه، ۲٦ خرداد
                                                  • خبرنامه شماره ۵۲ - پنجشنبه، ۰۸ اردیبهشت
                                                  • خبرنامه شماره ۵۱ - پنجشنبه، ۱۲ خرداد
                                                  • From 78e7050fc1f2caf14dcd53234b56cde9aad20c85 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 30 Jun 2022 04:40:27 +0000 Subject: [PATCH 302/326] Add Archive --- archives/num55.html | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 archives/num55.html diff --git a/archives/num55.html b/archives/num55.html new file mode 100644 index 0000000..71d9d32 --- /dev/null +++ b/archives/num55.html @@ -0,0 +1,69 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                    + Softwaretalks Logo +

                                                    خبرنامهٔ Softwaretalks

                                                    +

                                                    + شمارهٔ ۵۵ - پنجشنبه، ۰۹ تیر ۱۴۰۱ +

                                                    +
                                                    +
                                                      +
                                                    • + جلوگیری از تکرار مانفیست‌های کوبرنتیز
                                                      احتمالا بارها پیش اومده که احساس کردید دارید مانفیست‌فایل‌های کوبرنتیزتون رو تکرار میکنید و کارتون به کپی پیست افتاده و اعمال تغییرات خیلی کوچیک برای هر پروژه، اگر به همچین حالتی افتادین و با مفهوم library chart ها آشنا نیستین، احتمالا دوای درد شما اینجاست. اگر میخواید فایل‌های مانیفست کوبرنتیزتون رو DRY کنید حتما به این قابلیت Helm یک نگاه بندازین +
                                                    • +
                                                    • + معماری ثبت‌نام و ورود در اوبر
                                                      در این مقاله از وبلاگ مهندسی اوبر، درباره USL یا Uber's Unified Signup and Login و چالش‌ها و معماری آن صحبت می‌شود. در پایان هم کمی از نقشه راه USL صحبت شده است +
                                                    • +
                                                    • + Feature Flag در دات‌نت
                                                      این مقاله ضمن معرفی ایده‌های پایه‌ای Feature Flag به نحوه پیاده‌سازی در دات‌نت از حالت ساده تا کمی پیشرفته‌تر می‌پردازد +
                                                    • +
                                                    +
                                                    +

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

                                                    +
                                                    + + From ffd3d2f3be3595f2bafcc14efd3ef4ede984bc62 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 30 Jun 2022 11:15:56 +0430 Subject: [PATCH 303/326] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 9f6b2e5..cfb9cee 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                                    آرشیو خبرنامه‌های سال ۱۴۰۱

                                                      +
                                                    • خبرنامه شماره ۵۵ - پنجشنبه، ۰۹ تیر
                                                    • خبرنامه شماره ۵۴ - پنجشنبه، ۰۲ تیر
                                                    • خبرنامه شماره ۵۳ - پنجشنبه، ۲٦ خرداد
                                                    • خبرنامه شماره ۵۲ - پنجشنبه، ۰۸ اردیبهشت
                                                    • From e335309eec8a0c822f02eb4b5669abfa340b52d2 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 30 Jun 2022 11:17:57 +0430 Subject: [PATCH 304/326] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index cfb9cee..c0c7eb4 100644 --- a/index.html +++ b/index.html @@ -338,8 +338,8 @@

                                                      با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۹۴۱ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۹۴۱ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۹۵۰ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۹۵۰ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From 42bd3eb9aa16f67d96eb8b0c8db4092731543fef Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Mon, 4 Jul 2022 15:33:03 +0430 Subject: [PATCH 305/326] Add @amirshnll to reviewers --- .github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md index 12bb387..4ce09c3 100644 --- a/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE/CONTENT_CONTRIBUTE_TEMPLATE.md @@ -4,7 +4,7 @@ about: برای مشارکت در محتوای هفتگی خبرنامه، کا کنید. title: عنوان مطلب را اینجا نیز وارد کنید | ترجیحا فارسی labels: content -assignees: Hameds, ohmydevops +assignees: Hameds, ohmydevops, amirshnll --- From 907c6aa56843b01e0d6e0d2d3dd90fded23b94b3 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 7 Jul 2022 04:49:27 +0000 Subject: [PATCH 306/326] Add Archive --- archives/num56.html | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 archives/num56.html diff --git a/archives/num56.html b/archives/num56.html new file mode 100644 index 0000000..73b1371 --- /dev/null +++ b/archives/num56.html @@ -0,0 +1,75 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                      + Softwaretalks Logo +

                                                      خبرنامهٔ Softwaretalks

                                                      +

                                                      + شمارهٔ ۵٦ - پنجشنبه، ۱٦ تیر ۱۴۰۱ +

                                                      +
                                                      +
                                                        +
                                                      • + اسنپ شات گرفتن از یک سایت با تمامی دپندنسی های آن
                                                        ما روزانه محتوای زیادی از سایت های مختلفی می‌خوانیم. برخی از این محتوا را ممکن است فراموش کنیم و یا به دلایلی مثل اجبار سانسور چی اون محتوا از سایت منبع پاک شود. در چنین مواقعی می‌توانیم با کلون کردن اون صفحه سایت، محتوا را افلاین در دسترس داشته باشیم. +
                                                      • +
                                                      • + دنیای قبل و بعد از دیپ لرنینگ
                                                        دنیای قبل و بعد از دیپ لرنینگ در دنیای کامپیوتر ویژن را بررسی کنید و تفاوت‌هایی که در آن‌ها وجود دارد را بررسی کنید. این توییت تجربی نوشته شده است. +
                                                      • +
                                                      • + روش‌های مختلف رسم شماتیک شبکه عصبی
                                                        اگر با تنسورفلو مشغول کار روی شبکه‌های عصبی هستید احتمالا در هنگام ارائه‌ی گزارشات خود نیاز دارید تا شماتیک مدل خود را رسم کنید. با کمک این مخزن تمام روش‌هایی که نیاز دارید لیست شده است. +
                                                      • +
                                                      • + توسعه فرانت اند با پایتون
                                                        توی این راهنما با استفاده pyscript نحوه استفاده از پایتون در فرانت اند توضیح داده شده و در نهایت چند پروژه هم تمرین داده شده است +
                                                      • +
                                                      +
                                                      +

                                                      + تأمین‌کنندگانِ محتوا در این شماره: + + آریا شبانه، + + + امیر شکری، + + + محمدرضا هلالی . + + شما نیز می‌توانید مشارکت کنید. +

                                                      +
                                                      + + From b371a5d931eb40ca9caf7a2897467e237af38dae Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Fri, 15 Jul 2022 07:26:02 +0000 Subject: [PATCH 307/326] Add Archive --- archives/num57.html | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/archives/num57.html b/archives/num57.html index 8bd9d82..f5b9986 100644 --- a/archives/num57.html +++ b/archives/num57.html @@ -39,31 +39,25 @@ >

                                                      خبرنامهٔ Softwaretalks

                                                      - شمارهٔ ۵۷ - پنجشنبه، ۱۹ خرداد ۱۴۰۱ + شمارهٔ ۵۷ - جمعه، ۲۴ تیر ۱۴۰۱



                                                      تأمین‌کنندگانِ محتوا در این شماره: - حامد سعیدی، - - - امیرحسین بقایی. + حامد سعیدی. شما نیز می‌توانید مشارکت کنید.

                                                      From 3c37b6030cdf34c132b10acea8b9962cfa48fbb0 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Fri, 15 Jul 2022 12:00:59 +0430 Subject: [PATCH 308/326] Update index.html --- index.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/index.html b/index.html index c0c7eb4..a4a59bf 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,9 @@

                                                      آرشیو خبرنامه‌های سال ۱۴۰۱

                                                        + +
                                                      • خبرنامه شماره ۵۷ - جمعه، ۲۴ تیر
                                                      • +
                                                      • خبرنامه شماره ۵٦ - پنجشنبه، ۱٦ تیر
                                                      • خبرنامه شماره ۵۵ - پنجشنبه، ۰۹ تیر
                                                      • خبرنامه شماره ۵۴ - پنجشنبه، ۰۲ تیر
                                                      • خبرنامه شماره ۵۳ - پنجشنبه، ۲٦ خرداد
                                                      • From a5ef3843161d3b3b9f32d6701efd5ad40953cc67 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 21 Jul 2022 04:49:10 +0000 Subject: [PATCH 309/326] Add Archive --- archives/num58.html | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 archives/num58.html diff --git a/archives/num58.html b/archives/num58.html new file mode 100644 index 0000000..6dccad9 --- /dev/null +++ b/archives/num58.html @@ -0,0 +1,69 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                        + Softwaretalks Logo +

                                                        خبرنامهٔ Softwaretalks

                                                        +

                                                        + شمارهٔ ۵۸ - پنجشنبه، ۳۰ تیر ۱۴۰۱ +

                                                        +
                                                        +
                                                          +
                                                        • + deploy to production بیش از ۱۰۰ بار در روز
                                                          در این نوشته، اینکه چطور تیم با تغییرات کوچک قابل برگرداندن بیش از ۱۰۰ بار در روز روی production کار deploy را انجام می‌دهند صحبت و تجربیات در این زمینه بیان شده است. +
                                                        • +
                                                        • + تست نرم‌افزار موثر
                                                          نویسنده اینجا درباره کتاب Effective Software Testing A developer's guide صحبت کرده و بخش‌ها و ایده‌های مهم و موثر کتاب را بیان کرده است +
                                                        • +
                                                        • + دفترچه راهنمای سریع کوبرنتیز به زبان فارسی
                                                          این دفترچه که درباره کوبرنتیزه و تقریبا مباحث و اجزای مهمش رو مرور کرده، خیلی اتفاقی توی یک گروه مرتبط با DevOps دیدم و به نظرم خیلی جالب و مختصر و مفید بود. نویسنده‌اش یک کانال کوچیک تلگرامی درست کرده و محتواش رو اونجا قرار داده و میتونید این دفترچه رو از کانال تلگرامیشون دانلود کنید. آپدیتهای فایل PDF هم در همین کانال گفتند قرار میگیره. +
                                                        • +
                                                        +
                                                        +

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

                                                        +
                                                        + + From 760411b8366c1e395592e184c30444945c62bfee Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 28 Jul 2022 06:11:12 +0000 Subject: [PATCH 310/326] Add Archive --- archives/num59.html | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 archives/num59.html diff --git a/archives/num59.html b/archives/num59.html new file mode 100644 index 0000000..6eb12b9 --- /dev/null +++ b/archives/num59.html @@ -0,0 +1,75 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                        + Softwaretalks Logo +

                                                        خبرنامهٔ Softwaretalks

                                                        +

                                                        + شمارهٔ ۵۹ - پنجشنبه، ۰٦ مرداد ۱۴۰۱ +

                                                        +
                                                        +
                                                          +
                                                        • + استفاده از Image Digest به جای Image tag در دنیای کانتینرها
                                                          اگر شما مسئول راه‌اندازی یک پایپلاین CI/CD سرویس نرم‌افزاری باشید که از کانتینر‌ها و داکر استفاده میکنه احتمالا توی مرحله CD یا همون continuous delivery ممکنه این سوال براتون ایجاد شده باشه که از چه ساختاری برای دپلوی ایمیج‌ها استفاده کنید. میتونید از Tag ها استفاده کنید یا هم میتونید از Digest هر ایمیج اما کدوم به کار میاد؟ این مطلب ساده در سایت گوگل کلود شاید به شما دید بهتری بده. +
                                                        • +
                                                        • + توسعه از راه دور در اسلک
                                                          اینجا منظور از توسعه از راه دور، توسعه‌دادن کد روی بستر آمازون و مشاهده تغییرات داده شده در آن instance از اسلک است. توسعه‌دهندگان اسلک هم زمانی توسعه روی سیستم محلی خودشان داشتند. گرچه به دلیل تحریم‌ها استفاده از چنین روشی برای ما فراهم نیست اما خواندن تجربیات تیم اسلک در وبلاگ مهندسی اسلک بسیار جالب است +
                                                        • +
                                                        • + Soft Deletion احتمالاً ارزشش را ندارد
                                                          در این مقاله ضمن بر شمردن مشکلاتی که Soft Deletion ممکن است ایجاد کند، پیشنهاد استفاده از جدول رکوردهای حذف شده مطرح شده است. +
                                                        • +
                                                        • + پروژه کتاب the secret bit کتاب آزاد لینوکس
                                                          هر ابزاری در لینوکس یک man page داره که نحوه کار با اون ابزار را توضیح می‌ده. مشکل man ها اینه که گاهی خیلی کامل هستند و تمامی سوییچ های ابزار را دربر می‌گیرند. ما در این کتاب سعی کردیم سوییچ هایی که پر استفاده هستند را توضیح بدیم و هر کجا که نیاز به مثالی برای کار های مختلفی که می‌شه با ابزار کرد، شد مثال ها را بنویسیم. لینوکس جز ابزار هایش مفاهیمی داره که نیاز به توضیح داره، پس ما در کتاب دو بخش مختلف برای ابزار ها و مفاهیم داریم. +
                                                        • +
                                                        +
                                                        +

                                                        + تأمین‌کنندگانِ محتوا در این شماره: + + امیرحسین بقایی، + + + حامد سعیدی، + + + آریا شبانه. + + شما نیز می‌توانید مشارکت کنید. +

                                                        +
                                                        + + From 83b88a250c3c84b7132fe50ff2f221132b432558 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 28 Jul 2022 10:48:57 +0430 Subject: [PATCH 311/326] Update archive --- index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index a4a59bf..2041c74 100644 --- a/index.html +++ b/index.html @@ -122,7 +122,8 @@

                                                        آرشیو خبرنامه‌های سال ۱۴۰۱

                                                          - +
                                                        • خبرنامه شماره ۵۹ - پنجشنبه، ۰٦ مرداد
                                                        • +
                                                        • خبرنامه شماره ۵۸ - پنجشنبه، ۳۰ تیر
                                                        • خبرنامه شماره ۵۷ - جمعه، ۲۴ تیر
                                                        • خبرنامه شماره ۵٦ - پنجشنبه، ۱٦ تیر
                                                        • خبرنامه شماره ۵۵ - پنجشنبه، ۰۹ تیر
                                                        • From 93e1785e22d9d92f02717c065895bc0d52a65500 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 28 Jul 2022 10:49:58 +0430 Subject: [PATCH 312/326] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 2041c74..82b50f8 100644 --- a/index.html +++ b/index.html @@ -342,8 +342,8 @@

                                                          با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۹۵۰ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۹۵۰ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۹۵۵ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۹۵۵ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From 63c164569ceab36ee8cb46999069fdb3b255d22d Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 28 Jul 2022 11:07:19 +0430 Subject: [PATCH 313/326] =?UTF-8?q?Remove=20unnecessary=20image=20?= =?UTF-8?q?=E2=98=A0=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 70cb288..49b6b06 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,3 @@ -![♨️ Send email - Production](https://github.com/softwaretalks/newsletter/workflows/%E2%99%A8%EF%B8%8F%20Send%20email%20-%20Production/badge.svg) -
                                                          cover
                                                          From df632bc52e626cedbe153fed87bcc9204cd1f279 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Fri, 5 Aug 2022 05:41:37 +0000 Subject: [PATCH 314/326] Add Archive --- archives/num60.html | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 archives/num60.html diff --git a/archives/num60.html b/archives/num60.html new file mode 100644 index 0000000..30a3b4c --- /dev/null +++ b/archives/num60.html @@ -0,0 +1,69 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                          + Softwaretalks Logo +

                                                          خبرنامهٔ Softwaretalks

                                                          +

                                                          + شمارهٔ ٦۰ - جمعه، ۱۴ مرداد ۱۴۰۱ +

                                                          +
                                                          +
                                                            +
                                                          • + توصیه‌هایی برای برنامه‌نویسان تازه وارد
                                                            این آقا زمانی در توییتر از برنامه‌نویسان خواسته تا اگر توصیه‌ای برای برنامه‌نویسان تازه‌وارد دارند بنویسند. بعد ۷۰۰ پاسخ به درخواستش، پاسخ‌ها رو دسته‌بندی کرده و چند نکته مهم و تکرار شده را در این پست وبلاگ اشاره کرده است. +
                                                          • +
                                                          • + Squash، Merge یا Rebase?
                                                            این یک نوشته بسیار کوتاه است. وقتی از git برای کنترل نسخه‌های کد استفاده می‌کنیم موقع ادغام branchها معمولاً سه گزینه داریم. در این نوشته درباره این سه گزینه و تفاوت و روشی که نویسنده ترحیج می‌دهد صحبت شده است. +
                                                          • +
                                                          • + راهنمای Load Testing
                                                            این راهنما برای درک چگونگی اجرای درست Load Test و اینکه چه داده‌هایی در حین تست جمع‌آوری می‌شوند و چه تفسیری از آن‌ها می‌توان داشت قابل استفاده است +
                                                          • +
                                                          +
                                                          +

                                                          + تأمین‌کنندگانِ محتوا در این شماره: + + حامد سعیدی، + + + . + + شما نیز می‌توانید مشارکت کنید. +

                                                          +
                                                          + + From 10a76c6fd060b31f6cbff59e1f153b4d834f82ab Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 11 Aug 2022 04:54:55 +0000 Subject: [PATCH 315/326] Add Archive --- archives/num61.html | 78 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 archives/num61.html diff --git a/archives/num61.html b/archives/num61.html new file mode 100644 index 0000000..b8abaa9 --- /dev/null +++ b/archives/num61.html @@ -0,0 +1,78 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                          + Softwaretalks Logo +

                                                          خبرنامهٔ Softwaretalks

                                                          +

                                                          + شمارهٔ ٦۱ - پنجشنبه، ۲۰ مرداد ۱۴۰۱ +

                                                          +
                                                          +
                                                            +
                                                          • + کامپایلری که فقط با دستور MOV کار میکند
                                                            توی توییتر داشتم میچرخیدم که یک توییت دیدم از طرف کاربر @sajad_ghorbanii که یک مخزن جالب معرفی کرده بود. توی این مخزن یک کامپایلر C داریم که همه چیز رو به دستورات MOV تبدیل میکنه. +
                                                          • +
                                                          • + چرا از گوگل فونت باید در وبسایت خود استفاده کنید
                                                            احتمالا در پروژه های مختلف خودتون مخصوصا با اومدن فونت وزیر به گوگل فونت از این سرویس استفاده کرده اید ولی شاید براتون سوال پیش بیاد اصلا مزیت ها و معایبی که استفاده از گوگل فونت داره چیه اگر دنبال این موارد هستید این تاپیک کورا به سوالتون پاسخ میده +
                                                          • +
                                                          • + ترافیک شهری در اسنپ
                                                            در این مطلب از وبلاگ مهندسی اسنپ، درباره مساله ترافیک شهری در نقشه و چالش‌های مرتبط و راهکارهایی که اسنپ از آن‌ها استفاده کرده صحبت شده است. +
                                                          • +
                                                          • + ترجمه کتاب داده‌کاوی برای برنامه‌نویسان
                                                            این لینک دانلود ترجمه کتاب داده‌کاوی برای برنامه‌نویسان است +
                                                          • +
                                                          • + استک‌های محبوب استارتاپ‌ها در 2022
                                                            معمولا استارتاپ‌ها در ابتدای کار برای اینکه سرعت بالایی داشته باشند استک‌های مختلفی را استفاده می‌کنند اما یکی از چالش‌های آنها در آینده زمانیست که قصد scale کردن دارند در آنجاست که کمی مسئله متفاوت می‌شود در این نوشته چندین استک محبوب برای استارتاپ‌ها که در آینده به سادگی قابل توسعه باشد لیست شده است. +
                                                          • +
                                                          +
                                                          +

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

                                                          +
                                                          + + From 6da3d0d495b3bf5075c4859f7e0e48289410aae9 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 11 Aug 2022 10:21:53 +0430 Subject: [PATCH 316/326] Add archives --- index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.html b/index.html index 82b50f8..b10030c 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,8 @@

                                                          آرشیو خبرنامه‌های سال ۱۴۰۱

                                                            +
                                                          • خبرنامه شماره ٦۱ - پنجشنبه، ۲۰ مرداد
                                                          • +
                                                          • خبرنامه شماره ٦۰ - جمعه، ۱۴ مرداد
                                                          • خبرنامه شماره ۵۹ - پنجشنبه، ۰٦ مرداد
                                                          • خبرنامه شماره ۵۸ - پنجشنبه، ۳۰ تیر
                                                          • خبرنامه شماره ۵۷ - جمعه، ۲۴ تیر
                                                          • From c88ed4272fd8efbc23c72ed825d35e328dbfb25c Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 18 Aug 2022 04:44:35 +0000 Subject: [PATCH 317/326] Add Archive --- archives/num62.html | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 archives/num62.html diff --git a/archives/num62.html b/archives/num62.html new file mode 100644 index 0000000..babc852 --- /dev/null +++ b/archives/num62.html @@ -0,0 +1,69 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                            + Softwaretalks Logo +

                                                            خبرنامهٔ Softwaretalks

                                                            +

                                                            + شمارهٔ ٦۲ - پنجشنبه، ۲۷ مرداد ۱۴۰۱ +

                                                            +
                                                            +
                                                              +
                                                            • + درباره ردیس
                                                              این مطلب یک نگاه کامل و توضیحات مصور درباره Redis و انواع توپولوژی‌ها و ذخیره اطلاعات در آن دارد. +
                                                            • +
                                                            • + پنج سوال امنیتی مهم که برنامه نویس ها باید بدانند
                                                              یکی از بازیگرهایی که امنیت نرم افزارهای تحت وب با آن هاست برنامه نویس ها هستند. اگر برنامه نویس ها اطلاعات امنیتی خوبی داشته باشند نیازهای امنیتی برنامه های تحت وب را افزایش می دهند. در این نوشته ۵ سوال اصلی که در هنگام توسعه برنامه نویس ها باید آن را بدانند آورده شده است +
                                                            • +
                                                            • + GDPR برای برنامه‌نویسان با ذکر مثال
                                                              گرچه ما در کشور قوانین محافظتی از حریم شخصی نداریم اما در این مقاله که درباره پیاده‌سازی GDPR صحبت شده، با ذکر سناریوهای مختلف درباره میزان تعهد شرکت‌ها و تیم فنی و نگاه تحلیلی به مساله می‌توان ایده‌هایی برای استفاده در سرویس‌های ایرانی برداشت کرد. +
                                                            • +
                                                            +
                                                            +

                                                            + تأمین‌کنندگانِ محتوا در این شماره: + + حامد سعیدی، + + + امیر شکری. + + شما نیز می‌توانید مشارکت کنید. +

                                                            +
                                                            + + From 60b4736fa9373c70d1dfc1a0849eff124d6eea7a Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sun, 21 Aug 2022 01:16:20 +0430 Subject: [PATCH 318/326] Add archive --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index b10030c..0dad99e 100644 --- a/index.html +++ b/index.html @@ -122,6 +122,7 @@

                                                            آرشیو خبرنامه‌های سال ۱۴۰۱

                                                              +
                                                            • خبرنامه شماره ٦۲ - پنجشنبه، ۲۷ مرداد
                                                            • خبرنامه شماره ٦۱ - پنجشنبه، ۲۰ مرداد
                                                            • خبرنامه شماره ٦۰ - جمعه، ۱۴ مرداد
                                                            • خبرنامه شماره ۵۹ - پنجشنبه، ۰٦ مرداد
                                                            • From 8449569f6d4d5e5802c58bf458dd7a9ed821d0d5 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Sun, 21 Aug 2022 01:18:58 +0430 Subject: [PATCH 319/326] Update subscriber counter --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 0dad99e..a57e325 100644 --- a/index.html +++ b/index.html @@ -345,8 +345,8 @@

                                                              با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۹۵۵ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۹۵۵ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۹۶۷ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۹۶۷ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From f4fb523bb4905bad6c571e9b7276fa8e880bcde1 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 25 Aug 2022 04:17:14 +0000 Subject: [PATCH 320/326] Add Archive --- archives/num63.html | 72 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 archives/num63.html diff --git a/archives/num63.html b/archives/num63.html new file mode 100644 index 0000000..46ee062 --- /dev/null +++ b/archives/num63.html @@ -0,0 +1,72 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                              + Softwaretalks Logo +

                                                              خبرنامهٔ Softwaretalks

                                                              +

                                                              + شمارهٔ ٦۳ - پنجشنبه، ۰۳ شهریور ۱۴۰۱ +

                                                              +
                                                              +
                                                                +
                                                              • + چطور از کند شدن تیم به خاطر بازبینی کد جلوگیری کنیم؟
                                                                این مطلب در واقع دلایلی که پروسه بازبینی کد زمان می‌برد را بررسی کرده به عنوان مثال نداشتن بررسی‌های اتوماتیک و بر همین اساس می‌توان با رفع این دلایل، از کند شدن خروجی تیم به خاطر بازبینی کد جلوگیری کرد +
                                                              • +
                                                              • + فولکلور نرم‌افزار
                                                                مجموعه داستان‌هایی از باگ‌هایی که فراتر از باورهای معمول هستند +
                                                              • +
                                                              • + ۱۰ نکته برای بازبینی کدی که دوستش ندارید
                                                                در این مطلب از وبلاگ ردهت درباره نکات بازبینی کد یا Code Review صحبت شده است تا محترمانه و با کمترین چالش، درباره کدی که به هر دلیل بازبینی آن را دوست نداریم بتوانیم Code Review انجام بدهیم +
                                                              • +
                                                              • + امکانات ردیس برای بهبود پرفورمنس
                                                                یکی از دیتابیس هایی که معمولا برای کش کردن داده ها استفاده میشه ردیس هست. طبیعتا کش کردن داده برای سریع تر کردن پاسخ دهی و یا کم کردن بار از روی دیتابیس های هسته انجام میشه و معمولا ردیس در اسکیل های بزرگ هم پاسخگو است. اما مسئله ای که وجود داره اینه که گاها به ست کردن چند کلید ساده اکتفا میکنیم و خیلی سمت بهبود پرفورمنس در خود کش کردن داده نمیریم. بهبودهایی که گاها لازم میشن. در این نوشته درباره بعضی امکانات ردیس برای بهبود پرفورمنس ردیس بخوانید +
                                                              • +
                                                              +
                                                              +

                                                              + تأمین‌کنندگانِ محتوا در این شماره: + + حامد سعیدی، + + + امیر شکری. + + شما نیز می‌توانید مشارکت کنید. +

                                                              +
                                                              + + From 1d3ab92210fecfdc8f7d501a0e148ec8c0bd25de Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 1 Sep 2022 01:15:46 +0430 Subject: [PATCH 321/326] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index a57e325..16d765e 100644 --- a/index.html +++ b/index.html @@ -345,8 +345,8 @@

                                                              با درنظرگرفتنِ قوانینِ پایین، به‌هرتعدا window.onload = function () { var typed = new Typed('#subscribers', { strings: [ - 'اعضایِ خبرنامه تا این لحظه: ۹۶۷ نفر ', - 'اعضایِ خبرنامه تا این لحظه: ۹۶۷ نفر ^1000 ', + 'اعضایِ خبرنامه تا این لحظه: ۹۷۲ نفر ', + 'اعضایِ خبرنامه تا این لحظه: ۹۷۲ نفر ^1000 ', ], smartBackspace: true, startDelay: 2000, From 409460dedaf4e9752c2a2e6102fa0142e8111ee3 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 1 Sep 2022 05:18:48 +0000 Subject: [PATCH 322/326] Add Archive --- archives/num64.html | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 archives/num64.html diff --git a/archives/num64.html b/archives/num64.html new file mode 100644 index 0000000..34d60dc --- /dev/null +++ b/archives/num64.html @@ -0,0 +1,75 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                              + Softwaretalks Logo +

                                                              خبرنامهٔ Softwaretalks

                                                              +

                                                              + شمارهٔ ٦۴ - پنجشنبه، ۱۰ شهریور ۱۴۰۱ +

                                                              +
                                                              +
                                                                +
                                                              • + پراسس‌های زامبی و داکر
                                                                احتمالا گاهی پیش اومده که توی ایمیج‌های داکری که درست میکنید پراسس‌های زامبی مشاهده کنید. یعنی پراسسی که کارش رو کرده ولی مادر خبر نداره که فرزند کارش رو انجام داده و باید از لیست پراسس‌ها حذف بشه. دونستن این که چطوری جلوی این اتفاق رو بگیریم و اصلا چرا باید بگیریم یا نگیریم،‌میتونه به درک بهتر ما از عملکرد پراسس‌ها در کانتینر‌ها یا سیستم‌عامل‌ها کمک کنه. این مطلب به صورت اختصاصی به داکر مرتبطه و میتونه شما رو با این مساله بهتر و عمیقتر آشنا کنه +
                                                              • +
                                                              • + مدل شبکه کوبرنتیز
                                                                تقریبا پیچیده‌ترین بخش کوبرنتیز (برای من البته) بخش شبکه و ارتباط هستش. این که همه چیز چطوری همدیگرو اینقدر راحت میبینن و با هم صحبت میکنن با این همه تغییرات و آپدیت‌های مداوم روی سرویس‌ها. مطالعه و آشنایی اولیه با شبکه در کوبرنتیز میتونه درک مشکلات و مسائل مرتبط رو راحت‌تر و شیرین‌تر کنه. این مطلب به صورت کلی به این موضوعات پرداخته +
                                                              • +
                                                              • + Trilogy اپن سورس شد
                                                                گیت‌هاب Trilogy که یک آداپتور دیتابیس برای اتصال Ruby on Rails به سرورهای سازگار با MySQL است را اپن سورس کرده است و در این نوشته در وبلاگ گیت‌هاب درباره آن توضیح می‌دهد +
                                                              • +
                                                              • + چطور به یک تیم بپیوندیم و کدبیس تیم را یاد بگیریم؟
                                                                در این مقاله نسبتاً طولانی، در بخش میانی نویسنده پروسه‌ای برای یادگیری کدبیسی که تا به حال با آن آشنا نبودیم در زمان پیوستن به یک تیم جدید را بررسی و توصیه‌هایی می‌کند. +
                                                              • +
                                                              • + کلمات عبور یکبار مصرف چطور کار می‌کنند؟
                                                                این نوشته به بررسی شیوه عملکرد رمزهای عبور یکبار مصرف می‌پردازد و در انتها با ۱۶ خط کد به زبان Go تابعی برای ارائه رمز یکبار مصرف بر اساس کلید مخفی پیاده‌سازی می‌کند +
                                                              • +
                                                              +
                                                              +

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

                                                              +
                                                              + + From 281c48774d87b0ed7d82a8006d36d705d2c965e1 Mon Sep 17 00:00:00 2001 From: Amirhossein Baghaie Date: Thu, 1 Sep 2022 11:15:55 +0430 Subject: [PATCH 323/326] Update contributors statistics --- README.md | 108 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 56 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index 49b6b06..0c2282b 100644 --- a/README.md +++ b/README.md @@ -23,57 +23,61 @@ برای مشاهده تعداد پست‌های هر کاربر، کافیست که ماوس :computer_mouse: یا موشواره :mouse: خود را روی تصویر مربوطه نگه‌دارید. تا این لحظه ۵۳ نفر در تهیه محتوای هر هفته مشارکت کرده‌اند.
                                                              -ohmydevops -Hameds -amirshnll -hassan-shahbazi -Rahmanism -ghost -mokarchi -royapakzad -vahidfathi -AliKarbasiCom -amirmojiry -alinaseri07 -s-alielyasi -ariaieboy -afzouni -ashkanRmk -VahidNaderi -SirwanAfifi -asadise -pykello -kokabi1365 -irnb -mvahedii -DearRude -SinaArya1 -numb95 -anvaari -mahdiAkhi -Gnkalk -mahdithejedi -vahidbaghi -omidpakdel -mayazdi -slashsbin -iamvee -itshaadi -Cinorid -rashid2003 -Aliiior -alirezasalehizadeh -m2-farzan -vghaderi -xhdix -majidganji -POOYASP2 -dozheiny -hhosseinioun -markpash -mohas -hnaseri1990 -hamedsj -mrmmg +Hameds +ohmydevops +amirshnll +hassan-shahbazi +Rahmanism +ghost +mokarchi +vahidfathi +royapakzad +AliKarbasiCom +alinaseri07 +amirmojiry +s-alielyasi +afzouni +ashkanRmk +ariaieboy +asadise +VahidNaderi +SirwanAfifi +pykello +irnb +SinaArya1 +DearRude +kokabi1365 +mahdiAkhi +anvaari +mvahedii +numb95 +shabane +Mohammadgeek +majidganji +slashsbin +Cinorid +Aliiior +xhdix +mohammadv184 +m2-farzan +hhosseinioun +omidpakdel +rashid2003 +POOYASP2 +mahdithejedi +mayazdi +dozheiny +Gnkalk +iamvee +itshaadi +vahidbaghi +vghaderi +h4iku +alirezasalehizadeh +markpash +mohas +hnaseri1990 +hamedsj +mrmmg ShakibHabibi
                                                              From 3fa3fed76cf57b412da36dea3fe42fe425ab9700 Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 8 Sep 2022 04:35:41 +0000 Subject: [PATCH 324/326] Add Archive --- archives/num65.html | 66 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 archives/num65.html diff --git a/archives/num65.html b/archives/num65.html new file mode 100644 index 0000000..4e5d725 --- /dev/null +++ b/archives/num65.html @@ -0,0 +1,66 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                              + Softwaretalks Logo +

                                                              خبرنامهٔ Softwaretalks

                                                              +

                                                              + شمارهٔ ٦۵ - پنجشنبه، ۱۷ شهریور ۱۴۰۱ +

                                                              +
                                                              +
                                                                +
                                                              • + مجموعه سوالات مصاحبه فنی
                                                                در این مخزن گیت‌هاب منابع مربوط به لیست مجموعه سوالات مصاحبه‌های فنی زبان‌های مختلف گردآوری شده است +
                                                              • +
                                                              • + مساله Sharding و IDها در اینستاگرام
                                                                در هر ثانیه بیش از ۲۵ تصویر و ۹۰ لایک در اینستاگرام ذخیره می‌شود. در این پست وبلاگ مهندسی درباره مساله Sharding و ایجاد IDها صحبت شده است. زیرساخت production اینستاگرام بر روی PostgreSQL است. +
                                                              • +
                                                              • + پروژه SaaS4Devs
                                                                در این وب سایت منابع بسیار زیادی به همراه تعاریف و لینک‌ها برای آشنایی و راه‌اندازی SaaS برای برنامه‌نویسان گردآوری شده است. +
                                                              • +
                                                              +
                                                              +

                                                              + تأمین‌کنندگانِ محتوا در این شماره: + + حامد سعیدی. + + شما نیز می‌توانید مشارکت کنید. +

                                                              +
                                                              + + From 379b24c0d824bae5b7a0aa7a8b37fb19e87dd95e Mon Sep 17 00:00:00 2001 From: ohmydevops Date: Thu, 15 Sep 2022 04:56:01 +0000 Subject: [PATCH 325/326] Add Archive --- archives/num66.html | 72 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 archives/num66.html diff --git a/archives/num66.html b/archives/num66.html new file mode 100644 index 0000000..bebfe48 --- /dev/null +++ b/archives/num66.html @@ -0,0 +1,72 @@ + + + + خبرنامه‌ ‌نرم‌افزاری SoftwareTalks + + + + + +

                                                              + Softwaretalks Logo +

                                                              خبرنامهٔ Softwaretalks

                                                              +

                                                              + شمارهٔ ٦٦ - پنجشنبه، ۲۴ شهریور ۱۴۰۱ +

                                                              +
                                                              +
                                                                +
                                                              • + گیتهاب و چالش حجم زیاد مخازن گیت
                                                                گیتهاب میگه بالای ۱۸.۶ پتابایت داده از گیت داره و بعضی از آبجکت‌ها در گیت reachable هستند و برخی unreachable. در این مطلب جدیدشون توضیح دادن که چطوری این‌ها رو برای بهینه تر کردن فضای ذخیره‌سازی مدیریت میکنند. +
                                                              • +
                                                              • + HTTP://HTTP://HTTP://@HTTP://HTTP://?HTTP://#HTTP://
                                                                داستان از جایی شروع شد که نویسنده curl توییت یک آدرس عجیب رو به عنوان یک url معتبر معرفی و توییت کرد. +
                                                              • +
                                                              • + دیباگ کردن تیم‌ها
                                                                آیا تا به حال در تیمی بودید که خیلی سخت کار می‌کنه ولی به نظر می‌ره جلو نمی‌ره؟ نویسنده این مقاله درباره این موضوع و علائم Groundhog Day و راه‌حلش صحبت کرده +
                                                              • +
                                                              • + حل مشکلات شبکه کوبرنتیز به شیوه گیتهاب
                                                                در این مطلب، تیم فنی گیتهاب توضیح میده چطوری یک مشکل latency در شبکه پیچیده کوبرنتیز رو حل کردن و مرحله به مرحله و با ساده‌سازی مسائل پیش رفتند. +
                                                              • +
                                                              +
                                                              +

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

                                                              +
                                                              + + From 3a53482cc61c6a7cf9b2e372e506b0d6052ac553 Mon Sep 17 00:00:00 2001 From: erfanara Date: Wed, 21 Sep 2022 00:44:07 +0430 Subject: [PATCH 326/326] Add Atom feed support --- archives/num2.html | 13 +- archives/num3.html | 13 +- atom.xml | 9097 +++++++++++++++++++++++++++++++++++++++ index.html | 2 + src/composer.json | 3 +- src/composer.lock | 105 +- src/modules/feed.php | 84 + src/send_newsletter.php | 7 + 8 files changed, 9305 insertions(+), 19 deletions(-) create mode 100644 atom.xml create mode 100644 src/modules/feed.php diff --git a/archives/num2.html b/archives/num2.html index 1b1d226..4f7dd3b 100644 --- a/archives/num2.html +++ b/archives/num2.html @@ -517,13 +517,10 @@ style="font-size:28px;">خبر‌نامه مهندسان نرم‌افزار
                                                              - شماره - ۲ - - - پنجشنبه، - ۲۵ - دی - ۹۹ +

                                                              + شماره ۲ - پنجشنبه، ۲۵ دی ۹۹ +

                                                              + @@ -1210,4 +1207,4 @@ - \ No newline at end of file + diff --git a/archives/num3.html b/archives/num3.html index 36cd68c..02ba95b 100644 --- a/archives/num3.html +++ b/archives/num3.html @@ -518,13 +518,10 @@ style="font-size:24px;">خبرنامه مهندسان نرم‌افزار
                                                              - شماره - ۳ - - - پنجشنبه - ۲ - بهمن - ۹۹ +

                                                              + شماره ۳ - پنجشنبه، ۰۲ بهمن ۹۹ +

                                                              + @@ -1280,4 +1277,4 @@ - \ No newline at end of file + diff --git a/atom.xml b/atom.xml new file mode 100644 index 0000000..abad947 --- /dev/null +++ b/atom.xml @@ -0,0 +1,9097 @@ + + + خبرنامهٔ نرم‌افزاریِ SoftwareTalks +ما مهندسایِ نرم‌افزار و علاقه‌مندانِ کامپیوتر هرازگاهی با مطالبِ جالبی برخورد می‌کنیم که می‌تونه به دردِ بقیه هم بخوره.در حال حاضر، هر پنجشنبه خبرنامه ارسال میشود + +2022-09-20T20:09:53+00:00 +https://twemoji.maxcdn.com/2/72x72/2709.png +urn:uuid:025f73b5-0187-b380-887e-05c9b449766c + +شماره خبرنامه 8.html + +urn:uuid:cfbf364d-5e9e-e902-daad-11e73f7dec92 +2021-02-25T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۸</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبر‌نامه مهندسان نرم‌افزار </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۸ - پنجشنبه، ۰۷ اسفند ۹۹ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>بسته شدن یک باگ در موزیلا فایرفاکس ۱۷ سال پس از اولین گزارش</b> </li> + <p> این صفحه شامل مکالمات کاربران و توسعه دهندگان فایرفاکس است که نزدیک به ۱۷ سال طول کشیده است. خواندن این + رشته مکالمات کمکی است به دریافتن نحوه گزارش، پیگیری، و نهایتا حل شدن یک باگ در نرم افزارهای متن باز. + <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/JYE3rlo9VzhxNyJRa33vjKRX8nvS-LkjG6aGaLMLTOHL9Ih2BcdZTfRsuRIa2pfF2jecapGebkNAdlopm2EXQYDpkStNobeKlnaRVpnlDcPBt1o-Q4frUMed7nankf6CkxZHVixNgGl613MrKhnFU3Dzfq1ScteYS-Q0VnyBwQKggtklvGclZ1eNzIJVYJGi1eSYCQ" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>وقتی می‌زنید گوگل دات کام، دقیقاً چه اتفاقی می‌افته؟</b> </li> + <p> بخشی از مقاله: مدار یواس‌بیِ صفحه‌کلید از طریق یک منبع تغذیهٔ ۵ ولت که از طریق پین یکِ USB host + controller کامپیوتر تأمین می‌شه تغذیه می‌شه. keycode تولید شده با کمک مدار حافظهٔ داخلی صفحه‌کلید در + رجیستری به اسم endpoint ذخیره می‌شه. USB host controller، تقریباً هر ۱۰ میلی‌ثانیه محتوای این رجیستر رو + چک می‌کنه و در نهایت keycode ذخیره‌شده رو می‌خونه ... . این مخزن تلاش می‌کنه به این سوال رایجِ + مصاحبه‌های استخدامی با سطح جزئیاتی فراتر از انتظار (و احتمالاً‌ سوادِ) مصاحبه‌گرها پاسخ بده! <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/Th8NVLfUNNkXG4RFfrzw4fWeOgGGSALJOW5SU9sUns9c04AXR8KLgsWb8en1itrYrpzj1FaFx-VJEf0xKZAKsdphLI0k9-YQ9UdhbKk3mHkDT039Js9-8CiHAVngnQHoek7P9mMFlLwGN5Dz2UNkPzOEC1-xMfL2-EufSBFrnbDZhCnJltBLdQ" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>۱۲ فاکتور برای نرم‌افزارهای مدرن</b> </li> + <p> توی این مقاله که تقریبا میشه گفت مقاله معروفی هم هست، ۱۲ تا فاکتور برای توسعه و ساختن نرم‌افزار گفته که + کمک میکنه برنامه‌های ما راحت‌تر در محیط‌های ابری اجرا بشن و اصطلاحا قابل جابجایی در محیط‌های مختلف با + کمترین هزینه باشن. این مقاله رو تیمی از توسعه‌دهنده‌های Heroku نوشتنش. حتی اگر از کلود متنفرین و دوست + ندارین دربارش چیزی بخونین، بازم به نظرم خوندن این مقاله میتونه براتون چیزای جالب دیگه‌ای هم داشته باشه و + سرنخ‌های جدیدی برای مطالعه بهتون بده <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/VbIfUDMKx6JTDFwsr5x8xgcyKDVI97PIGAm2q8-9qm72CBH94CYsAGvkNTRiBg1oAq3MvtNVf4JEG55UNajFR9Ci78szST8JqMHo0nHLHBX6TijcPgzUo8Zbpe0K7BAO8d2zV81v8Gfp8WDQpgJgTTGE" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>Effective Git as a solo developer</b> </li> + <p> نکاتی ساده ولی کاربردی برای استفاده بهتر از گیت. مقاله شامل راهکارهایی برای داشتن یک ریپوزیتوری با + تاریخچه‌ای تمیز و قابل ارجاع است. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/L_R65xJVQ1hv-0RKAs2MVveBnDAd-JEek9LqD55V5KzV--kkw7ufimIhFWYlXV8YveoQjIypDwBu_OpukMGcA-4I9PHl6IS_Ni3DbXSFFXYEsi3E8MHHoyAJZNpnOsNGYZY90BHmRvJRJa0oKZ-5VJdoKPylb87jFa1HYhtsAi-JwwJ0fFmDaGI8efLgOnR7PmsEzRg-BppfPv8DkPtRoP0" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>لیست دروس مرتبط با اخلاق و تکنولوژی</b> </li> + <p> به نظرتون لازمه که دانشجوهای مهندسی و علوم کامپیوتر هم کمی از علوم انسانی مثل فلسفه و اخلاق، مطالعات + اجتماعی و حقوق بشر بخونن؟ تاثیرات اخلاقی و اجتماعی تکنولوژی به حدی واضح و مطرح شده که خیلی از دانشگاه‌ها + شروع کردن به انطباق و ارایه‌ی درسهای علوم انسانی برای دانشجوهای مهندسی. این یه لیستیه از این کلاسا، + منابع و ویدیوهای بعضی کلاسا هم موجوده. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/6VWysVQlSOLglCRwm3S7imqGT0TUCGnGS92jC09oX18ro5TCQKX5F1fQnkwbPxdUmJ0rCilxTWbAxqvDwww9p5UuzQF1huOl-qIWTOvD1sDqRiwcxGHk-FlqhO63M2CxfGkuooossrFEwFys0HHkmWXYxy7a9BMvWehoz5cfaGL_1LSG7k5MIRhziy6u8_CQhDhrkWC3Qax86gC-vV52Hcs8wglsB65o9qEN1kUXCcVImfOLsCEIrMhwKPp2Yrfi8OgiZOM" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>حسن شهبازی،</b> <b>سید ایوب کوکبی،</b> <b>امیرحسین بقایی،</b> <b>رویا + پاکزاد</b> در تهیه محتوا کمک کردند. </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=R9XnhwxUV6PFSwKa3coYSMfYTzvIi4gr3LW8BC0daDjEFM1JTW-3UVeYf8LlIg6oLgB3pZqSZVEy2GPvDgtkVx1OvB9hMSj_tpdvVji9fxCQaEYy3__XLNEa67ZsH0om5hj8DP15EghkcAiylAcVg-wRakxMxSri6JUchDQbJi89VxW32VjZ3V_V3rsEQJq2mWFs46cfBkxI6Wg7aONmr9XQMA" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/8D4_t808gtBDyImqg3OClraZvVT9riOIApTsaXXbXFo5I20oWVqoO6bLobwm73LSrtKVuv_kdxo5BInWaIhNp38Do-eMqiLOBw0oQ8WCVji-rnOX-hlx1679K42U4XzRC0HISXdHz2c-VsNFARdV" + sib_link_id="5">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/WE2GrFp2OnakH4Bj-IzoO9P2rJi7A6Ey3LumCB0ZUhUwAygj0OBdAq7gitKjUR9ojcv39tPVjqj0QjoI08zn8d9RcDW7Y9xcvXoo58NITI8Nn2TbhqLpIPlBX-gibWNEFRXG9apWgc85m2UJJskp" + sib_link_id="6">سرویس پاکت</a> اسپانسر ارسال ایمیلهای این خبرنامه است. با کد تخفیف sota10 میتوانید + از ۱۰ درصد تخفیف در خرید پلنهای پاکت بهرهمند شوید </p> + <hr /> <br /> + </span> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 12.html + +urn:uuid:44686e9f-d8d8-12c0-d2e8-ed8954d00302 +2021-04-23T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۱۲</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبرنامهٔ Softwaretalks </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۱۲ - جمعه، ۰۳ اردیبهشت ۱۴۰۰ </h3> <span> + <p style="text-align:center">در خبرنامه قبلی به‌دلیل <a + href="https://r.t10.pktsrv2.com/mk/cl/f/kXHsbnA3ZnSt9F6GJ-3Jn2ATwU2IUW4iBP7yQQKO75tGE4PUnoZmXpk3lXa8Yz06oSsALZS4LZsQdwo8MymY1ND0PvkscJ1Rbi44W_WEDSz62oBmWLETU76sAouSlH4XXKPJ1B5rQF6OMrsVPDcT5rEBTVwlYuyHnKFFUU7pZ9bX7JPueqkK1vUpFtPSqB61BG606SIIvcS2" + sib_link_id="0">باگ نرم‌افزاری</a>، شماره خبرنامه به اشتباه ۱۴ نوشته شده‌بود که در حقیقت خبرنامه + شماره ۱۱ اُم بوده </p> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>انکود/دیکود کردن داده‌های بزرگ ‌جیسون به‌وسیله استریم در پی‌اچ‌پی</b> + </li> + <p> در این مطلب، نویسنده تجربه خودش از کار با خواندن و نوشتن در یک فایل بزرگ JSON رو به وسیله Stream ها + در PHP مطرح میکنه. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/wBl1GsY3lhJ1wwGZE0rHJL-x0g4_QpQ7TiyGCp9Y7iOhK_-yWyl0WCvf2PxrA-kGiuadCRbnpE3vRzVAPrVSUq4qIOSFuatm_xUlF0rOV8pQ7H8MtnCaR-r-ZVqdtDa3zZzCdiYmaO4GT7uf-WXF2K0bKXtk59sVSoXgoZPPbmU-EQ8EKbADukMg2XgPetEt0ppwg-oGeTfIvV3mWUB5KGEGFR0zHdnKu4D4sUvyjQNYnQlKMFCU2cwT7jliPy43dWOHFnDfFNGQbswL74CCCvap" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>توسعه ای‌پی‌آي | راهنمای مقدماتی</b> </li> + <p> اکثر اپلیکیشین های جدید از ای‌پی‌آی ها برای ساختن هسته اپلیکیشین خودشون استفاده میکنن که رابط های + گرافیکی روی اونا ساخته و پیاده‌سازی میشن.اگه تا حالا ای‌پی‌آی توسعه ندادین یا به دنبال تجدید مهارت + در مهارت های توسعه ای‌پی‌آی خودتون هستین، این مقاله نکات خوبی رو برای شروع میتونه بهتون یاد بده. + <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/yql0JMJ6PRLiaghAIFWL3BkVKldQbsX03fKStFXfnRaIze4ikCLATjTEON5JSQBEdlJYwX1xPIk7w656GzpmKUN3eeeN2nvey9fHmDdL575BvwQe9GCtas4vo4HfhPgvbUP2fVQoqd8lAFkpjtXvr14eY3X0m7zFj1L4E4Fh68vx5mmovjhN8xYniAHcI-D4V3WrossLtXx9x_3j1f4v" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a> + </p> <br /> + <li style="font-size:18px"><b>پستگرس چگونه کار می‌کند؟ جلسه دو - جدول‌های سیستمی</b> </li> + <p> در قسمت قبل به اینکه از وقتی پستگرس کوئری را بصورت متنی دریافت می‌کند تا وقتی خروجی را میدهد چه + اتفاقاتی می‌افتد. در این قسمت به این می‌پردازیم که پستگرس اطلاعات ساختار جداول و توابع را چگونه ذخیر + می‌کند. برای دنبال کردن این قسمت نیازی نیست قسمت اول را کامل خوانده باشید. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/WkS4jLa-uT6YVuiFampJkQrME8zfUnq7CE9RfK3kK5uz0PhvE8lxKT7wmMlUaGu9LDQ98PUzNoV8WtOFGv1Q7sNlVfEn-8-nid_QHNA2UMk1hTaxp-emwoUhRg2IAie-8cEneuaoZREIoLRFv8Tlu50g_A" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>سوال و جواب های مهمی که در جلسه مصاحبه موقعیت دیتاآنالیست از شما پرسیده می + شود</b> </li> + <p> اگر سایت های استخدام رو نگاه کنید موقعیت های شغلی حوزه ی دیتا تعدادشون در حال زیاد شدن هست و اگر + میخواید برای این موقعیت ها درخواست مصاحبه و استخدام بدین این سوالات رو حتما بدونید <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/dVtSYKqd1YgKThOMSQjXGrlqfNCaJwNuSjscHbdXNZ1B3dq_QwVwc88j47V2Hm5xDZ_rM5OhB2X7xcGbrbdDV6JkFzdOi63LnnJx7payIJ7R4fBqrnuXw7Fer5wmBg60KS6dRAJrXeJv0o89YGsMMDBevMHXLJnUhTSZktrTkWHekYoYYeisfyzZhtukkfVLnOW47eycCPtX1Vo8uRmTlzv2lzW4IodK3w" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>ابداع روشی جهت بهبود در مدیریت حافظه لینوکس</b> </li> + <p> در این پست نویسنده ابتدا اشاره به LUR و روش مدیریت حافظه در کرنل لینوکس می‌کند. سپس، در مورد یک پچ + جدید که این روش را بهبود داده است توضیحاتی ارائه می‌کند. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/m-fruQqZPL0YYtKtTqcwV_Qx02ifz3IVO9ePGkXu2kiIsrP2b0tEWHj37TVal3dyXvStQcOythJGO_asWgcuMzUCEt6hdXqWcTP53KSlVIpNodN9W47_46n3-doXh-9IlIJuBKh6HKlN0_bnEwc_IDmj_X2BSroxTp_nsrZfegc9" + style="font-size:14px" sib_link_id="5">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>مقایسه API با WebSocket و WebHook : کدام یک را انتخاب کنیم؟</b> </li> + <p> در هر برنامه‌ای که استفاده می‌کنیم، به یک مکانیسم قابل اتکا برای برقراری ارتباط بین اجزای آن نیاز + داریم. به عنوان مثال در برنامه‌های وب، باید بین مرورگر و سرور ارتباط برقرار کنیم. در این مقاله قصد + داریم در مورد چگونگی عملکرد API و WebSocket و WebHook و اینکه چگونه مناسب‌ترین روش را انتخاب کنیم، + بحث کنیم. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/lUuu6S6YdlTP1FvbF2ImVEOkXWHCiqDYxmUtRNQD7eR-MLut61ScVkX7OOiJTHNAL_5pozMsAfPGfD_aod-J7JJGoYIabrJpSQWLfZYDWeTOJKU9NfjXGMVNxz0O6jJ6GewEAr3Z3WR7CGcTWELOMZgyogVyKCs1jKnj9hy1a8BXpibcRe-PULbvw-PNQri_dwuyPloDD7CA3BFE94pdbo3tT9U5vF8T" + style="font-size:14px" sib_link_id="6">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این + شماره از خبرنامه، دوستان خوبی به نام‌های <b>امیرحسین بقایی،</b> <b>علی الیاسی،</b> <b>هادی مشیدی،</b> + <b>امیر شکری،</b> <b>حسن شهبازی،</b> <b>علی کرباسی</b> در تهیه محتوا کمک کردند. شما هم می‌توانید <a + href="https://r.t10.pktsrv2.com/mk/cl/f/a0jiFKqyqd1eduDedbdtBJH3dsPDSV9v5BgNYERh7fUORyHioeO1QzcNMW6LegLOX-hbhhVxCUpooyHt2qq402nE7swXAL97KYidVUyEsHzNBN8ZTH0r-c6mvlEAEVapS_3MYbhQNPHoftl0tC5aaXL0r13iAZlwZ-kEgieJXX_QoSyEPf7yOvORFLAHQQ" + sib_link_id="7">مشارکت کنید</a>. + </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=4xRMEBorEeQSJcjM1V03vIhnSBaEpuaZ-LdSJY6z22VRzp2E-yUYxVMs2bQzB_n1HuAAOah2QCK4ud8T066kou3haA9dPpBqrh9TzRoVlNI4wYVRIYFfq2iqV47oGNuWPgDhuK7I-2YDVOsBBTKryg2_Bl9BAVErMGASVtL_9qUDt4GyAwm5R5kttfRqucJft6_vLYVMLFH_TEnzoasfctdZVg" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/RVndSVcAf-U5Z1nxSJOPk5xvOa_pNgblascTCebCm3KcGhUV6eDv9W7YwIw52LewhusOhglYicClFMV_PJ5kJP8atP91FqeiCVguBkWf6ZvR4S5ruoEn-VWBijMvP5_C5hf3lMecVlpjN4Fe5RWs" + sib_link_id="8">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/vN2MlX18YDMt8iYRwGwip5toQNuorVjDEXU37nF5IKd7hbNWjNJCL8E2BLyPAQnZgltITDFSTPiJ9LgNvu-Hu9sf_J4fPWakcGI_evlLiDakUMInzlB6xNN1qBZY9KbMyLAnJz6ZSm5y4ZycGNOs" + sib_link_id="9">سرویس پاکت</a> اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف sota10 + می‌توانید از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید </p> + <hr /> <br /> + </span> + </span> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 17.html + +urn:uuid:2fd2380d-63c7-3046-392d-69ad9bc93320 +2021-05-27T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۱۷</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبرنامهٔ Softwaretalks </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۱۷ - پنجشنبه، ۰٦ خرداد ۱۴۰۰ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>زیرساخت تغییرپذیر در مقابل زیرساخت تغییرناپذیر</b> </li> + <p> اگر در حوزه زیرساخت و مدیریت سیستم‌ها کار میکنید، شاید شنیدن این موضوع اگر تا به‌حال نشنیده باشیدش، + بهتون توی طراحی سیستم‌ها و فرآیند‌ها کمک کنه. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/6eskelQcMxM4M0koSU8trdM1naIGXLsINLP8ZnmE9vMRNJ_KesdDoqA-feka-kmf10W97TGXlr2UkKLNQu2iFzakM1BCVlFFZsVSeWY0Q1ZMCn92RrCypww_Us1YwsBS4vcZJJ8RH9HI4EEqH-EjtF9BdXqhaVFkhOJfhdkBEEE8ml89XOGr8QuKRHMGhvx7FKypCLLEbaxOi40HeKtF5hu_TPYrQ-LvE4WzIcOGrA" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>بررسی هدرهای امنیتی وب سایت شما</b> </li> + <p> به کمک این وب سایت می‌توانید وضعیت هدرهای امنیتی وب سایت مورد نظرتان را بررسی کنید. این سرویس، سایت شما + را بر اساس هدرهای موجود رتبه‌بندی می‌کند و می‌توانید ببینید چه هدرهایی را فراموش کردید. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/fsnnFI3mcZJG-_Pi7mQ0_d84cbzCLyHlKHK3bhIGavCCiu8fZnAP9F4fRziWj4vBLhY6_jNGCl-po9p3Tx6BiG_9tGWOIaTd5iqu72fBUbru4ihKGeBqQOr0Jnbygbz3eouobCC6mpHzTT1ztrvRmgO3Vb3hR8WFcaY" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>دوباره چرخ رو اختراع نکنیم</b> </li> + <p> احتمالا خیلی جمله ی دوباره چرخ رو اختراع نکنیم رو شنیدیم ولی وقتی به دنیای برنامه نویسی و توسعه نرم + افزار می رسیم این موضوع خیلی مهم تر میشه و کلا این بحث استفاده ی مجدد با دیزاین پترن ها پر رنگ تر شده + این مقاله ی خیلی کوتاه اومده چندتا تکنیک ساده رو گفته که به این نتیجه برسه چرخ رو نباید دوباره اختراع + کنیم <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/AXow7BE3ljrQBqZSai1Mn1xqG8f5rwPZA-Q7t8QD-oZUKOYpJw8V-TsW8cJtGFPOwPFkNuXKOrtQ7ah4MdDrrrLBhOEf47dPUtFJfkigAJPkof0vBcdwJqat0RgOtH_lwzRXi9EcGPHEKDmFsL4xrGsyIa8enANEQH_3PNro1UCZ3aqKqZ12g86iGOAet8E_MPSeBcMA0HL62cl_UAI" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>لیست کتابهای برگزیده جذاب با محوریت Performance در استک دات نت</b> </li> + <p> بهینه سازی عملکرد اپلیکیشن بسیار اهمیت دارد و به عوامل متعددی مانند معماری اپلیکیشن، طراحی و روش پیاده + سازی آن (نوع کد نویسی) بستگی دارد. قبل از هرگونه اقدامی ابتدا باید ناحیه ی مورد نظر برای بهبود را مشخص + کنیم و تغییرات را تنها بر اساس نیاز های خود اعمال کنیم . <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/IbPd6Yrw8QHmrm9vtGyOVKioMvWoP0buTFKlTMrxCC_RV5Y2V0ukH-vK5FF-fs_9gC9K6fx8eaeTH5jZAul2fIm7MoI2g9wZGY5AihW152Ltxo62EbRO6b-FkkVsrPvrWmIGMttCcYMSvFKhTAXcRVVV0g" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>لیست ها در پایتون چگونه کار میکنن؟</b> </li> + <p> ما همیشه از زبان های برنامه نویسی استفاده میکنیم تا کارهامون رو انجام بدیم اما تاحالا با خودمون فکر + کردیم که خود اون ها چطوری کارهاشون رو مدیریت میکنن؟اینجا ما بررسی میکنیم تا ببینیم پایتون چطوری لیست + هارو مدیریت میکنه <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/WAf5T37ZHEXQ7f7eXH4UXX3YBwBHn2H9dfsdk-IDgJz6mX09uPDYI83h_ukI34Pq1H1PebINhiV3sbR5uYpM0sxQUyeFE2F7bh6N0SjTgUp86uOFnVjPF_oMNc0lFjg9TSVjWkxV96F3QbjmAWulQ24yrQ" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>امیرحسین بقایی،</b> <b>حامد سعیدی،</b> <b>امیر شکری،</b> <b>Amir + Mokarchi،</b> <b>سید مهدی موسوی</b> در تهیه محتوا کمک کردند. شما هم می‌توانید <a + href="https://r.t10.pktsrv2.com/mk/cl/f/R8EGTpm0zBIci-zXnCjNm0qy0m5e_c6fy7ekZrRmXegk6PPyriEhtTutUDIrPm8D2BU1b-v8n6z6wmuvTmyLg7h3dJ2fqyMOpMKTHU8_RLQP51wScz8YHiAYuxl8OHOl-BKpe-HBzmk2vs97BIMSCxIZAo78EdDpl5lHGbJaKN81DLjZYfRe9x7xfS4KrzA" + sib_link_id="5">مشارکت کنید</a>. </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=j37M0qeLbPkrXfreqnnPUICDn-nroY4OdPTRzrd-ntggIkMlucvx3XZ4qevvGM1vt3G1RdgeH11rVvmb1VM5kFfNDJ-vFlAmRLmtMEyPWQ5RGeeCeVokHC5sbPnITGpwn8j3hDFqnw9Jfqge9ioZ57xADFcdkpQr0qZC4nqrtVAt2qeICHVfl37j_YHGRJH4Sc56sWp6fXc5YAxPF8Jqt3O5nA" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/HvTCq-d4iSPUxA3S8QL1r4Zdbbn_Uee9IB8WcpcmiRTpfBbsgB7Nv-5Z8QtwT_IjhSTRi1OMFX-pk24aGsnU-0TPLVgfqloAYwSoyb-b6Q76F4dmkYUolfS0B6l-bNK84fF0d9Gxnbo3WncwFndHAA" + sib_link_id="6">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/PVzR9qKHPT-X_O4f9EnAbkkQ2NO3nHSZyj7w9i0W9GX-zYRIDkq3TzE4UD1Zcv9D8rEs-YJ9pjUpWyOZWLGnga3XodcnNuHC26tirPtyYZuFxxrPUJCofaPL9Rdys6BVHNz80rKNxg8f-2G2pPf1yg" + sib_link_id="7">سرویس پاکت</a> اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف sota10 می‌توانید + از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید </p> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 55.html + +urn:uuid:c81d3624-507f-2913-c4c1-9c7b2b34b222 +2022-06-30T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۵۵ - پنجشنبه، ۰۹ تیر ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://helm.sh/docs/topics/library_charts/"><b>جلوگیری از تکرار مانفیست‌های کوبرنتیز</b></a><br/>احتمالا بارها پیش اومده که احساس کردید دارید مانفیست‌فایل‌های کوبرنتیزتون رو تکرار میکنید و کارتون به کپی پیست افتاده و اعمال تغییرات خیلی کوچیک برای هر پروژه، اگر به همچین حالتی افتادین و با مفهوم library chart ها آشنا نیستین، احتمالا دوای درد شما اینجاست. اگر میخواید فایل‌های مانیفست کوبرنتیزتون رو DRY کنید حتما به این قابلیت Helm یک نگاه بندازین + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://eng.uber.com/usl-ubers-unified-signup-and-login-stack/"><b>معماری ثبت‌نام و ورود در اوبر</b></a><br/>در این مقاله از وبلاگ مهندسی اوبر، درباره USL یا Uber&#039;s Unified Signup and Login و چالش‌ها و معماری آن صحبت می‌شود. در پایان هم کمی از نقشه راه USL صحبت شده است + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://timdeschryver.dev/blog/feature-flags-in-net-from-simple-to-more-advanced"><b>Feature Flag در دات‌نت</b></a><br/>این مقاله ضمن معرفی ایده‌های پایه‌ای Feature Flag به نحوه پیاده‌سازی در دات‌نت از حالت ساده تا کمی پیشرفته‌تر می‌پردازد + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 42.html + +urn:uuid:8d40450e-7308-0b66-d788-8a070230166e +2021-12-09T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۴۲ - پنجشنبه، ۱۸ آذر ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://youtu.be/LdOe18KhtT4"><b>ارائه فلیکر درباره همکاری تیم‌های اپریشن و دولوپ</b></a><br/>احتمالا درباره DevOps تا حالا مطلب زیاد خوندین ولی هیچی به اندازه خوندن تاریخچه هر چیزی به آدم در درک چیزها کمک نمیکنه. چرا چیزی خلق میشه و چرا چیزی وجود داره در حالی که میتونست نباشه؛ این ارائه مهندسان Flicker تقریبا جزو اولین جرقه‌های مفهوم DevOps در زمان خودش یعنی سال‌ ۲۰۰۹ بوده. دیدنش حتما پر از نکات خوبیه که میتونه بهمون کمک کنه در درک DevOps + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://road-to-php.com"><b>خبرنامه ده روزه‌ی آشنایی با php 8.1</b></a><br/>با عضویت در این خبرنامه، تا ده روز، هر روز با یکی از تغییرات php در نسخه‌ی 8.1 آشنا می‌شوید. به گفته‌ی سازنده، بعد از پایان این ده روز، ارسال خبرنامه متوقف می‌شود و ایمیل شما هم جایی ذخیره نمی‌‌شود. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.gimtec.io/articles/what-is-better-recursion-or-iteration/"><b>حلقه‌تکرار بهتر است یا بازگشتی؟ بررسی عمیق تا لایه سخت‌افزار</b></a><br/>نویسنده در این مطلب سوال ساده‌ای مطرح کرده ولی برای پاسخ به این سوال ساده تا عمیق‌ترین لایه‌های سیستم‌ پایین میره تا خیلی عمیق‌تر بفهمیم که در واقعیت داره چه اتفاقی میفته وقتی که یک کار رو به صورت بازگشتی انجام میدیم یا به صورت حلقه‌ تکرار + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://armansolutions.com/blog/2021/12/03/%da%86%d9%86%d8%af%d8%b2%d8%a8%d8%a7%d9%86%d9%87-%da%a9%d8%b1%d8%af%d9%86-%d9%88%d8%a8-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%87%d8%a7/"><b>چندزبانه‌ کردن وب‌اپلیکیشن‌ها بدون درد و خونریزی</b></a><br/>در این مطلب، خانم زهرا کبیری از تجربه چندزبانه کردن وب‌اپلیکیشن‌ها نوشته‌اند و توضیح داده‌اند چطور این کار به نظر ساده، برای خودشون و تیمشون چالش برانگیز بوده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/@iqan/releasing-flutter-ios-app-to-testflight-using-xcode-21571299dbc3"><b>انتشار اپ فلاتر در testflight برای ios</b></a><br/>اگر نیاز دارید برنامه هایی که نوشتین رو روی گوشیتون تست کنید حتما testflight رو استفاده کنید اینجوری قبل از نهایی کردن می تونید به بقیه هم برنامتون رو برای تست ارسال کنید؛ در این نوشته روش انجام اینکار رو مرحله به مرحله مطالعه کنید ... + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/gjam/php-backend-with-flutter-13e3f4b11e6c"><b>بکند پی اچ پی با فلاتر</b></a><br/>این نوشته ی خیلی کوتاه بهتون کمک میکنه که برنامه فلاتر خودتون رو روی یک وب سرور پیاده سازی کنید + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/apis-with-valentine/api-load-testing-performance-testing-with-postman-does-it-really-work-1a2910c69c03"><b>تست بار و پرفورمنس با ابزار پست‌من، آیا واقعا امکان پذیر است؟</b></a><br/>خیلی از افراد دوست دارن از پست‌من برای تست پرفورمنس API های خودشون استفاده کنند. متأسفانه Postman برای این کار طراحی نشده و فاقد ویژگی های اصلی مورد نیازه. بیایید بررسی کنیم که چرا پست‌من ابزار مناسبی برای این کار نیست. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>امیرحسین مجیری،</b> + + + <b>پویا شریفی،</b> + + + <b>امیر شکری،</b> + + + <b>علی الیاسی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 26.html + +urn:uuid:a5e60dc8-c6b1-8655-3f26-5d93107b321b +2021-07-29T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۲٦ - پنجشنبه، ۰۷ مرداد ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/1zeST"><b>راهنمای رعایت حقوق دیجیتال کاربران برای شرکت‌های فناوری: شفافیت و پاسخگویی</b></a><br/>با وجود همه‌ی نگرانی‌ها در مورد اینترنت در ایران، هنوز هم راه‌هایی هست که شرکت‌های نوپا تا جایی که میتونن به حقوق کاربرانشون احترام بذارن و شفافیت و پاسخگویی رو سرلوحه‌ی کارشون قرار بدن. این پست شامل توصیه‌ها و دفترچه‌ی راهنماییه که بر اساس شاخص رتبه‌بندی حقوق دیجیتال نوشته شده.  + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://blog.scrum.ir/2021/07/context-is-matter/"><b>چرا نباید هر چیزی که در کتاب و مقالات می‌خوانیم اجرا کنیم؟</b></a><br/> این روزها ما شاهد گسترش خیلی خیلی زیاد و یکباره ترجمه مطالب انگلیسی به فارسی در تمام رشته ها و بخصوص حوزه مدیریت هستیم، مطالب بسیار زیبا که کاملا به نظر اجرایی و مفید میایند. مطالبی که از دل دنیای واقعی آمدند، کارآمد هستند، و تنها کافی است ما آنها را یاد بگیریم و اجرا کنیم: مثلا چگونه به کارمندان بازخورد بدهیم، چگونه تیم بسازیم، چگونه افراد را مدیریت کنیم، چگونه در تیم ها تعامل نماییم… اما مشکل کجاست؟ مشکل اینجاست که زمینه یا فرهنگ خودمان را در هنگام اجرای این ایده‌های مترقی کاملا نادیده می‌گیریم و فرض بر این هست که هر ایده‌ای در هر جایی قرار است کار کند. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://wikicensorship.github.io/fa/docs/measure-internet-censorship/"><b>دانشنامه ای آزاد برای بررسی سانسور اینترنت (فیلتر و تحریم)</b></a><br/>دانشنامه ای آزاد و در حال توسعه برای بررسی تخصصی سانسور اینترنت که در آن می توانید بیاموزد چطور فیلترینگ و تحریم را با دانش و یا بدون دانش تخصصی تشخیص دهید. مطلب های منتشر شده تاکنون: الف)آموزش ساده تا پیشرفته ی OONI. ب)سانسور در ارتباط DNS. ج)سانسور در لایه‌ی شبکه و انتقال. د)سانسور در لایه‌ی کاربرد. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.youtube.com/watch?v=NivpAiuh-s0"><b>برای ویندوز 11 کامپیوتر جدید نخرید!</b></a><br/>همانطور که می دانید ویندوز ۱۱ با سخت افزارهای قدیمی به صورت پیشفرض سازگار نیست ولی در این ویدیو که توسط تیم LTT ساخته شده است، نحوه نصب ویندوز ۱۱ روی سخت افزارهای قدیمی توضیح داده می شود. اگر قصد نصب کردن ویندوز ۱۱ را دارید حتما این ویدیو را در یوتیوب مشاهده کنید. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/amirshnll/naming-cheatsheet"><b>قواعد نام گذاری توابع و متغیر‌ها در جاوااسکریپت</b></a><br/>ترجمه ی فارسی naming cheatsheet را در این لینک بخوانید اگر مشکلی در ترجمه بود با مشارکتتون این ترجمه را کامل‌تر و خواناتر کنید + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>رویا پاکزاد،</b> + + + <b>Rahmanism،</b> + + + <b>سید حسین درواری،</b> + + + <b>علی کرباسی،</b> + + + <b>امیر شکری.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 60.html + +urn:uuid:66e75f4a-4bef-05ea-9ce0-8feec372df82 +2022-08-05T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ٦۰ - جمعه، ۱۴ مرداد ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="http://olafurw.com/2019-01-27-programmer-advice/"><b>توصیه‌هایی برای برنامه‌نویسان تازه وارد</b></a><br/>این آقا زمانی در توییتر از برنامه‌نویسان خواسته تا اگر توصیه‌ای برای برنامه‌نویسان تازه‌وارد دارند بنویسند. بعد ۷۰۰ پاسخ به درخواستش، پاسخ‌ها رو دسته‌بندی کرده و چند نکته مهم و تکرار شده را در این پست وبلاگ اشاره کرده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://matt-rickard.com/squash-merge-or-rebase"><b>Squash، Merge یا Rebase?</b></a><br/>این یک نوشته بسیار کوتاه است. وقتی از git برای کنترل نسخه‌های کد استفاده می‌کنیم موقع ادغام branchها معمولاً سه گزینه داریم. در این نوشته درباره این سه گزینه و تفاوت و روشی که نویسنده ترحیج می‌دهد صحبت شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.marcobehler.com/guides/load-testing"><b>راهنمای Load Testing</b></a><br/>این راهنما برای درک چگونگی اجرای درست Load Test و اینکه چه داده‌هایی در حین تست جمع‌آوری می‌شوند و چه تفسیری از آن‌ها می‌توان داشت قابل استفاده است + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی،</b> + + + <b>.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 24.html + +urn:uuid:6f811b39-21e1-4636-2000-463c0566c43f +2021-07-15T00:00:00+00:00 +<!DOCTYPE html> +<!-- saved from url=(0044)https://my.pakat.net/camp/showpreview/id/115 --> +<html dir="rtl" lang="fa"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + </head> + <body style="max-width: 680px; margin: 0 auto"> + <div style="text-align: center"> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) + format("truetype"); + font-weight: 400; + } + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) + format("truetype"); + font-weight: 700; + } + ul { + padding: 0 25px; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 50px; + } + </style> + <br /><br /> + <img + alt="Softwaretalks" + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + style=" + margin: 2.1em auto; + display: block; + width: 130px; + border-radius: 5px; + " + /> + <h1 + style=" + font-size: 25px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + font-weight: 700; + color: #263238; + " + > + خبرنامهٔ Softwaretalks + </h1> + <h3 + style=" + font-size: 18px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + color: #263238; + " + > + شمارهٔ ۲۴ - پنجشنبه، ۲۴ تیر ۱۴۰۰ + </h3> + <hr /> + <ul + style=" + text-align: right; + font-family: Samim, sans-serif; + direction: rtl; + " + > + <a href="http://info.cern.ch/"></a> + <li style="font-size: 18px"> + <a href="http://info.cern.ch/"><b>اولین وبسایت جهان را ببینید</b> </a> + <p> + روزهایی که تیم‌های فنی در آزمایشگاه CERN تونستن پروتکل HTTP رو + پیاده‌سازی و اجرا کنند رو میشه گفت اولین روزهای دنیای وب! و این لینک + اولین وبسایت رو نشون میده. + </p> + <br /> + <a + href="https://blogs.windows.com/windowsdeveloper/2021/06/24/what-windows-11-means-for-developers/" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://blogs.windows.com/windowsdeveloper/2021/06/24/what-windows-11-means-for-developers/" + ><b>معنای ویندوز ۱۱ برای توسعه‌دهندگان نرم‌افزار</b> + </a> + <p> + با معرفی ویندوز ۱۱ موضوع امکانات تازه برای توسعه‌دهندگان نیز اهمیت + پیدا کرده. اینجا مایکروسافت درباره ۵ حوزه مهم برای توسعه‌دهندگان در + ویندوز ۱۱ صحبت می‌کند. در انتهای این نوشته،‌ لینکی به نسخه ضبط شده + یک ساعته در یوتوب هم هست. + </p> + <br /> + <a + href="https://dataschool.com/how-to-teach-people-sql/sql-join-types-explained-visually/" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://dataschool.com/how-to-teach-people-sql/sql-join-types-explained-visually/" + ><b>راهنمای تصویری انواع SQL Join</b> + </a> + <p> + در این نوشته که مناسب همه افراد چه تازه‌کارها و چه با تجربه‌هاست، + انواع SQL Join به صورت تصویری توضیح داده شده است. همچنین در همین + سایت نسخه پویانمایی شده کار با کوئری‌های مختلف نیز وجود دارد. + </p> + <br /> + <a + href="https://www.linkedin.com/feed/update/urn:li:activity:6819868986822459392/?commentUrn=urn%3Ali%3Acomment%3A(ugcPost%3A6819868986314940416%2C6820374173546897409)%20[GBQ%20Case%20Study%20-%20Farsi.pdf](https://github.com/softwaretalks/newsletter/files/6805699/GBQ.Case.Study.-.Farsi.pdf)" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://www.linkedin.com/feed/update/urn:li:activity:6819868986822459392/?commentUrn=urn%3Ali%3Acomment%3A(ugcPost%3A6819868986314940416%2C6820374173546897409)%20[GBQ%20Case%20Study%20-%20Farsi.pdf](https://github.com/softwaretalks/newsletter/files/6805699/GBQ.Case.Study.-.Farsi.pdf)" + ><b + >چگونه داده‌ها را به Data Warehouse (Google Big Query) منتقل + کنیم؟</b + > + </a> + <p> + پایگاه‌های داده و اطلاعات، واژگانی رایج در زندگی بسیاری از ما هستند. + دنیای پیرامون ما پر از داده‌هاست. داده‌ها با انواع مختلف‌شان‌ ما را + احاطه کرده‌اند. در این دوره که پیشرفت فناوری‌های ارتباطی سرعت گرفته، + هیچ داده‌ای بی‌معنا نیست و کار ما فهمیدن حرف حساب داده‌هاست! ما با + این مسیر همراستا شده‌ایم و از بهترین ابزارها و متدها استفاده + می‌کنیم. + </p> + <br /> + <a + href="https://levelup.gitconnected.com/how-to-design-a-system-to-scale-to-your-first-100-million-users-4450a2f9703d" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://levelup.gitconnected.com/how-to-design-a-system-to-scale-to-your-first-100-million-users-4450a2f9703d" + ><b + >چگونه میتوان سیستمی را طراحی کرد که برای 100 میلیون کاربر جوابگو + باشد</b + > + </a> + <p> + طراحی سیستمی که از صدها میلیون کاربر پشتیبانی کند کار آسانی نیست. + این همیشه یک چالش بزرگ برای یک معمار نرم‌افزار است. در این نوشته + خواهید خواند که چگونه میشود به سادگی از ۱۰۰ میلیون کاربر پذیرایی کرد + </p> + </li> + </ul> + <hr /> + <p + style=" + font-size: 13px; + font-family: Samim, sans-serif; + direction: rtl; + text-align: right; + " + > + تأمین‌کنندگانِ محتوا در این شماره از خبرنامه: <b>امیرحسین بقایی،</b> + <b>حامد سعیدی،</b> <b>علی اورجی و معین موحدنیا،</b> + <b>راشد عبیدی</b> شما نیز می‌توانید + <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a + >. + </p> + <hr /> + <span + ><p + style=" + font-size: 16px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <img + src="https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png" + /><br /> + ارسال شده توسط <a href="https://pakat.net/">پاکت</a> + </p> + <p + style=" + font-size: 14px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ + ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ + تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید + </p> + <br + /></span> + </div> + </body> +</html> + + + +شماره خبرنامه 43.html + +urn:uuid:adf0adf3-1261-760f-ec36-5245034345b1 +2021-12-23T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۴۳ - پنجشنبه، ۰۲ دی ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.aparat.com/v/kCP1y/%D8%B9%D9%84%DB%8C%26zwnj%3B%D8%A8%D8%A7%D8%A8%D8%A7_%D8%AA%D8%A7%DA%A9_%7C_%D8%AF%D8%B1_%DA%AF%D9%88%DA%AF%D9%84_%DA%86%DA%AF%D9%88%D9%86%D9%87_%DA%A9%D8%A7%D8%B1_%D9%85%DB%8C%26zwnj%3B%DA%A9%D9%86%D9%86%D8%AF%D8%9F"><b>گوگل چگونه کار میکند؟ گفتگوی کیانوش مختاریان و احسان آراسته</b></a><br/>در این برنامه یکی از مهندسان ارشد گوگل، یعنی کیانوش مختاریان به زبان ساده و راحت، سازوکار توسعه نرم‌افزار در گوگل رو توضیح میده. اگر به سازوکارهای مهندسی نرم‌افزار در شرکت‌های بزرگ مثل گوگل علاقه دارید، حتما این گفتگو را تماشا کنید چرا که پر از نکات جالبه. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.cockroachlabs.com/blog/calendar-versioning/"><b>چرا دیتابیس سوسکی از نسخه‌بندی تاریخی استفاده میکند؟</b></a><br/>اگر برای هر پروژه‌ نرم‌افزاری که ایجاد میکنید از SemVer استفاده میکنید و تنها راه نسخه‌بندی نرم‌افزارتون رو همین میبینید، خوبه که با نسخه‌بندی‌های مبتنی بر تاریخ هم آشنا بشید شاید گاهی پاسخ بهتری برای مسئله شما باشند. در این مطلب تیم CockroachDB علت مهاجرت از SemVer به CalVer یا همان Calendar versioning را توضیح میدهند. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/KdKMG"><b>شخم توییتر فارسی (اراضی برنامه نویسان)</b></a><br/>در این مطلب به تحلیل و بررسی توییت های «لیستی از اهالی فارسی‌زبان آی‌تی توییتر» پرداخته می‌شود و قصد داریم ببینیم برنامه ‌نویسان در توییتر مشغول چه کاری هستند؟! + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://wbscodingschool.medium.com/what-happens-to-developers-who-never-go-into-management-1f1d8483e4bd"><b>چرا توسعه دهنده ها مدیر نمیشن ؟</b></a><br/>اغلب آدم ها فکر میکنن برنامه نویس ها باید بعد از مدتی تبدیل به مدیر بشن و این فرآیند برای همشون وجود داره ولی در عمل این شکلی نیست ... + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>وحید باقی،</b> + + + <b>امیر شکری.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 29.html + +urn:uuid:fb803a4f-e130-9d55-45d4-9651e7984bcf +2021-08-26T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۲۹ - پنجشنبه، ۰۴ شهریور ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.youtube.com/watch?v=438fndL6pJ0"><b>موزیک‌ویدیوی Up&amp;Up گروه Coldplay چطور ساخته شد؟</b></a><br/>اگر موزیک‌ویدیوی تخیلی و جالب Up&amp;Up گروه Coldplay رو دیده باشید احتمالا از دیدن خلاقیت و وصل‌کردن چیزهای غیرمرتبط بهم لذت بردین. ولی اگر به پشت‌صحنه‌ این‌جور چیزها علاقه دارید، میتونید توی این ویدیو ببینید که چطور این ایده پیاده شده. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="http://developerexcuses.com/"><b>بهانه های توسعه دهنده ها</b></a><br/>این سایت رو هر بار که بازش میکنی بهت یه بهونه جدید میده که بدیش به کارفرما :))) + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://zetcode.com/csharp/httpclient/"><b>کار با HttpClient در C#</b></a><br/>در این مطلب با نحوه کار با HttpClient در سی شارپ آشنا می‌شوید و با مثال‌هایی نحوه ایجاد درخواست‌های Get و Post را خواهید دید. همچنین نحوه ارسال چندین درخواست به صورت async را مشاهده خواهید کرد. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://stackoverflow.blog/2021/07/05/best-practices-for-writing-code-comments/"><b>چطور برای کدها کامنت بنویسیم؟</b></a><br/>در این مقاله از وبلاگ Stack Overflow درباره ۹ قانون کامنت نویسی در کد به عنوان Best Practice صحبت شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.linode.com/content/hackersploit-docker-security-essentials-ebook/"><b>کتابچه الزامات امنیتی داکر</b></a><br/>در این کتابچه مباحث امن‌سازی مرتبط با داکر به همراه توضیحات ابتدایی کار با داکر و دستورات اصلی داده شده است. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>امید پاکدل،</b> + + + <b>Rahmanism،</b> + + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 28.html + +urn:uuid:b291eadb-8d7f-70c6-454f-aa79a6e2891c +2021-08-12T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۲۸ - پنجشنبه، ۲۱ مرداد ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/vasanthk/how-web-works"><b>وب چطور کار میکند؟</b></a><br/>وقتی در مرورگر میزنیم google.com و اینتر میکنیم، چه اتفاقاتی میفتد؟ در این مطلب نویسنده به ترتیب سعی کرده مهم‌ترین اتفاقات رو بررسی کنه. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/1hcZB"><b>با من حرف بزن! سیر تا پیاز دادن بازخورد</b></a><br/>یادگیری مهارت‌های نرم جز اون دسته از مواردیه که، ما رو تو مسیر رشد بهتری قرار می‌دهد. توانایی دادن بازخورد از چمله اون چیزهاییه باعث بهبود کار و روحیه تیمی میشه. پس این شما و این یک مطلب خوب در رابطه با این موضوع! + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/srZqV"><b>داکر و آشنایی با overlay2</b></a><br/>در ادامه مطلب هفته‌ی قبل هفته نامه(ایزوله‌سازی داکر)، این بار سراغ فایل سیستم‌ها تو داکر میریم. اینکه داکر چطور به کمک فایل سیستم‌ها(تو این مطلب به طور خاص overlay) ایزوله‌سازی فایل‌ها رو برای ما مهیا می‌کنه. ایده و نحوه مهندسی این موضوع از جمله مواردیه که می‌تونه براتون جالب باشه! + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/Hossein52Hz/The-Art-Of-Readable-Code-Persian"><b>ترجمه فارسی کتاب هنر کد خوانا</b></a><br/>این ترجمه کتاب The Art Of Readable Code است که در دو قالب PDF و Markdown در مخزن گیت‌هابی قرار داده شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/amirshnll/clean-code-javascript"><b>ترجمه فارسی مفاهیم کد تمیز در جاوااسکریپت</b></a><br/>ترجمه‌ فارسی &#039;کدتمیز در جاوااسکریپت&#039; را بخوانید و اگر مشکلی در ترجمه مشاهده کردید حتما در بهترشدن ترجمه مشارکت کنید. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>وحید فتحی،</b> + + + <b>حامد سعیدی،</b> + + + <b>امیر شکری.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 21.html + +urn:uuid:7f63c6d5-f0da-a17e-ab7f-dcbc5721e2e6 +2021-06-24T00:00:00+00:00 +<!DOCTYPE html> +<html dir="rtl" lang="fa"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + </head> + <body style="max-width: 680px; margin: 0 auto"> + <div style="text-align: center"> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) + format("truetype"); + font-weight: 400; + } + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) + format("truetype"); + font-weight: 700; + } + ul { + padding: 0 25px; + } + </style> + <br /><br /> + <img + alt="Softwaretalks" + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + style=" + margin: 2.1em auto; + display: block; + width: 130px; + border-radius: 5px; + " + /> + <h1 + style=" + font-size: 25px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + font-weight: 700; + color: #263238; + " + > + خبرنامهٔ Softwaretalks + </h1> + <h3 + style=" + font-size: 18px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + color: #263238; + " + > + شمارهٔ ۲۱ - پنجشنبه، ۰۳ تیر ۱۴۰۰ + </h3> + <hr /> + <ul + style=" + text-align: right; + font-family: Samim, sans-serif; + direction: rtl; + " + > + <a href="https://www.youtube.com/watch?v=0Rb8AkTEASw"></a> + <li style="font-size: 18px"> + <a href="https://www.youtube.com/watch?v=0Rb8AkTEASw" + ><b>مدل OSI چطور کار میکند به زبانی ساده و شنیدنی</b> + </a> + <p> + اگر دوست‌دارید بدونید شبکه چطور کار میکنه دیدن این ویدیو که بخشی از + درس آقای Nicholas Andre هستش، میتونه بهتون کمک کنه. ایشون خیلی + باانرژی و جالب مباحث رو توضیح میده. + </p> + <br /> + <a + href="https://medium.com/shakuro/programmer-vs-developer-vs-engineer-91ef374e5033" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://medium.com/shakuro/programmer-vs-developer-vs-engineer-91ef374e5033" + ><b + >یکبار برای همیشه تفاوت برنامه‌نویس و توسعه‌دهنده و مهندس رو درک + کنیم</b + > + </a> + <p> + خیلی جالبه که برنامه‌نویس، توسعه‌دهنده و مهندس هنوز هم برای آدم‌ها + تفاوتشون مشخص نیست. از لحاظ حوزه ی تخصصی، دانش و جایگاه شغلی این سه + مورد با هم تفاوت‌ها و شباهت‌هایی دارن که یکبار وقت بزاریم بخونیم که + دیگه برای خودمون حداقل جا بیوفته + </p> + <br /> + <a href="https://rtbf.ir/"></a> + </li> + <li style="font-size: 18px"> + <a href="https://rtbf.ir/"><b>حق فراموش شدن</b> </a> + <p> + بسیاری از سرویس‌های اینترنتی اینگونه عمل می کنند که امکان حذف + حساب‌کاربری را به شما نمی دهند و از نظر ما کاربران این موضوع نقض + حریم شخصی است. با توجه به حق فراموش‌شدن یا Right to be forgotten این + یک تضاد می‌باشد. اگر شما هم این مشکل رو دارید در محتوای این ابزار + مشارکت کنید + </p> + <br /> + <a + href="https://nocomplexity.com/documents/arplaybook/index.html" + ></a> + </li> + <li style="font-size: 18px"> + <a href="https://nocomplexity.com/documents/arplaybook/index.html" + ><b>کتاب معماری</b> + </a> + <p> + در این کتاب در فصول مختلف از «معماری» بخش‌های مختلف از کسب و کار + گرفته تا معماری بانک اطلاعاتی و نرم‌افزار و الگوهای طراحی API و + کنترل کیفیت و ... با معرفی ابزارها و روش‌ها صحبت می‌شود. این کتاب + رایگان است + </p> + <br /> + <a href="https://vrgl.ir/UTUds"></a> + </li> + <li style="font-size: 18px"> + <a href="https://vrgl.ir/UTUds" + ><b>در باب تفاوت‌های Dependency injection و Service Locator</b> + </a> + <p> + ببینیم چرا میگن Service Locator بده؛ فرقش با Dependency Injection + چیه و dagger 2 داره از کدوم استفاده می‌کنه + </p> + <br /> + <a + href="https://bloggingsibani.medium.com/make-a-killer-technical-resume-3ed9d72e337c" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://bloggingsibani.medium.com/make-a-killer-technical-resume-3ed9d72e337c" + ><b + >از اشتباهات رایجی که مردم هنگام ساخت رزومه مرتکب می شوند ، اجتناب + کنید</b + > + </a> + <p> + رزومه کاری شما اولین و مهمترین چیز برای تماس گرفتن از شرکت رویایی + شماست. بنابراین شما باید از اشتباهات رایجی که مردم هنگام ساخت رزومه + مرتکب می شوند ، اجتناب کنید. در این مقاله ، من روی مواردی تمرکز دارم + که شما باید هنگام ساخت رزومه خود به خاطر بسپارید. + </p> + <br /> + <a + href="https://levelup.gitconnected.com/why-dark-mode-causes-more-accessibility-issues-than-it-solves-d2f8359bb46a" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://levelup.gitconnected.com/why-dark-mode-causes-more-accessibility-issues-than-it-solves-d2f8359bb46a" + ><b + >براساس تحقیقات جدید، دارک مود ضرر بیشتری نسبت به لایت مود + دارد!!</b + > + </a> + <p> + ولی بسیاری از محققین بر این باورند dark mode بیشتر از اینکه مشکلی رو + حل کنه، خودش باعث بروز مشکلاتی برای چشم میشه. در این مقاله درباره + مشکلاتی که براساس تحقیقات، دارک مود برای ما ایجاد میکند آشنا خواهید + شد ولی در نهایت تصمیم نهایی دست شماست ... + </p> + <br /> + <a href="https://jadi.net/2021/06/always-be-quitting/"></a> + </li> + <li style="font-size: 18px"> + <a href="https://jadi.net/2021/06/always-be-quitting/" + ><b>یک راهنمای شغلی: همیشه در حال استعفا دادن باشید</b> + </a> + <p> + منظور این نیست که هی شرکت عوض کنین یا همیشه تهدید کنین که دارین + می‌رین یا با دیدن هر چیز ناملایم بگین که «پس من می‌رم». فلسفه + نویسنده مقاله 'همیشه در حال رفتن باشید'، ایده‌اش اینه که همیشه جوری + کار کنین که انگار دارین شرکت رو ترک می‌کنین. همیشه در حال یاد دادن + کارهاتون به بقیه باشین، همیشه در حال این باشین که بقیه بتونن شما رو + جایگزین کنن و همیشه کارهایی که می‌کنین رو اتوماتیک کنین. + </p> + </li> + </ul> + <hr /> + <p + style=" + font-size: 13px; + font-family: Samim, sans-serif; + direction: rtl; + text-align: right; + " + > + تأمین‌کنندگانِ محتوا در این شماره از خبرنامه: <b>امیرحسین بقایی،</b> + <b>امیر شکری،</b> <b>حامد سعیدی،</b> <b>حمیدرضا شجراوی،</b> + <b>امیر ابوئی</b> شما نیز می‌توانید + <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a + >. + </p> + <hr /> + <span + ><p + style=" + font-size: 16px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <img + src="https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png" + /><br /> + ارسال شده توسط <a href="https://pakat.net/">پاکت</a> + </p> + <p + style=" + font-size: 14px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ + ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ + تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید + </p> + <hr /> + <br + /></span> + </div> + </body> +</html> + + + +شماره خبرنامه 46.html + +urn:uuid:88721612-526c-1b30-70f3-e7c2baf503aa +2022-01-13T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۴٦ - پنجشنبه، ۲۳ دی ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.redhat.com/rhdc/managed-files/cl-97-things-cloud-engineers-know-e-book-oreilly-f28602-202105-en.pdf"><b>کتاب رایگان ردهت برای مهندسان ابرزی</b></a><br/>اگر به دنیای ابر علاقه دارید (یا حتی ندارید) خوندن این کتاب که مفید و خلاصه هم هستش، میتونه شما رو با تجربیات دیگر مهندسان آشنا کنه و شاید بعضی نکاتش به کارهای شما نیز کمک کنه. عنوان این کتاب اینه: ۹۷ چیزی که هر مهندس کلود(ابر) باید بدونه؛ که شامل تجربیات افراد مختلفی میشه و خوندنش خالی از لطف نیست. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://matnbaz.net/"><b>مخزن‌های ایرانی در یک جا</b></a><br/> اخیرا پروژه‌ای رو دیدم که تلاش میکنه مخازن پروژه‌های ایرانی‌ها رو قابل‌دسترس‌تر کنه و با فیلترهایی که داره جستجو کردن و پیدا کردن پروژه‌ها و مخازن گیتهابی ایرانی‌ها رو ساده‌تر کنه. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/alibaba-aero/technical-interview"><b>سوالات فنی مصاحبه شرکت علی‌بابا</b></a><br/>در این مخزن گیتهابی، بچه‌های علی‌بابا سوالات فنی مصاحبه‌ها و مفاهیم کلی که در مصاحبه فنی پرسیده میشه رو مطرح کردند که حتی اگر قصد مصاحبه و کار کردن در علی بابا رو ندارید، مرورش میتونه کاربردی و مفید باشه. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/MoienTajik/AspNetCore-Developer-Roadmap"><b>مسیر راه یادگیری ASP.NET Core</b></a><br/>معین تاجیک عزیز در این مخزن گیتهابی خیلی دقیق و مفصل به مسیر یادگیری تکنولوژی‌ها، ابزارها و مفاهیم دنیای .Net Core پرداخته. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 27.html + +urn:uuid:568dbb96-239a-3cf3-0c9c-9dbfba51f0e2 +2021-08-05T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۲۷ - پنجشنبه، ۱۴ مرداد ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://eloquentjs.ir/"><b>ترجمه کتاب eloquent js به فارسی</b></a><br/>کتاب eloquent js خیلی ساده و راحت مباحث جالبی در JS رو مطرح میکنه که مهران عفتی عزیز این کتاب رو به زبان فارسی هم ترجمه کرده و میتونید این کتاب رو به زبان فارسی به صورت آنلاین مطالعه کنید. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.youtube.com/watch?v=8aGhZQkoFbQ"><b>‏Event Loop جاوااسکریپت به زبان ساده</b></a><br/>اگر شما هم از دنیای زبان‌های برنامه‌نویسی چندنخی (Multithreaded) به دنیای تک‌نخی جاوااسکریپت مهاجرت کرده باشین، ممکنه رفتار Promiseها و دستورات async براتون گیج کننده باشه. این ویدیو به زبان ساده مفاهیم بنیادی مربوط به این قابلیت‌ها رو توضیح میده. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.yegor256.com/2014/05/13/why-null-is-bad.html"><b>چرا از Null استفاده نکنیم؟</b></a><br/>نویسنده در این مقاله نظر خودش رو درباره علل عدم استفاده از Null در برنامه‌نویسی بیان کرده که خوندنش احتمالا نکات جالبی برای بررسی و تفکر بیشتر برامون داره. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/n3zr0"><b>داکر چگونه ایزوله‌سازی را فراهم می‌کند؟</b></a><br/>داکر با استفاده از ویژگی‌هایی که تو سیستم‌عامل‌ها وجود داره، برای ما یک محیط ایزوله‌ای رو فراهم می‌کند. اینکه این ایزوله‌سازی سازی چطوری انجام میشه و داکر از چه ویژگی‌هایی استفاده می‌کنه بحثیه که تو این پست به اون پرداخته میشه. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>مصطفی فرزان،</b> + + + <b>Vahid Fathi.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 61.html + +urn:uuid:e4f810f8-35b3-2d5e-982c-2da3932f7d9b +2022-08-11T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ٦۱ - پنجشنبه، ۲۰ مرداد ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/Battelle/movfuscator"><b>کامپایلری که فقط با دستور MOV کار میکند</b></a><br/>توی توییتر داشتم میچرخیدم که یک توییت دیدم از طرف کاربر @sajad_ghorbanii که یک مخزن جالب معرفی کرده بود. توی این مخزن یک کامپایلر C داریم که همه چیز رو به دستورات MOV تبدیل میکنه. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.quora.com/Why-use-Google-Fonts-What-are-the-advantages-and-disadvantages-of-using-Google-Fonts"><b>چرا از گوگل فونت باید در وبسایت خود استفاده کنید</b></a><br/>احتمالا در پروژه های مختلف خودتون مخصوصا با اومدن فونت وزیر به گوگل فونت از این سرویس استفاده کرده اید ولی شاید براتون سوال پیش بیاد اصلا مزیت ها و معایبی که استفاده از گوگل فونت داره چیه اگر دنبال این موارد هستید این تاپیک کورا به سوالتون پاسخ میده + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/vmfoR"><b>ترافیک شهری در اسنپ</b></a><br/>در این مطلب از وبلاگ مهندسی اسنپ، درباره مساله ترافیک شهری در نقشه و چالش‌های مرتبط و راهکارهایی که اسنپ از آن‌ها استفاده کرده صحبت شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://chistio.ir/wp-content/uploads/books/guidetodatamining_chistio.ir.pdf"><b>ترجمه کتاب داده‌کاوی برای برنامه‌نویسان</b></a><br/>این لینک دانلود ترجمه کتاب داده‌کاوی برای برنامه‌نویسان است + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/design-bootcamp/popular-tech-stack-for-startups-in-2022-f3b53f50c18"><b>استک‌های محبوب استارتاپ‌ها در 2022</b></a><br/>معمولا استارتاپ‌ها در ابتدای کار برای اینکه سرعت بالایی داشته باشند استک‌های مختلفی را استفاده می‌کنند اما یکی از چالش‌های آنها در آینده زمانیست که قصد scale کردن دارند در آنجاست که کمی مسئله متفاوت می‌شود در این نوشته چندین استک محبوب برای استارتاپ‌ها که در آینده به سادگی قابل توسعه باشد لیست شده است. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>امیر شکری،</b> + + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 25.html + +urn:uuid:0833e5a0-97ce-e083-b101-33e8f2c7884b +2021-07-22T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۲۵ - پنجشنبه، ۳۱ تیر ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.submarinecablemap.com/#/"><b>نقشه کابل‌های زیردریایی تشکیل‌دهنده‌ اینترنت جهانی</b></a><br/>اگر شما هم به مباحث اینترنت و این که دقیقا اینترنت چطوری کار میکنه علاقه دارید، پس دیدن این نقشه باید براتون جذاب و دیدنی باشه. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://engineering.fb.com/2021/07/14/security/whatsapp-multi-device/"><b>چالش‌های فنی قابلیت کار واتس‌اپ در چند دستگاه</b></a><br/>در این نوشته که در وبلاگ مهندسی فیسبوک منتشر شده، موضوع کار واتس‌اپ در چند دستگاه و حفظ محرمانگی و رمزنگاری سرتاسری مورد توجه قرار گرفته و شیوه‌ای که مهندسان برای حل این چالش استفاده کردند توضیح داده شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://laravel-news.com/pestphp-video-series"><b>معرفی تست فریمورک PestPHP</b></a><br/>Pest یک تست فریمورک که بر پایه PHPUnit نوشته شده اما چند صد برابر باحال تر و ساده تر و و تست نویسی را لذت بخش تر می کنه. توی این مقاله میتونید یکسری ویدئو را مشاهده کنید و خیلی سریع با این تست فریمورک زبان PHP آشنا بشید. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://css-tricks.com/nth-child-between-two-fixed-indexes/"><b>انتخاب بازه‌ای از المنت‌ها با :nth-child در CSS</b></a><br/> اگر چند div داشته باشید و بخواهید از div دوم به بعد را انتخاب کنید می‌توانید از `div:nth-child(n+2)` استفاده کنید. این سلکتور، تمام divها از دوم تا آخر را انتخاب می‌کند، اما اگر بخواهید از دوم تا پنجم را انتخاب کنید چه می‌کنید؟ راه حل را با توضیح بیشتر در این مطلب بخوانید. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://howlongtoread.com/"><b>خواندن هر کتابی چقدر زمان می‌بره؟</b></a><br/>قبل از این که هر کتابی را بخونید از طریق سایت How long to read از تخمین زمان خوندن اون کتاب مطلع بشید. همچنین بهتون اجازه می‌ده قسمتی از کتاب رو بخونید تا با سرعت خوندن خودتون زمان کتاب رو تخمین بزنه. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره از خبرنامه: <b>امیرحسین بقایی،</b> + <b>حامد سعیدی،</b> + <b>AriaieBOY،</b> + <b>Rahmanism</b> + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 41.html + +urn:uuid:91f418c7-990a-3ee0-a4ba-07ff21ab6635 +2021-11-26T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۴۱ - جمعه، ۰۵ آذر ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/free-code-camp/the-top-data-structures-you-should-know-for-your-next-coding-interview-36af0831f5e3"><b>مهم ترین ساختمان داده هایی که باید در مصاحبه شغلی بدانیم</b></a><br/>اگر در فرآیند مصاحبه های متعدد شغلی هستید و احتمالا مشکلاتی با سوالات دارید یک بخشی از این مشکلات مربوط به ساختمان داده است که کلیات ساختمان داده هایی که نیاز دارید بدانید به صورت خلاصه در لینک اصلی مقاله لیست شده ... + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://blog.cloudflare.com/building-software-at-cloudflare/"><b>در کلودفلر چطور نرم‌افزار می‌سازیم؟</b></a><br/>در این نوشته منتشر شده در وبلاگ کلودفلر ابتدا روش‌های متداول تولید نرم‌افزار معرفی شده و در ادامه روشی که کلودفلر با آن نرم‌افزار تولید می‌کند توضیح داده شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://certitude.consulting/blog/en/invisible-backdoor/"><b>ایجاد Backdoor نامرئی در جاوا اسکرپیت</b></a><br/>در این مقاله بسیار جالب نویسنده این ایده رو داشته که چی می‌شه اگر نتونیم کد Backdoor رو ببینیم؟ در واقع آیا می‌تونیم با کمک کاراکترهای نامرئی در ادیتورها کدی رو داخل کد اصلی قرار بدیم که در بازبینی کدها (Code Review) هم مشخص نباشه؟ پیشنهاد می‌کنم نتیجه رو ببینید. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://css-tricks.com/responsive-layouts-fewer-media-queries/"><b>طراحی رسپانسیو با مدیاکوئری‌های کمتر</b></a><br/>هرچند که مدیاکوئری سال‌های سال است که در طراحی رسپانسیو بسیار کاربردی است، اما گاهی باعث می‌شود مدیریت طراحی سخت شود. در این مقاله راه حل‌هایی راه مشاهده خواهید کرد که فلکس و گرید به منظور استفاده کمتر از مدیاکوئری به کار گرفته می‌شوند. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/DS2qf"><b>با این اسکریپت نیازی به پوشه وصایای امام ندارید !</b></a><br/>اومدیم یه کاری کردیم که دیگه نیازی نباشه به اینکه نگران باشین اگه مامان باباتون فایل های شخصی تون رو پیدا کردن اونا رو توی کلی فولدر مخفی کنین + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://dev.to/nehal_mahida/oops-in-javascript-with-easy-to-understand-examples-2ppn"><b>OOPS in JavaScript with easy to understand examples 🔥🔥</b></a><br/>اگه با زبان‌های شی گرا کار کرده باشید، وقتی سراغ جاوااسکریپت میایید هم دوست دارید به همون روش کد بنویسید. اینجا با مثال مفهوم کدنویسی شی گرا در جاوااسکریپت شرح داده شده. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://twitter.com/hbazargani_b/status/1449793089955057672"><b>رشته توییتی از حمید بازرگانی درباره مصاحبه کاری با شرکت‌های بزرگ</b></a><br/>پارسال با اینکه فکر میکردم آماده‌ام شروع کردم به مصاحبه دادن و تقریبا از هر جا که اپلای کردم ریجکت شدم. یه جای کار میلنگید. اعتماد بنفسم داغون شده بود ..... + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیر شکری،</b> + + + <b>حامد سعیدی،</b> + + + <b>Rahmanism،</b> + + + <b>ایلیا آقامجیدی،</b> + + + <b>امیرحسین بقایی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 6.html + +urn:uuid:19445089-50ba-4725-8d0e-e34f96d9842f +2021-02-11T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ٦</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبر‌نامه مهندسان نرم‌افزار </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ٦ - پنجشنبه، ۲۳ بهمن ۹۹ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>توضیح Design Pattern ها با غذا و برنامه واقعی</b> </li> + <p> این مخزن گیت‌هاب، همه دیزاین پترن‌ها را با مثال‌هایی از صنعت غذا و با برنامه‌های واقعی توضیح داده تا در + دنیای واقعی کاربرد آن‌ها را بررسی کند. همچنین در یک سری ویدئوی یوتوب درباره هر کدام از پروژه‌ها در حال + صحبت هستند. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/crL94lKVs2VnebotKcAHv3Nr8NlvyVLUkH2fwrqaNogB7iZaEUfEjgIIgo_24BfeZ7CE3GNJFbOIgFCG9t-eFXeTxPVQRIK8R9vxdInsq_1bnoLKpK3M6nj_J8UfzkYN1uSbcC_0zqSqXPrifCtnZzNY7Xg_xvzY1jnH0KS9aMBoi2yzwA8sgizn82Cm9Sbde8dljNPSLxc29lhFgZ4" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>مرجعی رایگان و کامل برای ساختمان داده‌ها و الگوریتم‌ها با جاوااسکریپت</b> + </li> + <p> در این مخزن گیت‌هاب، مشارکت‌کنندگان یک مجموعه بسیار کامل از ساختمان‌داده‌ها و الگوریتم‌ها را با استفاده + از جاوا اسکریپت توضیح دادند. این مخزن به ۱۴ زبان دیگر هم در دسترس است و کاندید بسیار مناسبی برای ترجمه + به فارسی است <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/XPMTDgKoplFlxAXo2CMdaVzXUN2iDcyNaBurQ1IxSSAyiB2b_uu12ukpm_c8qV72GCIB8Cau2Dqu6VPZO2fLaWFUKL7oUvUvgU1VGYrNLPZD4OK5eiM9W45LT_LrRzL3nZLYUo9zX1S8AQfEcioyyo5mTIr7P8jOpVjy3pOAiuq0UiTKcvfmjycSt7Em-q83" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>سه روش برای اندازه‌گیری کارآیی برنامه‌های React</b> </li> + <p> در این مقاله، محصول اپن سورس Reactime معرفی می‌شود و سه روش برای تحلیل performance در برنامه‌های React + به کمک این محصول بررسی می‌شوند. Reactime که یک ابزار debug است کمک می‌کند تا snapshot هایی از برنامه و + state ایجاد شود و امکان سفر در زمان را برای برنامه‌نویس فراهم می‌کند <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/kM_FzKOZgatQL4KWNZGHzwO_xN8tazxV5gYpQn0aZKv7qLdyb5dRcb51_kRaUEIvq4ywLr9OY5EZ-ZuBqsAodGixsn6gJMlqHh1d8lVRLTld4Qs7-ofvLEIF2J51eJf_ReQdSoiY3hDLSvIsToxzYp5cBL1GRejMfGOcekoxRdYp7-RERBS5Mi3yClXo64rkVI12vXcaFgkN_NxeNgmsW2_ZrHVYqEZgIGq2AE1dKaj20uzgxQ" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>همه چیز درباره رفتن به کارآموزی</b> </li> + <p> توی این ویدیو درباره هر چیزی که برای رفتن به کارآموزی برای برنامه‌نویسی و ورود به بازار کار حرفه‌ای و + کسب درآمد نیاز هست توضیح داده شده. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/ek0ffcsBoyC-sMCfnOaqNLUUBTFeLzlYjukpiJ7zfrkVUmR4sJksVp4SEviuNqNIZCH1J1RJ2C6eSA8_364BIQGJiIceTYkyUDwM55uVBw9Cln8F_K_Xfl2tGmYQp8Bx66FC3pgMhkqdL0YNPpdMpPWJImbMJBo44Q" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>حامد سعیدی،</b> <b>اشکان رحمانی</b> در تهیه محتوا کمک کردند. </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=H6r2gKEyiYC5KwjJWf2090-rIZma0TmfjaFYLvlI2CYQaA1i5iOTIA36fOt_bz_s_8OclWTOjgWGJbYsVr_-qwH17_q55_E0cq0f__fINg8tLhT3CNgPBnjjL8QKIHyWoceeLBEniQKVDNd-ts2vekk8HS-BbSp1wYXNqNhE9Ct-sVfccnocauNhGz0-43Q5d53jjfN7eLvQkOi7ULvMa6qCPg" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/s2imM7UYiZjMu-LZ93yxSX7alsn1qpQu61Kfyjlj-Ul-ZTOdgQrlXQb_A0J5FeUZLuyTHZopt9w7jcQrJkvBOx5YXNRr48RFjh4hAWX47y6xeIU0RuaUu4FLsofoK9Bh0_XLwAqk4WfF70Ard9Zs" + sib_link_id="4">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/2VYDDOhAYzSx9ooBModYENxTED5rsQK3bvTYiN1jf4zy0FfHeH0B8LaCgTLPS26QtNRKLl7jL7cgSu-Joa5nBNKwBhHsLVhHb_kYaMv9kKsL6TgE8NVZ8yQe1aUKW-xLprJk0ldVLXwjioqB1k2w" + sib_link_id="5">سرویس پاکت</a> اسپانسر ارسال ایمیلهای این خبرنامه است. با کد تخفیف sota10 میتوانید + از ۱۰ درصد تخفیف در خرید پلنهای پاکت بهرهمند شوید </p> + <br /> + </span> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 32.html + +urn:uuid:415ac11b-cab9-0df6-464c-c9e5177c4389 +2021-09-24T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="background-color: #000;"> + <div style="max-width: 680px; margin: 0 auto;color: #fff;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: red;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: red;"> + شمارهٔ ۳۲ - جمعه، ۰۲ مهر ۱۴۰۰ + </h3> + <div> <p style="text-align: center; color: red;font-family: 'Samim', sans-serif;"><small>این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده‌ی خود را بر اثر کرونا از دست داده‌اند، سیاه‌پوش شده‌است</small></p> </div> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://kokabi1365.github.io/Vajehdan"><b>با واژه‌دان زیباتر بنویسید</b></a><br/>«برایِ این دکمه چه اسمی انتخاب کنم؟»، «این پیامِ خطا را چگونه بنویسم؟»، «این قابلیت را با چه عباراتی توضیح بدهم؟»، «برایِ این منو از چه کلماتی استفاده کنم؟» واژه‌دان کمک می‌کند تا سریع‌تر جوابِ این سوالات را پیدا کنید. این برنامه خصوصاً برایِ UX Writerها ابزاری مفید و حیاتی است...&quot; + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://www.howtodeal.dev/"><b>راهنمای کامل شیوه برخورد با آدم‌های چغر و بد بدن در حوزه توسعه نرم‌افزار</b></a><br/>در این سایت، راهنمایی در خصوص تیپ‌های مختلف آدم‌ها در نقش‌های مختلف مرتبط با توسعه نرم‌افزار و چگونگی سر و کله زدن با آن‌ها به تفکیک بیان شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://fossfa.ir/blog/match-case-in-python/"><b>ساختار سوییچ‌کیس وارد پایتون می شود!</b></a><br/>توی این مطلب، قراره بهتون بگیم که سوییچ‌کیس‌ها چی هستن و اون‌ها رو در آینده چجوری در پایتون پیاده میکنیم. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://spin.atomicobject.com/2020/05/05/git-configurations-default/"><b>سه تنظیم گیت که بهتره پیش فرض باشن</b></a><br/>تنظیماتی در گیت وجود‌ داره که اگه به صورت پیش‌فرض فعال باشن، احتمالا از خیلی دردسرها جلوگیری می‌کنن و با پیشگیری از این مشکلات باعث صرفه جویی در وقت و اعصاب و ... می‌شن. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>سیدایوب کوکبی،</b> + + + <b>حامد سعیدی،</b> + + + <b>Rahmanism.</b> + + شما نیز می‌توانید <a style="color: red" href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #fff;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a style="color: red" href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #fff;"> <a style="color: red" href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </div> + </body> +</html> + + +شماره خبرنامه 7.html + +urn:uuid:89af0926-0162-f00a-792d-c7526614d62a +2021-02-18T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۷</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبر‌نامه مهندسان نرم‌افزار </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۷ - پنجشنبه، ۳۰ بهمن ۹۹ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>نکاتی در خصوص پیمایش کدبیس های عظیم</b> </li> + <p> در این مقاله نویسنده از مشکلاتی که برای پیمایش کدبیس های حجیم (شامل ده ها یا صدها هزار خط کد) وجود دارد + نام میبرد و سپس راه حل هایی جهت رفع و یا بهبود این مشکلات ارائه میکند. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/bEHTY00i4Wxw91qAzjGLG4EV3bQbfRIx-vYPJOkDcd3jgX90MU-Bf18Sff89fEW06sDGItNWuWYZPNfHT-DqpkPrvD-_RDeiL34yOU8Rzk96ZPqBby7JZ-sHh3xKVZt1iO5eDNHOXXcOpH4mIGFvQsGMkdBo6gX0hxAKbScrmk0mnEpHle6v0SwjzrxkiBsbq5kzsZr4XedVrXT6mnxfpgs" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>برنامه کن! یک ربات تلگرامی برای اضافه کردن رویدادها به تقویم گوگل</b> </li> + <p> برنامه کن یک ربات تلگرامیه که آدما بتونن به راحتی ایونت هایی که میبینن (به خصوص توی تلگرام) رو به تقویم + گوگلشون اضافه کنن. سورس این ربات به صورت آزاد منتشر شده و جا برای بهتر شدن زیاد داره.خوشحال میشم ادمای + بیشتری ازش استفاده کنن و به دردشون بخوره. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/4laS_-XTsslCD2w6SFtj-IgxjETPsVCszHyeRm-gLGvziw78MyC6-G5_JkSxn2vOt8PeHFcwUFCcK7O0AJDuTehzXLl0J4hY-jcpYp19xQeCqdRuvj4k9uA1N1sGTaAFcDEORTyVG-tD8NOl8IY3_5hhn-A0pNm1HB8Kgf2exaufupih" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>قواعدی برای اسم‌گذاری توابع و متغیر‌ها</b> </li> + <p> برای نام‌گذاری بهتر متغیر‌ها و به خصوص‌ توابع و متد‌ها، این ریپوزیتوری، قلق‌ها و پترن‌های جالبی بهمون + یاد میده. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/31DbI0XlFPolvCVFwjPvxbPxwXbgy7khNZcJpmDjnYgiqrTZTMBc4gtP8BJqQ3R1l_Mg9TkpqnkA8kPY2nXPj0vvlUhvv8NzTNYd-bwVY1edU8w778m8QloQqVSMP_smKF32PYe77IEdkMbn2U05y3a77ODUc4gQWX49XFOSONxi9Ibk3-zShCv6OUW4Dw" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>کشف یک باگ در کرنل لینوکس بعد از ۲۴ سال</b> </li> + <p> یک باگ در لایه شبکه کرنل لینوکس که باعث از کار افتادن پایپ «آرسنیک» برای انتقال محتواهای حجیم میشد، بعد + از ۲۴ سال کشف و برطرف شد. این مقاله شامل یک بررسی کوتاه از کد کرنل، نحوه آدرس دهی مشکل، و در نهایت نحوه + دیباگ کردن کرنل و تولید پچ هست. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/eDl-VAKF38mf61oAZc3tJDSE9SBx-Q4OouRvULEdK8Ccpv33vY3vsJT1aCUwLQUJnUAQD_t-yelwiOx1AVUZecubg_vqd9BRdhlm4F8XsVr9DDdaUYmne01D7mDflT4dPlMHcRKZh4bK7NjK2BJIqxpb5P1qCYglb16RNCTyUJ2nc0Ch5c-I3al9-B3CLQ3wfnouPopW2ULS4G-vK6BZN5983x3nAHtkG4-Ps1KZpXXFwyWMcQk" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>دیتاست رایگان شرکت مدیریت فناوری بورس تهران</b> </li> + <p> احتمالا این روزها همه دیگه روزی چند بار اسم بورس رو شنیدیم و خب سرویس هایی که برای دسترسی به داده های + بورس به صورت api موجود هست هم کم نیست ولی خب تا جایی که اطلاع دارم سرویس رایگانی پیدا نمیشه که برای + پروژه های کوچولو و شخصی بشه استفاده کرد؛ سایت tsetmc یه ساختار آدرس خاص برای داده های هر سهام داره که به + سادگی امکان دریافت دیتای لحظه ای رو دارید اما دقت کنید هر شرکتی دو کد برای ریکوئست زدن لازم داره که با + توجه به زیاد بودن سهام ها نیاز هست یک لیست کامل رو داشته باشید که این دیتاست احتمالا کارتون رو راه + بندازه <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/zzuIU6r9gEStOnkm3dOEvgd5xTg2Hb4_vv56uN3oK62vbmwVWCLAOZP4M5FW0OBo6bAnBYCWumVJvbL2_Q4SVqo51CBqr6iepwzrps47xxCnX3SaYyxdiEq76rCx7c97Aq7dP5KQiI38wDyrgoAvAj05dOG4ldlsr1tIOz5ln7fHIhIzfUJuQxnKuEBN" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>ARCHITECTURE.md</b> </li> + <p> در یک پروژه اپن سورس داشتن مستندات برای افرادی که مایل به مشارکت در کد هستند خیلی اهمیت دارد و در واقع + میتواند یک نقطه شروع برای مشارکت‌کنندگان باشد، اما بیشتر اوقات برای افراد تازه‌کار شروع به همکاری و + آشنایی با پروژه ممکن است کمی گیج‌کننده باشد، در این مطلب یک راه‌حل خوب پیشنهاد شده است و آن هم داشتن یک + فایل است که معماری کلی سیستم را به صورت خلاصه توضیح دهد <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/QO2Yii4Xw_D0OIM17CU69msEtMKm9eqYUl-PHckqdH6EFiBGiXBJRs9Tn208pxqarDqWJmA1HctIgCr-qFdeR-N1kjrd2oiXjPiBLsfi-psTkaDl7QgiyvJ-snW-rtqreZbJzIBsCSOcE7fLvsUxoDbhDOHy2IP_h8QAUH0folQtvy7qhMlwh1MqZ_RoB9qwFgV6JfIIi5l7eNXGVIFq" + style="font-size:14px" sib_link_id="5">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>تاسیس یک انجمن تخصصی برای مباحث توسعه قرارداد هوشمند به زبان فارسی</b> </li> + <p> چند ماه پیش بود که کوین‌ایران با ارتباط هایی که تونسته بود بگیره یه سولارشیپ 1000 دلاری از کانزنسیس(یک + شرکت که توی حوزه توسعه بلاکچین اتریوم کار میکنه هستش) برای 7 نفر گرفت (این سولارشیپ مخصوص بانوان بود) + گرفت و حالا که این دوره تموم شده این افراد به علاوه چند متخصص دیگه این انجمن رو راه اندازی کردن با هدف + انتقال دانش و تجربه <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/m1B-aKQjtIg0Oq37vBd6XLPHJmgRIfQIZCqqXDrUOqEfpkVZL8ILqAnwUTjd-sB9gyGm7etYuHow9KVw0s4SFaPZ73VxdJAC_TN-AWdFpEMYO1n3qTuZ_flc-sn2gq46AZF372ULpkllDiyi1N10ZQLqQA8D5xJNBJRCqSGaST8" + style="font-size:14px" sib_link_id="6">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>استفاده از اختلاف قیمت در صرافی ها غیر‌متمرکز برای آربیتراژ گرفتن با استفاده + از قرارداد های هوشمند</b> </li> + <p> صرافی ها غیرمتمرکز بر بستر شبک اتریوم این روز ها نوع جدیدی از نوع مبادله رو معرفی کردن . به استفاده کردن + از اختلاف قیمت یک چیز در دو بازار متفاوت برای کسب درآمد آربیتراژ گفته میشه.تو بازار های سنتی برای + استفاده کردن از موقعیت های آربیتراژ نیاز به نقدینگی هستش ولی توی دنیای دی‌فای(بازار های مالی غیر متمرکز + یا دیسنترالایز فایننس) این محدودیت با مفهمومی به اسم فلش لون (وام های لحظه ای) برداشته شده و هرکسی + میتونه بدون داشتن نقدینگی هم از موقیعت های آربیتراژ بین صرافی های مختلف بر بستر اتریوم استفاده کنه و این + کار نیاز به برنامه نویسی به زبان سالیدیتی داره. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/ne27oWNAjdGDA2FKSA1K86jFMB5jZIMyJepOMb0srobLxfQbE5xQy3ykURFufe7atruimAozbwGxxBAl2Ewar3jxtIfkROO-62dfvDLhTu7DtyFUEQqs8__NKdL6pk5X0tOWBSTH0yYT6_uMqE8hOW6oPD-L9ced0GIc0QSywc2gay3ASBuVme-KDzvmwUsNvLrrsLGV5cHpIaKELNiI6rsch7BoGNin" + style="font-size:14px" sib_link_id="7">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>حسن شهبازی،</b> <b>محمد عرب انواری،</b> <b>امیرحسین بقایی،</b> <b>امیر + شکری،</b> <b>سیروان عفیفی،</b> <b>حمید رضا مرادی</b> در تهیه محتوا کمک کردند. </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=C1jpTHOd-rsIpkpVbcrd3IvZ6rdTw5Ud_NKgxalHtFIewVRd5X910YykdnJtLZGs75OKXpzsY-t2-czgI90Sa-U1pNoiiq6GJQBLK9Ms7jLWqBbfI3UULvGFvhpmR4B1gqQmgoVdapxGUCNquS8499p_Kd-SEezhGpojqRNwxR7w9S-8ZBhd2_BXeTSxGQLpQXZj1a-TjBnO0ci6H8xsCniJYg" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/Fswb6vddMhkca3ols3BoP4NW4QR-0KOsm32D6M7XCAvdSm7f9tUjfbN8dceiAnMty6AZYW6w74inDbhAY5SzG-q8TnfrJsRtTfj_uHNIdz3XI48l3prZm56QkNo0N6Rhto3MpEYUS5YdUz-9o_JZ" + sib_link_id="8">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/mZ1p3cTF2Zq49eqBgT9uZ2ImaR8Yit9gaYWFgyVdXs3CAcokLKE1uF-iZZfU1A6hZD7ROayo6coP9LD_SpywamJgPFTHQmJP4EuXkW3fBy9zpQYuikGNCI3139XNgwYuOglGa6PTnqBO7VDiPFoS" + sib_link_id="9">سرویس پاکت</a> اسپانسر ارسال ایمیلهای این خبرنامه است. با کد تخفیف sota10 میتوانید + از ۱۰ درصد تخفیف در خرید پلنهای پاکت بهرهمند شوید </p> + <br /> + </span> + </body> + + </html> +</body> + +</html> + + +شماره خبرنامه 1.html + +urn:uuid:ee4f6358-24b9-bad3-114e-5cf5d344deb0 +2021-01-07T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه Software Talks، شماره یکم</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir=rtl lang=fa> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv=Content-Type> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + + <body style="max-width:680px;margin:0 auto"><br><br> + <h1 + style="font-size:25px;text-align:center;font-family:'Samim',sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبر‌نامه مهندسان نرم‌افزار </h1> + <h3 style="font-size:18px;text-align:center;font-family:'Samim',sans-serif;direction:rtl;color:#263238"> شماره + یکم - پنجشنبه، ۱۸ دی ۹۹ </h3> + <hr> + <ul style="text-align:right;font-family:'Samim',sans-serif;direction:rtl"> + <li style=font-size:18px><b>چرا تیمتان احتیاجی به استفاده از pull-request ندارد</b> </li> + <p> Pull Request توسط گیتهاب برای مدیریت پروژهای بازمتن معرفی شد تا مدیران این پروژه‌ها راحتتر بتوانند + کمکهای خارج از تیم اصلی را بپذیرند. ولی به مرور زمان بسیاری از تیم ها شروع به استفاده از این امکان برای + افراد داخل تیم کردند و این کار آنقدر رواج پیدا کرد که خیلی ها این کار را به عنوان یک best practice در + نظر می‌گیرند و چون تا به حال راه دیگری برای اطمینان از اینکه کدها بازبینی شوند، ندیده‌اند، تصور می‌کنند + که راه دیگری وجود ندارد. <br> <a + href=https://infrastructure-as-code.com/book/2021/01/02/pull-requests.html + style=font-size:14px>مطالعه مطلب اصلی</a></p> <br> + <li style=font-size:18px><b>مانیتورینگ لینوکس با پرومتئوس و گرافانا</b> </li> + <p> معرفی ابزارهای پرومتئوس و گرافانا؛ نحوه نصب‌شون و اینکه چطوری می‌تونیم خیلی سریع با داکر یک محیط آزمایشی + داشته باشیم که به کمک node exporter متریک‌های سیستم رو استخراج کرده و به اشکال متفاوت نمایش بدیم. <br> + <a href="https://r.t10.pktsrv2.com/tr/cl/uGpvyvesuyEV7Tep__5aqK37Gk8lR0bnZy2DnzzAKPJZ7W3YigbgJ8DvlQCkcRtNf0-079494MvYa3NXQKlm_XXv5pKlSmaJkeoCJUIcGPlCOw6irrHEuuY3wZ2GtVJOPNVsJP6dnu7tDlyAbE5xJQKaABvktb3YtojaR7GCjAICgjuc4gjD6HLJPUgCbL6zyHznr1j1nLy8goIBTvM" + style=font-size:14px>مطالعه مطلب اصلی</a></p> <br> + <li style=font-size:18px><b>گیت‌هاب دوباره به صورت کامل برای ایران در دسترس است</b> </li> + <p> بعد از آنکه در اواسط سال ۲۰۱۹ گیت‌هاب ارائه بخشی عمده‌ای از خدمات خود را به ایران متوقف و حساب کاربری + برنامه‌نویسان ایرانی را محدود کرد، ۵ ژانویه ۲۰۲۱ مدیرعامل گیت‌هاب در پست وبلاگی خبر در دسترس قرار گرفتن + همه گیت‌هاب برای ایران را اعلام کرد. گیت‌هاب اعلام کرد که ۲ سال پیگیر دریافت مجوز از دولت ایالات متحده + بوده تا دوباره خدماتش را برقرار کند و به زودی برای سایر کشورهای تحریم شده نظیر سوریه و کریمه هم این + خدمات به صورت کامل در دسترس قرار خواهند گرفت <br> <a + href=https://github.blog/2021-01-05-advancing-developer-freedom-github-is-fully-available-in-iran/ + style=font-size:14px>مطالعه مطلب اصلی</a></p> <br> + <li style=font-size:18px><b>نگاهی به امروز و فردای WebAssembly</b> </li> + <p> نقطه شروع برای چیز‌هایی که لازمه درمورد وب اسمبلی بدونید تا اون رو دنبال کنید و بیشتر یاد بگیرید <br> <a + href=https://virgool.io/GNULand/everything-about-wasm-qciuv9gq72pl style=font-size:14px>مطالعه مطلب + اصلی</a></p> <br> + <li style=font-size:18px><b>کتابچه شرکت Valve برای کارمندان جدیدش (کمپانی پشت Steam و چند بازی معروف مثل + کانتر)</b> </li> + <p> کمپانی‌هایی که خیلی بزرگ هستند همیشه از جهات مختلفی مورد توجه قرار میگیرن؛ مثلا گاهی نگاه میکنیم مسائل + رو چطوری حل میکنن یا گاهی میبینیم که چه ابزارهایی توسعه داده‌اند و چیزهای این مدلی. ولی این دفعه بیاین و + دفترچه ورود به شرکت Valve رو بخونین و ببینید وقتی یک کارمند جدید وارد شرکت میشه چه اطلاعاتی بهش داده + میشه و چه چیزهایی در اختیارش قرار میگیره. <br> <a + href=https://cdn.cloudflare.steamstatic.com/apps/valve/Valve_NewEmployeeHandbook.pdf + style=font-size:14px>مطالعه مطلب اصلی</a></p> <br> + <li style=font-size:18px><b>افسانه مستندسازی در پروژه های نرم افزاری</b> </li> + <p> اسد صفری توی این ارائه درباره چالش‌های مستندسازی پروژه‌های نرم‌افزاری که در ساختار Agile توسعه داده + میشوند، صحبت میکنه. <br> <a href=https://www.aparat.com/v/sqmQM style=font-size:14px>مطالعه مطلب + اصلی</a></p> <br> + <li style=font-size:18px><b>نگاهی به ملاحظات اخلاقی در طراحی و استفاده از ابزار «ادراکات شخصیتی» شرکت + آی‌بی‌ام</b> </li> + <p> این مطلب نگاهی به نحوه‌ی طراحی و استفاده از سرویس مبتنی بر یادگیری ماشین «ادراکات شخصیتی» شرکت آی‌بی‌ام + میپردازه و تاثیرات اخلاقی و حقوقی‌اش رو بررسی میکنه. نویسنده با مطرح کردن مثال‌هایی، مسائلی مثل سوگیری، + ناکامل بودن مستندات، جعبه سیاه بودن مدل یادگیری ماشین رو مورد سوال قرار میده. <br> <a + href=https://vrgl.ir/4ramN style=font-size:14px>مطالعه مطلب اصلی</a></p> <br> + <li style=font-size:18px><b>چگونه یک استریم به نمایش در می آید؟</b> </li> + <p> برای اینکه یه ویدئو به صورت لایو از استریمر به مخاطب برسه، یه پروسه سخت افزاری و نرم افزاری لازمه. تو + این مقاله قراره کمی با این مسیر آشنا بشیم و مفاهیم کلی رو دربارش رو بدونیم <br> <a + href=https://vrgl.ir/BGnvW style=font-size:14px>مطالعه مطلب اصلی</a></p> <br> + <li style=font-size:18px><b>کامپایل و حفاظت از پایتون؛ Cython</b> </li> + <p> فرض کنید کد پایتون شما قرار است در محلی بکارگیری شود که مدیریت آن با شما نیست، طبیعتا در این حالت باید + از کد خود حفاظت کنید. محافظت از سورس‌کد پایتون کار پیچیده‌ای نبوده و ابزار یا (بهتر بگویم) کتابخانه‌ای + وجود دارد به اسم Cython. <br> <a href=https://vrgl.ir/8tDMP style=font-size:14px>مطالعه مطلب اصلی</a> + </ul> + <hr> + <p style="font-size:13px;font-family:'Samim',sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>وحید نادری،</b> <b>مارک پشم‌فروش،</b> <b>حامد سعیدی،</b> <b>هادی + اعظمی،</b> <b>امیرحسین بقایی،</b> <b>رویا پاکزاد،</b> <b>حسین ناصری،</b> <b>سیدمصطفی افزونی</b> در تهیه + محتوا کمک کردند. + <hr> <span> + <p style=font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238><img + src=https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png><br> + ارسال شده توسط <a href=https://pakat.net />پاکت</a> + <p style=font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238><a + href=https://pakat.net />سرویس پاکت</a> اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف + sota10 می‌توانید از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید + </span> + </p> + </body> + + </html> + + +شماره خبرنامه 50.html + +urn:uuid:986236a9-a367-ff9d-f22f-15258fbf1508 +2022-03-10T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۵۰ - پنجشنبه، ۱۹ اسفند ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/UcBch"><b>انواع index در پستگرس</b></a><br/>پستگرس انواع مختلفی از indexهارو دارد، که تو این مطلب با این موارد آشنا میشم، تا بدونیم کی از کدوم یکی باید استفاده کنیم. این مطلب نسخه صوتی هم داره. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/doctave/how-google-twitter-and-spotify-built-a-culture-of-documentation-47a1ff22911"><b>گوگل، توییتر و اسپاتیفای چطور فرهنگ «مستندسازی» را ساختند؟</b></a><br/>این مقاله نگاهی به نکات مستندسازی در این سه شرکت کرده و ضمن مطرح کردن مشکلاتی که داشتند، راه‌حل‌هایی که برای فرهنگ‌سازی در این شرکت‌ها استفاده شده‌اند را معرفی کرده است + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/HollyAdele/awesome-programming-for-kids"><b>منابع آموزش برنامه‌نویسی به کودکان</b></a><br/>این لیست، مجموعه‌ای از نرم‌افزارهای مربوط به آموزش برنامه‌نویسی به کودکان در سه رده سنی گردآوری کرده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/durgeshsamariya/awesome-github-profile-readme-templates"><b>از READMEهای قشنگ تر روی پروفایل گیت هابتون استفاده کنید</b></a><br/>اگر میخواید روی readme پروفایل گیت هابتون المان های باحالی بیارید توی این مخزن یه سری readmeهای آماده که بقیه استفاده کردن هست دریافت کنید و قشنگش کنید + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://link.springer.com/article/10.1007/s10462-018-09679-z"><b>برترین ابزارهای یادگیری ماشین و یادگیری عمیق</b></a><br/>در مقاله زیر در که در سایت Springer منتشر گردیده با آخرین ابزارها و کتابخانه‌های تخصصی یادگیری ماشین و یادگیری عمیق به همراه نقاط قوت و ضعف آنها آشنا خواهید شد. شناخت دقیق ابزارها و به طبع انتخاب درست در پروژه‌ها یکی از وظایف کلیدی یک متخصص ارشد علم داده می‌باشد. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>وحید فتحی،</b> + + + <b>حامد سعیدی،</b> + + + <b>امیر شکری.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 37.html + +urn:uuid:30055b37-a488-a33e-ef18-ad8f707a401a +2021-10-30T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۳۷ - شنبه، ۰۸ آبان ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://containrrr.dev/watchtower/"><b>آپدیت کانتینرها به وسیله واچ‌تاور</b></a><br/>گاهی شرایطی پیش‌میاد که نمیتونیم از بیرون به سروری متصل بشیم و درخواست آپدیت یا به‌روزرسانی یک کانتینر رو بدیم. در این شرایط باید از داخل سرور به بیرون متصل بشیم و در صورت نیاز به‌روز‌رسانی‌های لازم رو انجام بدیم. ابزار خوبی که برای آپدیت کانتینرها در این شرایط ساخته‌شده، نامش Watchtower هست. در صورتی که شما هم شرایط مشابهی دارید شاید این ابزار با امکانات خوبی که داره گره از کارتون باز کنه به‌جای این که بخواید این ساختار رو مجدد خودتون اختراع کنید. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://blog.gougousis.net/the-inner-workings-of-an-event-loop-the-reactphp-case/"><b>ایونت لوپ‌ها چطور کار میکنند؟ (با بررسی ابزار ReactPHP)</b></a><br/>در این مطلب نویسنده تلاش کرده توضیحاتی رو درباره مفهوم Event Loop ارائه کنه و مفاهیم عملی رو با ابزار محبوبی در دنیای PHP یعنی ReactPHP توضیح بده. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://jakearchibald.com/2014/offline-cookbook/"><b>آشنایی با دنیای برنامه‌های آفلاین و سرویس‌ورکرها</b></a><br/>در این مطلب که تصویرسازی‌های خوبی هم داره، نویسنده تلاش کرده مباحث و امکانات و راه‌حل‌های چالش‌های مرسوم در دنیای اپلیکیشن‌های آفلاین وب رو توضیح بده. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://blog.cloudflare.com/october-2021-facebook-outage/"><b>در حادثه اخیر، فیسبوک چطور به صورت موقت از اینترنت محو شد؟</b></a><br/>در این نوشته از وبلاگ Cloudflare درباره حادثه اکتبر ۲۰۲۱ که منجر به قطع سرویس‌های فیسبوک در دنیا شد و تاثیر آن بر اینترنت صحبت شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/QStdm"><b>آموزش مجوز های ACL در Linux</b></a><br/>چطوری دسترسی دقیق تری در لینوکس به کاربران بدهیم! + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>حامد سعیدی،</b> + + + <b>Majid Ganji.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 3.html + +urn:uuid:2ff85b15-7093-0f54-cdac-b7de3a2e20ec +2021-01-21T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۳</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" + xmlns:o="urn:schemas-microsoft-com:office:office"> + + <head> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta http-equiv="Content-Type" content="text/html; " /> + <meta name="x-apple-disable-message-reformatting" /> + <meta name="apple-mobile-web-app-capable" content="yes" /> + <meta name="apple-mobile-web-app-status-bar-style" content="black" /> + <meta name="format-detection" content="telephone=no" /> + <title></title> + <link href="https://cdnjs.cloudflare.com/ajax/libs/vazir-font/27.1.0/font-face.css" rel="stylesheet" + type="text/css" /> + <style type="text/css"> + /* Resets */ + .ReadMsgBody { + width: 100%; + background-color: #ebebeb; + } + + .ExternalClass { + width: 100%; + background-color: #ebebeb; + } + + .ExternalClass, + .ExternalClass p, + .ExternalClass span, + .ExternalClass font, + .ExternalClass td, + .ExternalClass div { + line-height: 100%; + } + + a[x-apple-data-detectors] { + color: inherit !important; + text-decoration: none !important; + font-size: inherit !important; + font-family: inherit !important; + font-weight: inherit !important; + line-height: inherit !important; + } + + body { + -webkit-text-size-adjust: none; + -ms-text-size-adjust: none; + } + + body { + margin: 0; + padding: 0; + } + + .yshortcuts a { + border-bottom: none !important; + } + + .rnb-del-min-width { + min-width: 0 !important; + } + + /* Add new outlook css start */ + .templateContainer { + max-width: 590px !important; + width: auto !important; + } + + /* Add new outlook css end */ + + /* Image width by default for 3 columns */ + img[class="rnb-col-3-img"] { + max-width: 170px; + } + + /* Image width by default for 2 columns */ + img[class="rnb-col-2-img"] { + max-width: 264px; + } + + /* Image width by default for 2 columns aside small size */ + img[class="rnb-col-2-img-side-xs"] { + max-width: 180px; + } + + /* Image width by default for 2 columns aside big size */ + img[class="rnb-col-2-img-side-xl"] { + max-width: 350px; + } + + /* Image width by default for 1 column */ + img[class="rnb-col-1-img"] { + max-width: 550px; + } + + /* Image width by default for header */ + img[class="rnb-header-img"] { + max-width: 590px; + } + + /* Ckeditor line-height spacing */ + .rnb-force-col p, + ul, + ol { + margin: 0px !important; + } + + .rnb-del-min-width p, + ul, + ol { + margin: 0px !important; + } + + /* tmpl-2 preview */ + .rnb-tmpl-width { + width: 100% !important; + } + + /* tmpl-11 preview */ + .rnb-social-width { + padding-right: 15px !important; + } + + /* tmpl-11 preview */ + .rnb-social-align { + float: right !important; + } + + /* Ul Li outlook extra spacing fix */ + li { + mso-margin-top-alt: 0; + mso-margin-bottom-alt: 0; + } + + /* Outlook fix */ + table { + mso-table-lspace: 0pt; + mso-table-rspace: 0pt; + } + + /* Outlook fix */ + table, + tr, + td { + border-collapse: collapse; + } + + /* Outlook fix */ + p, + a, + li, + blockquote { + mso-line-height-rule: exactly; + } + + /* Outlook fix */ + .msib-right-img { + mso-padding-alt: 0 !important; + } + + @media only screen and (min-width:590px) { + + /* mac fix width */ + .templateContainer { + width: 590px !important; + } + } + + @media screen and (max-width: 360px) { + + /* yahoo app fix width "tmpl-2 tmpl-10 tmpl-13" in android devices */ + .rnb-yahoo-width { + width: 360px !important; + } + } + + @media screen and (max-width: 380px) { + + /* fix width and font size "tmpl-4 tmpl-6" in mobile preview */ + .element-img-text { + font-size: 24px !important; + } + + .element-img-text2 { + width: 230px !important; + } + + .content-img-text-tmpl-6 { + font-size: 24px !important; + } + + .content-img-text2-tmpl-6 { + width: 220px !important; + } + } + + @media screen and (max-width: 480px) { + td[class="rnb-container-padding"] { + padding-left: 10px !important; + padding-right: 10px !important; + } + + /* force container nav to (horizontal) blocks */ + td.rnb-force-nav { + display: inherit; + } + + /* fix text alignment "tmpl-11" in mobile preview */ + .rnb-social-text-left { + width: 100%; + text-align: center; + margin-bottom: 15px; + } + + .rnb-social-text-right { + width: 100%; + text-align: center; + } + } + + @media only screen and (max-width: 600px) { + + /* center the address & social icons */ + .rnb-text-center { + text-align: center !important; + } + + /* force container columns to (horizontal) blocks */ + th.rnb-force-col { + display: block; + padding-right: 0 !important; + padding-left: 0 !important; + width: 100%; + } + + table.rnb-container { + width: 100% !important; + } + + table.rnb-btn-col-content { + width: 100% !important; + } + + table.rnb-col-3 { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + + /* change left/right padding and margins to top/bottom ones */ + margin-bottom: 10px; + padding-bottom: 10px; + /*border-bottom: 1px solid #eee;*/ + } + + table.rnb-last-col-3 { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + } + + table.rnb-col-2 { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + + /* change left/right padding and margins to top/bottom ones */ + margin-bottom: 10px; + padding-bottom: 10px; + /*border-bottom: 1px solid #eee;*/ + } + + table.rnb-col-2-noborder-onright { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + + /* change left/right padding and margins to top/bottom ones */ + margin-bottom: 10px; + padding-bottom: 10px; + } + + table.rnb-col-2-noborder-onleft { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + + /* change left/right padding and margins to top/bottom ones */ + margin-top: 10px; + padding-top: 10px; + } + + table.rnb-last-col-2 { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + } + + table.rnb-col-1 { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + } + + img.rnb-col-3-img { + /**max-width:none !important;**/ + width: 100% !important; + } + + img.rnb-col-2-img { + /**max-width:none !important;**/ + width: 100% !important; + } + + img.rnb-col-2-img-side-xs { + /**max-width:none !important;**/ + width: 100% !important; + } + + img.rnb-col-2-img-side-xl { + /**max-width:none !important;**/ + width: 100% !important; + } + + img.rnb-col-1-img { + /**max-width:none !important;**/ + width: 100% !important; + } + + img.rnb-header-img { + /**max-width:none !important;**/ + width: 100% !important; + margin: 0 auto; + } + + img.rnb-logo-img { + /**max-width:none !important;**/ + width: 100% !important; + } + + td.rnb-mbl-float-none { + float: inherit !important; + } + + .img-block-center { + text-align: center !important; + } + + .logo-img-center { + float: inherit !important; + } + + /* tmpl-11 preview */ + .rnb-social-align { + margin: 0 auto !important; + float: inherit !important; + } + + /* tmpl-11 preview */ + .rnb-social-center { + display: inline-block; + } + + /* tmpl-11 preview */ + .social-text-spacing { + margin-bottom: 0px !important; + padding-bottom: 0px !important; + } + + /* tmpl-11 preview */ + .social-text-spacing2 { + padding-top: 15px !important; + } + + /* UL bullet fixed in outlook */ + ul { + mso-special-format: bullet; + } + + } + + @media screen { + body { + font-family: 'Vazir', 'Tahoma', Geneva, sans-serif; + } + } + </style> + <!--[if gte mso 11]><style type="text/css">table{border-spacing: 0; }table td {border-collapse: separate;}</style><![endif]--> + <!--[if !mso]><!--> + <style type="text/css"> + table { + border-spacing: 0; + } + + table td { + border-collapse: collapse; + } + </style> + <!--<![endif]--> + <!--[if gte mso 15]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--> + <!--[if gte mso 9]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--> + </head> + + <body> + + <table border="0" align="center" width="100%" cellpadding="0" cellspacing="0" class="main-template" + bgcolor="#f9fafc" style="background-color: rgb(249, 250, 252);"> + + <tbody> + <tr> + <td align="center" valign="top"> + <!--[if gte mso 9]> + <table align="center" border="0" cellspacing="0" cellpadding="0" width="590" style="width:590px;"> + <tr> + <td align="center" valign="top" width="590" style="width:590px;"> + <![endif]--> + <table border="0" cellpadding="0" cellspacing="0" width="590" class="templateContainer" + style="max-width:590px!important; width: 590px;"> + <tbody> + <tr> + + <td align="center" valign="top"> + + <table class="rnb-del-min-width" width="100%" cellpadding="0" border="0" + cellspacing="0" style="min-width:590px;" name="Layout_0" id="Layout_0"> + <tbody> + <tr> + <td class="rnb-del-min-width" valign="top" align="center" + style="min-width:590px;"> + <a href="#" name="Layout_0"></a> + <table width="100%" cellpadding="0" border="0" height="38" + cellspacing="0"> + <tbody> + <tr> + <td valign="top" height="38"> + <img width="20" height="38" + style="display:block; max-height:38px; max-width:20px;" + alt="" + src="http://r.t10.pktsrv2.com/im/130771/11996271bd9eaa67a70ecb0a888804fe4a7c5dd570282a89a399bb94b9584314.gif?e=ZvwLLc5Gmj4zuJdw_MUdi9K-DQCMEo0KOpjOFyUy3sQviUh5saQtrEK1a7yFUZSUdrNnZETt4D5of2f12UQAqQzmSweDc1c6NBXNOnsso37ajmjyarFy0j0SH7EG1Ty3xLKwY1zh9gM8wmSMkflVWgs7CNOZJ_BhgeFml0o7vAxab9PDsBlAKZxoP_Z2Rw" + sib_img_id="0" /> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + <tr> + + <td align="center" valign="top"> + + <div + style="background-color: rgb(255, 255, 255); border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px;"> + + <!--[if mso]> + <table align="center" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;"> + <tr> + <![endif]--> + + <!--[if mso]> + <td valign="top" width="590" style="width:590px;"> + <![endif]--> + + <table width="100%" cellpadding="0" border="0" cellspacing="0" + name="Layout_2" id="Layout_2"> + <tbody> + <tr> + <td align="center" valign="top"><a href="#" name="Layout_2"></a> + <table border="0" width="100%" cellpadding="0" + cellspacing="0" class="rnb-container" bgcolor="#ffffff" + style="height: 0px; background-color: rgb(255, 255, 255); border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; border-collapse: separate; padding-left: 20px; padding-right: 20px;"> + <tbody> + <tr> + <td class="rnb-container-padding"> + + <table border="0" cellpadding="0" + cellspacing="0" + class="rnb-columns-container" + align="center" style="margin:auto;"> + <tbody> + <tr> + + <th class="rnb-force-col" + align="center" + style="text-align: center; font-weight: normal"> + + <table border="0" + cellspacing="0" + cellpadding="0" + align="center" + class="rnb-col-1"> + + <tbody> + <tr> + <td height="10"> + </td> + </tr> + + <tr> + <td + style="font-family:Vazir,Tahoma,Geneva,sans-serif; color:#3c4858; text-align:center;"> + + <span + style="color:#3c4858;"><br /> + <strong><span + style="font-size:24px;">خبرنامه + مهندسان + نرم‌افزار<br /> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شماره ۳ - پنجشنبه، ۰۲ بهمن ۹۹ + </h3> + </span></strong></span> + </td> + </tr> + <tr> + <td height="10"> + </td> + </tr> + </tbody> + </table> + </th> + </tr> + </tbody> + </table> + </td> + </tr> + + </tbody> + </table> + + </td> + </tr> + + </tbody> + </table> + <!--[if mso]> + </td> + <![endif]--> + + <!--[if mso]> + </tr> + </table> + <![endif]--> + + </div> + </td> + </tr> + <tr> + + <td align="center" valign="top"> + + <div + style="background-color: rgb(255, 255, 255); border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px;"> + + <!--[if mso]> + <table align="center" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;"> + <tr> + <![endif]--> + + <!--[if mso]> + <td valign="top" width="590" style="width:590px;"> + <![endif]--> + <table class="rnb-del-min-width" width="100%" cellpadding="0" border="0" + cellspacing="0" style="min-width:100%;" name="Layout_8"> + <tbody> + <tr> + <td class="rnb-del-min-width" align="center" valign="top"> + <a href="#" name="Layout_8"></a> + <table width="100%" border="0" cellpadding="0" + cellspacing="0" class="rnb-container" bgcolor="#ffffff" + style="background-color: rgb(255, 255, 255); padding-left: 20px; padding-right: 20px; border-collapse: separate; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; border-bottom-width: 0px; border-bottom-color: rgb(200, 200, 200); border-bottom-style: none;"> + + <tbody> + <tr> + <td height="20" + style="font-size:1px; line-height:20px; mso-hide: all;"> +  </td> + </tr> + <tr> + <td valign="top" class="rnb-container-padding" + align="left"> + + <table width="100%" border="0" + cellpadding="0" cellspacing="0" + class="rnb-columns-container"> + <tbody> + <tr> + <th class="rnb-force-col" + style="text-align: left; font-weight: normal; padding-right: 0px;" + valign="top"> + + <table border="0" + valign="top" + cellspacing="0" + cellpadding="0" + width="100%" + align="left" + class="rnb-col-1"> + + <tbody> + <tr> + <td + style="font-size:14px; font-family:Vazir,Tahoma,Geneva,sans-serif, sans-serif; color:#3c4858;"> + <div dir="rtl" + style="text-align:right;"> + <div> + <span + style="font-size:13px;"><span + style="color:#696969;">به + خبرنامه + SoftwareTalks + خوش + آمدید. + این + یک + خبرنامه + هفتگی + ایمیلی + است + که + در + آن + هر + هفته + لینک‌هایی + شامل + محتوای + مرتبط + با + توسعه + نرم‌افزار + را + برای + مشترکین + ایمیل + می‌کنیم. + این + یک + پروژه + اپن‌سورس + است + و + شما + هم + می‌توانید + از + طریق + </span><a + href="https://r.t10.pktsrv2.com/mk/cl/f/GiJh1W4OQPth5Xlr3-JLJt6vXR8tmckQMyca0mc-Y6aPtuB_BAqy3wx8_m8cUWCQf6LDPueJ1eSRAAhA2RLdV3kTYW4nvtQB6Q2STdPEsMcJMhDMGG_IsZlRqQZW1cy5wLpdMoJsu8XK9BKXrQqD9wVTsIq5Oe0RkM5qLwbY8maLxmBQ16wrkLu0qDjRaC6ZafTjs-fFn60QHG4MiHLcy2I" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="0"><span + style="color:#696969;">ثبت + issue + جدید + در + مخزن + گیت‌هاب + پروژه</span></a><span + style="color:#696969;"> + به + ما + در + تهیه + محتوای + خبرنامه‌های + بعدی + کمک + کنید. + اگر + خبرنامه + را + مفید + می‌دانید، + اشتراک + در + آن + را + به + دوستان + خود + پیشنهاد + کنید. + صفحه + ثبت + اشتراک + جدید: </span><a + href="https://r.t10.pktsrv2.com/mk/cl/f/Ka5ASNEtx-5lAC60-SIcDQmWVZNnxBqx1VJG7gR7Tag0wE8bUM8lAKKEQf0OLZgWgf0zQZAeeQJB0ffpLAo0jX3hauNXw14j4Rbq5mW4Gv2RNZKKdNkjJ-h0m8Oem7aLeMs4eKQIKt16JilTlL_1qvI2w_Xj0eS9Q6u6C6E" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="1"><span + style="color:#696969;">https://newsletter.softwaretalks.ir</span></a></span> + </div> + + <div>  + </div> + + <ul> + <li><a href="https://r.t10.pktsrv2.com/mk/cl/f/XQ3F8B3UDwY4ewRqSBDEn4rO_-GNuiFZZtU8kCopFRPvlmT9hufDFMj0iSnvcvLzCXvz-02jNdwhjm8cGrhrkhclp7N-phznUIxZOb5DnVJqpmhIz24KWxnwED5d8W8miQ5Qg0OROM1gq2kquz-7sPv_t_5AKk-DoYQFZ3C3Cuqfio5SORigXPb6ndU-qdcSQh-mOWV2RZN7Bw" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="2">از + نرم‌افزار + آزاد؛ + تا + آزادی + نرم‌افزار. + مروری + بر + مفهوم + نرم‌افزار</a> + </li> + </ul> + + <div> + مروری + بر + مفهوم + نرم‌افزار + و + دید‌های + مختلف + به + آزادی + نرم‌افزار. + همچنین + بررسی + وضعیت + نرم‌افزار + آزاد + در + ایران<br /> +   + </div> + + <ul> + <li><a href="https://r.t10.pktsrv2.com/mk/cl/f/ew9DCE6AcxhOqTQ7NrD35vGBsFRSYX0zdKbj6ff5zi4-5aV8cNxOuZGecYT7yZrMeg8oWjyP-fUKLomZLeeQ_fALWuZqD456TNgXmAWpwKP3Is_BON-x_z3RzVm4hpegzYVNjIRqH59tzxTlIhsB4JAnBeHy8FjNZ11eH5G8s9F2rUxr7TCCDH81RA" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="3">نکته‌های + مهم + کتاب + کد + تمیز</a> + </li> + </ul> + + <div> + کتاب + Clean + Code + نوشته‌ی + Robert + C. + Martin + کتابی + نام‌آشنا + برای + اکثر + ماست + و + خواندنش + به + هر + توسعه‌دهنده‌ی + نرم‌ا‌فزاری + که + علاقمند + به + نوشتن + کدهای + بهتر + و + پربازده‌تر + است، + توصیه + می‌شود. + اگر + این + کتاب + را + نخواندید، + الان + فرصت + خوبی + است + که + به + نکات + مهم + کتاب + در + این + ریپازیتوری + گیت‌هاب + نگاهی + بیاندازید.<br /> +   + </div> + + <ul> + <li><a href="https://r.t10.pktsrv2.com/mk/cl/f/Ks0nmrzSrv8iWDqWfB6aRYWPf-MkLxcv6-wDw88y9hksUoqHL47Q9jcYRxQeRR5kHtjlsuzbGWYOz0ZZQO7CdgUFZpsfFY7V9mGvNuM66n6iFKRuhvK--COB093MSekl8QbSv1h1dtPUYBCBLdfRO2I" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="4">مهاجرت + از + Docker + به + Docker + compose</a> + </li> + </ul> + + <div>توی + این + مقاله + قراره + از + Docker + مهاجرت + کنیم + به + Docker + compose + و + ببینیم + که + چقدر + کارمون + راحت + تر + میشه + برای + اجرای + همزمان + چند + پروژه<br /> +   + </div> + + <ul> + <li><a href="https://r.t10.pktsrv2.com/mk/cl/f/TAjlehRutaszQXDHrB5GHgL_YCHHAOt8vJxtbaaoQM6zhISa6ZwBajTOEfMDYmEjmQdODKfOl7uxHCH01SujosuHaapcZ9cqzKNZpDfUh-IlTZUWhIsf4EutAmm2tH7pCnqnjUcJp_ZkB6IDf8zbsFGyH0lWW3kXr0j0or-ZPmUoEmW7INDGqSijgRyhMpdh9sDBenHeplNXgcyQ1FzwDl4c8wYJuhrV" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="5">ویدئوی + آموزش + زبان + awk</a> + </li> + </ul> + + <div>AWK + یک + زبان + برنامه‌نویسی + مفسری + است + که + برای + پردازش + متن + طراحی + شده + و + عموماً + به + عنوان + ابزاری + برای + گزارش‌گیری + و + استخراج + داده‌ها + مورد + استفاده + قرار + می‌گیرد. + این + زبان + برنامه‌نویسی، + تبدیل + به + یکی + از + ویژگی‌های + استاندارد + در + سیستم‌عامل‌های + خانواده + یونیکس + شده‌است. + در + این + ویدئو + مبانی + کار + با + این + زبان + و + چند + نمونه + گزارش‌گیری + و + همین + طور + ساختن + چندبرنامهٔ + کوچک + در + کامندلاین + آموزش + داده + شده + است + </div> + + <div>  + </div> + + <ul> + <li><a href="https://r.t10.pktsrv2.com/mk/cl/f/wNXxLQg1yIPa_99xvAu0xPn2LqaS4QGo3ZMOs1yUROmw6_s3zYU1O6E8nv6yxThHJVFFvI6mMIlxW6DW3FRnuqfI4G8hxgSwWQkY9bnX2VTdF0GEHS9eh1JYU8b0hJW5bvBVGOhOTkTCUaX18NMTPuWZJqTPeetdoBrqbWW25_EzGg" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="6">واژه + نامه + کاملی + از + اصطلاحات + جلسه‌های + حرفه‌ای + بخوانید</a> + </li> + </ul> + + <div>یکی + از + مواردی + که + قبل + از + جلسات + مخصوصا + جلسات + بین + المللی + باید + بدانید + اصطلاحات + و + کلمات + اختصاری + هست + که + دونستن + اونها + باعث + میشه + تا + حد + قابل + قبولی + بتونید + با + محیط + آشنا + باشید + اگر + بار + اولتون + هست + که + توی + یه + جلسه + ی + تیمی + خارجی + می + خواید + شرکت + کنید + احتمالا + خیلی + بدردتون + میخوره؛ + البته + تیم + های + خفن + ایرانی + هم + از + این + اصطلاحات + بی + بهره + نیستن<br /> +   + </div> + + <ul> + <li><a href="https://r.t10.pktsrv2.com/mk/cl/f/eR3nK06RgmLdfpjmfdZ8gR12pvNE2GQEHVarccDIYLttj9M4oxVAnxLZOHJ_juLfIzX6LQRopfszjyuLF87OQgiwTIALho4KfWzey8s5zk7pRcNPopvxFeEu1mKRLB7jF1Y0MTk7sjl0h4RMOef5vE8" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="7">مفهوم + Reactive + Programming + به + زبان + ساده</a> + </li> + </ul> + + <div>و + Reactive + !یکی + از + overloaded + ترین + کلمات + دنیای + امروز + برنامه + نویسی! + در + این + پست + میخوایم + Reactive + Programming + رو + خیلی + ساده + و + خودمونی + معرفی + کنیم... + </div> + + <div>  + </div> + + <ul> + <li><a href="https://r.t10.pktsrv2.com/mk/cl/f/dCoAn3jF7UXX6Ree0eTjmISsA7ZPJId6qXs6lhbFUYgEW1GEGn02IGkctyt92IYrCeeIoMv92k0fiL3jfuMMhyuifDwj_BNdHsbQCfRUZ58vAqX8ZIL2b4_oHi6bqhH82gNMjX_yWyY_Ax-IJyzJUHY" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="8">سرویس + پایتون + Flask + در + محیط + عملیاتی + (Production)</a> + </li> + </ul> + + <div> + فلسک + یا + Flask + یکی + از + کتابخانه‌های + پایتون + برای + پیاده‌سازی + وب‌سرویس + و + API + است + که + بعنوان + یک + میکروفریمورک + ساده + اما + سبک + محسوب + می‌شود. + در + این + نوشتار + به + چگونگی + استفاده + از + Flask + در + محیط + Production + (محیط + عملیاتی + یا + محصول) + با + استفاده + از + Reverse + Proxy + و + gunicorn + (بعنوان + WSGI) + و + بصورت + یک + سرویس + لینوکسی + پرداخته + شده + است. + </div> + + <div>  + </div> + + <div> + ----- + </div> + + <div> در + این + شماره + از + خبرنامه، + دوستان + خوبی + به + نام‌های + ابراهیم + نجاتی، + مرتضی + اسدی، + علی + ناصری، + وحید + نایینی، + Amir + Shokri، + محمد + واحدی، + سیدمصطفی + افزونی + در + تهیه + محتوا + کمک + کردند + </div> + </div> + </td> + </tr> + </tbody> + </table> + + </th> + </tr> + </tbody> + </table> + </td> + </tr> + <tr> + <td height="20" + style="font-size:1px; line-height:20px; mso-hide: all;"> +  </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + <!--[if mso]> + </td> + <![endif]--> + + <!--[if mso]> + </tr> + </table> + <![endif]--> + + </div> + </td> + </tr> + <tr> + + <td align="center" valign="top"> + + <div style="background-color: rgb(249, 250, 252);"> + + <table class="rnb-del-min-width rnb-tmpl-width" width="100%" cellpadding="0" + border="0" cellspacing="0" style="min-width:590px;" name="Layout_6" + id="Layout_6"> + <tbody> + <tr> + <td class="rnb-del-min-width" align="center" valign="top" + bgcolor="#f9fafc" + style="min-width:590px; background-color: #f9fafc; text-align: center;"> + <a href="#" name="Layout_6"></a> + <table width="590" class="rnb-container" cellpadding="0" + border="0" align="center" cellspacing="0" + bgcolor="#f9fafc" + style="padding-right: 20px; padding-left: 20px; background-color: rgb(249, 250, 252);"> + <tbody> + <tr> + <td height="10" + style="font-size:1px; line-height:1px; mso-hide: all;"> +  </td> + </tr> + <tr> + <td> + <div + style="font-size:14px; color:#888888; font-weight:normal; text-align:center; font-family:Vazir,Tahoma,Geneva,sans-serif;"> + <div dir="rtl" + style="text-align: right;"><img + alt="" + class="rnb-header-img element-has-options pull-left rnb-img-el" + data-options-id="element-tmpl-4-img-0" + hspace="0" imageonload="" + ng-if="col.img.source != url" + src="http://r.t10.pktsrv2.com/im/130771/ef3c54016f346c2b852612d43b0eb0e6b910b30b49c627eb24b11a1be1f5d1c2.png?e=0dv_5T3wId5_mhPK6pJPm5EyoVtKMS9Jab06_mRNQAkbn5i2C72vfw5wOAp5dVg92T9UeXIvQ21anKXkkfH2Fe9ytUK_h7EYyyj0E5_q6kw9An9_ajbsFiCfqPNeaF8Or9H36haWG_pytG3Z5dRZjtLmAdvSo5-6KmDF1SNxBK17ANukKvdFV39dULlzMlWd1ZlYFt6krU00BKzuAakV9nDAH9eq3qXj0dILREo" + style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: start; display: block; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; float: left;" + vspace="0" width="234" + sib_img_id="1" /></div> + + <div dir="rtl" + style="text-align: right;"><b>ارسال + شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/FxNSBQVKyX8aBE7KE6jJPfI4J9SRdsBaCJ-wA6cvhp6LEiaFWRKUt0gbm7Vv2lK7VMnoOW-mC9rlK_1nX3e-TTE3tXRNMXqYFlddPrNCifVDLpO6QOqYrEN66RPuOgxoPbh8IuOcjQw3nsg" + style="text-decoration: underline; color: rgb(102, 102, 102);" + sib_link_id="9">پاکت</a></b> + </div> + + <div dir="rtl" + style="text-align: right;">سرویس + پاکت اسپانسر ارسال ایمیلهای این + خبرنامه است.</div> + + <div dir="rtl" + style="text-align: right;"><b>با کد + تخفیف sota10 میتوانید از ۱۰ درصد + تخفیف در خرید پلنهای پاکت + بهره‌مند شوید</b></div> + </div> + </td> + </tr> + <tr> + <td height="10" + style="font-size:1px; line-height:1px; mso-hide: all;"> +  </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + + </div> + </td> + </tr> + </tbody> + </table> + <!--[if gte mso 9]> + </td> + </tr> + </table> + <![endif]--> + </td> + </tr> + </tbody> + </table> + + </body> + + </html> + + + +شماره خبرنامه 31.html + +urn:uuid:0fcfb185-0fc9-20a3-667b-d42eb5d3178a +2021-09-17T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="background-color: #000;"> + <div style="max-width: 680px; margin: 0 auto;color: #fff;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: red;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: red;"> + شمارهٔ ۳۱ - جمعه، ۲٦ شهریور ۱۴۰۰ + </h3> + <div> <p style="text-align: center; color: red;font-family: 'Samim', sans-serif;"><small>این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده‌ی خود را بر اثر کرونا از دست داده‌اند، سیاه‌پوش شده‌است</small></p> </div> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://www.kamilgrzybek.com/design/modular-monolith-primer/"><b>طراحی ماژولار مونولتیک</b></a><br/>در این سلسله مطالب، نویسنده تلاش کرده تجربیات و نظراتش رو درباره طراحی ماژولار (قطعه قطعه) نرم‌افزارهای مونولتیک بنویسه که خوندنش خالی از لطف نیست و میتونه ماها رو با مباحث یا کلمات کلیدی جدیدی آشنا بکنه. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://martinfowler.com/articles/ship-show-ask.html"><b>Ship / Show / Ask</b></a><br/>مارتین فولر در این نوشته به معرفی شیوه branching تحت عنوان Ship Show Ask می‌پردازد. در این شیوه قانون این است که Code Review یا تایید برای ادغام شدن همه Pull Requestها لازم نیست و افراد می‌توانند PRهای خودشان را ادغام کنند. branch ها نیز باید به صورت مداوم rebase شوند. فولر در این نوشته بخش‌های مختلف این شیوه را توضیح می‌دهد. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://www.stxnext.com/blog/will-artificial-intelligence-replace-developers/"><b>هوش مصنوعی جایگزین مهندس های نرم افزار هم می شود؟</b></a><br/>هوش مصنوعی که این روزها خیلی بین آدم ها اسمش هست و در مورد اون حرف میزنن این پیشرفت های زیادی کرده یه روز هوش مصنوعی نقاشی میکشه یه روز آهنگ میسازه یه روز فیلم تولید میکنه اما ممکنه جایگزین برنامه نویس ها هم بشه؟؟؟ برای مطالعه ی کامل روی لینک محتوا بزنید ... + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://next.github.com/projects/repo-visualization"><b>Visualize کردن کد مخازن در گیت‌هاب</b></a><br/>نمایش کل ساختار یک پروژه در یک نگاه تصویری + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>حامد سعیدی،</b> + + + <b>امیر شکری.</b> + + شما نیز می‌توانید <a style="color: red" href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #fff;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a style="color: red" href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #fff;"> <a style="color: red" href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </div> + </body> +</html> + + +شماره خبرنامه 19.html + +urn:uuid:7a9ff62b-9fac-dd90-b8e3-0a97173b71af +2021-06-10T00:00:00+00:00 +<!DOCTYPE html> +<html dir="rtl" lang="fa"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + </head> + + <body style="max-width: 680px; margin: 0 auto"> + <div style="text-align: center"> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) + format("truetype"); + font-weight: 400; + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) + format("truetype"); + font-weight: 700; + } + + ul { + padding: 0 25px; + } + </style> + <br /><br /> + <img + alt="Softwaretalks" + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + style=" + margin: 2.1em auto; + display: block; + width: 130px; + border-radius: 5px; + " + /> + <h1 + style=" + font-size: 25px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + font-weight: 700; + color: #263238; + " + > + خبرنامهٔ Softwaretalks + </h1> + <h3 + style=" + font-size: 18px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + color: #263238; + " + > + شمارهٔ ۱۹ - پنجشنبه، ۲۰ خرداد ۱۴۰۰ + </h3> + <hr /> + <ul + style=" + text-align: right; + font-family: Samim, sans-serif; + direction: rtl; + " + > + <a + href="https://dev.to/opinionatedpie/5-developer-tools-for-detecting-and-fixing-security-vulnerabilities-h1j" + ></a> + <li style="font-size: 18px"> + <a + href="https://dev.to/opinionatedpie/5-developer-tools-for-detecting-and-fixing-security-vulnerabilities-h1j" + ><b>ابزارهایی برای کشف و رفع آسیب‌پذیری‌های امنیتی در کدها</b> + </a> + <p> + نویسنده ۵ ابزار و سرویس برای کشف و رفع آسیب‌پذیری‌های امنیتی + (security vulnerabilities) را معرفی کرده. در کامنت‌های نوشته هم + دیگران ابزارهای مورد استفاده‌شان را معرفی کرده‌اند + </p> + <br /> + <a + href="https://dudu-cohen.medium.com/optimizing-bugs-fix-policy-49838be8a8a1" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://dudu-cohen.medium.com/optimizing-bugs-fix-policy-49838be8a8a1" + ><b>بهینه‌سازی سیاست رفع باگ</b> + </a> + <p> + در این مقاله، نویسنده درباره یک روش ترکیبی بهینه برای به حداقل + رساندن باگ‌های باز بر اساس Zero Bug Policy صحبت می‌کند و به صورت + مرحله به مرحله آن را توضیح می‌دهد + </p> + <br /> + <a + href="https://twitter.com/Heartless188/status/1401515689001701386" + ></a> + </li> + <li style="font-size: 18px"> + <a href="https://twitter.com/Heartless188/status/1401515689001701386" + ><b>اگر زیاد پشت میز هستین، به این نکات توجه کنید</b> + </a> + <p> + به عنوان کسی که کارِش هشت‌ساعت در روز با لپ‌تاپه، تو این رشتو میخوام + آسیب‌هایی که کار کردن با لپ‌تاپ به مدت طولانی به بدن می زنه، و راه + هایی برای جلوگیریش رو بگم. + </p> + <br /> + <a href="https://twitter.com/iam_vee/status/1400102638943866880"></a> + </li> + <li style="font-size: 18px"> + <a href="https://twitter.com/iam_vee/status/1400102638943866880" + ><b + >قبل از اشتراک‌گذاری فایل‌های تصویری، به این چیزها هم توجه کنید</b + > + </a> + <p> + اگر تصویری رو در اینترنت به اشتراک میگذارید، خوبه که یک سری نکات رو + بهش توجه کنید. نکاتی که به حفظ حریم خصوصی‌مون کمک میکنه. وحید نائینی + در این رشتوی توییتری نکات جالبی رو به اشتراک گذاشته. + </p> + <br /> + <a href="https://vrgl.ir/iopcy"></a> + </li> + <li style="font-size: 18px"> + <a href="https://vrgl.ir/iopcy" + ><b>چگونگی طراحی یک برنامه وب: معماری نرم‌افزار</b> + </a> + <p> + معماری نرم‌افزار یک برنامه یا سیستم محاسباتی، ساختار یا ساختارهای آن + سیستم محاسباتی است که خصوصیات قابل رویت از بیرون، عناصر و ارتباطات + بین آن‌ها را نشان می‌دهد. + </p> + </li> + </ul> + <hr /> + <p + style=" + font-size: 13px; + font-family: Samim, sans-serif; + direction: rtl; + text-align: right; + " + > + تأمین‌کنندگانِ محتوا در این شماره از خبرنامه: <b>حامد سعیدی،</b> + <b>امیرحسین بقایی،</b> <b>Amir Mokarchi</b> شما نیز می‌توانید + <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a + >. + </p> + <hr /> + <span> + <p + style=" + font-size: 16px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <img + src="https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png" + /><br /> + ارسال شده توسط <a href="https://pakat.net/">پاکت</a> + </p> + <p + style=" + font-size: 14px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ + ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ + تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید + </p> + <br /> + </span> + </div> + </body> +</html> + + + +شماره خبرنامه 40.html + +urn:uuid:89b4ec71-55a3-62da-ddcd-6462422187ff +2021-11-18T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۴۰ - پنجشنبه، ۲۷ آبان ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.ibm.com/cloud/learn/microservices"><b>کمی درباره‌ی معماری میکروسرویس</b></a><br/>چند سالی است که در مورد معماری میکروسرویس زیاد می‌شنویم، میکروسرویس معماری است که در آن یک نرم‌افزار از چند سرویس کوچکتر و مستقل تشکیل می‌شود. این نوشته از آی‌بی‌ام به طور خلاصه به مفاهیم این معماری پرداخته است که خواندنش مفید است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/ElQr4"><b>داکر، multi stage و کاهش حجم</b></a><br/>کم کردن حجم image داکر روش‌های مختلفی مثل multi staging اینا داره که تواین مطلب با اون‌ها آشنا می‌شیم. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://emmer.dev/blog/docker-shell-vs.-exec-form/"><b>تفاوت حالت Exec و Shell در داکرفایل‌ها</b></a><br/>شاید در بعضی داکر فایل‌ها دیده باشید که مثلاً مقدار ENTRYPOINT را گاهی داخل براکت و گاهی بدون براکت نوشته باشند. اما دقیقاً تفاوت اصلی این دو حالت در داکرفایل برای این دستور و دیگر دستورات مثل RUN یا CMD چیه؟ توی این پست خیلی خلاصه و مفید میتونین تفاوت‌هاشون رو مطالعه کنید. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://adelf.tech/2019/laravel-caching-basics"><b>مروری بر چالش‌های کش‌کردن داده‌ها در Laravel</b></a><br/>نویسنده در این پست تلاش کرده چالش‌های مرسوم کش کردن داده‌ها در لاراول رو توضیح بده و یک سری راه‌حل و استراتژی رو هم برای رفع مشکلات بررسی کنه. کش‌کردن داده‌ها همونقدر که میتونه سرعت نرم‌افزار رو بهبود بده، میتونه پیچیدگی‌های نگهداری نرم‌افزار رو هم زیاد کنه،‌پس باید بدونیم که داریم چیکار میکنیم. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://camelcase.ir/star-method-interview/"><b>تکنیک هک مصاحبه شغلی با روش STAR</b></a><br/>تکنیک مصاحبه STAR قالب ساده ای را ارائه می دهد که می توانید از آن برای پاسخ به سوالات مصاحبه رفتاری استفاده کنید. بعد از خوندن این نوشته یک چارچوب بسیار ساده پیدا می کنید که سوال های شخصی و فکر کن فلان موقعیت پیش اومده رو میتونید خیلی موفق جواب بدین .... + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/amirshnll/custom-device-emulation-chrome"><b>افزودن دستگاه های مختلف به Chrome Developer Tools</b></a><br/>اگر شما هم از بخش Developer Tools مرورگر کروم برای تست رسپانسیو صفحات وب استفاده می کنید حتما نیاز است دستگاه های مورد نظر خود را به آن اضافه کنید. در حالت کلی تعدادی دستگاه پیش فرض در این بخش وجود دارد اما معمولا دستگاه های مورد نظر شما ممکن است در آن نباشد. در این مخزن اطلاعات دستگاه های مختلف و روش افزودن هر کدام را یکجا داشته باشید .... + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>مرتضی اسدی،</b> + + + <b>وحید فتحی،</b> + + + <b>امیرحسین بقایی،</b> + + + <b>امیر شکری.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 51.html + +urn:uuid:9d0b471a-5b5e-fb79-6c34-fcba6e5d3421 +2022-04-28T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۵۱ - پنجشنبه، ۰۸ اردیبهشت ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://ruudvanasseldonk.com/2022/03/20/please-put-units-in-names"><b>در نام گذاری از «واحد» استفاده کنید</b></a><br/>نویسنده پیشنهاد می‌کنه برای خوانایی بیشتر کد و جلوگیری از ابهامات، در نام‌ گذاری متغیرها و خروجی‌ها، واحدشون رو هم ذکر کنیم. و برای مشخص شدن صورت مساله و راه حل کدهای نمونه‌ای رو هم مثال می‌زنه + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.awelm.com/posts/evil-compiler/"><b>حمله از طریق کامپایلر</b></a><br/>تا به حال به این فکر کردید که چی می‌شه اگر کامپایلر موقع کامپایل یک backdoor به کد شما تزریق کنه؟ آیا می‌تونیم تشخیصش بدیم؟ در این نوشته، نویسنده این مساله رو با زیر ۱۰۰ خط کد و یک دمو نشون داده. نکات؟ اپن‌سورس بودن کامپایلر کمکی نمی‌کنه و هر چه سطح برنامه‌‌ میاد پایین‌تر پیدا کردن چنین مسائلی دشوارتر می‌شه + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.blog/2022-03-31-how-github-does-take-home-technical-interviews/"><b>گیت‌هاب چطور چالش برنامه‌نویسی در مصاحبه‌های فنی رو به انجام می‌رسونه</b></a><br/>گیت‌هاب توضیح میده که چطور سعی می‌کنه ارزیابی یک متقاضی در مصاحبه‌های فنی رو تا جای ممکن به روشی که کارها در خود گیت‌هاب پیش میرن شبیه کنه. این مقاله فرآیند تکلیف برنامه‌نویسی‌ای رو که به هر متقاضی داده میشه شرح میده. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://tech.arvancloud.com/clean-architecture-in-golang-zt43rkeya8gk"><b>معماری تمیز در گولنگ</b></a><br/>امروزه هر برنامه نویسی میدونه که اگر میخواد پروژه اش در آینده به بن بست نخوره، و بتونه به راحتی اون رو توسعه بده باید کدش منظم و قابل خواندن باشه توی این مقاله میخوایم باهم مفاهیم معماری تمیز رو توی یه اپلیکیشن گولنگی پیاده سازی کنیم. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/amirshnll/testament"><b>با کمک گیت هاب وصیت نامه بسازید</b></a><br/>داشتن وصیت نامه در هر شرایطی خوبه مخصوصا وقتی ارسال یک متن از طرف شما باشه برای افرادی که دوست دارید بعد از مرگ شما از این اتفاق با خبر بشن. در این پروژه با بررسی فعالیت های گیت هابتون و تغییر ناگهانی اون در یک مدت خاص یک پیام برای لیست مورد نظر خودتون بفرستید + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی،</b> + + + <b>رضا غریبی،</b> + + + <b>محمد عباسی،</b> + + + <b>امیر شکری.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 54.html + +urn:uuid:068f9333-f3f4-aebc-b53c-82a8c458c509 +2022-06-23T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۵۴ - پنجشنبه، ۰۲ تیر ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://tanelpoder.com/posts/reasons-why-select-star-is-bad-for-sql-performance"><b>چرا SELECT * برای کارآیی SQL بد است؟</b></a><br/>در این مطلب مفصل درباره دلایل بد بودن SELECT * برای performance در SQL صحبت شده و موارد مختلفی از افزایش ترافیک شبکه تا افزایش مصرف CPU روی سرور تشریح شده است + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://itnext.io/easiest-guide-to-bashrc-7ad0063d37eb"><b>ساده‌ترین راهنمای .bashrc</b></a><br/>این مقاله ضمن بررسی موارد ابتدایی bash درباره متغیرها و رشته‌ها و اتوماسیون به کمک bash توضیح می‌دهد + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://youtu.be/gYu4esqvnQ0"><b>پردازش تصویر، اساس جلوه‌های ویژه در سینما</b></a><br/>حتما همه شما جلوه‌های ویژه رو در فیلم‌ها و تبلیغات تلویزیونی و اینترنتی دیدین، اما سوال اصلی این هست که این جلوه‌های ویژه یا همون VFX چطوری ساخته و پردازش میشن و به فیلم ها اضافه میشن؟ یکی از علومی که اساس جلوه‌های ویژه رو تشکیل میده، علم پردازش تصویره. اما شاید براتون سوال بشه که دقیقا پردازش تصویر چطوری به جلوه‌های ویژه کمک میکنه. توی این ویدیو جذاب و کوتاه با کارهای پایه در جلوه‌های ویژه آشنا میشید + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی،</b> + + + <b>امیرحسین بقایی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 35.html + +urn:uuid:34456a44-0c50-8011-4e06-9b16e90292d2 +2021-10-09T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="background-color: #000;"> + <div style="max-width: 680px; margin: 0 auto;color: #fff;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: red;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: red;"> + شمارهٔ ۳۵ - شنبه، ۱۷ مهر ۱۴۰۰ + </h3> + <div> <p style="text-align: center; color: red;font-family: 'Samim', sans-serif;"><small>این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده‌ی خود را بر اثر کرونا از دست داده‌اند، سیاه‌پوش شده‌است</small></p> </div> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://tuhrig.de/my-logging-best-practices/"><b>چطور لاگ بنویسیم؟</b></a><br/>در این مطلب، نویسنده به بیان تجربیات ساده ولی مهمی از کار با Log ها و این که چطور Log بنویسیم میپردازه که احتمالا برای ما نیز مفیده. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://betterprogramming.pub/7-surprising-facts-i-learned-after-becoming-a-software-developer-8405e844a907"><b>هفت حقیقت شگفت انگیز بعد از تبدیل شدن به توسعه دهنده نرم افزار</b></a><br/>در این دست‌نوشته حقیقت‌هایی در مورد اینکه بعد از تبدیل‌شدن به یک توسعه دهنده نرم‌افزار با آن روبرو می شوید می‌خونید البته برای هر فرد تفاوت‌هایی شاید وجود داشته باشه ولی خیلی از این حقایق کاملا برای همه یکسان است؛ مثل تفاوت محیط کار و محیط تحصیل، یادگیری بی‌انتها، نیازمندی به اشتیاق و ... + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://javascript.plainenglish.io/how-to-make-your-site-25x-faster-with-a-few-lines-of-code-e13056faac2a"><b>چه شکلی با چندخط کد میشه 25 برابر سایت رو سریع کرد</b></a><br/>خیلی کوتاه داخل این نوشته توضیح داده میشه که چه شکلی با Radis و CDN میشه صفحات رو تا 25 برابر سریعتر کرد. جزئیات زیادی داخل نوشته هست که حتما کامل بخونید .... + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://code.visualstudio.com/blogs/2021/09/29/bracket-pair-colorization"><b>بهبود کارآیی رنگ‌آمیزی جفت براکت‌ها در VS Code</b></a><br/>در این نوشته فنی، مساله پیدا کردن و رنگی کردن جفت براکت‌ها در کدها داخل VS Code و بهبود کارآیی ۱۰ هزار برابری این کار بررسی شده + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>امیر شکری،</b> + + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a style="color: red" href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #fff;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a style="color: red" href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #fff;"> <a style="color: red" href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </div> + </body> +</html> + + +شماره خبرنامه 56.html + +urn:uuid:f2afcbfa-a495-c313-789e-43b0648d29f3 +2022-07-07T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۵٦ - پنجشنبه، ۱٦ تیر ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://bit-orbit.github.io/blog/post/web-snapshout/"><b>اسنپ شات گرفتن از یک سایت با تمامی دپندنسی های آن</b></a><br/>ما روزانه محتوای زیادی از سایت های مختلفی می‌خوانیم. برخی از این محتوا را ممکن است فراموش کنیم و یا به دلایلی مثل اجبار سانسور چی اون محتوا از سایت منبع پاک شود. در چنین مواقعی می‌توانیم با کلون کردن اون صفحه سایت، محتوا را افلاین در دسترس داشته باشیم. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://twitter.com/HesamSalehian/status/1505996698945945603"><b>دنیای قبل و بعد از دیپ لرنینگ</b></a><br/>دنیای قبل و بعد از دیپ لرنینگ در دنیای کامپیوتر ویژن را بررسی کنید و تفاوت‌هایی که در آن‌ها وجود دارد را بررسی کنید. این توییت تجربی نوشته شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/ashishpatel26/Tools-to-Design-or-Visualize-Architecture-of-Neural-Network"><b>روش‌های مختلف رسم شماتیک شبکه عصبی</b></a><br/>اگر با تنسورفلو مشغول کار روی شبکه‌های عصبی هستید احتمالا در هنگام ارائه‌ی گزارشات خود نیاز دارید تا شماتیک مدل خود را رسم کنید. با کمک این مخزن تمام روش‌هایی که نیاز دارید لیست شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://realpython.com/pyscript-python-in-browser/"><b>توسعه فرانت اند با پایتون </b></a><br/>توی این راهنما با استفاده pyscript نحوه استفاده از پایتون در فرانت اند توضیح داده شده و در نهایت چند پروژه هم تمرین داده شده است + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>آریا شبانه،</b> + + + <b>امیر شکری،</b> + + + <b>محمدرضا هلالی .</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 47.html + +urn:uuid:b09e4b7b-5ada-258c-d8e1-76da25c6ba9d +2022-01-20T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۴۷ - پنجشنبه، ۳۰ دی ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://joyofcryptography.com/"><b>لذت رمزنگاری</b></a><br/>لذت رمزنگاری (The Joy of Cryptography) یک کتاب رایگان درباره رمزنگاری است که به دانشجوها (و عموم علاقمندان) کمک می‌کنه با مفاهیم پایه‌ای حوزه رمزنگاری آشنا بشوند. علاوه بر مطالعه آنلاین امکان دانلود نسخه PDF این کتاب هم از سایت هست. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://tray2.se/posts/database-design"><b>آیا یک ستون جیسونی برای ذخیره‌سازی تعداد زیادی فیلد مرتبط مناسب است؟</b></a><br/>فرض کنید برای یک کاربر باید انواع مختلفی از اطلاعات را در یک پایگاه داده‌ی رابطه‌ای ذخیره کنید. طراحی یک ستون جیسونی راهکار جالبی به نظر می‌رسد اما در این مطلب نویسنده این راهکار را به چالش می‌کشد. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://laravel-news.com/laravel-9"><b>لاراول ۹ در راه</b></a><br/>احتمالا یکی از اخبار مهم برای اکوسیستم PHP اخبار لاراول و نسخه‌های جدیدش و تغییراتشه؛ پس اگر شما هم دوست دارید بدونید چه خبره، میتونید ببینید قراره در لاراول ۹ چه تغییراتی رو شاهد باشیم. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://dev.to/ruppysuppy/advanced-git-concepts-you-should-know-nle"><b>Conceptهای پیشرفته git که باید بدانید</b></a><br/>در این نوشته تعدادی از دستورات پیشرفته مربوط به git که فراتر از کارهای معمول نظیر pull و push و commit هستند معرفی شده است + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی،</b> + + + <b>امیرحسین مجیری،</b> + + + <b>امیرحسین بقایی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 39.html + +urn:uuid:22eceb64-d348-0c6d-e813-0b2a0bea74e6 +2021-11-11T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۳۹ - پنجشنبه، ۲۰ آبان ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://laravel-news.com/larastan-v1-released"><b>بالاخره Larastan نسخه 1.0 منتشر شد</b></a><br/>اگر به عنوان توسعه‌دهنده PHP تا به حال از PHPstan استفاده نکرده‌اید حتما سرچش کنید و دربارش بخونید. اگر هم تا حالا استفاده کردین، خبر خوب اینه که برای فریم‌ورک لاراول یک Wrapper نوشتن به اسم Larastan که بهتون کمک میکنه تا کدهاتون رو آنالیز کنه و بتونین کد بهتری بنویسین و از اشتباهات تکراری پرهیز کنین. حالا چند روزی میشه که نسخه 1.0 منتشر شده. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="http://lkml.iu.edu/hypermail/linux/kernel/9608/0191.html"><b>ایمیل به لینوس توروالدز درباره تفاوت پراسس و ترد</b></a><br/>دنبال درک عمیقی از تفاوت ترد و پراسس بودم. در بین مطالبی که خوندم این ایمیل رو دیدم که برای لینوس توروالدز فرستاده بودن و توروالدز پاسخ داده بود و سعی کرده بود این موضوع رو از دید خودش و در لینوکس توضیح بده. به نظرم خوندنش میتونه جالب باشه. [البته چیزی که برای من امیرحسین بقایی به صورت شخصی جالب بود این بود که این سوال رو توی سالی که من به دنیا اومده بودم پرسیده بودن و امروز دارم اون سوال رو با بقیه به اشتراک میزارم 😃] + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/"><b>آشنایی با موتور Nginx، غول قدیمی دنیای وب‌سرورها</b></a><br/>احتمالا خیلی از ماها برای کارهای کوچیک و بزرگ از Nginx استفاده کردیم. Nginx این غول قدرتمند دنیای وب‌سرورها، برای پردازش درخواست‌هایی که به سمتش میاد از معماری Reactor استفاده میکنه. البته نمیدونم کلمه معماری درسته یا نه؛ شاید هم بهتر باشه بگیم یک جور روش حل مساله. در هر صورت توی این پست وبلاگ رسمی Nginx میتونید ببینید که در هسته این غول زیبا چه خبره. همچنین ارجاعاتی به مقاله‌های دیگری هم داخلش وجود داره که خوندنش به تکمیل شدن موضوع کمک میکنه. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/danistefanovic/build-your-own-x"><b>Build your own (insert technology here)</b></a><br/>همیشه بهترین راه برای فهمیدن عمیق یک ابزار اینه که بدونیم اون ابزار چطوری ساخته شده. با کمک این ریپو در هر زبان، فریمورک و یا ابزاری که کار می کنید میتونید عمیق بشید. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/i83jF"><b>refactor یک برنامه sync به async در ASP.NET - بخش اول</b></a><br/>در این مقاله که در دو بخش تنظیم گردیده است با اصلاح مجدد (refactor) یک برنامه وب همزمان (synchronous) به ناهمزمان (asynchronous) در ASP.NET آشنا خواهیم شد. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>Mohammad Vahedi،</b> + + + <b>Amir Mokarchi.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 0.html + +urn:uuid:d7478a7c-6bbf-6610-863e-90573631aa7c +2020-12-31T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه Software Talks، شماره صفرم</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir=rtl lang=fa> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv=Content-Type> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + + <body style="max-width:680px;margin:0 auto"><br><br> + <h1 style="font-size:25px;text-align:center;font-family:'Samim';direction:rtl;font-weight:700;color:#263238"> + خبر‌نامه مهندسان نرم‌افزار </h1> + <h3 style="font-size:18px;text-align:center;font-family:'Samim';direction:rtl;color:#263238"> شماره صفرم - + پنجشنبه، ۱۱ دی ۹۹ </h3> + <p style="font-size:14px;text-align:right;font-family:'Samim';direction:rtl;color:#263238"> سلام. به خبرنامه + هفتگی SoftwareTalks خوش آمدید. این خبرنامه روی <a + href=https://github.com/softwaretalks/newsletter>گیت‌هاب</a> در دسترس است و محتوای آن نیز توسط + مشارکت‌کنندگان در پروژه اپن‌سورس خبرنامه تامین می‌شود. این اولین تلاش‌های ما برای ساخت یک خبرنامه هفتگی در + حوزه توسعه نرم‌افزار است و خوشحال می‌شویم نظرات و پیشنهادات شما را در <a + href=https://github.com/softwaretalks/newsletter>گیت‌هاب</a> پروژه بخوانیم. هر هفته پنج‌شنبه‌ها شماره + جدید خبرنامه ارسال می‌شود. با معرفی خبرنامه به دوستان و همکاران خود و مشارکت در تامین محتوا، به بهبود پروژه + و اشتراک‌گذاری بهتر منابع کمک کنید. + <hr> + <ul style="text-align:right;font-family:'Samim';direction:rtl"> + <li style=font-size:18px><b>روش‌‌هایی پرکاربرد برای طراحی سیستم‌هایی با مقیاس بالا</b> </li> + <p> توی این ریپوزیتوری گیتهاب، نویسنده توضیح میده که توی طراحی و پیاده‌سازی برنامه‌ها و زیرساخت‌های + نرم‌افزارهایی با مقیاس بالا معمولا چه روش‌هایی به کار برده میشه. حتی اگر حالا حالاها سروکارتون با + سیستم‌های بزرگ نمیفته، خوندن این مطلب میتونه براتون هیجان‌انگیز باشه همون‌طور که برای من بود. <br> <a + href=https://github.com/donnemartin/system-design-primer style=font-size:14px>مطالعه مطلب اصلی</a> + </p> <br> + <li style=font-size:18px><b>آیا بهره‌وری برنامه‌نویسان را می‌توان اندازه گرفت؟</b> </li> + <p> این مطلب از وبلاگ استک‌اورفلو به پاسخ دادن به این پرسش‌ها می‌پردازد که وقتی کاری که برنامه‌نویس‌ها + می‌کنند نامحسوس است، چطور باید بهره‌وری آن‌ها را اندازه گرفت و آیا این کار شدنی است؟ <br> <a + href=https://stackoverflow.blog/2020/12/07/measuring-developer-productivity/ + style=font-size:14px>مطالعه مطلب اصلی</a></p> <br> + <li style=font-size:18px><b>بازبینی کد‌های گو توسط فرود - یوتوب فارسی</b> </li> + <p> یکی از بهترین کارهایی که به یادگیری بهتر و جلب مشارکت بیشتر در پروژه‌های اپن‌سورس کمک می‌کند، بازبینی کد + آن‌هاست. فرود غفوری مدتی است روی پروژه‌هایی که به زبان گو نوشته شده، به صورت زنده بازبینی و بهبود کد را + از یوتوب استریم می‌کند. <br> <a href=https://www.youtube.com/user/fzerorubigd + style=font-size:14px>مطالعه مطلب اصلی</a></p> <br> + <li style=font-size:18px><b>آن ۴۰ میلی‌ثانیه اضافی: داستان ویژگی عجیبی که عرضه دستگاهی با اپ نتفلیکس را در + اروپا متوقف کرد!</b> </li> + <p> اپلیکیشن نتفلیکس روی صدها تلویزیون هوشمند و دستگاه‌های مختلف از جمله اندروید تی‌وی‌ها اجرا می‌شه. اما یک + باگ مرموز عرضه یک دستگاه خاص اندرویدی در اروپا با اپ نتفلیکس رو متوقف می‌کنه. درباره کشف این مساله عجیب + در «وبلاگ فنی نتفلیکس» بخوانید‌ <br> <a + href=https://netflixtechblog.com/life-of-a-netflix-partner-engineer-the-case-of-extra-40-ms-b4c2dd278513 + style=font-size:14px>مطالعه مطلب اصلی</a></p> <br> + <li style=font-size:18px><b>کانتینر در لینوکس به بیان ساده</b> </li> + <p> کانتینر پروسس ایزوله‌شده در سطح کرنل و بدون سربار است. چه ارتباطی با داکر دارد؟ تفاوت آن با ماشین مجازی؟ + پروسس چگونه ایزوله می‌شود؟ <br> <a href=https://vrgl.ir/JLCFX style=font-size:14px>مطالعه مطلب اصلی</a> + </p> <br> + <li style=font-size:18px><b>روش‌های مختلف ذخیره اطلاعات در مرورگر کاربر و وضعیت آن‌ها در ۲۰۲۱</b> </li> + <p> نویسنده در این مقاله انواع روش‌های ذخیره اطلاعات در مرورگرهای مدرن و ویژگی‌ها و محدودیت‌های‌شان را بررسی + کرده است. از روش‌های ساده‌تر Local Storage و Session Storage تا روش‌های پیشرفته‌تر IndexedDB و Cookies + در این مقاله بررسی شده‌اند و مرجع مناسبی برای انتخاب یکی از این روش‌ها در شرایط ویژه پروژه و چالش‌های + پیش روی‌تان است. <br> <a + href=https://blog.bitsrc.io/browser-storage-options-and-their-state-in-2021-6808b949087a + style=font-size:14px>مطالعه مطلب اصلی</a></p> <br> + <li style=font-size:18px><b>منتشر شد: Flysystem v2</b> </li> + <p> فلای سیستم یک کتابخانه جامع برای زبان php است که با استفاده از آن می توانیم برای فضاهای ذخیره سازی + مختلفی همچون دیسک لوکال، گوگل درایو، آمازون، دراپ باکس و... از آن استفاده کنیم. این کتابخانه در نسخه دوم + خود موارد جدیدی همچون Exceptionها را اضافه کرده است. <br> <a href=https://laravel-news.com/flysystem-v2 + style=font-size:14px>مطالعه مطلب اصلی</a> + </ul> + <hr> + <p style="font-size:13px;font-family:'Samim';direction:rtl;text-align:right"> در این شماره از خبرنامه، دوستان + خوبی به نام‌های <b>امیرحسین بقایی،</b> <b>حامد سعیدی،</b> <b>سیدمصطفی افزونی،</b> <b>وحید قادری،</b> <b>محمد + مهدی غلامرضایی</b> در تهیه محتوا کمک کردند. + <hr> + <p style="font-size:16px;text-align:center;font-family:'Samim';direction:rtl;color:#263238"> ارسال شده توسط <a + href=https://pakat.net />پاکت</a> + <p style="font-size:14px;text-align:center;font-family:'Samim';direction:rtl;color:#263238"><a + href=https://pakat.net />سرویس پاکت</a> اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف sota10 + می‌توانید از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید + </p> + </body> + + </html> + + +شماره خبرنامه 66.html + +urn:uuid:31640087-90a9-f0dd-f199-67a49ee8d0e3 +2022-09-15T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ٦٦ - پنجشنبه، ۲۴ شهریور ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.blog/2022-09-13-scaling-gits-garbage-collection/"><b>گیتهاب و چالش حجم زیاد مخازن گیت</b></a><br/>گیتهاب میگه بالای ۱۸.۶ پتابایت داده از گیت داره و بعضی از آبجکت‌ها در گیت reachable هستند و برخی unreachable. در این مطلب جدیدشون توضیح دادن که چطوری این‌ها رو برای بهینه تر کردن فضای ذخیره‌سازی مدیریت میکنند. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://daniel.haxx.se/blog/2022/09/08/http-http-http-http-http-http-http/"><b>HTTP://HTTP://HTTP://@HTTP://HTTP://?HTTP://#HTTP://</b></a><br/>داستان از جایی شروع شد که نویسنده curl توییت یک آدرس عجیب رو به عنوان یک url معتبر معرفی و توییت کرد. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://skamille.medium.com/debugging-teams-groundhog-day-f0483fea82d9"><b>دیباگ کردن تیم‌ها</b></a><br/>آیا تا به حال در تیمی بودید که خیلی سخت کار می‌کنه ولی به نظر می‌ره جلو نمی‌ره؟ نویسنده این مقاله درباره این موضوع و علائم Groundhog Day و راه‌حلش صحبت کرده + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.blog/2019-11-21-debugging-network-stalls-on-kubernetes/"><b>حل مشکلات شبکه کوبرنتیز به شیوه گیتهاب</b></a><br/>در این مطلب، تیم فنی گیتهاب توضیح میده چطوری یک مشکل latency در شبکه پیچیده کوبرنتیز رو حل کردن و مرحله به مرحله و با ساده‌سازی مسائل پیش رفتند. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 20.html + +urn:uuid:f3de882b-124f-1f85-0a1f-c8bbe57e00b9 +2021-06-17T00:00:00+00:00 +<!DOCTYPE html> +<html dir="rtl" lang="fa"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + </head> + <body style="max-width: 680px; margin: 0 auto"> + <div style="text-align: center"> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) + format("truetype"); + font-weight: 400; + } + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) + format("truetype"); + font-weight: 700; + } + ul { + padding: 0 25px; + } + </style> + <br /><br /> + <img + alt="Softwaretalks" + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + style=" + margin: 2.1em auto; + display: block; + width: 130px; + border-radius: 5px; + " + /> + <h1 + style=" + font-size: 25px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + font-weight: 700; + color: #263238; + " + > + خبرنامهٔ Softwaretalks + </h1> + <h3 + style=" + font-size: 18px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + color: #263238; + " + > + شمارهٔ ۲۰ - پنجشنبه، ۲۷ خرداد ۱۴۰۰ + </h3> + <hr /> + <ul + style=" + text-align: right; + font-family: Samim, sans-serif; + direction: rtl; + " + > + <a + href="https://medium.com/technogise/journey-of-improving-react-app-performance-by-10x-9195d4b483d4" + ></a> + <li style="font-size: 18px"> + <a + href="https://medium.com/technogise/journey-of-improving-react-app-performance-by-10x-9195d4b483d4" + ><b>بهبود کارآیی (performance) ۱۰ برابری در برنامه‌های React</b> + </a> + <p> + در این مقاله نویسنده مسیری که برای تشخیص و رفع مشکلات کارایی برنامه + داشته را توضیح می‌دهد. + </p> + <br /> + <a href="https://vrgl.ir/bwfDO"></a> + </li> + <li style="font-size: 18px"> + <a href="https://vrgl.ir/bwfDO" + ><b>گزارش قطعی فستلی در 8 ژوئن 2021 (18 خرداد 1400)</b> + </a> + <p> + هشت ژوئن، صدها سایت به مدت یک ساعت از دسترس خارج شدند. مشکل از CDN + فستلی بود. یک سرویس بزرگ که مجموعه خدمات ابری متنوعی به مشتریانش + ارائه می‌دهد. در این مطلب، ابتدا کمی تاثیرات این اتفاق را گفته‌ام و + سپس، مشکل پیش‌آمده و اقداماتی را که برای حل آن انجام دادند، + آورده‌ام. + </p> + <br /> + <a href="https://backgroundchecks.org/justdeleteme/"></a> + </li> + <li style="font-size: 18px"> + <a href="https://backgroundchecks.org/justdeleteme/" + ><b>چه سرویس هایی به شما اجازه ی حذف حساب کاربری می دهند؟</b> + </a> + <p> + اگر شما هم خیلی اطلاعاتی که داخل اینترنت دارید رو مهم میدونید و + دلتون میخواد سرویس ها حقوقتون رو رعایت کنن حتما به این گزینه که یک + سرویس امکان حذف کامل اطلاعات حساب کاربری شما رو داشته باشه اهمیت + میدین این لینک لیست سرویس هایی رو داره که امکان حذف حساب کاربری شما + رو بهتون میده و البته اونایی که نمیدن هم هستن؛ شاید لزوما حذف کامل + اتفاق نیوفته ولی لااقل از در دسترس بودن عمومی خارج میشه :) + </p> + <br /> + <a href="https://github.com/amirshnll/clean-code-php"></a> + </li> + <li style="font-size: 18px"> + <a href="https://github.com/amirshnll/clean-code-php" + ><b + >اصولی ساده و بدیهی برای کد‌های آدمیزادی در PHP! | حالا نسخه + فارسیش</b + > + </a> + <p> + نسخه ی انگلیسی clean code php در خبرنامه های قبلی منتشر شده برای + تفریح یه نسخه ی فارسی ازش در آوردیم که زیر پروژه ی اصلی هم اضافه شده + اگر حوصله دارید مطالعه کنید و اصلاحاتی هم نیاز داره حتما اطلاع بدین + </p> + </li> + </ul> + <hr /> + <p + style=" + font-size: 13px; + font-family: Samim, sans-serif; + direction: rtl; + text-align: right; + " + > + تأمین‌کنندگانِ محتوا در این شماره از خبرنامه: <b>حامد سعیدی،</b> + <b>امیرحسین مجیری،</b> <b>امیر شکری</b> شما نیز می‌توانید + <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a + >. + </p> + <hr /> + <span + ><p + style=" + font-size: 16px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <img + src="https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png" + /><br /> + ارسال شده توسط <a href="https://pakat.net/">پاکت</a> + </p> + <p + style=" + font-size: 14px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ + ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ + تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید + </p> + <br + /></span> + </div> + </body> +</html> + + + +شماره خبرنامه 44.html + +urn:uuid:e010d3db-ef72-c014-311e-7377d4093b27 +2022-01-01T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۴۴ - شنبه، ۱۱ دی ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://support.huaweicloud.com/intl/en-us/usermanual-evs/evs_01_0072.html"><b>حجم پارتیشن سرورتون رو بدون پایین اومدن و دیتا از دست دادن زیاد کنید</b></a><br/>اگر سرور لینوکسی در حال کار دارید و قصد دارید بدون هیچ وقفه فقط فضای پارتیشن هاتون رو بیشتر کنید حتما این نوشته رو بررسی کنید + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://devtoys.app/"><b>چاقوی سوئیسی برای توسعه‌دهندگان نرم‌افزار</b></a><br/>مجموعه‌ای از ابزارهای مورد نیاز برنامه‌‌نویسان برای کار با متن، تبدیل فرمت‌ها و فشرده‌سازی و ... این نرم‌افزار رایگان و اپن‌سورس است اما فقط برای ویندوز عرضه شده است + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://endaphelan.me/posts/software-idioms-you-should-know/"><b>اصطلاحات مهندسی نرم‌افزار که باید بدانید</b></a><br/>تا حالا درباره Rubber duck debugging چیزی شنیدید؟ یا می‌دونید چه زمانی از اصطلاح Boil the ocean استفاده می‌شه؟ این نوشته فهرست کوتاهی از چند اصطلاح و زمان استفاده‌شون در حوزه مهندسی نرم‌افزار درست کرده + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://dappradar.com/blog/2021-dapp-industry-report"><b>روزهای مهم بلاکچینی سال ۲۰۲۱</b></a><br/>امسال بلاکچین روزهای مهمی داشت و کلا اتفاقات عجیب و غریب و حیرت انگیر هم کم نداشت توی این مقاله جزئیات این اتفاقات رو مطالعه کنید شاید جالب باشه در مورد اینکه بدونید بلاکچین به کدوم سمت در حال حرکت هست ... + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.linkedin.com/feed/update/urn:li:ugcPost:6880051115493224448?updateEntityUrn=urn%3Ali%3Afs_updateV2%3A%28urn%3Ali%3AugcPost%3A6880051115493224448%2CFEED_DETAIL%2CEMPTY%2CDEFAULT%2Cfalse%29"><b>مثل اینکه استارتاپ های پاکستان همین بغل گوشمون دارن خوب پیش میرنا</b></a><br/>یک سری آمار و اطلاعات جامع از گردش های مالی و رشد استارتاپ های پاکستان بخونید خیلی جزئیات جالبی داره که باید کامل خونده بشه ولی همین بغل گوشمون به شدت دارن خوب پیش میرن + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیر شکری،</b> + + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 30.html + +urn:uuid:6b927bc8-f7f1-8b99-d129-3acb87b5b6e0 +2021-09-03T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۳۰ - جمعه، ۱۲ شهریور ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/ventoy/Ventoy"><b>بوت چندگانه روی فلش مموری</b></a><br/>احتمالا شده که یه فلش مموری رو با ایمیج ویندوز بوت کرده باشید. اگه بخواید رو همون فلش ایمیج لینوکس بریزید قاعدتا باید دوباره فرمتش کنید. Ventoy ابزار جدیدیه که به شما امکان داشتن چنتا ایمیج روی یک فلش مموری رو میده بدون نیاز به فرمت و پارتیشن بندی دوباره. کافیه یه بار روی یه فلش نصبش کنید. بار اول پارتیشن بندی انجام میشه. از این به بعد هر ایمیج iso، img و حتی vhd رو روی فلش کپی کنید، ventoy اون رو به لیست بوتش اضافه می‌کنه و نیاز به هیچ کار دیگه‌ای نیست. با ایمیج‌های متعددی تست شده و بعیده کارتون رو راه نندازه. 👌 + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/"><b>بهبود کارایی در دات نت ۶</b></a><br/>در این بلاگ شما با خلاصه‌ای از تغییرات زیاد دات نت ۶ آشنا می‌شوید و کارایی این نسخه‌ی دات نت با نسخه‌های قبلی مقایسه می‌شود. خواندن این مطلب را به برنامه نویسان سی شارپ اکیدا توصیه می‌کنم. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/alibaba-aero/technical-interview"><b>سوالات مصاحبه فنی علی بابا</b></a><br/>سرویس علی بابا در ایران مجموعه‌ای از سوالاتی که در مصاحبه فنی طرح می‌کنند را به صورت اپن‌سورس در گیت‌هاب منتشر کردند + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://rtbf.ir/post/how-is-your-personal-information-protected-online"><b>چگونه اطلاعات شخصی شما به صورت آنلاین محافظت می شود؟</b></a><br/>در این نوشته در مورد حریم خصوصی و اهمیت حفظ آن می خوانید و به بررسی قوانین مختلف در این حوزه پرداخته می شود و شیوه نامه های امنیتی کوتاهی را مطالعه خواهید کرد ... + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://dotnetdocs.ir/Fa/Post/51/%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-httppatch-%D8%AF%D8%B1-asp.net-core"><b>نحوه استفاده از HttpPatch در Asp.Net Core</b></a><br/>به طور معمول برای ویرایش اطلاعات از HttpPut استفاده میکنیم. در این حالت باید تمامی فیلدهای مربوط به موجودیت را ارسال کنیم. اما اگر فقط یکی دوتا از فیلدها نیاز به ویرایش داشته باشند چه نیازی به ارسال مابقی فیلدهاست؟ +با استفاده از HttpPatch میتوانیم فقط فیلدهایی را که نیاز به ویرایش دارند را به API ارسال کنیم. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/@milojevicmarko92/how-to-create-windows-service-that-schedules-jobs-logs-and-is-configurable-by-means-of-779e8cbd0680"><b>ایجاد سرویس ویندوز برای اجرای خودکار تسک ها با استفاده از Topshelf, Quartz و log4net</b></a><br/>توی خیلی از سازمان ها و شرکتها, نیاز به یکسری تسک هست که سرساعت خاصی انجام بشن. مثل تهیه یک گزارش, ارسال یک فایل و ... اگر تعداد اینها زیاد باشه بهتر هست که از یک سرویس برای اینکار استفاده بشه. این مطلب بهمون کمک میکنه که سرویس بهتری بسازیم. اینجا از Topshelf, Quartz و log4net با هم استفاده شده. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>Rahmanism،</b> + + + <b>احمدرضا ساغری،</b> + + + <b>حامد سعیدی،</b> + + + <b>امیر شکری،</b> + + + <b>میرحسین حسینیون .</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 14.html + +urn:uuid:adb01f99-bdc5-e485-328e-25002d12e9ca +2021-05-06T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۱۴</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبرنامهٔ Softwaretalks </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۱۴ - پنجشنبه، ۱٦ اردیبهشت ۱۴۰۰ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>چرا افراد موفق مولتی تسک نیستند.</b> </li> + <p> در این پست نویسنده با اشاره به تحقیقات صورت گرفته در دانشگاه استنفورد نشان میدهد چگونه انجام دادن همزمان + تسک های زیاد باعث آسیب در عملکرد و حتی آسیب جسمی و مغزی میشود. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/iQPjax3CHDgHMz0vRmM3kr2iuc6NrsidRjrwr-YLGlueaJN7Ig2in73oZxIjtbw0dUYJ-CI5UWSBt5q8kAzkT3kROkmm-feH5qlQkoX_Qcd6ayi0PpTAH-4pe7ra3n88U7q-VsPtoEtXbvjB93k_ejzQFYmJH6dxhEH3aImFkndygu9MygdiqCABEUAZi2sBQfia1i_rJCUunW_EhS1qGxXAxx1h7jM1lDMUkFh5xZ8oK0rN5QDFNzY" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>شفافیت در رمزنگاری، یک اصل اساسی</b> </li> + <p> همه‌چیز یک سیستم یا الگوریتم رمزنگاری باید شفاف و در معرض دید عموم باشد بجز کلید رمز <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/HkUqoeH53B3GzhyhyxwNsPaws1_mB9UTUPY1wYI_VsMI9L13_qYtTtpIctlUp18GhvPc43aJpFL8AQChlBVtk5fRkjMsnZuZ2pv_s61Whp--KKY_p0f_YONbfeSc6FjB2s4kgWo_gRVnbkv4AzEXgy37YjVGEULW7EKQfPgp39PUSiQMp_oZ-4tEKFmHctcMi1hekfXfEqSoWZk7mYSaPJ5QQJdq7I0zJbFSJyXTRJbK9mu1uzVmv8PmZV1hbZiIEDETYblloXBKH9xO5_wTePMrIQ7s8DjxROyH7HuuI4jMyWgQwTRyMHx7J3IMl9T7NzBXP7blr9xURplaOwzgLkJUPLDIWQp3biqZcRfzEB0bO-xbOuz1DLycBF-uL1yGpxfZ9OXV-3pu4F3VaQG1tNFK3cIYeBjpCFyGxdRrQfcHO7bnu5IiFR962f_4ryvyNUTe54GnhUV212_5DMz1WsxQHJV9iR9TrPzr_OcYhDGgGdiTLODiqEvaiIa2tfJHXMpGuYN5O_m9lrZ2bxk0wfC0Og" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>جنبه های معماری نرم افزار</b> </li> + <p> معماری نرم افزار به عنوان اصلی ترین فعالیت در مهندسی نرم افزار با جنبه های بسیاری در ارتباط است. یکی از + بهترین کتاب هایی که در این رابطه نوشته شده کتاب Software Architecture in Practice است که در به عنوان یکی + از اصلی ترین مراجع این مبحث در بین مهندسین مطرح می باشد. در این مطلب بخشی از کتاب که درمورد جنبه های + معماری صحبت می کند آورده شده است <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/5OJHACuyWq_U4IWYiGKz8nyQEhuBnCUIvenYmQD1qkdl3QH9tt0Y_ihgrrn2xrFR93JfI18A4Rnu2k8j55NBNbuxcJCWxfQ0IH3_-TO3dOBhFHqkNfVp1Jcoc5rnFD_dorXkbZwb4vFm0oUymfgx0hbl" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>حسن شهبازی،</b> <b>سیدمصطفی افزونی،</b> <b>Mahdi Akhi</b> در تهیه محتوا + کمک کردند. شما هم می‌توانید <a + href="https://r.t10.pktsrv2.com/mk/cl/f/e4uenDlplwOf6fHyaKDYIz8bWbNIgjsM8oGC53keUPU4AuAwwp4X39xQnbd2nuBSY5gcYeISGBoaIF6wAGlLdTlu-sgcRuZRwT0JIaLXeFeGHfScX4k34KP7qFLwEOa208mPSnXvJC--W2TYCNmswIsCygwf1_tFUz5PhQ8nF-AEGBvb26-DLpFnWjnVUw" + sib_link_id="3">مشارکت کنید</a>. </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=1-G6a7Y8w7rnVTwfHgLQBHk71FCncLTOpN1py962IohBsNupRymgXypcwqIlnbd9G4O-YCwUpFaemFnxTxSFkf1qE4_gjbCmC6gkwG0ccdqmrDUEOmgPxNRHKfHJxuEuwOMdF5hMyRtRIVZ-alXgWdFy_2CyM-aYLscHgyPIL-RnVoob5AMLsYtuxzK1nCBO5vw_OPrx_qSprAUvcj3O7BKQdA" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/R3RKIS9vORkKB8_5uWi0Hz7gGJ5p94dpjTSbjfe5Us9ZHqrp9ptVapr6EsrPuYoARIPk2SnSQcNf9gGsp4qEIyUOvs7L3nX6PVdH-z7t02rDvxPMTSN_V2_2BNFsYgyAeMCgZMYf9JYTE4h4kFje" + sib_link_id="4">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/W6pkB4R71rnAvhhMPlVWu9fdu3bal9ViOBgKUgV3Ib4KZve6QXQaWr04NjWlj3LjaH6gumYFogU9u6vriHHIHoGIJON7e0BZJ6xYw14sTXJaa0tROKM95D8wHReWJYgo7Egrb1Wxu9NmMpRMNrN-" + sib_link_id="5">سرویس پاکت</a> اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف sota10 می‌توانید + از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید </p> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 52.html + +urn:uuid:7f9edfe8-0848-d496-640c-da3fe6724fbd +2022-06-02T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۵۲ - پنجشنبه، ۱۲ خرداد ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://systemweakness.com/give-me-a-browser-ill-give-you-a-shell-de19811defa0"><b>یک مرورگر به من بده تا بهت شِل بدم</b></a><br/>در این مقاله در این مورد صحبت شده که اگر فقط یک مروگر داشته باشیم چطوری می‌توانیم نفوذ انجام بدیم و چه چیزهایی رو درباره پروتکل‌های مورد استفاده مرورگرها که ممکنه باعث سوء استفاده بشه باید بدونیم + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://r.bluethl.net/how-to-design-better-apis"><b>چطور APIهای بهتری طراحی کنیم</b></a><br/>این یک نوشته نسبتاً طولانی شامل پیشنهادهای خوب برای نوشتن و بهبود طراحی API هاست و در طول این نوشته درباره اشتباهات معمول و رویکردهای نادرست طراحی هم صحبت می‌شود. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://dev.to/lostintangent/10-awesome-things-you-can-do-with-github-dev-5fm"><b>کارهای جالبی که با github.dev می‌توان انجام داد</b></a><br/>در این مقاله ۱۰ کاری که مستقیم یا به کمک اکستنشن‌ها می‌توان با نسخه تحت وب ادیتور گیت‌هاب انجام داد معرفی شده است. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 45.html + +urn:uuid:d8d8c4e8-dca1-7340-ff2e-dbd7e5883842 +2022-01-07T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۴۵ - جمعه، ۱۷ دی ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/mthri/dfp-persian"><b>ترجمه گروهی کتاب Django for Professionals</b></a><br/> بالاخره بعد از حدود ۴ ماه و با مشارکت ۲۲ نفر، ترجمه کتاب django for professional تموم شد و میتونید مطالعه کنیدش + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://xy2z.io/posts/2020-syncing-aliases/"><b>همگام‌سازی alias ها</b></a><br/>در این نوشته روشی سریع و بدون وابستگی برای همگام‌سازی aliasها روی سیستم عامل‌های مختلف ارائه شده تا با استفاده از gist عمومی گیت‌هاب این همگام‌سازی انجام شود + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://solocode.ir/article/return-youtube-dislikes"><b>حذف کن، ما برمی‌گردونیم! (دیسلایک‌های یوتیوب)</b></a><br/>درسته، اقدام عجیب یوتیوب (حذف شمارنده دیسلایک) ممکنه به نفع تولیدکننده‌های ویدیو باشه اما به نفع افرادی که دنبال محتوای باکیفیت در یوتیوب می‌گردن نیست! کافیه این افزونه که توی این مقاله معرفی کردم رو نصب کنی تا بتونی تعداد دیسلایک‌های ویدیوهایی که توی نسخه وب یوتیوب پخش می‌کنی رو ببینی. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>حامد سعیدی،</b> + + + <b>علی کرباسی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 22.html + +urn:uuid:d6cd9b00-cb84-b314-17b7-96c7f90d468c +2021-07-01T00:00:00+00:00 +<!DOCTYPE html> +<html dir="rtl" lang="fa"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + </head> + <body style="max-width: 680px; margin: 0 auto"> + <div style="text-align: center"> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) + format("truetype"); + font-weight: 400; + } + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) + format("truetype"); + font-weight: 700; + } + ul { + padding: 0 25px; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 50px; + } + </style> + <br /><br /> + <img + alt="Softwaretalks" + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + style=" + margin: 2.1em auto; + display: block; + width: 130px; + border-radius: 5px; + " + /> + <h1 + style=" + font-size: 25px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + font-weight: 700; + color: #263238; + " + > + خبرنامهٔ Softwaretalks + </h1> + <h3 + style=" + font-size: 18px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + color: #263238; + " + > + شمارهٔ ۲۲ - پنجشنبه، ۱۰ تیر ۱۴۰۰ + </h3> + <hr /> + <ul + style=" + text-align: right; + font-family: Samim, sans-serif; + direction: rtl; + " + > + <a + href="https://blog.openreplay.com/how-to-evaluate-site-speed-with-the-performance-api" + ></a> + <li style="font-size: 18px"> + <a + href="https://blog.openreplay.com/how-to-evaluate-site-speed-with-the-performance-api" + ><b>ارزیابی سرعت سایت با استفاده از Performance API</b> + </a> + <p> + این مطلب به صورت مفصل درباره اجزای مختلف Performance API و نحوه + کارکرد آن‌ها در جهت ارزیابی سرعت برنامه‌های تحت وب توضیح می‌دهد + </p> + <br /> + <a + href="https://ariadne.space/2021/06/25/understanding-thread-stack-sizes-and-how-alpine-is-different/" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://ariadne.space/2021/06/25/understanding-thread-stack-sizes-and-how-alpine-is-different/" + ><b>محدودیت سایز پشته در thread و تفاوت alpine</b> + </a> + <p> + خیلی اوقات میشنویم و میبینیم که یک نرم افزار مخصوصاً بر روی کانتینر + های داکر وقتی از آلپاین به عنوان بیس استفاده می کنیم کرش میکنند، این + مطلب به مهمترین دلیل این اتفاق میپردازد + </p> + <br /> + <a + href="https://www.vice.com/en/article/qkv5xq/can-learning-to-code-delay-alzheimers" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://www.vice.com/en/article/qkv5xq/can-learning-to-code-delay-alzheimers" + ><b>آیا کدها و برنامه نویسی امکان تاخیر آلزایمر را دارند؟</b> + </a> + <p> + در این نوشته در مورد اینکه برنامه نویسی و کدها امکان تاخیر در بیماری + آلزایمر را دارند صحبت شده که خیلی جالب میتونه باشه... + </p> + <br /> + <a href="https://cutt.ly/pg-optimizer-1"></a> + </li> + <li style="font-size: 18px"> + <a href="https://cutt.ly/pg-optimizer-1" + ><b>بهینه‌ساز پستگرس، بخش یکم</b> + </a> + <p> + در این بخش کمی درباره معماری پستگرس و همچنین درباره الگوریتم‌های + مختلف پیمایش جدول در پستگرس حرف می‌زنیم. + </p> + <br /> + <a + href="https://www.linkedin.com/pulse/why-successful-people-dont-multitask-dr-travis-bradberry/" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://www.linkedin.com/pulse/why-successful-people-dont-multitask-dr-travis-bradberry/" + ><b>چرا افراد موفق مولتی تسک نیستند!؟</b> + </a> + <p> + در این مقاله با دلایل اینکه چرا افراد موفق مولتی تسک نیستند و مولتی + تسک بودن چه ضررهایی داره ، آشنا خواهید شد + </p> + <br /> + <a href="https://vrgl.ir/4uPzi"></a> + </li> + <li style="font-size: 18px"> + <a href="https://vrgl.ir/4uPzi" + ><b>Cursor Pagination در لاراول</b> + </a> + <p> + در این مقاله با تغییراتی که در pagination laravel در نسخه 8.41 ایجاد + شده آشنا خواهید شد ... + </p> + </li> + </ul> + <hr /> + <p + style=" + font-size: 13px; + font-family: Samim, sans-serif; + direction: rtl; + text-align: right; + " + > + تأمین‌کنندگانِ محتوا در این شماره از خبرنامه: <b>حامد سعیدی،</b> + <b>محمد مهدی عصار،</b> <b>امیر شکری،</b> <b>هادی مشیدی،</b> + <b>امیر ابوئی</b> شما نیز می‌توانید + <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a + >. + </p> + <hr /> + <span + ><p + style=" + font-size: 16px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <img + src="https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png" + /><br /> + ارسال شده توسط <a href="https://pakat.net/">پاکت</a> + </p> + <p + style=" + font-size: 14px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ + ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ + تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید + </p> + <br + /></span> + </div> + </body> +</html> + + + +شماره خبرنامه 2.html + +urn:uuid:f153e65a-37a1-6af6-59e0-2248a2732f59 +2021-01-14T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۲</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" + xmlns:o="urn:schemas-microsoft-com:office:office"> + + <head> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta http-equiv="Content-Type" content="text/html; " /> + <meta name="x-apple-disable-message-reformatting" /> + <meta name="apple-mobile-web-app-capable" content="yes" /> + <meta name="apple-mobile-web-app-status-bar-style" content="black" /> + <meta name="format-detection" content="telephone=no" /> + <title></title> + <link href="https://cdnjs.cloudflare.com/ajax/libs/vazir-font/27.1.0/font-face.css" rel="stylesheet" + type="text/css" /> + <style type="text/css"> + /* Resets */ + .ReadMsgBody { + width: 100%; + background-color: #ebebeb; + } + + .ExternalClass { + width: 100%; + background-color: #ebebeb; + } + + .ExternalClass, + .ExternalClass p, + .ExternalClass span, + .ExternalClass font, + .ExternalClass td, + .ExternalClass div { + line-height: 100%; + } + + a[x-apple-data-detectors] { + color: inherit !important; + text-decoration: none !important; + font-size: inherit !important; + font-family: inherit !important; + font-weight: inherit !important; + line-height: inherit !important; + } + + body { + -webkit-text-size-adjust: none; + -ms-text-size-adjust: none; + } + + body { + margin: 0; + padding: 0; + } + + .yshortcuts a { + border-bottom: none !important; + } + + .rnb-del-min-width { + min-width: 0 !important; + } + + /* Add new outlook css start */ + .templateContainer { + max-width: 590px !important; + width: auto !important; + } + + /* Add new outlook css end */ + + /* Image width by default for 3 columns */ + img[class="rnb-col-3-img"] { + max-width: 170px; + } + + /* Image width by default for 2 columns */ + img[class="rnb-col-2-img"] { + max-width: 264px; + } + + /* Image width by default for 2 columns aside small size */ + img[class="rnb-col-2-img-side-xs"] { + max-width: 180px; + } + + /* Image width by default for 2 columns aside big size */ + img[class="rnb-col-2-img-side-xl"] { + max-width: 350px; + } + + /* Image width by default for 1 column */ + img[class="rnb-col-1-img"] { + max-width: 550px; + } + + /* Image width by default for header */ + img[class="rnb-header-img"] { + max-width: 590px; + } + + /* Ckeditor line-height spacing */ + .rnb-force-col p, + ul, + ol { + margin: 0px !important; + } + + .rnb-del-min-width p, + ul, + ol { + margin: 0px !important; + } + + /* tmpl-2 preview */ + .rnb-tmpl-width { + width: 100% !important; + } + + /* tmpl-11 preview */ + .rnb-social-width { + padding-right: 15px !important; + } + + /* tmpl-11 preview */ + .rnb-social-align { + float: right !important; + } + + /* Ul Li outlook extra spacing fix */ + li { + mso-margin-top-alt: 0; + mso-margin-bottom-alt: 0; + } + + /* Outlook fix */ + table { + mso-table-lspace: 0pt; + mso-table-rspace: 0pt; + } + + /* Outlook fix */ + table, + tr, + td { + border-collapse: collapse; + } + + /* Outlook fix */ + p, + a, + li, + blockquote { + mso-line-height-rule: exactly; + } + + /* Outlook fix */ + .msib-right-img { + mso-padding-alt: 0 !important; + } + + @media only screen and (min-width:590px) { + + /* mac fix width */ + .templateContainer { + width: 590px !important; + } + } + + @media screen and (max-width: 360px) { + + /* yahoo app fix width "tmpl-2 tmpl-10 tmpl-13" in android devices */ + .rnb-yahoo-width { + width: 360px !important; + } + } + + @media screen and (max-width: 380px) { + + /* fix width and font size "tmpl-4 tmpl-6" in mobile preview */ + .element-img-text { + font-size: 24px !important; + } + + .element-img-text2 { + width: 230px !important; + } + + .content-img-text-tmpl-6 { + font-size: 24px !important; + } + + .content-img-text2-tmpl-6 { + width: 220px !important; + } + } + + @media screen and (max-width: 480px) { + td[class="rnb-container-padding"] { + padding-left: 10px !important; + padding-right: 10px !important; + } + + /* force container nav to (horizontal) blocks */ + td.rnb-force-nav { + display: inherit; + } + + /* fix text alignment "tmpl-11" in mobile preview */ + .rnb-social-text-left { + width: 100%; + text-align: center; + margin-bottom: 15px; + } + + .rnb-social-text-right { + width: 100%; + text-align: center; + } + } + + @media only screen and (max-width: 600px) { + + /* center the address & social icons */ + .rnb-text-center { + text-align: center !important; + } + + /* force container columns to (horizontal) blocks */ + th.rnb-force-col { + display: block; + padding-right: 0 !important; + padding-left: 0 !important; + width: 100%; + } + + table.rnb-container { + width: 100% !important; + } + + table.rnb-btn-col-content { + width: 100% !important; + } + + table.rnb-col-3 { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + + /* change left/right padding and margins to top/bottom ones */ + margin-bottom: 10px; + padding-bottom: 10px; + /*border-bottom: 1px solid #eee;*/ + } + + table.rnb-last-col-3 { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + } + + table.rnb-col-2 { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + + /* change left/right padding and margins to top/bottom ones */ + margin-bottom: 10px; + padding-bottom: 10px; + /*border-bottom: 1px solid #eee;*/ + } + + table.rnb-col-2-noborder-onright { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + + /* change left/right padding and margins to top/bottom ones */ + margin-bottom: 10px; + padding-bottom: 10px; + } + + table.rnb-col-2-noborder-onleft { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + + /* change left/right padding and margins to top/bottom ones */ + margin-top: 10px; + padding-top: 10px; + } + + table.rnb-last-col-2 { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + } + + table.rnb-col-1 { + /* unset table align="left/right" */ + float: none !important; + width: 100% !important; + } + + img.rnb-col-3-img { + /**max-width:none !important;**/ + width: 100% !important; + } + + img.rnb-col-2-img { + /**max-width:none !important;**/ + width: 100% !important; + } + + img.rnb-col-2-img-side-xs { + /**max-width:none !important;**/ + width: 100% !important; + } + + img.rnb-col-2-img-side-xl { + /**max-width:none !important;**/ + width: 100% !important; + } + + img.rnb-col-1-img { + /**max-width:none !important;**/ + width: 100% !important; + } + + img.rnb-header-img { + /**max-width:none !important;**/ + width: 100% !important; + margin: 0 auto; + } + + img.rnb-logo-img { + /**max-width:none !important;**/ + width: 100% !important; + } + + td.rnb-mbl-float-none { + float: inherit !important; + } + + .img-block-center { + text-align: center !important; + } + + .logo-img-center { + float: inherit !important; + } + + /* tmpl-11 preview */ + .rnb-social-align { + margin: 0 auto !important; + float: inherit !important; + } + + /* tmpl-11 preview */ + .rnb-social-center { + display: inline-block; + } + + /* tmpl-11 preview */ + .social-text-spacing { + margin-bottom: 0px !important; + padding-bottom: 0px !important; + } + + /* tmpl-11 preview */ + .social-text-spacing2 { + padding-top: 15px !important; + } + + /* UL bullet fixed in outlook */ + ul { + mso-special-format: bullet; + } + + } + + @media screen { + body { + font-family: 'Vazir', 'Tahoma', Geneva, sans-serif; + } + } + </style> + <!--[if gte mso 11]><style type="text/css">table{border-spacing: 0; }table td {border-collapse: separate;}</style><![endif]--> + <!--[if !mso]><!--> + <style type="text/css"> + table { + border-spacing: 0; + } + + table td { + border-collapse: collapse; + } + </style> + <!--<![endif]--> + <!--[if gte mso 15]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--> + <!--[if gte mso 9]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--> + </head> + + <body> + + <table border="0" align="center" width="100%" cellpadding="0" cellspacing="0" class="main-template" + bgcolor="#f9fafc" style="background-color: rgb(249, 250, 252);"> + + <tbody> + <tr> + <td align="center" valign="top"> + <!--[if gte mso 9]> + <table align="center" border="0" cellspacing="0" cellpadding="0" width="590" style="width:590px;"> + <tr> + <td align="center" valign="top" width="590" style="width:590px;"> + <![endif]--> + <table border="0" cellpadding="0" cellspacing="0" width="590" class="templateContainer" + style="max-width:590px!important; width: 590px;"> + <tbody> + <tr> + + <td align="center" valign="top"> + + <table class="rnb-del-min-width" width="100%" cellpadding="0" border="0" + cellspacing="0" style="min-width:590px;" name="Layout_0" id="Layout_0"> + <tbody> + <tr> + <td class="rnb-del-min-width" valign="top" align="center" + style="min-width:590px;"> + <a href="#" name="Layout_0"></a> + <table width="100%" cellpadding="0" border="0" height="38" + cellspacing="0"> + <tbody> + <tr> + <td valign="top" height="38"> + <img width="20" height="38" + style="display:block; max-height:38px; max-width:20px;" + alt="" + src="http://r.t10.pktsrv2.com/im/130771/11996271bd9eaa67a70ecb0a888804fe4a7c5dd570282a89a399bb94b9584314.gif?e=QUdX9psgMKt7HpuzGB93x9BA2Gp8gqkdW7zMt8akZ56LWdMBfe91f5DI7qsn2uUku4E8hjjoj9ZyMmKe0EkplYtw7OngE1qhkPLhCPoTHieHzQHienLssv6AD5E8TqfTenGL7wZ-JYsKI74SVWYOfTxxdDcP6BhEWAnaaBCULkJUPr3a_oBHeloMxY2FJQ" + sib_img_id="0" /> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + <tr> + + <td align="center" valign="top"> + + <div style="background-color: rgb(255, 255, 255); border-radius: 0px;"> + + <!--[if mso]> + <table align="center" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;"> + <tr> + <![endif]--> + + <!--[if mso]> + <td valign="top" width="590" style="width:590px;"> + <![endif]--> + + <table width="100%" cellpadding="0" border="0" cellspacing="0" + name="Layout_2" id="Layout_2"> + <tbody> + <tr> + <td align="center" valign="top"><a href="#" name="Layout_2"></a> + <table border="0" width="100%" cellpadding="0" + cellspacing="0" class="rnb-container" bgcolor="#ffffff" + style="height: 0px; background-color: rgb(255, 255, 255); border-radius: 0px; border-collapse: separate; padding-left: 20px; padding-right: 20px;"> + <tbody> + <tr> + <td class="rnb-container-padding"> + + <table border="0" cellpadding="0" + cellspacing="0" + class="rnb-columns-container" + align="center" style="margin:auto;"> + <tbody> + <tr> + + <th class="rnb-force-col" + align="center" + style="text-align: center; font-weight: normal"> + + <table border="0" + cellspacing="0" + cellpadding="0" + align="center" + class="rnb-col-1"> + + <tbody> + <tr> + <td height="10"> + </td> + </tr> + + <tr> + <td + style="font-family:Vazir,Tahoma,Geneva,sans-serif; color:#3c4858; text-align:center;"> + + <span + style="color:#3c4858;"><strong><span + style="font-size:24px;"><span + style="font-size:28px;">خبر‌نامه + مهندسان + نرم‌افزار</span><br /> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شماره ۲ - پنجشنبه، ۲۵ دی ۹۹ + </h3> + </span></strong></span> + </td> + </tr> + <tr> + <td height="10"> + </td> + </tr> + </tbody> + </table> + </th> + </tr> + </tbody> + </table> + </td> + </tr> + + </tbody> + </table> + + </td> + </tr> + + </tbody> + </table> + <!--[if mso]> + </td> + <![endif]--> + + <!--[if mso]> + </tr> + </table> + <![endif]--> + + </div> + </td> + </tr> + <tr> + + <td align="center" valign="top"> + + <div style="background-color: rgb(255, 255, 255); border-radius: 0px;"> + + <!--[if mso]> + <table align="center" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;"> + <tr> + <![endif]--> + + <!--[if mso]> + <td valign="top" width="590" style="width:590px;"> + <![endif]--> + <table class="rnb-del-min-width" width="100%" cellpadding="0" border="0" + cellspacing="0" style="min-width:100%;" name="Layout_8"> + <tbody> + <tr> + <td class="rnb-del-min-width" align="center" valign="top"> + <a href="#" name="Layout_8"></a> + <table width="100%" border="0" cellpadding="0" + cellspacing="0" class="rnb-container" bgcolor="#ffffff" + style="background-color: rgb(255, 255, 255); padding-left: 20px; padding-right: 20px; border-collapse: separate; border-radius: 0px; border-bottom: 0px none rgb(200, 200, 200);"> + + <tbody> + <tr> + <td height="20" + style="font-size:1px; line-height:20px; mso-hide: all;"> +  </td> + </tr> + <tr> + <td valign="top" class="rnb-container-padding" + align="left"> + + <table width="100%" border="0" + cellpadding="0" cellspacing="0" + class="rnb-columns-container"> + <tbody> + <tr> + <th class="rnb-force-col" + style="text-align: left; font-weight: normal; padding-right: 0px;" + valign="top"> + + <table border="0" + valign="top" + cellspacing="0" + cellpadding="0" + width="100%" + align="left" + class="rnb-col-1"> + + <tbody> + <tr> + <td + style="font-size:14px; font-family:Vazir,Tahoma,Geneva,sans-serif, sans-serif; color:#3c4858;"> + <div dir="rtl" + style="text-align:right;"> + <ul> + <li + style="text-align: right;"> + <a href="https://r.t10.pktsrv2.com/mk/cl/f/UmFeTBEEWJbW283_bsREdZbefHoOufDtMEd6YurAx-F7R1OL7qyiS5-Jq2S3t6xGJ_2ktxXkplFtQZB_ZVIIfnd5FfVeuNQ_z3-JpCBkWfFAhSXleNOmiSRAM_n_IBJydpPBzzMGXz1YGdO3wZv6Qgc" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="0">تاریخ + ناگفته‌ی + زنان + در + برنامه‌نویسی + کامپیوتر</a> + </li> + </ul> + + <div + style="text-align: right;"> + این + متن + دو-قسمتی، + که + در + صفحه‌ی + ویرگول + «تکانه» + منتشر + شده + است، + نگاهی + میکند + به + تاریخچه‌ی + ورود + و + حضور + زنان + در + دنیای + برنامه‌نویسی + کامپیوتر + </div> + + <div + style="text-align: right;"> +   + </div> + + <ul> + <li + style="text-align: right;"> + <a href="https://r.t10.pktsrv2.com/mk/cl/f/VBgNxxMMlRqwPhK5yvSGJHYRCl-QYUZKxUfv9tNbYMAlwUt9WeiHLuvdl_Rg5vRFfGExzLhsZOo6mln_fRrpJ31E8n3qXRAco1nHBz7zeyo7Sg8BUTeexhmbzOwQFWCAh0lttVU0OTGzhEdvdad8g-38gwBc5qU-DPMwIyeafBrNZZVpfSPPf97xpWkG7tA2Wgx1" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="1">کانال + یوتیوبی + برای + علاقه‌مندان + به + DevOps + و + Cloud</a> + </li> + </ul> + + <div + style="text-align: right;"> + اگر + به + حوزه + DevOps + و + Cloud + علاقه + دارید + یا + تو + این + حوزه + کار + میکنید، + داخل + این + کانال + یوتیوبی + میتونید + آرشیو + کنفرانس‌های + DevOpsCon + رو + مشاهده + کنید. + </div> + + <div + style="text-align: right;"> + <span + style="background-color: transparent;"> </span> + </div> + + <ul> + <li + style="text-align: right;"> + <a href="https://r.t10.pktsrv2.com/mk/cl/f/4JnESNe5T0lqlqgForJiZ7Chsc52Ftb04ze0dMA_kbNT3sIT9s_BHV4Vopo1jZZrwuDgVadySPAv3T5lX0Dmjrx_KSVwWZt1WKn-UW8ajf5kBGfrEj8674iLtv7mwRsBTYwwsEDcEbCUo3f0Hvt7z4umWhnshDsZq9sxDZbN48Q7mRAcPuzc" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="2">اصولی + ساده + و + گاها + بدیهی + برای + کد‌های + آدمیزادی + در + PHP!</a> + </li> + </ul> + + <div + style="text-align: right;"> + نوشتن + کد + تمیز، + خوانا + و + قابل + توسعه + مهارتیه + که + به + مرور + و با + تمرین + زیاد + و + مطالعه + بدست + میاد. + اگر + شما + هم + از + این + دسته + برنامه‌نویسان + هستید + که + قصد + دارند + کد + تمیز + بنویسند + و از + قضا + PHP + هم + کار + میکنید، + پس + این + ریپوزیتوری + Clean + code + in + php + رو + حتما + باید + ‌ یک + نگاهی + بندازین. + </div> + + <div + style="text-align: right;"> + <span + style="background-color: transparent;"> </span> + </div> + + <ul> + <li + style="text-align: right;"> + <a href="https://r.t10.pktsrv2.com/mk/cl/f/3ZQ8SRuV2ZalUpaHqAb3zrlOuRwvtt-r5kAzsbT57sVOepJtNHrld6s58JYz5IlrNHVBN8KmoR5qbzrzCMTXTVQ7KOustSC5pSHE8xDmWiZqF_GbI73A2hdjBodhPzAHGwxF2oG4-c3dvZ0wDE4vEVCLmfDd5ng7-nQfbzl_Ghy9tFT-iOYxKLuxIzpqDb6rhzbrhbxYhn1JPUku" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="3">پیدا + کردن + Origin + IP + پشت + CDN</a> + </li> + </ul> + + <div + style="text-align: right;"> + در + این + مطلب،‌ + نویسنده + توضیحاتی + درباره + عملکرد + CDN + و + این‌که + چطور + CDN + ها + سرورهای + ما + رو + پشت + خودشون + قایم + میکنند + میده. + در + عین + حال + توضیح + هم + میده + این + قایم + شدنه + همیشه + کارساز + نیست! + </div> + + <div + style="text-align: right;"> + <span + style="background-color: transparent;"> </span> + </div> + + <ul> + <li + style="text-align: right;"> + <a href="https://r.t10.pktsrv2.com/mk/cl/f/DWRa8Oi9X4yRmc-_YW9YsOhfd4TEhZFU2-pVKrlyxjWlKpQLLJduKodlL-KGlkDBkE7npZVA4XFsFQ2hnqtm-LsVEsBa8WWpddghOjFHrqJu17hZ80xzm9iM8e4vmUAROmO_BV481qfTQ480O5zIhDLvcu-u6v2FH2SCF6BkQ_Pd8JrxzpuutMOgzg" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="4">ویدئوی + فارسی: + آشنایی + با + Aspect + Oriented + Programming</a> + </li> + </ul> + + <div + style="text-align: right;"> + در + این + ویدئو، + سروش + در + ۹۰ + دقیقه + درباره + مفاهیم + Aspect + Oriented + Programming + توضیح + می‌دهد + و با + ذکر + مثال + و + کدنویسی + در + جاوا + کاربرد + این + مفاهیم + را + نشان + می‌دهد<br /> +   + </div> + + <div + style="text-align: right;"> +   + </div> + + <ul> + <li + style="text-align: right;"> + <a href="https://r.t10.pktsrv2.com/mk/cl/f/WsWCRR30IAuLgn3IxZkjnr2jm-CO7M6qLVXTrI-JZO4geLmokD9FUaLMwStz9drsOZTlvA2n3lx_ZOBYtZ98-DRoPro9dJu3dj9rds4rvZdQ6AMSaJrx8-sBZplT-nSb7rVDoc1q5_3GATQ63zzhwdQ" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="5">چجوری + یک پروژه + React + رو + با + Docker + روی + سرور + مستقر + کنیم</a> + </li> + </ul> + + <div + style="text-align: right;"> + تو + این + مقاله + قراره + یه + پروژه + ساده + React + رو + با + استفاده + از + Docker + روی + سرور + مستقر + کنیم + و به + اصطلاح + Dockerize + کنیم. + </div> + + <div + style="text-align: right;"> + <span + style="background-color: transparent;"> </span> + </div> + + <ul> + <li + style="text-align: right;"> + <a href="https://r.t10.pktsrv2.com/mk/cl/f/cPaKI5-fy221DS506S-Pj_A3-BfSM4xmp7Q1nMC-cWSHCQhJuel2Q0yPXvhDnoL89QQm4H391m1lQRCCzqDVim5RZjPLyidt53Gg0_qFWd_dc9e53o20rPKX2sf2pReh7klBdIHUTp9fXnW1bZzg0s9ZxU4TmeZ6ws1GsTeetvZxOFasrxI2Yz6Vf20r9N1bQAOE8gIMwc3w5bxHcmE1Vhcw1mliruNP463BAec8_Gr_-LIK_QVCeaEIK6j_xpxeORQbizKyumH00VJkmS_9ONCmQH1qlMKSFH_txqTC8LUGGPu0YtGVdDtuEjpq" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="6">مروری + بر + ارث‌بری + در + جاوا + با + دو + مثال</a> + </li> + </ul> + + <div + style="text-align: right;"> + ارث + بری + (inheritance) + یک + مفهوم + بنیادی + و + کلیدی + در + برنامه‌نویسی + شی‌گرا + است.در + برنامه‌نویسی + نیز + این + واژه + مفهومی + مشابه + دنیای + واقعی + دارد + و به + معنای + ارث + بردن + خصوصیات + است. + در + این + نوشته + قصد + دارم + نگاهی + دوباره + به + ارث‌بری + در + جاوا + داشته + باشم. + در + ادامه + به + دو + سوال + درخصوص + ارث‌بری + در + جاوا + پاسخ + دهید + و + توانمندی + خود + را + محک + بزنید! + </div> + + <div + style="text-align: right;"> +   + </div> + + <div + style="text-align: right;"> + --- + </div> + + <div + style="text-align: right;"> + در + این + شماره + از + خبرنامه، + دوستان + خوبی + به + نام‌های + <strong>رویا + پاکزاد</strong>، + <strong>امیرحسین + بقایی</strong>، + <strong>حامد + سعیدی</strong>، + <strong>علی + ناصری</strong>، + <strong>مرتضی + اسدی</strong> + در + تهیه + محتوا + کمک + کردند. + شما + هم + می‌توانید + <a href="https://r.t10.pktsrv2.com/mk/cl/f/f8ojMyd5pfRsQVtHiOXEtTebizvOqNq7mdCo-YjlBkDdH9_EEMPy-kUgRasmfCCQrwAtJnCcosve6Bik4wLSDdaXWiWx0cJSvVnaYH8DizdfxgkqVrlO7fpZFf0ago9OQ5umrYFwR8qFiiY4yVwVdqR_t_N3WUyZgHBxdnxvO0GOggWbjgHzdNrFFnnpET7l5XE8WcObVUI3ZfuKT-ut2eI" + style="text-decoration: underline; color: rgb(0, 146, 255);" + sib_link_id="7">با + ایجاد + یک + issue + جدید</a> + در + گیت‌هاب + پروژه، + در + تهیه + محتوای + این + خبرنامه + در + شماره‌های + بعدی + به + ما + کمک + کنید. + </div> + + <div + style="text-align: right;"> +   + </div> + </div> + </td> + </tr> + </tbody> + </table> + + </th> + </tr> + </tbody> + </table> + </td> + </tr> + <tr> + <td height="20" + style="font-size:1px; line-height:20px; mso-hide: all;"> +  </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + <!--[if mso]> + </td> + <![endif]--> + + <!--[if mso]> + </tr> + </table> + <![endif]--> + + </div> + </td> + </tr> + <tr> + + <td align="center" valign="top"> + + <div style="background-color: rgb(249, 250, 252);"> + + <table class="rnb-del-min-width rnb-tmpl-width" width="100%" cellpadding="0" + border="0" cellspacing="0" style="min-width:590px;" name="Layout_6" + id="Layout_6"> + <tbody> + <tr> + <td class="rnb-del-min-width" align="center" valign="top" + bgcolor="#f9fafc" + style="min-width:590px; background-color: #f9fafc; text-align: center;"> + <a href="#" name="Layout_6"></a> + <table width="590" class="rnb-container" cellpadding="0" + border="0" align="center" cellspacing="0" + bgcolor="#f9fafc" + style="padding-right: 20px; padding-left: 20px; background-color: rgb(249, 250, 252);"> + <tbody> + <tr> + <td height="10" + style="font-size:1px; line-height:1px; mso-hide: all;"> +  </td> + </tr> + <tr> + <td> + <div + style="font-size:14px; color:#888888; font-weight:normal; text-align:center; font-family:Vazir,Tahoma,Geneva,sans-serif;"> + <div dir="rtl" + style="text-align:right;"> + <div style="text-align: center;"> + ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/Mq_B1xm81Fq_LHOoWjIh9XR4FkPvmRHA6PFni-UjaMrCKWWbfTZ1MJEJiNRVKLJa_FChoIiDG7LdTZA97JySj7P_ZswIQ2ssST-d6rC3Uwvxr7JrM2BJFokqkVTfsGf2HwUEzq9fKL7IU-o" + style="text-decoration: underline; color: rgb(102, 102, 102);" + sib_link_id="8">پاکت</a> + </div> + + <div style="text-align: center;"> + سرویس پاکت اسپانسر ارسال + ایمیلهای این خبرنامه است.<br /> + با کد تخفیف sota10 میتوانید از + ۱۰ درصد تخفیف در خرید پلنهای + پاکت بهره‌مند شوید</div> + </div> + </div> + </td> + </tr> + <tr> + <td height="10" + style="font-size:1px; line-height:1px; mso-hide: all;"> +  </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + + </div> + </td> + </tr> + </tbody> + </table> + <!--[if gte mso 9]> + </td> + </tr> + </table> + <![endif]--> + </td> + </tr> + </tbody> + </table> + + </body> + + </html> + +</body> + +</html> + + + +شماره خبرنامه 36.html + +urn:uuid:f38d4531-4bba-31d6-79f6-31ddd2221e1b +2021-10-16T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="background-color: #000;"> + <div style="max-width: 680px; margin: 0 auto;color: #fff;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: red;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: red;"> + شمارهٔ ۳٦ - شنبه، ۲۴ مهر ۱۴۰۰ + </h3> + <div> <p style="text-align: center; color: red;font-family: 'Samim', sans-serif;"><small>این شماره از خبرنامه به احترام عزیزانی که اعضای خانواده‌ی خود را بر اثر کرونا از دست داده‌اند، سیاه‌پوش شده‌است</small></p> </div> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://austingil.com/how-to-build-html-forms-right-security/"><b>چطور امنیت HTML رو به شکل صحیح پیاده کنیم؟ </b></a><br/>این مقاله یکی از چندین بخش مربوط به ساخت صحیح فرم‌های HTML است که به مباحث امنیت فرم‌ها با توضیح مفاهیم و مثال می‌پردازد + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://www.thedroidsonroids.com/blog/flutter-vs-react-native-what-to-choose-in-2021"><b>فلاتر یا ری اکت نیتیو !؟</b></a><br/>یک مقایسه ی کامل بین فلاتر و ری اکت نیتیو را به طور کامل بخوانید و بعد از این مقایسه انتخاب بهتری برای شروع یکی از این موارد داشته باشید ... + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://jyelewis.com/blog/2021-09-28-javascript-is-fast/"><b>بهمون دروغ گفتن، جاوااسکریپت اتفاقا خیلی سریعه</b></a><br/>یه قانون معروف هست که میگه: هر اپی رو که بشه با جاوااسکریپت نوشت، بالاخره حتما با جاوااسکریپت نوشته خواهد شد. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: red;" href="https://metebalci.com/blog/hello-ipv6/"><b>سلام IPv6: آموزشی مختصر مناسب کابران IPv4</b></a><br/>در این مقاله، نویسنده نحوه کار مفاهیم شناخته شد‌ه IPv4 را، با محوریت شبکه‌های خانگی و اداری کوچک، در IPv6 توضیح می‌دهد. بنابراین اگر درباره DHCP یا NAT اطلاعاتی دارید و کنجکاوید بدانید نحوه عملکرد آن‌ها در IPv6 چگونه است، این مطلب مناسب شماست. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی،</b> + + + <b>امیر شکری،</b> + + + <b>Rahmanism،</b> + + + <b>slashsbin.</b> + + شما نیز می‌توانید <a style="color: red" href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #fff;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a style="color: red" href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #fff;"> <a style="color: red" href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </div> + </body> +</html> + + +شماره خبرنامه 9.html + +urn:uuid:55771249-677f-863c-cb9e-eec39a674ef5 +2021-03-04T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۹</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:&#39;Samim&#39;,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبر‌نامه مهندسان نرم‌افزار </h1> + <h3 style="font-size:18px;text-align:center;font-family:&#39;Samim&#39;,sans-serif;direction:rtl;color:#263238"> + شماره ۹ - پنجشنبه، ۱۴ اسفند ۹۹ </h3> + <hr /> + <ul style="text-align:right;font-family:&#39;Samim&#39;,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>چطوری با بینایی کامپیوتر، هواپیماها رو در تصویر هوایی پیدا کنیم؟</b> </li> + <p> اگر شما هم از کسانی هستید که از خوندن مطالب طولانی و پیچیده در مورد هوش مصنوعی، یادگیری عمیق و شبکه‌های + عصبی کانولوشنال خسته شدید و واقعا نمی‌دونید این شبکه‌ها چه تفاوتی با شبکه‌های عصبی دیگه دارند، این مطلب + برای شماست. این‌بار می‌خواهیم یاد بگیریم که چطور برنامه‌هایی رو بنویسیم که اشیا رو در تصاویر با استفاده + از یادگیری عمیق تشخیص بده و مدلی طراحی خواهیم کرد که در تصاویر هوایی هواپیماها رو پیدا میکنه. همچنین در + این پست قصد داریم با رویکرد آموزشی یاد بگیریم که شبکه های عصبی کانولوشنال (پیچشی) چطور کار می‌کنند. یکی + از کاربرد‌های این روش که ممکن است روزانه از اون استفاده کنیم جستجوی یک کلمه در اپلیکیشن گوگل فوتوز بر + اساس تصویر است. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/CnltueedXFs4qvyKpjZwovVEjvjTpSEBLStb_o_HfDwgA5FTZ4iTXjW1sG5WnFeJjIQxRUv9tGnPLYi1K4MQ0ENRi3KyxkcHuqHD0JWdmIv5aPWUKA5bXe7O6x_XD9HzQ6DaLNZORYqh6QhpV_bjDgIv" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>گیتهاب چطور کره‌زمین صفحه اول سایتش رو درست کرده؟</b> </li> + <p> اگر صفحه اول گیتهاب رو دیده باشین، چندوقتیه که یک کره‌زمین خوشگل گذاشته که توش فلش‌هایی که شامل آخرین + رویدادهای پروژه‌های روی گیتهابه رو نشون میده. اگر دوست دارین بدونین چطوری اون کره‌زمین و اطلاعاتش رو + درست کردن، مقاله خودشون از بلاگشون رو مطالعه کنید. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/mHjDAxxXetSFFdn2JYJarqB9oHUo9RmxGtp6qSVHHJ3SvkC6PxgCkX6avNfv2asLiAJZ0zIFmapn_58aQp4a0MizXMSCfyA_uzM_c9i3OYruzeLcceC4XI2a2CtdNx1rDsniWpF4_PtqNnN2NVS-1nJgbConpRoMbIqfPyxyVAT6NiCyhsq55yTlYWi7mSOx4UoixuyLnMBiOKsa" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>کانال باحال یوتیوبی به نام Computerphile </b> </li> + <p> تقریبا مدت زیادیه مشترک این کانال شدم و اکثر ویدیو‌هاش برام جالب و مفید بوده. اگر توی حوزه کامپیوتر کار + میکنید، توی این کانال کلی ویدیو‌های کوتاه و جالب درباره موضوعات مختلف این حوزه میتونید پیدا کنید که هم + خیلی خوب توضیح داده شدن و هم خیلی مفید و مختصرن <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/kS6u3iydwyBgdpakpzgi2gJzgzYK1q6ZPxN_S5JdBijuDC-6icrDuPXTyFovx-8UEzSSoicTdqUcwVMxZWkOQXyQeKS_YcQnEvisefhS-40H0no0C5NikykU8QJydJLp02Ngrhl6yA_AI8TzSybKxweUko3d7f9Y07f-i4Rbix_eua25HnzZO-KWBehbPyqYPxgQmw" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>How I cut GTA Online loading times by 70%</b> </li> + <p> در این مقاله نویسنده ابتدا مشکل اجرای نسخه آنلاین بازی جی تی ای را مطرح میکند، سپس با استفاده از + ابزارهای مختلف سعی در رمزگشایی بازی و پیدا کردن مشکل دارد. در نهایت، با افزودن چند تابع، بهبودی نزدیک به + ۷۰ درصد در زمان اجرای نسخه آنلاین به دست می آید. نکته حائز اهمیت این است که نویسنده به سورس کد بازی + دسترسی نداشته و بهبود روی نسخه تجاری بازی انجام شده است. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/m6909XzVut_1RLjR0xUfmTe6eGUfKKegRpIsFKTBHfiJceVCN_Spl1YyOgcnhioE6_rVe2nCUKKoeAzeO5IBjM_-h2EiO-Rfs9XywktJhhwWewwLySgGPgwSyEB7W3UoqqGpCDfO97ZJonqjv0L89o-zVZXA4HNtWYY4XcfXSDI7cnxPhrDwjMoIPmzMCYdN1KC20jG_4CuXRONg3Am1hpziFiHKk16j" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>آموزش کش ریکوئست ها در لاراول</b> </li> + <p> توی لاراول امکانی وجود داره که شما با اضافه کردن یک میدلور میتونید یک تگ به تمام ریکوئست های گت سایتتون + اضافه کنید و به مرورگر بفهمونید کی ریکوئست از کش خودش بخونه و کی کانتنت از سرور دریافت کنه <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/9V12J-sdsBbbt2W6_14mXZEkq20PQX2sXK81dZ-aP1yjyhQsOxEu0WQZvAmXGsbMCkfyDpIDMwZPwYzn3ZXTVNBgTFkbz9hL7QF6bMdWnhV6S0FD0a2eDzqueyCC5nwZdIY-GGK49lJPqW5tTNzDIGYTpzF0wFQKVsdggfUXfAJG41eN6KUtC43P7DKvgB9IGCwcKfqcQG9F2aP9V_X1V2UYYAn8WsSCRA" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other + Companies</b> </li> + <p> در این مقاله، یک محقق امنیتی گزارش میدهد چطور با بارگذاری کدهای مخرب روی سرورهای پکیج منیجر توانسته است + به کمپانی های بزرگ و کوچک بسیار زیادی نفوذ کند. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/zMcW1eQuyJh5Oy0NHXo4kEfJ9RsuYVIxL64mD7ETscaO4C_y7VBzTtPcqJ7n82F--gUXxTOSVvkdwPcZ1K8Ai4aKvjBnIaCzxBgCDtes-7x0XjoGWOLp7p5ZrAusdjD-i0NbjBCNyLRge9TlGGAgMDbo9lWgLQJ9QvJ8_nojfStdA-ST1TrA8UejNfv4o3oRuLmP2iSFVdeZ6Yn0ey0dLtvl" + style="font-size:14px" sib_link_id="5">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:&#39;Samim&#39;,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>امیرحسین بقایی،</b> <b>حسن شهبازی،</b> <b>AriaieBOY</b> در تهیه محتوا کمک + کردند. (شما هم قصد مشارکت داری؟ از <a + href="https://r.t10.pktsrv2.com/mk/cl/f/n044vUMl6zbt0NgNnS6UHV6-vZQ1nuTg3-9awuTnWgMo_93K6URXraaajg-_uw4YpxAV8NvhrAYrf1XguHEzrz0Ql8N1g5rQu-0ewNe1booaSzEQqZ5HavGT-pOIWr9vlY0h3BkqZ6Yi1aGqhTFuMvWIvld-MAdmRt9i0NYnqiPvaV0dNPSTPoi5P9nXyA" + sib_link_id="6">اینجا</a> شروع کن) </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:&#39;Samim&#39;;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=8hl-RAGlIOFhRtTxSbTcpwoIGUAADjtt5_hlqpOHGZYnKpJEGA5F_9g_De9HLuJ3w2CG3M7XMDPQwwnG3pbF2fLdNI2xerViOdGXFrFUl3yvJ2OUCxq4bTM3mRerKf8m3jnXDgs8G_g5QXt2NPqsBIiCPqOTJBVK6jvCbhIpHJOn-Ejb9heXPZzz7dyOF0lwEdEGTiCVuDRzkkeQU-3-tlxt3A" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/t_cCCCzDloAFGgyJtNhxSg250DFLP9SGLbv2GM_woIyO63rEMnBv9YBL_7eravipo_JjUtTwa1S0dIpl5VuVM0wiUWq3jGykZBUo3Th1ZksA6o81cDhJ-feQaHHT3YsZ_seRantCK6KAz8Xgb_M9" + sib_link_id="7">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:&#39;Samim&#39;;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/eYh0QMMZr2AKI2yInHgcNizE9ULnezvYtuI-rbwryOZFuupRkGdBaUbZkwCjt580P7FYlxGwoddPz0aj7Dc9unPey314sKa4aK8vdVti4uj6D39CV6XBGuq9oYJ7l9wv5pUnqW1RBrSyI4bgqs-G" + sib_link_id="8">سرویس پاکت</a> اسپانسر ارسال ایمیلهای این خبرنامه است. با کد تخفیف sota10 میتوانید + از ۱۰ درصد تخفیف در خرید پلنهای پاکت بهرهمند شوید </p> + </span> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 64.html + +urn:uuid:86b55484-74fd-a049-b303-c852969f80e4 +2022-09-01T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ٦۴ - پنجشنبه، ۱۰ شهریور ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/"><b>پراسس‌های زامبی و داکر</b></a><br/>احتمالا گاهی پیش اومده که توی ایمیج‌های داکری که درست میکنید پراسس‌های زامبی مشاهده کنید. یعنی پراسسی که کارش رو کرده ولی مادر خبر نداره که فرزند کارش رو انجام داده و باید از لیست پراسس‌ها حذف بشه. دونستن این که چطوری جلوی این اتفاق رو بگیریم و اصلا چرا باید بگیریم یا نگیریم،‌میتونه به درک بهتر ما از عملکرد پراسس‌ها در کانتینر‌ها یا سیستم‌عامل‌ها کمک کنه. این مطلب به صورت اختصاصی به داکر مرتبطه و میتونه شما رو با این مساله بهتر و عمیقتر آشنا کنه + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model/"><b>مدل شبکه کوبرنتیز</b></a><br/>تقریبا پیچیده‌ترین بخش کوبرنتیز (برای من البته) بخش شبکه و ارتباط هستش. این که همه چیز چطوری همدیگرو اینقدر راحت میبینن و با هم صحبت میکنن با این همه تغییرات و آپدیت‌های مداوم روی سرویس‌ها. مطالعه و آشنایی اولیه با شبکه در کوبرنتیز میتونه درک مشکلات و مسائل مرتبط رو راحت‌تر و شیرین‌تر کنه. این مطلب به صورت کلی به این موضوعات پرداخته + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.blog/2022-08-25-introducing-trilogy-a-new-database-adapter-for-ruby-on-rails/"><b>Trilogy اپن سورس شد</b></a><br/>گیت‌هاب Trilogy که یک آداپتور دیتابیس برای اتصال Ruby on Rails به سرورهای سازگار با MySQL است را اپن سورس کرده است و در این نوشته در وبلاگ گیت‌هاب درباره آن توضیح می‌دهد + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.samueltaylor.org/articles/how-to-learn-a-codebase.html"><b>چطور به یک تیم بپیوندیم و کدبیس تیم را یاد بگیریم؟</b></a><br/>در این مقاله نسبتاً طولانی، در بخش میانی نویسنده پروسه‌ای برای یادگیری کدبیسی که تا به حال با آن آشنا نبودیم در زمان پیوستن به یک تیم جدید را بررسی و توصیه‌هایی می‌کند. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://zserge.com/posts/one-time-passwords/"><b>کلمات عبور یکبار مصرف چطور کار می‌کنند؟</b></a><br/>این نوشته به بررسی شیوه عملکرد رمزهای عبور یکبار مصرف می‌پردازد و در انتها با ۱۶ خط کد به زبان Go تابعی برای ارائه رمز یکبار مصرف بر اساس کلید مخفی پیاده‌سازی می‌کند + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 63.html + +urn:uuid:bc64e411-1107-a925-22dc-e6aa5ea0391e +2022-08-25T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ٦۳ - پنجشنبه، ۰۳ شهریور ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.sheshbabu.com/posts/how-to-prevent-code-reviews-from-slowing-down-your-team/"><b>چطور از کند شدن تیم به خاطر بازبینی کد جلوگیری کنیم؟</b></a><br/>این مطلب در واقع دلایلی که پروسه بازبینی کد زمان می‌برد را بررسی کرده به عنوان مثال نداشتن بررسی‌های اتوماتیک و بر همین اساس می‌توان با رفع این دلایل، از کند شدن خروجی تیم به خاطر بازبینی کد جلوگیری کرد + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://beza1e1.tuxen.de/lore/index.html"><b>فولکلور نرم‌افزار</b></a><br/>مجموعه داستان‌هایی از باگ‌هایی که فراتر از باورهای معمول هستند + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://developers.redhat.com/blog/2019/07/08/10-tips-for-reviewing-code-you-dont-like"><b>۱۰ نکته برای بازبینی کدی که دوستش ندارید</b></a><br/>در این مطلب از وبلاگ ردهت درباره نکات بازبینی کد یا Code Review صحبت شده است تا محترمانه و با کمترین چالش، درباره کدی که به هر دلیل بازبینی آن را دوست نداریم بتوانیم Code Review انجام بدهیم + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/@meyttavasoli/redis-is-fast-but-how-can-it-be-faster-and-use-less-memory-8f350725a0de"><b>امکانات ردیس برای بهبود پرفورمنس</b></a><br/>یکی از دیتابیس هایی که معمولا برای کش کردن داده ها استفاده میشه ردیس هست. طبیعتا کش کردن داده برای سریع تر کردن پاسخ دهی و یا کم کردن بار از روی دیتابیس های هسته انجام میشه و معمولا ردیس در اسکیل های بزرگ هم پاسخگو است. اما مسئله ای که وجود داره اینه که گاها به ست کردن چند کلید ساده اکتفا میکنیم و خیلی سمت بهبود پرفورمنس در خود کش کردن داده نمیریم. بهبودهایی که گاها لازم میشن. در این نوشته درباره بعضی امکانات ردیس برای بهبود پرفورمنس ردیس بخوانید + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی،</b> + + + <b>امیر شکری.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 49.html + +urn:uuid:e81db834-f25e-f9a6-46bf-17a9634f0e4c +2022-02-24T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۴۹ - پنجشنبه، ۰۵ اسفند ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="http://crunchtools.com/comparison-linux-container-images/"><b>مقایسه ایمیج‌های پایه در داکر</b></a><br/>در این مطلب نویسنده تلاش کرده ایمیج‌های پایه داکر رو با هم مقایسه کنه و از زوایای مختلف به معایب و مزایای هر کدوم بپردازه. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://armansolutions.com/blog/2022/01/20/%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-clean-architecture-%D8%AF%D8%B1-%D8%B5%D8%A8%D8%A7%D9%88%DB%8C%DA%98%D9%86"><b>تجربه پیاده سازی Clean Architecture در صباویژن</b></a><br/>اگر مهندس نرم‌افزار هستید، ممکن است خیلی در مورد معماری‌ها مطالعه کرده باشید. می‌توان به معماری Layered به عنوان یکی از محبوب‌ترین معماری‌ها اشاره کرد. معماری‌های زیادی با همین ایده معرّفی شده‌اند. معماری Clean از جمله‌ی همین‌ معماری‌ها است. +ما در صباویژن به تازگی معماری کلین را برای سرویس بکند پیاده‌سازی کرده‌ایم. در این نوشته به صورت مختصر از تجربه‌ها، چرایی و چالش‌هایی که برایمان وجود داشته نوشته‌ام. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://developer.oracle.com/developer-live/java-innovations-mar-2022/"><b>کنفرانس اوراکل با موضوع جاوا 18 </b></a><br/>شرکت اوراکل وبیناری با موضوع جاوا 18 و قابلیتهای جدید آن در تاریخ 24 مارس (4 فروردین) برگزار می‌کند. ثبت نام در این وبینار مجانی است ولی اوراکل به خاطر تحریمهای ایران، امکان وارد کردن اطلاعات ایرانی ندارد. از طرفی میشه اطلاعات کشورهای همسایه رو بدون مشکل موقع ثبت نام وارد کرد. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://www.morling.dev/blog/whats-in-a-good-error-message/"><b>پیغام خطای خوب چی داره؟</b></a><br/>این نوشته که در ردیت و هکرنیوز هم در موردش بحث شده درباره اینه که اجزای یک پیغام خطای خوب چه چیزهایی است و همینطور از Best Practiceها در این حوزه برامون گفته + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/itnext/frontend-interview-cheatsheet-that-helped-me-to-get-offer-on-amazon-and-linkedin-cba9584e33c7"><b>با این دانش‌ها می‌توانید از آمازون پیشنهاد شغلی فرانت بگیرید</b></a><br/>اگر در فرآیند مصاحبه به عنوان فرانت اند دولوپر هستید کافیه این cheatsheet رو مطالعه کنید و دانشتون رو برای کار با شرکت های بزرگتر تطبیق بدین + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>سینا آریا،</b> + + + <b>حامد سعیدی،</b> + + + <b>امیر شکری.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 4.html + +urn:uuid:fa4501ea-6994-d075-ba0c-780b339643ad +2021-01-28T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۴</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبر‌نامه مهندسان نرم‌افزار </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۴ - پنجشنبه، ۰۹ بهمن ۹۹ </h3> <span> </span> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>اصولی کاربردی برای ساختن و طراحی کردن برنامه‌های مبتنی بر CLI</b> </li> + <p> در این وبسایت شما اصول پایه طراحی نرم‌افزارهای CLI را بدون در نظر گرفتن زبان یا تکنولوژی خاصی یاد + میگیرید و همچنین تجربیات خوبی از نویسندگان مطلب درباره best practice های این حوزه، یعنی طراحی مبتنی بر + CLI، می‌آموزید. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/7BgYlDb5MS1duG-nDB6ol8LBI3rePVkd7LZyerd0AxUSDV4_5eU91qFX20sIi8GMFOoqROMS52iIzK8IYH0GwRNv-Ee2hBL_OaA_rL9ZK9U4ho0HxGlSKYqOJAWBnOWcCsgDQrTnG_R7pqQXH5M" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>Abusing For Loops In C# For Job Security</b> </li> + <p> این مطلب آناتومی حلقه for را بررسی میکنه و نشون میده چه کارهایی میشه باهاش انجام داد، البته نوشتن همچین + کدی پیشنهاد نمیشه چون در نهایت منجر به افزایش پیچیدگی کدهاتون میشه ولی دونستن اینکه چه کارهایی میشه + باهاش انجام داد شاید براتون جالب باشه. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/3gtnAd96agq4Ic8prjYCdpdPp9-7haboi-jxPdNzUIhH8Srit1NvEtc3cWaVKvvylQ3IM8cw0T0uOjXk9lqy2ZZMJwkgQtMyqHTRXKbOjzbYdhvt1AA_MvajsjRInqlI9edeLXxzyMY6SIXyzKfY57FyQTpvaTLTQfgZF0DVMdWyikkeeBW2lWfzzscdcipArmOuVguw_DXFrbCrqkOkmGuGyobIR0UF5usbRXQ" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>The joy of deleting code</b> </li> + <p> حذف کد یکی از مهارت‌های خوبیه که هر برنامه‌نویسی بهتره داشته باشه، بیشتر اوقات برنامه‌نویس‌ها خیلی به + کدشون وابسته میشن و دل کندن از کدی که نوشتن براشون به شدت سخت میشه. در واقع بهتره این اصل رو در نظر + بگیرم که کد به عنوان یک بدهی در نظر گرفته میشه، نوشتن کد زیاد به معنای کیفیت بهتر محصول نیست چون هزینه + تست و نگهداری کد به مرور زمان بیشتر و بیشتر میشه، کد زمانی به سرمایه تبدیل میشه که در راستای افزودن + business value و حل مشکلات دنیای واقعی باشه. این مطلب در مورد لذت (اهمیت) حذف کد نکاتی خوبی رو اشاره + میکنه که خوندنش خالی از لطف نیست. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/sKrLDbs1dTXf4GHJvvMkTEzVk1xb4WnFu6YkpoXx_QUg0e_3Xkm5Q3EHsPjKi9UKhB4K9bBYhcv8REqro5P9MfJNK3sjq5T0h0HQbMuHT6CYHgWfpoP8R2k5rkWWHVUnYzGf64rmSzlHvBmtwBv7K_7JSLysITPKgIE8rBNzGlnYzZfjlIh__3HZTBdJVc4e" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>صفر تا صد امریه سربازی: همه چیز درباره امریه دانش بنیان</b> </li> + <p> این ویدیو درباره بزرگترین دغدغه پسرهاست،‌یعنی سربازی!! اگر پسر هستین و از سربازی هم معاف نیستین، احتمالن + همیشه به این فکرمیکنین که دو سال از بهترین روز های عمرتون رو باید توی پادگان بگذرونین و دو سال از + زندگیتون عقب میفتین. این ویدیو گفته میشه که چجوری میتونین سربازی رو بپیچونین و پادگان نرین. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/Hhd9dK1Z-LQ1j7s7ghs2k4sK-Yp9StIISSSVw4wd8mp35IBt_-bV14op8iodjo-VAPSwyiJjkQ3fHi14djkpz6PMxSZX5R0GsavPyW0s88ofFDzoQuClpvB4P2f_FCWwefLyZ1NSEwaRjPWDAwKiRCGhrYX9UY7Rhw" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>چند تا کار لازم و ضروری که بعد از خرید VPS باید انجام بدیم</b> </li> + <p> وقتی یه سرور می‌خریم از لحاظ امنیتی توی پایین‌ترین حالت خودش قرار داره. قراره توی این مقاله باهم سرورمون + رو تا حد قابل قبولی امن کنیم <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/FQxZ2q5LhKoiaMBPaXKfdAxzDAg7oyl8Xco7Pv6_cTSpsTFngiTWPGBV1UimPutd71N8n9GO-KaTzzCUosKDYnVDv8ZcRDiKbfjd076nqlyWgYcX5Ofr8WB-0MLIEifn_pROsumlkxUVb-IgQE_BH9RL" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>پیاده سازی صفحه بندی در APIها</b> </li> + <p> بازگرداندن همه‌ی نتایج برای یک Query به ویژه وقتی که شامل تعداد زیادی رکورد باشد ممکن است در طراحی API + چالش برانگیز باشد، چرا که باعث ایجاد باری بر روی سرور، کلاینت و شبکه می‌شود که در اغلب اوقات لزومی + ندارد. برای رفع این مشکل اغلب از تکنیک صفحه‌بندی (Pagination) نتایج استفاده میکنیم. اما آیا فقط یک روش + برای صفحه‌بندی وجود دارد؟ در این مقاله کوتاه نویسنده روشی برای صفحه بندی ارائه می‌دهد که در مواردی از + قبیل infinite scrolling می‌تواند عملکرد بهتری نسبت به روش مرسوم نشان دهد. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/sAELyh2jK9FwTzYw-ulmAnDjZ7jTdofmf-Zyg201cQIHhtOvtxlvSFo7ro_T--7Kp1WRXI7hBXg7roZVTho-qhM_DykodQmfTSPqORJpzS3X6tX_vDcqIDAJ5NzBENpGd6gQ-K4Gtx9hNh2alNo2W6Z-YbTSBHGiSkwWXNIyqy5ghA4OEQhtD82hQhtpzt_edw2mXuDPtO0" + style="font-size:14px" sib_link_id="5">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>امیرحسین بقایی،</b> <b>سیروان عفیفی،</b> <b>اشکان رحمانی،</b> <b>علی + ناصری،</b> <b>وحید نادری</b> در تهیه محتوا کمک کردند. </p> + <hr /> <span> <p + style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=iyg04L_HifLpvoWbyY1dlEoBptvX5wV4ZHvdiCha8t30fY_W6pKpWpOOO__ZcVTpQdZyjApP_BJxx0FFivMBA-Aqrsx6wgqycp4js0COflJQt157zLgqyEbL-_dm9-Xg_vftVhtl_Dnr_QlJZhy-XgO5dbAQVAtfR9efCYrDv8Jwc5oJsEDCct9m14qzrvFaYIR3yVsmvTDsEhU8B8jFhbzfvA" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/RIftpzwAjCaeWWck1oeVskP1k9PS5myRzgHGm_f0Cf5G6V5qJ9IcGmrnaaUbScAhV9MSTyxBCc_m8wnVBdPJvMD1V6-ddXLy8siD6cgdFYyLdH3JT91gy7nBdYi5lMe0hKgr4wfDqdBP4xUyu64x" + sib_link_id="6">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/VZJz3NDTNZMgPQ9MqTXXppyV7Zq41bCROhkgCxct1u-HHuPwGg2eB3MuKHSJe1zV8jWvsicMUNLusmCRg7vG9yPBD-_Tg5pYvGkodvQNvtU0_uoBhkpkBqrzabTNiFnxzlQ0gFmUGK0NdNCh-EFO" + sib_link_id="7">سرویس پاکت</a> اسپانسر ارسال ایمیلهای این خبرنامه است. با کد تخفیف sota10 میتوانید + از ۱۰ درصد تخفیف در خرید پلنهای پاکت بهرهمند شوید</p> + </span> + <br /> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 58.html + +urn:uuid:86e0bd47-52c0-8883-b77a-64db83d764f8 +2022-07-21T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۵۸ - پنجشنبه، ۳۰ تیر ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://monzo.com/blog/2022/05/16/how-we-deploy-to-production-over-100-times-a-day"><b>deploy to production بیش از ۱۰۰ بار در روز</b></a><br/>در این نوشته، اینکه چطور تیم با تغییرات کوچک قابل برگرداندن بیش از ۱۰۰ بار در روز روی production کار deploy را انجام می‌دهند صحبت و تجربیات در این زمینه بیان شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://henrikwarne.com/2022/06/19/effective-software-testing-a-developers-guide"><b>تست نرم‌افزار موثر</b></a><br/>نویسنده اینجا درباره کتاب Effective Software Testing A developer&#039;s guide صحبت کرده و بخش‌ها و ایده‌های مهم و موثر کتاب را بیان کرده است + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://t.me/dev_cheatsheet"><b>دفترچه راهنمای سریع کوبرنتیز به زبان فارسی</b></a><br/>این دفترچه که درباره کوبرنتیزه و تقریبا مباحث و اجزای مهمش رو مرور کرده، خیلی اتفاقی توی یک گروه مرتبط با DevOps دیدم و به نظرم خیلی جالب و مختصر و مفید بود. نویسنده‌اش یک کانال کوچیک تلگرامی درست کرده و محتواش رو اونجا قرار داده و میتونید این دفترچه رو از کانال تلگرامیشون دانلود کنید. آپدیتهای فایل PDF هم در همین کانال گفتند قرار میگیره. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی،</b> + + + <b>امیرحسین بقایی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 62.html + +urn:uuid:14187774-0fb8-fb64-6e32-9a151ae28931 +2022-08-18T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ٦۲ - پنجشنبه، ۲۷ مرداد ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://architecturenotes.co/redis/"><b>درباره ردیس</b></a><br/>این مطلب یک نگاه کامل و توضیحات مصور درباره Redis و انواع توپولوژی‌ها و ذخیره اطلاعات در آن دارد. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/@edgecast/5-security-questions-every-developer-must-ask-99fbf55b8190"><b>پنج سوال امنیتی مهم که برنامه نویس ها باید بدانند</b></a><br/>یکی از بازیگرهایی که امنیت نرم افزارهای تحت وب با آن هاست برنامه نویس ها هستند. اگر برنامه نویس ها اطلاعات امنیتی خوبی داشته باشند نیازهای امنیتی برنامه های تحت وب را افزایش می دهند. در این نوشته ۵ سوال اصلی که در هنگام توسعه برنامه نویس ها باید آن را بدانند آورده شده است + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://blog.blether.chat/2022/08/03/gdpr-for-developers-by-example/"><b>GDPR برای برنامه‌نویسان با ذکر مثال</b></a><br/>گرچه ما در کشور قوانین محافظتی از حریم شخصی نداریم اما در این مقاله که درباره پیاده‌سازی GDPR صحبت شده، با ذکر سناریوهای مختلف درباره میزان تعهد شرکت‌ها و تیم فنی و نگاه تحلیلی به مساله می‌توان ایده‌هایی برای استفاده در سرویس‌های ایرانی برداشت کرد. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی،</b> + + + <b>امیر شکری.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 5.html + +urn:uuid:2994ff90-e3af-b7a6-6221-6bcd93a91ca7 +2021-02-04T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۵</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبر‌نامه مهندسان نرم‌افزار </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۵ - پنجشنبه، ۱٦ بهمن ۹۹ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>نحوه استفاده از ریپوزیتوری پترن در PHP</b> </li> + <p> اگر قصد استفاده از ریپوزیتوری پترن رو داخل PHP دارید، این مقاله دید خوبی به چرایی‌ها و چگونگی‌ها میده. + <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/zKHoglc7ZhvP1gSULvEMN7Y-K8AmWKe0gNKDZY8BuhF4T4kLUsMrGm56sPkJdso98cxAVKaPGxb-ElTLAhaMV97aBkbXsJgnn4e1t5_Rs4yGmvdfsrIRWVgYqJ3uy5Pf-kDnsxbG7MMmA7Znc01KoPnTL3ntjNLrcLLLK2kaOeqb7rTpABzXz0v68O6V0-Ug9-br" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>تفاوت بین دیتاآنالیست و دیتاساینتیست</b> </li> + <p> شاید اولش حس کنید دیتاآنالیست و دیتاساینتیست تفاوت زیادی ندارن چون در نهایت قراره با داده ها کار کنن ولی + در واقع تفاوت های زیادی هم از نظر دانش مورد نیاز دارن و هم جایگاه های شغلی متفاوتی دارن یکم بیشتر بخونید + اطلاعات جالبی رو کشف می کنید <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/UFIg4cQaEqLT_OoaKPRJJkmiUiLXcCmZneXRavMJKkDyUib0BLIIMUsGXa4w5-YZ_qjq-QlktKs6HQW3kXyOxm4kCMQDByAMOoYCo9HtsQCMPMy5laGVs4q5y0wB3Upoyjm5LGHJT_CwRl0RBwyirhABs7X5cWeu3TJkiCBPtX6B85REgWmO6zDC24YluKAYP_an4SjLkFYQzW7ZmaM6DGJHC_2Q-62WlH_S_OcO8fFpMeWVsdlDijN_wjTS0knx" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>با یادگیری عمیق، کم‌تر پول خرج کن!</b> </li> + <p> تیم فنی مسیریاب بلد توی این پست فنی شون درباره این گفتن که چطور مسئله کیفیت تصاویر ماهواره‌ای رو حل + کردن. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/dWoYGx4wgNWZOe-b4HvsgLhp8UsJxTbEdccTzyiRtOolzgsKJNjhKNcQXuR4nTm7cT7oNg8Kca3JXXAdkYICW_J7TPu79uybnfe3NHc4IGr0ABwCgf7RNLAmbaNwF6FhNVQS241QFSa40E0ihivNHXqSp9C5Tgkvxd2DY4t9A0FLol01uP8B5BXt-R9jU4oAMVCQcb8vPY5VSpDZ5DmXt0Y2y2I3vRcqGDPyakh0ZdJzJlaV3pG5Tymh8UFomK1fdFZ7pb2TI08KoZk9YjZJJ1DdTIEvTzi4E-yhyui3b_xGFMtIcBjzSvRq6EVtvD1Jf02AXfajjzHLN7GgKXO7DyH9SE7ZYFyTViXCkTfCfXesKDhidWRsGXjZHLGnJsAHgOFEDk5hHiJJZAxgsENlO1SY9l7rxmrp8GAmgIkqFOKG2AxHybVo2_P5FMJHm3_lujOBGg-xO1qwdzBAZY3anTGK6piHF-dAkTCcLKWeYdZAb8Aqi2Vh8ROwYyC9u1wQjA" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>آیا لینوکس یک مجرم در زمینه RAMخواری میباشد؟</b> </li> + <p> به نظرتون لینوکس‌ داره به طرز غیرمعقولی از RAM استفاده میکنه؟ توی این مطلب بیشتر با عملکرد لینوکس درباره + RAMخواری آشنا میشوید. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/ZaRwIb0fXANPpZS1EsOaB-WGI8nrXtLqKhD6beZkzT-DjG5aXrsqYiWzUf41-Xv-YiuaCtizrJTiRLbQY-74m8RDxuMpuzon08n9v5zzTivw1OO5k4dk5qPnOV1074bwNQmwh6OJI8BYlwiooSLK7Ao0eIHUac94AWMR" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>نحوه قرارداد نوشتن برای پروژه های برنامه نویسی</b> </li> + <p> در این پست ویرگول راجع به قرارداد توی پروژه های برنامه نویسی صحبت میشه، چیزی که بیشتر بچه های فریلنسر + این حوزه باهاش سر و کار دارن و نکات مهمی که در تنظیم یک پروژه باید رعایت بشه رو بررسی کرده <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/s_FJkGlYBVeHVZ4cCx-cOy_K6Q7MUZjPfo0hPzHXC08u5JcHbesnwqTQ2NvCrthhSET3p4wAACbXfqmWoSWM5srBY87LHza9cmAYnWeUOrRk88LTZoXAOehpn3RVif-hY4y5YsZpgQAVDcI0Q-15LSLW" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b> چجوری روی یک سرور، چند سرویس مختلف رو با استفاده از Nginx و Docker، مستقر + کنیم؟</b> </li> + <p> اگه براتون سوال شده چجوری چند تا دامین به یک سرور وصل میشه و مدیریتشون با Docker چجوری انجام میشه، تو + این مقاله قراره بهش بپردازیم <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/bcWQT1JHoU2ixDfsBxk9qNBAsdJbv51Qt42Y80lcSdEhR0PNVl8CXuwexVhxVyIviGnnoCRM1LbZwBGQzlEdrP1I3vpFXSSF5i_nHfXxhmTIUNZit3aG7tgGq2jvFGGM7RjkzRGqy74cQDAxWrzLLwVX" + style="font-size:14px" sib_link_id="5">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>امیرحسین بقایی،</b> <b>امیر شکری،</b> <b>امیر ابوئی،</b> <b>علی ناصری</b> + در تهیه محتوا کمک کردند. </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=GN7Trb-qyO2pXfGmyOmuzsMrmIjL1_Kf64s_Vnv_JcnxcqYV202dUTXWxg1QEsQ1wRPyoyoXs-PFvDXTtHz5k8zyHmJXaWmJpM4pD7SVdZzNMFUBIhY21zlb1sU8HqvBSPtxaes1FMqlQ3v6pPdaOCUbuVBkRIeCvqGmNn7pOReEMopGUTC3OaTZsPteNcCTj6z2RWQ_3BqjfUQMscKEnj_x3Q" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/TliDQi7yIvOBnQYto8ZpYs7cRok4HM7V2Hv8wX85yYsTxPWc48gVMHHiDyBpCGfs5SSq1IaVuxoqokoP_xD_6qeozKD93bTN_-1emX2duOZeY8xcjuJqEM6TemW5XoE370vzkdb-3F7Y_zZTP0IC" + sib_link_id="6">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/2u8qOEGV-qrVQQH8eWbFdFAvusKuqVsTTBEBEzHWEgbgZXXwlaMgHsJ_mx63AbSaphcDrVD5u0HDOg2jt1wm5NvQlQJufxX40USN0rIjXueQNjS6XAyMWmNwFWSuI31BOnPMFph0sEV5_2u87tfv" + sib_link_id="7">سرویس پاکت</a> اسپانسر ارسال ایمیلهای این خبرنامه است. با کد تخفیف sota10 میتوانید + از ۱۰ درصد تخفیف در خرید پلنهای پاکت بهرهمند شوید </p> + <br /> + </span> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 38.html + +urn:uuid:6184c524-4920-0a84-354f-12c4e9d0c7fd +2021-11-06T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۳۸ - شنبه، ۱۵ آبان ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://devopsprodigy.com/blog/why-businesses-want-devops-and-what-devops-engineers-need-to-know-to-communicate-with-them-effectively/"><b>دوآپس چیست و چه نقشی در تیم دارد؟</b></a><br/>همه جا درباره DevOps صحبت میکنن ولی معمولا تعریف دقیقی ازش پیدا نمیشه، یک عده میگن دوآپس یک مجموعه ابزاره و یک عده دیگه میگن مجموعه‌ای از مفاهیم برای پیش‌برد تیم. شاید هم همه این‌ها کنار هم بشه دوآپس. توی این مطلب کمی بیشتر درباره تاریخچه روند توسعه و استقرار نرم‌افزار صحبت شده و این که دوآپس در حال حاضر کجای این چرخه قرار داره. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/I7ZTG"><b>شبکه در docker</b></a><br/>با انواع شبکه در داکر و نحوه کار اون‌ها آشنا میشیم. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://garywoodfine.com/c-records-the-good-bad-ugly"><b>C# Records - خوب، بد، زشت</b></a><br/>این نوشته ضمن معرفی record در زبان C# در مورد نحوه استفاده و موارد استفاده این قابلیت توضیح می‌دهد. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://vrgl.ir/DMjJ2"><b> (مموری) چگونه پرفرمنس اپلیکیشن اندرویدی را افزایش دهیم؟</b></a><br/>در این مقاله به بررسی بهبود پرفرمنس اپلیکیشن های اندروید به کمک بهینه سازی مموری می پردازیم. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://blog.bitsrc.io/google-chrome-experimental-features-for-developers-a9a7cc9d1b30"><b>ویژگی‌های پنهان گوگل کروم که هر توسعه‌دهنده‌ای باید بداند</b></a><br/>در این نوشته چند ویژگی خوب و نسبتاً مخفی گوگل کروم که به توسعه‌دهنده‌ها کمک می‌کند تا راحت‌تر به توسعه وب بپردازند معرفی شده. یکی از جالب‌ترین آن‌ها برای من قابلیت Dual Screen Mode بود که برای شبیه‌سازی دستگاه‌های تاشو از آن استفاده می‌شود + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://danluu.com/look-stupid/"><b>Willingness to look stupid</b></a><br/>آدمایی که عامدانه سوال‌های احمقانه می‌پرسن در نهایت و پس از گذشت زمان، مسایل رو عمیق‌تر می‌فهمن. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>Vahid Fathi،</b> + + + <b>حامد سعیدی،</b> + + + <b>شکیب حبیبی،</b> + + + <b>Rahmanism.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <hr /> + <div> <p style="font-size: 16px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"><img src='https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png' alt='Pakat Logo'><br/> ارسال شده توسط <a href="https://pakat.net/">پاکت</a></p><p style="font-size: 14px; text-align: center; font-family: 'Samim'; direction: rtl; color: #263238;"> <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید</p> </div> + <br /> + </body> +</html> + + + +شماره خبرنامه 59.html + +urn:uuid:76bb17fe-1eaf-9e78-a41d-27f6a2abab3a +2022-07-28T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۵۹ - پنجشنبه، ۰٦ مرداد ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://cloud.google.com/architecture/using-container-images"><b>استفاده از Image Digest به جای Image tag در دنیای کانتینرها</b></a><br/>اگر شما مسئول راه‌اندازی یک پایپلاین CI/CD سرویس نرم‌افزاری باشید که از کانتینر‌ها و داکر استفاده میکنه احتمالا توی مرحله CD یا همون continuous delivery ممکنه این سوال براتون ایجاد شده باشه که از چه ساختاری برای دپلوی ایمیج‌ها استفاده کنید. میتونید از Tag ها استفاده کنید یا هم میتونید از Digest هر ایمیج اما کدوم به کار میاد؟ این مطلب ساده در سایت گوگل کلود شاید به شما دید بهتری بده. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://slack.engineering/remote-development-at-slack/"><b>توسعه از راه دور در اسلک</b></a><br/>اینجا منظور از توسعه از راه دور، توسعه‌دادن کد روی بستر آمازون و مشاهده تغییرات داده شده در آن instance از اسلک است. توسعه‌دهندگان اسلک هم زمانی توسعه روی سیستم محلی خودشان داشتند. گرچه به دلیل تحریم‌ها استفاده از چنین روشی برای ما فراهم نیست اما خواندن تجربیات تیم اسلک در وبلاگ مهندسی اسلک بسیار جالب است + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://brandur.org/soft-deletion"><b>Soft Deletion احتمالاً ارزشش را ندارد</b></a><br/>در این مقاله ضمن بر شمردن مشکلاتی که Soft Deletion ممکن است ایجاد کند، پیشنهاد استفاده از جدول رکوردهای حذف شده مطرح شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://bit-orbit.github.io/the-secret-bit/"><b>پروژه کتاب the secret bit کتاب آزاد لینوکس</b></a><br/>هر ابزاری در لینوکس یک man page داره که نحوه کار با اون ابزار را توضیح می‌ده. مشکل man ها اینه که گاهی خیلی کامل هستند و تمامی سوییچ های ابزار را دربر می‌گیرند. ما در این کتاب سعی کردیم سوییچ هایی که پر استفاده هستند را توضیح بدیم و هر کجا که نیاز به مثالی برای کار های مختلفی که می‌شه با ابزار کرد، شد مثال ها را بنویسیم. لینوکس جز ابزار هایش مفاهیمی داره که نیاز به توضیح داره، پس ما در کتاب دو بخش مختلف برای ابزار ها و مفاهیم داریم. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>حامد سعیدی،</b> + + + <b>آریا شبانه.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 18.html + +urn:uuid:c26c8dbc-9a59-c127-3ece-27b2481c617c +2021-06-03T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۱۸</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبرنامهٔ Softwaretalks </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۱۸ - پنجشنبه، ۱۳ خرداد ۱۴۰۰ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>تاریخچه جالبی از زبان برنامه‌نویسی PHP</b> </li> + <p> اگر شما هم مثل من با PHP برنامه‌هاتون رو میسازید، شاید خوندن تاریخچه و اتفاقاتی که در طول ۲۶ سال گذشته + برای PHP افتاده براتون جالب باشه. این مطلب تقریبا کامل‌ترین مطلبی بود که تا حالا درباره این موضوع خوندم + و توش کلی رفرنس‌های جالب به چیزهای دیگه داره. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/O7V-l87S6nrf7agGtv53ebC7WpTTIxHc-gQFz7Sk7QuV0PgZHS3CjZYoqpRM5tFW7zmfydCXnU8usHQ6KtdlqIKriVsDNOg5bY8bxVth6GyZSs2TDidGCyZ_1BctRSzNoBr6lmMVHSoqzdTQvv-MU9UiYf-uiBt5Q2z-Jhc-kZfcQpDfk2Skq9qiI7xU0GUmRG1gWU1VEyQtP_kuy5HGnicijVXSMrgsbx9PPm01yaSZu_ybWA" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>جعبه‌ابزارهایی برای طراحی و پیاده‌سازی مدل‌های یادگیری ماشین — شفاف‌تر، + مسئولانه‌تر و توضیح‌پذیرتر</b> </li> + <p> اگر اخبار مربوط به سیاست‌گذاری‌های فناوری رو دنبال می‌کنید، حتما متوجه شدید که صحبت از سوگیری و تبعیض در + یادگیری ماشین، بحث جمع‌آوری داده و حقوق کاربران ، شفافیت، توضیح‌پذیری و مستند‌سازی و غیره خیلی زیاد شده. + این لیست شامل جعبه‌ابزارهاییه که کمک میکنه مدل‌های یادگیری ماشین‌تون رو بررسی کنید؛ تو مستندسازی‌تون + شفاف‌تر باشید؛ داده‌هاتون رو با رعایت حفظ حریم خصوصی جمع‌آوری و نگهداری کنید و یا حتی از خودتون بپرسید + که با در نظر گرفتن تاثیرات اجتماعی، اصلا مسئولانه هست که این محصول رو وارد بازار کنید؟! <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/-Eu6wKy7x1KfvRdaBdQJPg-6AzXZjbXk_HGPB5qZeY36hnh_k86GnnYbOKURikajG5uI0FH23vSzxKoFrrxAn7L3OQPOIN7L7_agsaB5fTPlExz6dz_0B1TAuCG31ZSsyMwZai3FqsZcy13JP2JwAfOK2AEjiUSTUtbAU3-jstnvsOUgY5SQ9QsQvDMu4vS5hRw" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>بهترین و بدترین شهرهای دنیا برای بالانس کار و زندگی</b> </li> + <p> یک لیست از بهترین و بدترین شهرهای دنیا از جهت بالانس کار-زندگی در سال ۲۰۲۱ <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/d2QSq1XBi2KYicA_qNR-q7YEzB2SgyiYiq0cDfO0ONzrtgGDrPqRqwz0Ux8Wc7YnD0zgRzSdzsuscksrww_XgadyqoZqgL08y0ADN87smr5u4F4X8e9nYYrMH4acZnbt1L3CggjmR8cNOBgREuO2u_uZOsOHFyXGLQpSSz1FXBczNRezi7LS-YlgE4Y" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>راهکارهای تمرکز دورکاری به تلاش من و وال‌استریت ژورنال</b> </li> + <p> در این مطلب، خانم ستاره ارانی تجربیات‌شون برای حفظ تمرکز در دوران دورکاری رو نوشتند که شاید اگر شما هم + درگیر چالش‌های دورکاری هستید به کارتون بیاد. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/4YT_R22F8mc-M3OpeyaFrJOkGAfYPXDLtSSZBCurjolU1fRstDQxbOhVxvC2fLSc8AxCH9q4upcvSk00HdsuYy_ys0E9mA1Bq-rYdbK0C6LdEas9q3CM6rG0ov8v4RNSl8ua0ydITGanquir3HtaktJY3CEEsvsxTqKODE-1YcxfZ6V_ArCuOk4mFFOXM_s" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>استفاده از دومین شخصی در گیت هاب با ابرآروان</b> </li> + <p> اگر با گیت هاب کار کرده باشید احتمالا بخشی به اسم github page را دیده اید و شاید از آن نیز استفاده کرده + باشید؛ در این نوشته روش تنظیم دامنه ی شخصی روی گیت هاب را با کمک cdn ابرآروان را به صورت مرحله به مرحله + توضیح خواهم داد. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/YqiUrWYR8yq27pWaJunJwtx_ii0QhfjsnwzO9iXhLv-8n_m_wIBObzbDedJnvxO-wj7Sus0GNaahgq4TbGRMh9Xls78g17zmhe-1qsAvzdRpmSrGcVQt-A5Cg8UU5bQugjaUI3HGfL8K25CuR9CIJJ35pe2Ro63jxIT7KgAMtHlsFZTbzEwNH-uQbXgBWyQOLdj3_gJNqaDk7JNhsgNArXm4Z1pfq3GypGSnXqoQWrJ4" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>چرا برنامه‌نویس‌ها مستندات نمی‌نویسند؟</b> </li> + <p> تولید مستندات یکی از کارهایی است که برخی برنامه‌نویسان از آن گریزان هستند. این نوشته به دلایل این موضوع + و راه‌حل‌های آن می‌پردازد. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/hJlxUiRGkYuzeR3Uln7zR3Q9SetcD2fKxBQE0TeNT1JbmiLXiPyBOtRvVFuo7B70z6zW2UrYke9xtMMfao8DA4txS-Mf6MkGw7rwBY_vIPuEUQ8hyNBjGfoGGPEiTKoSQRV47Kal3xIerHPTdH-muSb1pyDuUMtRaXNUbMkibeoCbqFQFu1KKjydgXYK0ma06VmcqTKp4jtOyg2e0cEometnQLmaaLigmdG7VQ" + style="font-size:14px" sib_link_id="5">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>دیگه وقتشه استفاده از If-Else رو کنار بزاری</b> </li> + <p> بسیار خوب، من متقاعد شده‌ام که If-Else بد است، حالا به من نشان بده که چطور از تقسیم‌بندی درهم و برهم کد + اجتناب کنم <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/kucyi_HM1y60ho5pvkzwgH4r1606AajYIpbCUiT4tA30402Pz3cfapc8DMZ3yYWk0W4ngT4wYtagnJKRO3flaHSE7GYsTxy-fwZKJNcnXKTTlaD3GBP8Vh3sv4ZrobUvMfFlGFjnHtuGEtiWDj6S-EaRCw" + style="font-size:14px" sib_link_id="6">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>،</b> <b>رویا پاکزاد،</b> <b>حسن شهبازی،</b> <b>امیرحسین بقایی،</b> + <b>امیر شکری،</b> <b>حامد سعیدی،</b> <b>Amir Mokarchi</b> در تهیه محتوا کمک کردند. شما هم می‌توانید <a + href="https://r.t10.pktsrv2.com/mk/cl/f/oBr9sxnhdufhYeJH8-xa-XmwKR5DRvJTPVJP_-r7USFXZAfQzrezaAfcKFNY0LViPmDuH2jJFN96iJ134EvG9jRTtiRtTsUNqo0wWtdTmlu8BuRTvD0k0XoN8mRj5A-rST8PoNNEjIp-QmMDoijohS5yJRIUKn-UISSEun-0B2xFL9uBCd2M0pl9AhIrdC0" + sib_link_id="7">مشارکت کنید</a>. + </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=RixQWppmD6xBPCdPdR9PEZCxJjGD_9WrdObojFR0y2tls8SYfyBMPDHKzxsqWswd5ZaorcpzPN93CS2ZgZKAYjEZQ7SVdM7LaqPzywefNCWAxx8L5aij1VjwxfjAKscz2ZECvKpOGr0rcB51rbZp-M-yoU_Lry3Q9Rfx9HUf-RKw14CcpjV35UwA1rG7F6OO__ZOvrrp5zT1bx0OoTa1kPYRnA" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/cki6249970Hss8UcXeH3dExMho3_FGUpUu08v_bmuWSS9lStI0tLZtJKMqEq1Ad8QUQ1Nr2YDKzVLdcapAYgdSJURWI1-eNVdoe130IchEM_9vgmrbklUMGadftWmOuGJmDYuiwgHzl2GDEkBRx3bA" + sib_link_id="8">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/-0_qoCe2ZkLWi0u0QK84M7mQMhW5po4w4CnMnxurnwgvN7nRirGDVLDnHy2JK0S_HciSJdapwJda0zdHIxNIzeR7mQyjrmzEQmkjfjcwPWDZk2N85Y9pHY-RVkiKrHTtU87LfDH9IXHHztFqTGsM9g" + sib_link_id="9">سرویس پاکت</a> اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف sota10 می‌توانید + از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید </p> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 57.html + +urn:uuid:ec9279ed-70c8-f7c1-a87d-279ebe4bdb7b +2022-07-15T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۵۷ - جمعه، ۲۴ تیر ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://review.firstround.com/making-engineering-team-communication-clearer-faster-better"><b>ایجاد ارتباطات شفاف‌تر، سریع‌تر و بهتر در تیم مهندسی</b></a><br/>چالش‌های تیم‌های مهندسی با افزایش تعداد افراد تیم بیشتر می‌شوند. این یک مصاحبه درباره تجربیاتی برای ایجاد ارتباطات شفاف‌تر و سریع‌تر و بهتر در تیم‌های مهندسی است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/simdjson/simdjson"><b>پارس کردن بسیار سریع JSON</b></a><br/>فرمت JSON در همه جای وب استفاده می‌شه و سرورها زمان زیادی رو صرف پارس کردن JSON می‌کنند. این کتابخانه مدعی سرعت بسیار بیشتری در پارس کردن JSON است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://techbeacon.com/enterprise-it/monitoring-demystified-guide-logging-tracing-metrics"><b>ابهام‌زدایی از Monitoring راهنمایی برای Logging, tracing, metrics</b></a><br/>این نوشته، در واقع لینکی به سایر منابع بسیار خوب درباره معرفی ایده‌های Logging, tracing و metrics است + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 15.html + +urn:uuid:6c3a5506-c4a8-b48a-0e3a-c9e5939354d1 +2021-05-13T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۱۵</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبرنامهٔ Softwaretalks </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۱۵ - پنجشنبه، ۲۳ اردیبهشت ۱۴۰۰ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>کار با کد‌های قدیمی</b> </li> + <p> اگر شما هم مثل من این روزها درگیر بازنویسی کدهای قدیمی هستید، شنیدن تجربیات و نکات آقای عباس یزدان پناه + میتونه کاربردی و بدردبخور باشه. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/ygPWPuvZdapMFALarkeUahtkqu6GTDVFEJkNaBdcSpWKLk-GwceiQZYEfOeBRn8jJ9FxcXQkZk1DTanJ1jYOTqEEyM_N2aHVmlFR5xOLI3siI_g-TwIJgn33hKmM-08cu9yASsBidF6CfssLG1rWdiWu8M1T5xeDlI64jAXjMbX7CIyBf_3_8gviY5_EnkhLlLJ_ts-RWuwiCwG4yLPPpeLt5km-UcHy22y5ZRpPBV7KxBdGMACcSnq_lSShPAzG179i-zvT3qReaWwX53aZneUiUDsLiI_hkbpQaELV4qoiTCB9oYhxAB4xjhKKGpC-PRn1RtsW7ZnFy-zzVC9tEH0weuT3A7LRRlXt4qYizabB-CPPN9EzdnMeRpC6j_DPBWflu77wLG2EB0My5ogCh5GB9pWKq6qQiWWqdmPdMoO_b5hBTb76YItEeX8B93fY2uVWFGZ7nNHe4Pw6bcjcsiHRmsaVF-b87JatQy1O_A" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>کپی کردن کد از Stackoveflow واقعاً چقدر انجام می‌شود؟</b> </li> + <p> در این نوشته از وبلاگ Stackoverflow با استفاد از نمودارهایی میزان استفاده واقعی از کپی کردن کدها از + پاسخ‌ پرسش‌ها بر حسب مواردی مثل اعتبار/امتیاز کاربران و تگ‌های سوالات و ... بررسی شده است <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/eSuJeWG-qzLfcyGHvlIpwOsWUX6mCfcjy-bWtvya4FtutxAsGQsSi_AdPER3zjn1IUWZ1OHHmiqU3Dfyox8jJdtuFVL6rF3SO4hMwVyQ8RVD-CrFIFG8ldcYYXZfHnnVm0NvF1tsWPJi4IaY66wk55Mzz1dgbRdaIa6rgLTUbt7vJS-wKFTsfvAUuJBZuvcopMoAGXiTT8y1HbwTTRFfYPH5kaq9-EuKWUuqcnaoJNY1PTrxyaDZ940xilQqgux0Q45VJb7lpAzoI6Gf88zpUujjCwQV_NQ" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>هنر تبدیل 6 خط کد به 92 خط کد</b> </li> + <p> روش سنتی انشعاب سازی با استفاده از if-else و switch منسوخ شده است. این SOLID نیست. انعطاف پذیر نیست + <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/_2MV5wN2rk2K4lCbgtCuAYp93fVv7P2fSSCCIPzs2NyjiEcLtRxv3CoIMnknEdjM5qltrbQkpa6hMR7mYwmPyv5Upry3LBuoE5CT0J9EdqAKWpxsOcpPDruOud-ogFXPTwmhU9R81ghjebVkp8cUAdOn" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>ایجاد کد با قابلیت پیکربندی مجدد در سه مرحله ساده</b> </li> + <p> استفاده از کلاسی که قابلیت پیکربندی داشته باشه خیلی آسونه. قابل توسعه است.به شکل احمقانه ای ساده است که + بسیار عالیه و بزرگترین نقطه عطف اون اینه که قابل تست هم هست. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/6kTgK0VGC9vggr4IIESzZo8OF15lQZ5_6Ay4uWUmkNqaA4sDii9Jv0t6H9_jx3wcfOoFuuVnX6KcOIWCx3s9FpSeIzLLL_qBkUTR_x3lx7BRN5Zt8jsIarZNkSLBPNH-vAOzkeT0ld9kpvRY5c9Vn0vQ" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>گیف یا جیف؟</b> </li> + <p> توی این ویدیو، یوتیوبر معروف یعنی تام اسکات در مورد اینکه کدوم تلفظ برای GIF درست تره صحبت میکنه. اگه + دوست داشتید میتونید این ویدیو رو از یوتیوب مشاهده کنید... <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/6IaOWT_YJ1AVUpHbZwVDjPnC8BM_Dd2IWY6AGyTM_wHsHzUpkq1dbynsKPVOkMOvYyXEyETfO5Snch2wiTwT6hHyZJpcn_mNk2LG38AYIlb9DzE6lhEBoZT-GQLCcZRxU3k4zU3WW7M1jwg4Kh8T1idy4xdHWWXQQ3SnhuX5Qmbk4syxo-6rjQGzbCs" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>سایتی برای یادگیری سالیدیتی</b> </li> + <p> راستش من از دنیای بلاکچین خیلی دورم و گهگاهی خبرهاشو دنبال میکنم اونم از دور. اما همیشه ساختن و کد نویسی + برام جذاب بوده، اگه شما هم مثل من دوست دارین هر روز یکم وقت بذارید و در عین حال که تفریح میکنین، + Solidity (زبان برنامه نویسی قرار داد های هوشمند بر بستر اتریوم) رو یاد بگیرین، این سایت به دردتون میخوره + :) <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/2yrfCP9hU-SYTCdGAc_uxbnSamSVpusLSozJWHQ3OqcoUwUtJYyfDQR-vbWqcCJpd1o-VOR82e0tY3prGjyFbshwxUBm_9C1tIjSy6cqk0IK-XuiZvlu3dHLgT4Wb0JoDx_nB9eLpVipSW2-w7eZYett4w" + style="font-size:14px" sib_link_id="5">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>امیرحسین بقایی،</b> <b>حامد سعیدی،</b> <b>Amir Mokarchi،</b> <b>علی + کرباسی،</b> <b>محمد عرب انواری</b> در تهیه محتوا کمک کردند. شما هم می‌توانید <a + href="https://r.t10.pktsrv2.com/mk/cl/f/PT_kcPaxwIjEkBiHFmwISfdYCfu8-AV3nk7KE4JG9tYq2JYUICFGd1w_6vRLKXPpxZmgkD4Wc4Y-6BMt3QZBZgZgq7EYLuAtcKIzQQCnRjTv_kUyjKXAaWK54iMR1q0JowZT_mN-IaWezLRH3AxspRcPfP8hlkmw0dmsTY_P4W9so1-1ewim571KLLr8Wg" + sib_link_id="6">مشارکت کنید</a>. </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=pDQmqYZ8icLKTCbap5bCpB5ngAYTvIC_UDDihg3b49c5RJ0b4NB0QgovV3UgHzUvQ8CfqyoS_92rbs_FCXGjLV3O1-xtayNYIKmSleWZyp6XE2eXyuAPcE3SyZo_t7o3n5m5nM_dJRNn0EHiKGPpz49y6Ii9Sot-UAH9JRgt3jvcbFD4sdmueeBzgeD7EAGYiRMT7kFVdKiYzYOsBeBWi3PJMg" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/MlVYHONYo1MZGS5MRiqBEwu2uNHBf4vp1oRea88QDw190g6yOnjHd24pWydYjZNnBVtMMSGeqWHP3CVR1UBQu5ys76i4-MzFl5VLAgch7SbijA8nIyjynMvV4JxYS7oiNMG9v_DwNWabXshLf50l" + sib_link_id="7">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/phJCTnqUktRMK-LFCzmnkh9UotBn-JrInmydG6EtWgyVLzmWipN3AgqgmVZqnM9s9uiChi69xBK2Nxa4FbgOblabvXiklQgc4beZOUeygwkhmxQPLx1XmLO-XXF9WJXCiv5_VU2Itxjg6_FTrih2" + sib_link_id="8">سرویس پاکت</a> اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف sota10 می‌توانید + از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید </p> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 65.html + +urn:uuid:350a7e82-2974-e76c-1ccd-ce41a2053197 +2022-09-08T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ٦۵ - پنجشنبه، ۱۷ شهریور ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://github.com/DopplerHQ/awesome-interview-questions"><b>مجموعه سوالات مصاحبه فنی</b></a><br/>در این مخزن گیت‌هاب منابع مربوط به لیست مجموعه سوالات مصاحبه‌های فنی زبان‌های مختلف گردآوری شده است + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c"><b>مساله Sharding و IDها در اینستاگرام</b></a><br/>در هر ثانیه بیش از ۲۵ تصویر و ۹۰ لایک در اینستاگرام ذخیره می‌شود. در این پست وبلاگ مهندسی درباره مساله Sharding و ایجاد IDها صحبت شده است. زیرساخت production اینستاگرام بر روی PostgreSQL است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://saas4devs.tech/"><b>پروژه SaaS4Devs</b></a><br/>در این وب سایت منابع بسیار زیادی به همراه تعاریف و لینک‌ها برای آشنایی و راه‌اندازی SaaS برای برنامه‌نویسان گردآوری شده است. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 53.html + +urn:uuid:833b22b8-3f0c-e2cc-a5e8-fafa0d1c68a1 +2022-06-16T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۵۳ - پنجشنبه، ۲٦ خرداد ۱۴۰۱ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://medium.com/everything-full-stack/design-patterns-and-principles-that-support-large-scale-systems-f3c9adf89ad"><b>الگوها و اصول طراحی سیستم‌های مقیاس بزرگ</b></a><br/>همانطور که از نام مقاله پیداست درباره الگوها و اصول طراحی سیستم‌های مقیاس بزرگ (large scale) بحث و معرفی شده‌اند. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://stackoverflow.blog/2021/12/23/best-practices-for-writing-code-comments/"><b>Best practice ها برای نوشتن کامنت در کد</b></a><br/>در این مطلب از وبلاگ stackoverflow درباره قوانینی که رعایتشون به داشتن کامنت‌های بهتر در کد کمک می‌کنه صحبت شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://repohealth.io/blog/code-review-how-to-make-enemies/"><b>بازبینی کد: چطور دشمن بسازیم؟</b></a><br/>این مقاله، حکایت ادب از که آموختی؟ از بی‌ادبان، برای بازبینی کد (Code Review) است. رفتارهایی که با انجامشون در بازبینی کد، دشمن می‌سازیم. + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>حامد سعیدی.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + +شماره خبرنامه 10.html + +urn:uuid:81c8e63a-c085-9d7d-9599-36334507d6a1 +2021-03-12T00:00:00+00:00 +<html> + <head> + <title>خبرنامه شماره ۱۰</title> + <link + rel="important stylesheet" + href="chrome://messagebody/skin/messageBody.css" + /> + </head> + <body> + <html dir="rtl" lang="fa"> + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) + format("truetype"); + font-weight: 400; + } + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) + format("truetype"); + font-weight: 700; + } + ul { + padding: 0 25px; + } + </style> + </head> + <body style="max-width: 680px; margin: 0 auto"> + <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:&#39;Samim&#39;,sans-serif;direction:rtl;font-weight:700;color:#263238" + > + خبرنامهٔ Softwaretalks + </h1> + <h3 + style="font-size:18px;text-align:center;font-family:&#39;Samim&#39;,sans-serif;direction:rtl;color:#263238" + > + شماره ۱۰ - جمعه، ۲۲ اسفند ۹۹ + </h3> + <hr /> + <ul + style="text-align:right;font-family:&#39;Samim&#39;,sans-serif;direction:rtl" + > + <li style="font-size: 18px"> + <b>شرکت Vimeo چطور از PHP در برنامه‌هایش استفاده میکند؟</b> + </li> + <p> + توی این مطلب، آقای Matt ‌Brown از تجربیات تیم بک‌اند Viemo میگه و + این که چرا هنوز هم دارن PHP استفاده میکنن :) همچنین ابزاری که برای + Static analysis توی PHP نوشتن رو هم معرفی میکنه. <br /> + <a + href="https://r.t10.pktsrv2.com/mk/cl/f/43vzMITXtr055pycsQwGEn8HWWKawp4Y-fx42pFtf41c06CvTpCJAk-8dX8WyQc-fyRNFKm7bBHmtFV5agJyhN0mIn7vOORdoWkOJYZIEXgPuAygmP4nI2kBg-4cUGa_lK7Nts9CyaMf36Ux2eO90zW6sD2Gy7AQluFE9gcLQ9GsTPDkxfFhfygDeFhTE_7jR0b5yCOFJFTQEXReBgLb5OUujoobRZ72fV8hRe-Rrlrlhw" + style="font-size: 14px" + sib_link_id="0" + >مطالعه مطلب اصلی</a + > + </p> + <br /> + <li style="font-size: 18px"><b>برگه تقلب OWASP</b></li> + <p> + پروژه OWASP یک جامعه آنلاین است که مقالات، توصیه‌ها،‌ ابزارها و + راهکارهای مربوط به امنیت وب را به صورت مشارکتی و رایگان جمع‌آوری + می‌کنند. این برگه تقلب شامل اصول امنیتی در اغلب تکنولوژی‌ها و + زبان‌های برنامه‌نویسی با توضیحات مختصر است. <br /> + <a + href="https://r.t10.pktsrv2.com/mk/cl/f/Kg0NzWaSTt1u-yQNsOm_KSYANU8aELziLfCW2ImJFlccjqAAW1E3c0NdZNd08vT2kOjjvcz3chXWKhVD5aqEh3atfHaWagW5rg1QRSHgZEDvy9mC3VPp7GfBj_zkj8qk7KaCPnfICKkaHqq9pyxGJlPXOxQ6D4pq_Vs1h-vaX3U" + style="font-size: 14px" + sib_link_id="1" + >مطالعه مطلب اصلی</a + > + </p> + <br /> + <li style="font-size: 18px"> + <b>نکاتی مهم برای راه‌اندازی یک سرور لینوکسی</b> + </li> + <p> + همه ماها ممکنه توی کارمون به مرحله نصب، راه‌اندازی و کانفیگ سرورهای + لینوکسی بربخوریم. البته که شاید راه‌حل منطقی این باشه که کار رو به + کاربلدش یعنی SysAdmin ها بسپریم ولی خب همیشه این حالت مقدور نیست و + نیازه که خودمون آستین بالا بزنیم و بشینیم پشت کامندلاین. این + ریپوزیتوری سعی کرده نکات مهمی رو که توی فرآیند امن کردن سرور نیازه + بدونیم، گردآوری کنه. پس اگر دوست دارین یک مرحله دانش‌تون رو ارتقاء + بدید این مقاله رو مطالعه کنید. <br /> + <a + href="https://r.t10.pktsrv2.com/mk/cl/f/DgeXjtxnIeVb0MNk0qUauZDZHzd_JX1zrDpJXFHvk3man-kwVo-7VPXHApXj4q80QuPvyvcKLHvETUGBp7Qj6JHQrlVVn8cKlQPKJdMP9evODK42rzJtVADiRoTivKFZca5M6UQzafECfjrpUoDd27QAng3hQbK7I1JKTag5OGH_bN8RkmkOAUhcy7dqdj_mZg06OQCrh05BcOAf" + style="font-size: 14px" + sib_link_id="2" + >مطالعه مطلب اصلی</a + > + </p> + <br /> + <li style="font-size: 18px"><b>سی‌گو همان گو نیست</b></li> + <p> + سی‌گو راه حلی است که بتوانید از کدهای سی در زبان گو استفاده کنید. با + این حال، استفاده از آن کم‌هزینه و بی‌دردسر نخواهد بود. با توجه به + تمام مشکلات ذکر شده در مقاله، شاید بهتر باشد به راه حل دیگری + بیاندیشید <br /> + <a + href="https://r.t10.pktsrv2.com/mk/cl/f/Dg5Y6otK3ZSP18yz5EeG44ZRNxkAoVIQJ-SbCK59dX3Ksi-6IFzh47iwkL_jbmrfaf35x2oBMs88kdnTMTPiX5lQlDUpI0NdvICdDLWkX2SWIHJySCMiO_xK7Si6IvHYZSw9QQBJ0ikUv_LIbk8Ol6SLnCAH7P1imwweQJP5rAZIbSxIwCMEzBKzx8eB5NfiYihn" + style="font-size: 14px" + sib_link_id="3" + >مطالعه مطلب اصلی</a + > + </p> + <br /> + <li style="font-size: 18px"> + <b>کدنویسی لایو جستجوی تمام‌متن با لاراول و الگولیا</b> + </li> + <p> + نونو مادورو (سازنده‌ی فریمورک‌های Laravel Zero و PEST) در این ویدئوی + یک ساعته، جستجوی تمام‌متن در لاراول (Laravel scout) رو با استفاده از + ای‌پی‌آی Algolia و با روش TDD (توسعه آزمون‌محور) پیاده‌سازی می‌کنه. + <br /> + <a + href="https://r.t10.pktsrv2.com/mk/cl/f/gXVeZEUcuVZW6Bt3eFINw408zkqr_-M95hVuKiAQ-MPclw2V99F6no5vfqlF5Dv_ObpVpPg1TJBWxGoObV62wIqjHqfVl3cP7HpQDRFK5DsMz_bkuVzdgg4LXLJoWN0nyZAytWWbRQYr4meclj7HKbVBW2ZLgbBLz5n8MKDRGdEaVYGpbmEU1olHLGZj9xRhfNMsjO7_" + style="font-size: 14px" + sib_link_id="4" + >مطالعه مطلب اصلی</a + > + </p> + <br /> + <li style="font-size: 18px"> + <b + >نکات ریزی که در مورد پروتکل محبوب &#39;اچ‫ تی تی پی&#39; + نمیدانستید</b + > + </li> + <p> + در این مقاله نویسنده نگاهی به نکات ریز و فراموش شده این پروتکل محبوب + دارد. <br /> + <a + href="https://r.t10.pktsrv2.com/mk/cl/f/inG4d19T4WsAJHCZ-T7CL-86M8srghgee01229-ZOR1bAPHMBOzNJvAl-hSm_aGncVL_UKCDatiKch4tFXprVnqoK-okUAFHuCrFN2GPlbVLFlrbo2x9o7gyFbDndBtXKRcgXG7ZYSt_co4sv2mgWf1AbB_KVg6IMgEHBFdpsNCWQ6oXAhEsNg" + style="font-size: 14px" + sib_link_id="5" + >مطالعه مطلب اصلی</a + > + </p> + </ul> + <hr /> + <p + style="font-size:13px;font-family:&#39;Samim&#39;,sans-serif;direction:rtl;text-align:right" + > + در این شماره از خبرنامه، دوستان خوبی به نام‌های + <b>امیرحسین بقایی،</b> <b>حامد سعیدی،</b> <b>حسن شهبازی،</b> + <b>امیرحسین مجیری</b> در تهیه محتوا کمک کردند. شما هم می‌توانید + <a + href="https://r.t10.pktsrv2.com/mk/cl/f/sn6IX7hr3-KIwWL-KcTxb2HgB1QUJwvWpGbKKRjrkyBIFitavP48-o7Sd9iXrIwn4NVPE9WwR_kfjTaHxbXG4HE-gnIfi_mNx-Zq27w2ltMHwyzUPLvG-xMBJlKfh9C9aJryg8a4MIRFsC6LvGk_XUcetqlDEiUWLH3HQoI2Gx4aHt_Lli8PmzN_x__tWQ" + sib_link_id="6" + >مشارکت کنید</a + >. + </p> + <hr /> + <p + style="font-size:16px;text-align:center;font-family:&#39;Samim&#39;;direction:rtl;color:#263238" + > + <img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=xo49fiAY_U5A6tTCaT_Alzk6prYvzL_iG9w0BGI6-0VSwNWh1Ou_3pE5N3V9Dv7WnRJR4NtsQhRst_4FhD5CScBMLRDtp3ph_LU1JFGjkohjVnEzZNIkMC1dCra4BOZ0XVlNiL459ZO2vg5AqUNcuZgOXl8O9_VhfTL5HD4l0WugOycSylT26BYoPRDSEiJo8t1sHV2loILgu7_YTs29nv2xKw" + sib_img_id="0" + /><br /> + ارسال شده توسط + <a + href="https://r.t10.pktsrv2.com/mk/cl/f/w0P6fnP0ZBTzvJsfRyrHvDysWfz8SkD56CXRplXWdjD2_BFuLvjQ_IPgdk8A--mjG2QQMDMtKxv7j4Dvk5a7RzniFYYw0yZmaPsGiYu-MdUSJgIxAYD0RRhDjU4UKP7FxreuSp-D-eMmqvyRySZ1" + sib_link_id="7" + >پاکت</a + > + </p> + <p + style="font-size:14px;text-align:center;font-family:&#39;Samim&#39;;direction:rtl;color:#263238" + > + <a + href="https://r.t10.pktsrv2.com/mk/cl/f/54r9OzbsJYUSpnUKbtD12XtTdXvHl5av1qLDR3ZGtbzm0VuItQDjehkU9Ti9jbdsGBXcTgVTvehDJ0Llv2vSXTKMDI3R7GrkPyIaZwXbbjCe7kj7TkTEC5PscxFc4Naisr3udcP5VnoW9_qQlWtP" + sib_link_id="8" + >سرویس پاکت</a> + اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف sota10 + می‌توانید از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید + </p></span> + </body> + </html> + </body> +</html> + + + +شماره خبرنامه 16.html + +urn:uuid:f3929381-7efb-628d-44b4-9426d569b591 +2021-05-20T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۱٦</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبرنامهٔ Softwaretalks </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۱٦ - پنجشنبه، ۳۰ اردیبهشت ۱۴۰۰ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>مهندسی اعتماد و تحمل نقص در سیستم توزیع‌شده</b> </li> + <p> توی این مقاله، نویسنده در مورد راه‌کارهای پیاده‌سازی سیستم‌های توزیع‌شده، معماری سرویس‌های مختلف موانع + اسکیل‌کردن یک سیستم و تحمل پذیری این سیستم صحبت می‌کنه. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/oyTGqb9LVfk3Qp_JB3Ydcy94qfk4pJnNCfFCXvvzCzFTu2L3fCM_jBl8AwEcnwg7nSGXk8fu6e8wEoYp4ziw1pukUL8s24TSXH1LBVlF8_svBUjJMNUkxAENRHXHXsCOgUWQtqsFdNcFA1ZoCM_ukSeO2uW2rVp3rUqGx0uCrHfAbw1gIjdJ47z6hDsrg2dYLBdibMA42RG6bZKpNdPz8mAItpqmVtPvvcJKiiyyKk4t1MhMbNcMKJVslnQQzntI5laNje-QPiFNsZxmEVd0EA" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>توضیح بیتکوین به مامان و بابا</b> </li> + <p> توی این ویدیو، ضیا صدر مشکل خیلی‌ها رو حل کرده و میتونین برای هر کسی که تازه میخواد با این موضوع آشنا + بشه ارسالش کنین :) <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/2AE16tQrlt1X2rvUOmWTFx4aniwT0LkGLkjjeJLZdLo9KcS-6YiX9pyHyqsMTJbVLHwZls5omSa8VIWOocIsvnqfTei1J8-34hmko9CPaRNNwjkN0fiiX1yHelzrRyPAfHuSzkWWbIIFKqgioernP3VJeXndJnqm4Q" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>راه‌حل‌های ساده برای رفع مشکلات سطح دسترسی فایل‌ها در داکر و هاست</b> </li> + <p> اگر توی اشتراک فایل بین کانتینر و هاست (یا همون سیستم خودتون) مشکل میخورین، مثلا کانتینر با کاربر root + مینویسه و شما نمیتونین فایل‌ رو بخونین یا هر مشکل مرتبط دیگه، کافیه این مقاله رو بخونین و راه‌حل‌های + ساده‌شو بررسی کنین تا هم با مدل کاری کانتینرها‌ آشنا بشین و هم مشکل‌تون حل بشه. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/1MHpAUD9wUJ0JOStyzRgDMOtgVuDilvTIR5_6zj91fvjig_Q5cXyg0aERllciip8EkJWwHYC_q9zivRbW_3l37rRZ2mPxWHnBF_reE8_PC7iOkJGBrgqqvIlsWATq_fNPlyuAHxPZk9F1DJjXHP44twKyN3hfaihU4tEBk-R68uX1GGvD5GLndzh9lcJ-NV-aDhIv9U2I0n-scdTr8oiiRv0q7I" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>بازآفرینی مجازی سازی با نیترو‌سیستم آمازون</b> </li> + <p> نگاهی به معماری سیستم زیرساخت مجازی سازی جدید آمازون؛ نیتروسیستم <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/ApK7sicdr0-GGoZUAayTmI7ikF8hTidPk5EYIh5jiujuf9uNVFMRuRfp9MWhgWKzXZQshhv6DLbNfoSGEkQlaG_VGTVVKUEqn93iCxm1uCwuFebfOFi1MXVGmZF_Lv7uvLsJmdhMMqUdDpXA9aL9VVso" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>چرا ایده جایگزینی کپچا با فایدو ایده خوبی نیست</b> </li> + <p> این مقاله که به قلم یکی از متخصصان فایدو نوشته شده است نشان میدهد چرا ایده جایگزینی کپچا با فایدو که + توسط کلادفلر اجرایی شده است، ایده خوبی نیست و نقص های فراوانی دارد <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/PUfgWbv2VHaBpgH3FnVV2d6L8Pr065_xLClseisua0bdJhh1PJcPnJ4avrn874IcxXcYa7wFecJH8941ZQ_hyd85J2gH4tr6LtzM7k_SQfdG5mEwoEdAGOldst-hqWsGH27yq03PnVOweQXCreNAjsv4_4sVN7qToai8n-eVdwnQZOA-N3kVR87xviVUiWzO5MElJWna35v5kI5Zpvoeo_a5cNd27mlKj3czA2shEyL-KZSI_79e_aaG9BtHB7emggKnmIQn65Z45DXhIrzT0Aa-1xM" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>یک مدیر در فیسبوک: هر روز مثل یک کابوس بود</b> </li> + <p> در این پست با تجربیات یک مدیر نظارت بر محتوا در فسبوک آشنا می‌شویم که از سختی‌های کارش مطالب جالبی رو + بیان می‌کند <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/Xr8x20LOg7ws0qutENAPD29a9px4Z3drSkqVLqA5E-qjFrnrTFVsMsnC_xlBb7mjDaqrBCdfsfuqUVvwXK4C7eHtUEDFhOav87VSQ1sFKrz7GlBPAfZczlc-YDHIpL94tUNovi31iZRaJxxJ7gVfWyl9RpzCgXQ-LBYRHxYcupapfGyWEL_bUwT9iRItpJ0" + style="font-size:14px" sib_link_id="5">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>نرم افزار بهتر بدون (If/Else) : 5 راه برای جایگزینی</b> </li> + <p> استفاده از if/else در اغلب اوقات منجر به طراحی پیچیده و کد کم‌تر قابل خواندن برای شما می‌شود. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/wPTIri_RcV7fnatz5rMPuUH7ny30Y9RyZpatMG8a7oxCyNkWtoZAeFt418IJB4VDhOV3j-7zWvLWYMykxMiB-lDQlz-bTwTt9ATcf32i4D5kIqOYQ4WtDG5hyd564LVcOFH1L-uufk4K5btl5zUWWyyG" + style="font-size:14px" sib_link_id="6">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>امیرحسین گودرزی،</b> <b>امیرحسین بقایی،</b> <b>مهدی آخی،</b> <b>حسن + شهبازی،</b> <b>Amir Mokarchi</b> در تهیه محتوا کمک کردند. شما هم می‌توانید <a + href="https://r.t10.pktsrv2.com/mk/cl/f/_ydqRzQXPMO_5Nb3e-McbAIx7WsXz3aE4NTONOob80-O8siXsIt34rO93UfTaNU3RDYei5JFULKZO2RAhXYT6ey5xQDFbkrkdcPQgEL6mowNI1f78BTJFJE9oZ3EsLSYaetkL9OMb1X9oGQtm7NPdEZ7pRUJSP3stb0V3cpjKrZ3RUMqBVrWR1fOt0XenA" + sib_link_id="7">مشارکت کنید</a>. </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=ZKzhxzZDKzDJ645EuLfSsC2_roFCtxmA09ShKPQiW7tdXmFWL2ADbJXNlep8jeV48Qtd_2lFBa2LI4nS6rDTSF0oNFmAmihNTL19XmO5_O94MpDuy7O4mMz0qH-w7HxDRDCsDvbAB6ndtp3blp6FhvWUBiHFNgMBQy05s4wBAIORtq60WxNme9dIQHNwC8rT7hPy6Woz3B_0CQ0zYXXdBQ-SIg" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/x8_eOmyv8vsK-1hooTMXhl0hX3mw3cxj9CDdo26bNwAmTTfEYhUmpLf0yzu14AQhCWGEIa8hkOSAifuZ_WTJ5Hb5yN4G4sNwyQ-e3xxUo-NsRbdHOdzb3XpVbCf70vbfCINxanVxhlTy8QHBgG_w" + sib_link_id="8">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/Ru33d79aAR4qXX1O6IS-MittYvb3LmfkRvmGOeatFdog_7hk0e7reUvWW76TZGAqfTfsRLVXouflm3KLqTdmX-qBiwOeFZy_CWnmjXUOY0GVAKMz_QK1yG3_vvIedN3N43A7RddGvtJdwowVSLaE" + sib_link_id="9">سرویس پاکت</a> اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف sota10 می‌توانید + از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید </p> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 23.html + +urn:uuid:fda4894b-f3f2-88f9-cc9d-88ef8b39209a +2021-07-08T00:00:00+00:00 +<!DOCTYPE html> +<html dir="rtl" lang="fa"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + </head> + <body style="max-width: 680px; margin: 0 auto"> + <div style="text-align: center"> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) + format("truetype"); + font-weight: 400; + } + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") + format("embedded-opentype"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) + format("woff"), + url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) + format("truetype"); + font-weight: 700; + } + ul { + padding: 0 25px; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 50px; + } + </style> + <br /><br /> + <img + alt="Softwaretalks" + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + style=" + margin: 2.1em auto; + display: block; + width: 130px; + border-radius: 5px; + " + /> + <h1 + style=" + font-size: 25px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + font-weight: 700; + color: #263238; + " + > + خبرنامهٔ Softwaretalks + </h1> + <h3 + style=" + font-size: 18px; + text-align: center; + font-family: Samim, sans-serif; + direction: rtl; + color: #263238; + " + > + شمارهٔ ۲۳ - پنجشنبه، ۱۷ تیر ۱۴۰۰ + </h3> + <hr /> + <ul + style=" + text-align: right; + font-family: Samim, sans-serif; + direction: rtl; + " + > + <a href="https://stitcher.io/blog/new-in-php-81"></a> + <li style="font-size: 18px"> + <a href="https://stitcher.io/blog/new-in-php-81" + ><b>بررسی امکانات PHP 8.1 که November 25, 2021 خواهد آمد</b> + </a> + <p> + اگر دوست‌ دارید بدونید در PHP 8.1 که به زودی ریلیز میشود، چه + تغییراتی صورت گرفته یا چه چیزهایی افزوده شده‌است، این مطلب از آقای + Brent Roose رو از دست ندید. + </p> + <br /> + <a + href="https://camelcase.ir/centralized-and-decentralized-systems/" + ></a> + </li> + <li style="font-size: 18px"> + <a href="https://camelcase.ir/centralized-and-decentralized-systems/" + ><b>سیستم های سنترالایز و غیر سنترالایز</b> + </a> + <p> + سیستم های سنترالایز و غیر سنترالایز (متمرکز و غیرمتمرکز) و همه چیز + درمورد اون هارو خیلی خلاصه بخونید ... + </p> + <br /> + <a + href="https://thevaluable.dev/learning-developer-efficiently-effectively/" + ></a> + </li> + <li style="font-size: 18px"> + <a + href="https://thevaluable.dev/learning-developer-efficiently-effectively/" + ><b>هنر یادگیری برای توسعه‌دهندگان نرم‌افزار</b> + </a> + <p> + این نوشته ضمن مرور شیوه‌های یادگیری مناسب توسعه‌دهندگان نرم‌افزار از + اشتباهاتی که باید از آن‌ها اجتناب کرد و همچنین سوالاتی که پیش از + یادگیری هر مبحث جدیدی باید به آن‌ها پاسخ داد می‌گوید + </p> + <br /> + <a href="https://blog.trello.com/7-types-of-rest"></a> + </li> + <li style="font-size: 18px"> + <a href="https://blog.trello.com/7-types-of-rest" + ><b + >استراحت کردن فقط خوابیدن نیست، برای تجدید قوا و بهره وری بیشتر + انواع استراحت را بشناسیم</b + > + </a> + <p> + برای بهره وری بیشتر و پیشرفت در کار، همه‌ی ما به استراحت نیاز داریم، + ولی استراحت فقط خوابیدن یا سفر رفتن نیست. بعضی وقت ها برای رفع خستگی + به مسافرت میرویم و خسته‌تر برمیگردیم. شاید شناخت انواع استراحت که در + واقع مربوط میشود به انواع خستگی‌ها بتواند کیفیت زمانی که برای آن + میگذاریم را افزایش دهد و بتوانیم بهتر تجدیدقوا کنیم. در این مقاله، + هفت نوع استراحت عنوان شده است. + </p> + <br /> + <a href="https://vrgl.ir/uEFaS"></a> + </li> + <li style="font-size: 18px"> + <a href="https://vrgl.ir/uEFaS" + ><b>اثبات فنی کند بودن سرعت اجرای کدها در ویندوز نسبت به لینوکس</b> + </a> + <p> + از آنجائیکه نحوه برنامه نویسی به زبان اسمبلی در سیستم عامل ویندوز با + استفاده از اسمبلر MASM تعریف میشود، و از آنجائیکه اصولا ساختار + کدنویسی در این اسمبلر نسبت به سایر اسمبلر ها مانند GASM,TASM برای + پردازشگر های Intel در نحوه صرف دستورات تفاوت های عمده ای دارد، + ولی... + </p> + <br /> + <a href="https://vrgl.ir/XejRX"></a> + </li> + <li style="font-size: 18px"> + <a href="https://vrgl.ir/XejRX" + ><b>معرفی پکیج Excludable در لاراول</b> + </a> + <p> + در برخی از پروژه‌ها شما می‌خواهید که مثلا تعدادی از محصولات یا + مقالات سایت شما توسط کاربران عادی قابل رویت یا حتی جستجو نباشد و فقط + تعداد خاصی از اعضا (مثلا فقط ادمین‌ها) بتوانند آنها را ببینند. خب + برای پیاده سازی این امکان شما باید کلی کد بزنید و حتی تغییراتی در + ساختار جداول دیتابیس ایجاد کنید تا بتوانید چنین فیچری را به سایت + خودتان اضافه کنید. اما حالا توسعه دهندگان لاراول با ارائه‌ی یک پکیج + خوب به نام Excludable این امکان را برای شما به راحتی فراهم کردند + </p> + </li> + </ul> + <hr /> + <p + style=" + font-size: 13px; + font-family: Samim, sans-serif; + direction: rtl; + text-align: right; + " + > + تأمین‌کنندگانِ محتوا در این شماره از خبرنامه: <b>امیرحسین بقایی،</b> + <b>امیر شکری،</b> <b>حامد سعیدی،</b> <b>وحید نادری،</b> + <b>امیرابوئی،</b> <b>امیر ابوئی</b> شما نیز می‌توانید + <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a + >. + </p> + <hr /> + <span + ><p + style=" + font-size: 16px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <img + src="https://pakat.net/wp-content/uploads/2020/02/pakat-new-logo-white_00ea005b1_2512.png" + /><br /> + ارسال شده توسط <a href="https://pakat.net/">پاکت</a> + </p> + <p + style=" + font-size: 14px; + text-align: center; + font-family: Samim; + direction: rtl; + color: #263238; + " + > + <a href="https://pakat.net/">سرویسِ پاکت</a> اسپانسرِ ارسالِ + ایمیل‌هایِ این خبرنامه است. با کدِ تخفیفِ sota10 می‌توانید از ۱۰ درصدِ + تخفیف در خرید پلن‌هایِ پاکت بهره‌مند شوید + </p> + <br + /></span> + </div> + </body> +</html> + + + +شماره خبرنامه 13.html + +urn:uuid:d702abf0-0788-2642-735f-37778c577a03 +2021-04-30T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۱۳</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبرنامهٔ Softwaretalks </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۱۳ - جمعه، ۱۰ اردیبهشت ۱۴۰۰ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>نکاتی ساده برای شروع یادگیری و درک ماهیت VPN برای مبتدی‌ها</b> </li> + <p> توی این پست وبلاگی خانم نسرین قاسمی، درباره ماهیت VPN و کاربردهاش و خطراتش توضیحات ساده و خوبی میدهند که + شاید اگر خیلی دقیق نمیدونید VPN چیه و چطور کار میکنه بهتون دید خوبی بده. (توی پست وبلاگ روی آدرس آپارات + کلیک کنید چون لینک یوتیوبشون مشکل داره گویا) <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/JuYUP_L3VXOL3oaEObjbDZTPDqqkMHy_PPNNcryDufg5PbVPHKCk8MiRwzp1XGbGNHfVzmhzWQELUuV29A_kgzix3dgQsfRMwF5KDrOBsxMqjhNh2EBG2H5-mH6VJ2A2q32hwzFBrn5A8gCueSQOCPJRZowxA1dhHd_Q8MN0w2-x-Q" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>راهنمای خرید کیبورد مکانیکی برای مبتدیان</b> </li> + <p> در این پست، نویسنده به معرفی کیبورد‌های مکانیکی پرداخته، و سپس با بررسی فاکتورهای موجود، انواع آن را + معرفی می‌کند. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/lYt7LwRG3c5lzC4tBqVTnoCz8xwhJ3PgcN65BG_D2uQlTSTDr8fUmh4QReom7T7dwUyuKLE0WInoUyouVRjJlyMpaAcq_kjNb03xwF93dUtx0NLVNSgYhxGB0yhtya0bMAYn5KAC73fyn6V-ZdEcel-PZSrGasAHYhJCoKhPObad1JfGHsamylWs-fPdiXjUCNbw4tFb9nyQ6_4oUTGecPZiMbHC6hFC" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>گیت از پایین به بالا</b> </li> + <p> مجموعه مطالبی شامل بررسی عمیق گیت و شناخت سادگی و در عین حال پیشرفته بودن این نرم‌افزار. در این مطالب + همچنین مفاهیم پایه‌ای گیت نیز با زبانی ساده توضیح داده شده است. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/Jl_oHnYXvvBA3a86LnhzEXQi12ZaYRxQUTmDVBD2z82l3qGxPfUoj9wR69ZlpsjrrBj2xz_ql2PisXUwR0emqLzPRJmtAuE_7xQUjPcRSLg1XL_ymHt7mx4ocQoTE6ocf7lcp7X_nKFbqRkZ9mVHR0MMX8E7tGmSSDtyffymPWT-nMpcivNfkWQGWsohwaqSTA" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>صفر تا صد نوشتن یک رزومه حرفه‌ای برنامه‌نویسی</b> </li> + <p> توی این ویدیو درباره نکاتی صحبت میشه که بتونیم به عنوان یک برنامه‌نویس توی سطوح مختلف کاری یک رزومه + حرفه‌ای بنویسیم و شانس خودمون رو برای استخدام شدن توی شرکت‌ها افزایش بدیم. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/RiSKJioaY1z5XpMtupYwKJ85MAeYaYhp402gMoVrCPoodm4HmvItqqOugaA3CRR99-KrN8-BrnYvIUWemnKao-Sd2G34UH9wjRFDSeq7czYvlnWvMERy_QgzXKQwNOqvlnU3Ce25O68HJNijTWJoLp2JTpr23v7Hxg" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>۱۰ تکنیک برای بهره‌وری در برنامه‌نویسی دورکاری</b> </li> + <p> در این پست نویسنده به نکاتی اشاره می‌کند تا در دوران کنونی، بهره‌وری برنامه‌نویسی در دورکاری را بهبود + ببخشیم. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/Ke_TyQRNFYSKeatvOcgbDKq_xFf2MqKVeZsPZGxLJ0xIjpHpWvFrvfCcUz8muNbPecO9wf-Qu8MBvJO11CQmKjo6y_maU9p84NNbZuwJwks46v1I76x3sQlaQrD4OlBI6_7Mb7BExv68VITwKDWe8g8lLAjfFi7MvlP2NosrDu73N4qj9TrXB5UOm4d0Hp34XnwSctg7sam0mxok1uH5dQBjvDTvngmFz5hjMvUxSn_nUUGdfTBG_gpt68_MJ9HQDnAJwDD8_OKtaQgFBQkSHw" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>چگونه secretها را مدیریت کنیم. (۷ لایه مدیریت اطلاعات حساس )</b> </li> + <p> نویسنده این پست، راه‌های نگه‌داری و استفاده از اطلاعات حساس یا Secrets توی اپلیکیشن رو از هر لحاظ بررسی + میکنه و نظر خودش رو درمورد متدهایی که معرفی میکنه، میگه. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/_KmQUNNGK3VmnH3XQSXfwcJYWNX6jnhJOZjfY7dFDre0iBiHtocEet59Csn70kMCphWZRpOgHtnUKu_JDeYucmyookSakjuIwXa8NzVy4zXGSbT-TODpI6aH4luMCj6nhhPxF6zEGB_keNHRjllA7lLEpUfQ5mreCysroxaQe-_5WZK5rnNGgwUaJKP3lXSG7i1cxAoX29etST-XJOKgMSzGpv3Y" + style="font-size:14px" sib_link_id="5">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>امیرحسین بقایی،</b> <b>حسن شهبازی،</b> <b>حامد سعیدی،</b> <b>اشکان + رحمانی،</b> <b>امیرحسین گودرزی</b> در تهیه محتوا کمک کردند. شما هم می‌توانید <a + href="https://r.t10.pktsrv2.com/mk/cl/f/A9rr6YupWDFJWfdHUgZHt7pAG_Aawowq1hhmdgRTzzDxsTqLEuzddeMJznDZsiklov5z8zz0p2TnPMrY5mXvW9Zpt4hOIhF-W8FgvRA6v5_PaQFnjISEBoexSuVp-uPVOPP6qeTH9n0QolkinXBdlcYKGugaMxZQH7tKmZWe0DWyiu1B0HN6nG4NJVoc1w" + sib_link_id="6">مشارکت کنید</a>. </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=EnBtX-OyZlsBBvMYFKpD93BM1cOjPQ1FqUDp10_4-P0dpKi1XNT0mC1qhfuExCg-cO2GkqwBh_SAlqnygoNtYP1o3rGFRx8DaI-Y9mN9uqgKNXQcEodp39txVxs02IC7uqCb2HOoAZZpEP5vliQjKrJvb30fgBURmOkzTgvvjlSGau4yCE8VNWGc55Ouq5-hWnmq8l5CVpA2FaWl9gn6WHnYrA" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/RXZnJKBrHYKLf5hV6wDmTWCoa3K21djrFHG97w-T8Wsckam1mHSeM2joJ6dWVOwWZgMmNSgw96DwcPf7UdZ8PsbXHJ9D4Rdg27xFFT9FATtkdyv5tYUTGINtrgBe5_cB8G_fEjhxah_LxTg5v7Wh" + sib_link_id="7">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/44ASiZcGSrsZAtKWHD7XZQAP4UoxZJ3Ka-T4OFfkaYD9koS-R5EDpFQUrR1CW6_w_vuLP66gxhoHGORt1ltPXWv3j88GwvwGUz_Kkul1mYqIoQmWMX2pINa9mmh8CTa32qA7MwXv9_WeNOa6g1K9" + sib_link_id="8">سرویس پاکت</a> اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف sota10 می‌توانید + از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید </p> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 11.html + +urn:uuid:613d08f7-3321-23e1-7fa7-b642ce1e3974 +2021-04-08T00:00:00+00:00 +<html> + +<head> + <title>خبرنامه شماره ۱۱</title> + <link rel="important stylesheet" href="chrome://messagebody/skin/messageBody.css"> +</head> + +<body> + <html dir="rtl" lang="fa"> + + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> + <style> + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf) format("truetype"); + font-weight: 400 + } + + @font-face { + font-family: "Samim"; + src: url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot); + src: url("https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix") format("embedded-opentype"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff) format("woff"), url(https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf) format("truetype"); + font-weight: 700 + } + + ul { + padding: 0 25px + } + </style> + </head> + + <body style="max-width:680px;margin:0 auto"> <br /><br /> + <h1 + style="font-size:25px;text-align:center;font-family:Samim,sans-serif;direction:rtl;font-weight:700;color:#263238"> + خبرنامهٔ Softwaretalks </h1> + <h3 style="font-size:18px;text-align:center;font-family:Samim,sans-serif;direction:rtl;color:#263238"> + شماره ۱۱ - پنجشنبه، ۱۹ فروردین ۱۴۰۰ </h3> + <hr /> + <ul style="text-align:right;font-family:Samim,sans-serif;direction:rtl"> + <li style="font-size:18px"><b>آشنایی با اتفاق هیجان‌انگیز این‌روزهای اکوسیستم PHP</b> </li> + <p> اگر توسعه‌دهنده PHP باشید احتمالا این‌روزها زیاد کلمه Octane به گوشتون خورده یا توی توییتر دربارش چیزی + شنیدید. اما این Octane چیه؟ این مقاله توضیحات خوبی میده. اگر نمیدونید Octane چیه و چطور باید ازش استفاده + کرد این مقاله رو حتما بخونید. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/dm9MTPTP61pibrzuZ7C6iu6Chi9UQq-DHuiEd9cqiIJIxbQWjmUP9xUFRZBauOj-37kk1WVZwEl8RlCRLSawU71beOis09MPjijawHFNxjUlqX1fAWxRvNx2ARjhQLCTZCRde9_u6RwnCSVnWoSHraLndV0xQtzPNib9VDAOymfgBh0V85KyDXYbf3OOtpbQ_pqL" + style="font-size:14px" sib_link_id="0">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>پستگرس چگونه کار می‌کند؟ جلسه یک - زندگی یک کوئری</b> </li> + <p> وقتی یک کوئری در پستگرس اجرا می‌کنید چه اتفاق‌هایی در پشت صحنه می‌افتد؟ نویسنده این مقاله چند سال در تیم + سرویس ابری پستگرس مایکروسافت کار کرده که نیاز داشت با جزییات داخلی پستگرس آشنا شود. با استفاده از این + تجربیات، جزییات داخلی پستگرس بررسی می‌شود. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/4qtq9-GcAF35ud90R18E5KOVTYcB362ycThKZ9dnevHFhtYrD3IphzsmdMrinqg6VTztpCqZuwJGIMT2oBsMCTRvyOaUu44b-ts5tk5oxlyq3NZrdpfonescWvd5pAo2pp76V792XSFenqFov4Oevp9OAQ" + style="font-size:14px" sib_link_id="1">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>صادرکننده متریک پرومتئوس بنویس!</b> </li> + <p> چرا و چگونه برای نرم‌افزاری که می‌نویسیم، صادرکننده متریک پرومتئوس بسازیم. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/hUYd1TGRyi4fjYW1Wb4m5Md3On_tLLefUPWYaqJJwD4WGZUXuVT-Wvv-CIbAcK3tONYwpZvBy8ok4VpjyDlPpIFRpA6F5nTZH_Ku05F0s3X3nFTEok0MBsHgJ9geUM9uaVYgmm0Ty09XRZ3n4Cb7tv2w5F2UlWFG_ZM3NVSudZaslwxEYYpxdIqqnsIbNaKBXFpyw4hQ" + style="font-size:14px" sib_link_id="2">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>مشکل نروژ</b> </li> + <p> نروژ، کشوری که کد اختصاری مشابه با «نه» دارد میتواند تنظیمات شما رو مختل کند. اما این تنها مشکل استفاده + از فایل‌های یَمل نیست. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/_U-ViqAE-nie66KCR_OaArrci95pCoHUwd75xusWGWRxqQt2v3Lr4k2n2yaFemhYU8RADSlLjYJPmRj-nTMQ96dP8SG-66kkgI_Qc2SI_pykGPcX0FQEG53sy1JkQYUEmgSV-twcXCbkSpNWxaaqtLjLv19mCkkIZcBxCxYhMAipokzyBeLAjQmXqQjFQrxPeaASN_2achmw0DOnKOzK" + style="font-size:14px" sib_link_id="3">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>نظارت بر عملکرد و بازدهی برنامه های اندروید</b> </li> + <p> یک توسعه دهنده اندروید هنگام تست یا رفع باگ یک برنامه باید سناریوهای بی شماری را مورد بررسی قرار دهد. + اگر برنامه منتشر شد و هنگام استفاده کاربر از برنامه مشکلی پیش آمد، ریپورتی که توسعه دهنده از آن مشکل + دریافت می کند، باید شامل اطلاعاتی مانند مدل گوشی، نسخه اندروید و... باشد. در این مطلب با Sentry آشنا + خواهید شد که می تواند به شما برای رفع سریع تر باگ های یک اپلیکیشن کمک کند. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/uZh7OgkwjKSvhfRTfUA0XazWz9XTpJSAp9JSwyc6P1tiQllzuKPIhh0NZA9Drlf6DIx9j_d6db5tCiE0cTZOKAEp04u3Q6drzdyYg0tlswHl5yNqWM0Oo_wCGTq5Bt1BtbVW5czRRwDI1-Pxy87AM87TdAwwxMCwCaSLB4MZR2cgkVdZ7AzjdHnn5Z9Hy75i0fCWh_90ZYy7Klq2n4ZVODRBNch3-kK39TDEfeEUnBkQnJfl" + style="font-size:14px" sib_link_id="4">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>راهنمای استفاده‌ی مسئولانه از ای-پی-آی‌های یادگیری ماشین</b> </li> + <p> اگر توسعه‌دهنده نرم‌افزار هستید چه معیارهایی برای انتخاب مسئولانه‌‌ی سرویس‌های یادگیری ماشین، که به وفور + نعمت و از طریق ای-پی-آی در دسترس هستند، دارید؟ تو این مطلب دو تا سرویس تحلیل احساسات مبتنی بر یادگیری + ماشین رو با هم بررسی میکنیم و نگاهی میندازیم به معیارهایی مثل سوگیری و تبعیض، حریم خصوصی و امنیت که + ممکنه در تصمیمتون به عنوان یک توسعه‌هنده برای انتخاب یه سرویس تحلیل احساسات تاثیر داشته باشه. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/yv9blczhXafJFMqi5-pisEhAx0aQmr3G7aHH850qgbMV-BivfOrSKrOnAWOeR3PKCn88tPUAhMkPqHr2mc3qqEEDyGGOadcFpMQvfGxQNs3VAuIy8IaCEAJ841J-DgdjRlTS7hits8zKS8hBWR5-3B-w" + style="font-size:14px" sib_link_id="5">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>ایراد فنی سال 2000</b> </li> + <p> نمایش سال 2000 در سیستم‌های کامپیوتری مشکلاتی رو ایجاد می‌کرد. همچنین سال 1400 هم می‌تونه یه چنین + مشکلاتی ایجاد کنه. به بهانه سال 1400 به این موضوع پرداخته شده. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/EzjKtmd1VmA-5wySX0IOMVh_rMhfvWsocPt0GqKEhKGlnWYa6R4wtsiOX56c9UQgypT91Ju2vjDadAolfGh2n_TjKj_5BzJlfnyXVP1RitMK9LaC6UKnftG3bCXZ5kJ8RbZyG9OX89wfQR2LgSxxD7jt" + style="font-size:14px" sib_link_id="6">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>gRPC اشتباهاتی مهلک ولی آسان در کانفیگ </b> </li> + <p> در این مقاله کوتاه نویسنده به تجربیات شخصی خودش در مورد اشتباهاتی که در کانفیگ کردن این پروتوکل داشته + است اشاره میکند، عواقب آن را با ذکر جزئیات بیان میکند، و راه حل های جایگزین را پیشنهاد میدهد. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/R17n-YNHbSBabUnhV5AIlT7bIaGfxqut3pAUOFbuNUePVE3c-xEix5bCkKSVEAhGnD0UmXOCg30vlUI_FC_hWzNmL7AcXsaVVQk4uUq3xT3b2mFjQ192XoUMScNpTfPLa8E3wK9o3CM_LM51CSxbH4BRFuWQZ2VbwPihQGN8PU1gJW3lTESgaOM" + style="font-size:14px" sib_link_id="7">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>مقایسه‌ی سرعت اجرای یک برنامه در زبان‌های مختلف</b> </li> + <p> نویسنده در این مقاله ابتدا یک سوال الگوریتمی را که مناسب جلسات مصاحبه‌ی شغلی است تعریف میکند. سپس سعی + میکند با استفاده از زبان‌های مختلف پاسخ را پیدا کرده، و از نظر پرفورمنس با یکدیگر مقایسه کند <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/3KQfr69g0wRvi_RKy5YUIDIf1aNGzTo0X2erzG42gGIqnY3_FDFgO_Ps8gVpzfJe37zF1_RfFXt3uZwPp6k0QVXNtlQ8M02y4aibS2ERgzc2-nd8z9uUoyrer1wUKFtHifeQtD9vnu0sVZ7qMJZbSYSl5PK6rBorrWP9armn7FS2vqFlGCHSKtMF" + style="font-size:14px" sib_link_id="8">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>راهنمای مبتدی‌ها برای نوشتن تست های ای‌پی‌آی در ابزار پست‌من</b> </li> + <p> اگر حوزه تست نرم‌افزار یا توسعه را تازه شروع کردین و به دنبال راهنمای ساده ولی کاربردی برای تست های + ای‌پی‌آی هستین این مطلب میتونه به شما کمک کنه. <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/MLna7VGKLkFrlC3R9wxI2h0JHyF4SIUSV4zx2x71QQJH-4dVygwJlJNUkJgJOP2Z3uCQODIkexLSRtdsjfu9uZfyXDyUkYbhRUJj6vVyHzJUY_PJUdBJML_Nxfh2qAKDWR-k96XfWyaLWqGWV7K4ktHsNa_780fqFIKoD2zDbIOp7LsJiJXIqW2lNlReM9yNX5DdIEkGLBK9igAz0SeJvPcwZmLJkl1W-Q" + style="font-size:14px" sib_link_id="9">مطالعه مطلب اصلی</a></p> <br /> + <li style="font-size:18px"><b>مانیتورینگ منابع سرور با Grafana</b> </li> + <p> توی این مقاله قراره باهم برای سروری که داریم به کمک Grafana و Prometheus و Node Exporter یک داشبورد + مانیتورینگ بیاریم بالا و از میزان مصرف منابع سرورمون باخبر شیم <br /> <a + href="https://r.t10.pktsrv2.com/mk/cl/f/u1dEBABpe0PqO1sRy8Pp5krRyGCXUuPfB540KxoEL_lNTKOsKNB_c1dqkEXvMA7AN4_9uQJxS3QVjGfSscrJsSfbcWhYrvpDKDuh2-A7iARq41CwRlE_qVBzALj4Vfn5IWzF8opQYEO5tbviqnklOWS4bQ" + style="font-size:14px" sib_link_id="10">مطالعه مطلب اصلی</a></p> + </ul> + <hr /> + <p style="font-size:13px;font-family:Samim,sans-serif;direction:rtl;text-align:right"> در این شماره از + خبرنامه، دوستان خوبی به نام‌های <b>امیرحسین بقایی،</b> <b>هادی مشیدی،</b> <b>ابراهیم نجاتی،</b> <b>حسن + شهبازی،</b> <b>علی کرباسی،</b> <b>رویا پاکزاد،</b> <b>امین یزدی،</b> <b>علی الیاسی،</b> <b>علی ناصری</b> + در تهیه محتوا کمک کردند. شما هم می‌توانید <a + href="https://r.t10.pktsrv2.com/mk/cl/f/rQI9PzufE9-c9n2Ngw6i1R7UGmOYq5Hn1OrvvYIW6oyOZq1N98_DuBN6DDHolrTqn7RLXIbknpWUw1r-PGQvJD11Hb3Z6lqGjllcG8HFOab5_xzwONhnMHKlw7E3vkWEOSUTiXEFriy9S9tBAAse-PAizCTAO8sNbxX73pMyIZZGUZz2zFhqJbygo8eA6pI" + sib_link_id="11">مشارکت کنید</a>. </p> + <hr /> <span> + <p style="font-size:16px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><img + src="http://r.t10.pktsrv2.com/im/130771/0815a06fabc0c395720b43526181c6e57f5941257e545c7cb50034fadc0436de.png?e=HosZhkiM1ztA2F8oDKD7vq1cYa7PyNrG9lgdQ8wv4TMakx99qLnMHVdBGFSpMriS4FfLfFefoBMbWjvXmqnnOKaR9f_YicYQOeqZYxBowSXhisknldERDrgMQY5lGHFHjpyM6dF3fx2BH0-Du5Ecq55de6GGf_yIpGLog83ID6GLIv0Rdkpkww3fDPpLgZX8RsZqz6vnDcSesUAhu7OICR1BEg" + sib_img_id="0" /><br /> ارسال شده توسط <a + href="https://r.t10.pktsrv2.com/mk/cl/f/Igm06s6CjIxpTNpY4ms1WB5YuNqb1BkwZhPEt0gpkTiCC1NVqQcUxwsdlWLJP6mj1cWHyUIGKWK1plPQgarDo091KiCCd76b2yWiztU0EqaO-sp0T2ekbEsP2reVUwbxEKskxG0IYdrWo27cUoCaHw" + sib_link_id="12">پاکت</a></p> + <p style="font-size:14px;text-align:center;font-family:Samim;direction:rtl;color:#263238"><a + href="https://r.t10.pktsrv2.com/mk/cl/f/P6NYNHfk_6GhkQPl0_cWOlmcmGfkNHrEJQ_CgPuRcfA0g_Hc4UP97iJgq5mqCSxEbG7tmGqSnHiQUzj9Paq1ZXfr_tmafkclBd6tzvOyXPQ5gCmHm-xph89GGUzQFnbdo1xrBmT6r5QnlPSnTkao8g" + sib_link_id="13">سرویس پاکت</a> اسپانسر ارسال ایمیل‌های این خبرنامه است. با کد تخفیف sota10 + می‌توانید از ۱۰ درصد تخفیف در خرید پلن‌های پاکت بهره‌مند شوید </p> + </span> + </body> + + </html> + +</body> + +</html> + + +شماره خبرنامه 48.html + +urn:uuid:d5eaa808-6952-881d-f387-59ae68fadc38 +2022-01-27T00:00:00+00:00 +<!DOCTYPE HTML> +<html dir="rtl" lang="fa"> + <head> + <title>خبرنامه‌ ‌نرم‌افزاری SoftwareTalks</title> + <meta charset="utf-8" /> + <style> + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim.ttf') format('truetype'); + font-weight: normal; + } + @font-face { + font-family: 'Samim'; + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot'); + src: url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.eot?#iefix') format('embedded-opentype'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.woff') format('woff'), + url('https://cdn.fontcdn.ir/Font/Persian/Samim/Samim-Bold.ttf') format('truetype'); + font-weight: bold; + } + ul { + padding: 0 0; + list-style-type: none; + } + ul li:first-of-type { + padding-top: 10px; + } + </style> + </head> + + <body style="max-width: 680px; margin: 0 auto;"> + <br /><br /> + <img + src="https://newsletter.softwaretalks.ir/favicons/apple-touch-icon.png" + alt="Softwaretalks Logo" + style="margin: 2.1em auto; display: block; width: 130px; border-radius: 5px;" + > + <h1 style="font-size: 25px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; font-weight: bold; color: #263238;">خبرنامهٔ Softwaretalks</h1> + <h3 style="font-size: 18px; text-align: center; font-family: 'Samim', sans-serif; direction: rtl; color: #263238;"> + شمارهٔ ۴۸ - پنجشنبه، ۰۷ بهمن ۱۴۰۰ + </h3> + <hr /> + <ul style="text-align: right; font-family: 'Samim', sans-serif; direction: rtl;"> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://doeken.org/blog"><b>اگر php کار میکنید این وبلاگ براتون میتونه جالب باشه</b></a><br/>اگر برنامه‌نویس PHP هستید، وبلاگ آقای Doeke Norg مطالب جالبی درباره پیاده‌سازی برخی الگوریتم‌ها و دیزاین پترن‌ها در PHP داره که خوندنش میتونه برای افراد تازه‌کار یا حتی با تجربه جالب باشه. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://openai.com/blog/introducing-text-and-code-embeddings/"><b>امبدینگ متن و کد در اوپن ای‌آی</b></a><br/>شرکت OpenAi به تازگی در API خود ویژگی جدیدی تحت عنوان code and text embeddings معرفی کرده که به کمک آن بحثهای text similarity راحت‌تر و سریعتر شده است. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://learngitbranching.js.org/"><b>یادگیری گیت پایه تا حرفه‌ای با یک بازی مرحله‌ای</b></a><br/>این سایت با گرافیک و بازی مرحله به مرحله کمک می‌کند که گیت را بهتر یاد بگیریم. چه در کار با گیت تازه‌کار باشید چه حرفه‌ای، این سایت می‌تواند برای شما مفید باشد. + </li> + <li style="font-size: 18px; margin-top: 30px;"> + <a style="color: black;" href="https://locomo.tips"><b>تجربه‌نگاری یک مهندس نرم‌افزار</b></a><br/>چند وقت پیش توی توییتر دیدم یک مهندس نرم‌افزار ایرانی داره تجربیات فنی کارش و زندگی خودش رو در سندی جمع‌آوری میکنه. برای من مفید بود. به نظرم میتونه برای بقیه هم نکات جالبی داشته باشه. اگر به این سبک مطالب علاقه دارید توصیه میکنم یک نگاهی بندازین بهش + </li> + </ul> + <hr /> + <p style="font-size: 13px; font-family: 'Samim', sans-serif; direction: rtl; text-align: right;"> + تأمین‌کنندگانِ محتوا در این شماره: + + <b>امیرحسین بقایی،</b> + + + <b>سینا آریا،</b> + + + <b>امیرحسین مجیری.</b> + + شما نیز می‌توانید <a href="https://newsletter.softwaretalks.ir/#contribute">مشارکت کنید</a>. + </p> + <br /> + </body> +</html> + + + \ No newline at end of file diff --git a/index.html b/index.html index 16d765e..828f69c 100644 --- a/index.html +++ b/index.html @@ -47,6 +47,8 @@ + + خبرنامهٔ نرم‌افزاریِ SoftwareTalks diff --git a/src/composer.json b/src/composer.json index 302ea5f..f99f063 100644 --- a/src/composer.json +++ b/src/composer.json @@ -10,6 +10,7 @@ "sendinblue/api-v3-sdk": "7.x.x", "wyrihaximus/html-compress": "^4.1", "amirbagh75/chalqoz": "^1.2", - "nesbot/carbon": "^2.43" + "nesbot/carbon": "^2.43", + "mibe/feedwriter": "^1.1" } } diff --git a/src/composer.lock b/src/composer.lock index 56899bb..e96ebfb 100644 --- a/src/composer.lock +++ b/src/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ba0ef59ab424f963699cd7af8e70f052", + "content-hash": "7b8cad76dfdffec9a95f124be8a06c5b", "packages": [ { "name": "amirbagh75/chalqoz", @@ -923,6 +923,107 @@ }, "time": "2013-03-25T21:54:33+00:00" }, + { + "name": "mibe/feedwriter", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/mibe/FeedWriter.git", + "reference": "f4cc748ad8700e36663f08cfeebe7fd39b00eea2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mibe/FeedWriter/zipball/f4cc748ad8700e36663f08cfeebe7fd39b00eea2", + "reference": "f4cc748ad8700e36663f08cfeebe7fd39b00eea2", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "FeedWriter\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0" + ], + "authors": [ + { + "name": "Michael Bemmerl", + "email": "mail@mx-server.de" + }, + { + "name": "Phil Freo" + }, + { + "name": "Paul Ferrett" + }, + { + "name": "Brennen Bearnes" + }, + { + "name": "Michael Robinson", + "email": "mike@pagesofinterest.net" + }, + { + "name": "Baptiste Fontaine" + }, + { + "name": "Kristián Valentín" + }, + { + "name": "Brandtley McMinn" + }, + { + "name": "Julian Bogdani" + }, + { + "name": "Anis Uddin Ahmad", + "email": "anis.programmer@gmail.com" + }, + { + "name": "Cedric Gampert" + }, + { + "name": "Yamek" + }, + { + "name": "thielj" + }, + { + "name": "Pavel Khakhlou" + }, + { + "name": "Daniel" + }, + { + "name": "Tino Goratsch" + } + ], + "description": "Generate feeds in either RSS 1.0, RSS 2.0 or ATOM formats", + "homepage": "https://github.com/mibe/FeedWriter", + "keywords": [ + "RSS 1.0", + "atom", + "feed", + "rss", + "rss 2.0", + "rss2" + ], + "support": { + "issues": "https://github.com/mibe/FeedWriter/issues", + "source": "https://github.com/mibe/FeedWriter/tree/master" + }, + "time": "2016-11-19T20:47:44+00:00" + }, { "name": "morilog/jalali", "version": "v3.2.0", @@ -5630,5 +5731,5 @@ "php": "^7.4 || ^8.0" }, "platform-dev": [], - "plugin-api-version": "2.1.0" + "plugin-api-version": "2.3.0" } diff --git a/src/modules/feed.php b/src/modules/feed.php new file mode 100644 index 0000000..19b7b51 --- /dev/null +++ b/src/modules/feed.php @@ -0,0 +1,84 @@ +. + */ + + +date_default_timezone_set('UTC'); + +require_once __DIR__ . '../../vendor/autoload.php'; +use Morilog\Jalali\Jalalian; +use FeedWriter\ATOM; +use Amirbagh75\Chalqoz\Chalqoz; + +use function Safe\file_get_contents; +use function Safe\file_put_contents; +use function Safe\preg_match; + +function findJdate(string $html): Jalalian +{ + $JMONTHS = array( + "فروردین", + "اردیبهشت", + "خرداد", + "تیر", + "مرداد", + "شهریور", + "مهر", + "آبان", + "آذر", + "دی", + "بهمن", + "اسفند" + ); + + preg_match("//s", $html, $matches); + $jdateStr = $matches[1]; + for ($i=0; $i < count($JMONTHS); $i++) { + $jdateStr = str_replace($JMONTHS[$i], sprintf("%02d", $i+1), $jdateStr); + } + $jdateStr = Chalqoz::convertPersianNumbersToEnglish($jdateStr); + $jdateStr = str_replace("99", "1399", $jdateStr); + preg_match("/(\S*) (\S+) (\S+)/s", $jdateStr, $matches); + $jdate = Jalalian::fromFormat('d m Y', $matches[0]); + return $jdate; +} + +function generateAtomFeed() +{ + $AtomFeed = new ATOM(); + $AtomFeed->setTitle(' خبرنامهٔ نرم‌افزاریِ SoftwareTalks'); + $AtomFeed->setDescription('ما مهندسایِ نرم‌افزار و علاقه‌مندانِ کامپیوتر هرازگاهی با مطالبِ جالبی برخورد می‌کنیم که می‌تونه به دردِ بقیه هم بخوره.در حال حاضر، هر پنجشنبه خبرنامه ارسال میشود'); + $AtomFeed->setLink('https://newsletter.softwaretalks.ir'); + $AtomFeed->setDate(new DateTime()); + $AtomFeed->setImage('https://twemoji.maxcdn.com/2/72x72/2709.png'); + + // Now Add html files from 'archives' directory to the feed + $dir = new DirectoryIterator(__DIR__ . '/../../archives'); + foreach ($dir as $fileinfo) { + if (!$fileinfo->isDot()) { + $newItem = $AtomFeed->createNewItem(); + $newItem->setTitle(str_replace("num", "شماره خبرنامه ", $fileinfo->getBasename())); + $newItem->setLink('https://newsletter.softwaretalks.ir/archives/' . $fileinfo->getFilename()); + $newItem->setDate(findJdate(file_get_contents($fileinfo->getPathname()))->toCarbon()); + $newItem->setContent(file_get_contents($fileinfo->getPathname())); + + //Now add the feed item + $AtomFeed->addItem($newItem); + } + } + //OK. Everything is done. Now generate the feed. + file_put_contents(__DIR__ . '/../../atom.xml', $AtomFeed->generateFeed()); +} \ No newline at end of file diff --git a/src/send_newsletter.php b/src/send_newsletter.php index 6241c14..b6e9f25 100644 --- a/src/send_newsletter.php +++ b/src/send_newsletter.php @@ -8,6 +8,7 @@ require_once __DIR__ . '/modules/archive.php'; require_once __DIR__ . '/modules/template.php'; require_once __DIR__ . '/modules/campaign.php'; +require_once __DIR__ . '/modules/feed.php'; $configs = require_once __DIR__ . '/configs.php'; use SendinBlue\Client\Configuration; @@ -107,6 +108,12 @@ printArchiveFileNameForCopyPaste($newsletterNumber, $archiveFileName); } +/* + * 9- Regenerate the Feed + */ +printf('--> Regenerate the Feed' . PHP_EOL); +generateAtomFeed(); + /* * Done. */