krakenjs
@hesammousavi
سلام وقت بخیر
krakenjs چی هست و کاربردش چیه میشه توضیح بدین
سوال بعدیم اینه ک وقتی مانگو کانکشن رو به این صورت تعریف میکنیم یه وارنیگ میده
 setmongoconnection(){ 
 mongoose.promise=global.promise; 
 mongoose.connect('mongodb://localhost/db'); 
 }
این وارنیگ رو میده 
(node:7988) deprecationwarning: current url string parser is deprecated, and will be removed in a futur...
krakenjs یک ابزاره که ویژگی های مختلفی به پروژه expressjs شما میده . که از مستندات می تونید بفهمید چه ویژگی های رو
و در مورد warning پایینی تنها کافیه این option رو به کد زیر اضافه کنید حل میشه.
 mongoose.connect('mongodb://localhost/db',{ usenewurlparser: true });
خب! در ابتدا باید بگم که این چیزی که میگی:



> 
> نحوه گرفتن اطلاعات یک سایت در سایت خودمان
> 
> 
> 


رو بهش میگن **«کراول» (واکشی) کردن**. اینکه این چیه، اینکه چطوری میشه پیاده سازیش کرد، اینکه چه محدودیت هایی داره و .. رو در ادامه توضیح میدم.







کراول یا واکشی کردن چیست؟



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


برای این کار بیشمار کتابخونه و پلاگین وجود داره. اگه بخوام متناسب با سوال خودت بگم، پلاگین [rexcrawler](https://wordpress.org/plugins/rexcrawler/) یکی از پلاگین های محبوب وردپرسی هست دقیقا برای همین کار:




rexCrawler uses regular expressions to crawl specified websites.

Websites are saved in user-defined groups, which can then be showed on wordpress pages/posts using shortcodes.

The data crawled by rexCrawler is saved in the WP database in custom tables. Once data has been crawled, it can be inserted

into a page using the shortcode [rexCrawler]


همانطور که از توضیحات پلاگین مشخص هست، کاربرد این پلاگین واکشی صفحات وب هست و ذخیره اونا در دیتابیس که نهایتان توی `pages/posts` توسط شرت‌کاتش نمایش داده میشن. تمام این فرایند *(همانطور که از اسم این پلاگین مشخصه)* مبتنی بر ریجگس regex هست. *(ریجکس رو توی لام تا کام با برچسب `عبارات باقاعده` میشناسیم)*.



> 
> **نکته:** به عنوان یک نکته تکمیلی هم باید بگم که کتابخونه های دیگه ای هم برای زبان های دیگه وجود داره که به صورت خیلی دقیق تر و حرفه ای تر همین کار رو با عملکرد خیلی بهتری انجام میدن. مثلا کتابخونه `PHP Simple HTML DOM Parser` یکی از کتابخونه های زبان PHP است که این امکان رو به ما میده که صفحات وب رو واکشی و تجزیه کنیم.
> 
> 
> 


پروسه کرال کردن رو میشه به چند دسته تقسیم کرد:


1. **باز کردن یک صفحه وب:** که عموما در زبان برنامه نویسی PHP توسط تابع [`file_get_contents`](http://php.net/manual/en/function.file-get-contents.php) انجام میشه. یعنی تمام محتوای یک صفحه انگلیسی رو باز می کنه *([تمام دام رو]؛ دام به معنی یک صفحه وب به همراه تمام تگ های HTMLش)*.
2. **تجزیه کردن محتوای صفحه وب:** همانطور که گفته شد، تمام دام الان باز شده و ما لازم داریم که اونو تجزیه کنیم؛ این کار رو به منظور جدا کردن دیتایی که لازم داریم از توی صفحه انجام میدیم. خیلی جاها از ریجکس [regex](http://php.net/manual/en/reference.pcre.pattern.syntax.php) برای این کار استفاده می کنن. اگه هم خیلی حرفه ای بخوایم جلو بریم، از کتابخونه های DOM Parser باید استفاده کرد. مثل همون `PHP Simple HTML DOM Parser` که بالاتر گفتم.
3. **نرمال سازی اطلاعات انتخاب شده:** وقتی یک بخشی از دام رو انتخاب میکنیم، شاید یک سری دیتای اضافی هم این وسط انتخاب بشه، یا شایدم ما لازم داریم دیتای چندین بخش مختلف از صفحه رو بهم بچسبونیم تا معنی مد نظرمون ساخته بشه و خلاصه الان توی این مرحله وقتشه که تگ های اضافی رو حذف کنیم و نهایتا دیتامون رو تر و تمیز کنیم. یعنی دیتامون رو آماده کنیم برای ذخیره شدن در بانک اطلاعاتی *(دیتابیس)*.
4. **ذخیره اطلاعات:** خب تا به اینجای کار دیتای مورد نظر رو انتخاب کردیم، ترو تمیزش کردیم و الان وقت این رسیده که اونو توی دیتابیس ذخیره کنیم *(یا هرجای دیگه، مثلا توی یه فایل؛ یا حتی میتونیم همونجا بفرستیمش واسه یه API)*. برای انجام این کار هم خب توضیحات زیادی لازم نیست و یک کوئری `INSERT` هست توی دیتابیس.


پس از طی کردن 4 مرحله مذکور، دیتای مورد نظر توی دیتابیس ما وجود داره و عملا میتونیم یک ویو view بسازیم و دیتا رو نمایش بدیم و این پروسه رو به عرصه عمل برسونیم. امیدوارم که توضیحاتم یک شفافیت نسبی از قضیه رو برات ایجاد کرده باشه. 


این رو هم بگم که توی این مسیر موانع زیادی وجود داره معمولا، از جمله پروتکل های http و https برای باز کردن صفحه ای که قصد داریم کراول کنیم، یا گاها پیش میاد که اول باید (همون از طریق کد و توسط باتی که داری میسازی) توی یک صفحه ای لاگین کنی که تازه این اجازه رو داشته باشی صفحه مورد نظرت رو ببینی و که بخوای واکشیش کنی و ..! خلاصه فرایند ثابتی نیست، در وب سایت های مختلف و صفحات مختلف، تا حدی متفاوت باید عمل کرد. موفق باشی.


 کلید واژگان:


* واکشی کردن
* کراول کردن / Crawling
* تجزیه صفحات-وب / محتوا
* پارس کردن / Parsing
* ریجکس / RegEx / عبارات منظم (با قاعده)
* دام / DOM می تونید از مقاله دوست خوبم مهندس نصیری استفاده کنید
|dynamic dns یا ddns چیست ؟::http://network.itpro.ir/articles/24189/dynamic-dns-%db%8c%d8%a7-ddns-%da%86%db%8c%d8%b3%d8%aa-%d8%9f| از دیکشنری های جدید زبانشناس کمک بگیرین. معنی [killed off](https://m1.app.zabanshenas.com/v2/util/dictionary.php?dictionary=longmanen&wp=kill%20off) در لانگمن فکر کنم تا حدی مشخصه. یعنی نابود شدن. <p>راه اندازی شبکه management دلیلش مباحث امنیتی هست چون در واقعا ما می خوایم ترافیک مدیریتی رو از ترافیک معمول شبکه جدا کنیم به طور مثال کاربر آدمین به یک دستگاه telnet زد کسی بین راه نتونه به این ترافیک که یک ترافیک cleartext هست دسترسی پیدا کنه&nbsp;</p>
<p>پس شبکه management یک شبکه کاملا مجزا از ترافیک کاربران است که فقط برای ترافیک های مدیریتی مورد استفاده قرار می گیرد اما در حالت عادی ، شبکه به صورت مشترک توسط ترافیک کاربران و ترافیک مدیریتی مورد استفاده قرار می گیرد.</p>
<p>بستر ایجاد شبکه management رو هم میتونید به صورت کاملا فیزیکی پیدا سازی کنید یا براش یک vlan مجزا درنظر بگیرید روی خیلی از دستگاه ها پورت management در نظر گرفته شده</p> extension ها در حقیقت نرم افزار های کم حجم و سبکی هستند که به مرورگر گوگل کروم اضافه می شوند و به کمک آنها می توان قابلیت هایی به این مرورگر اضافه کرد یا کارایی برخی توابع آنرا ارتقا داد.  

نکته جالب این است که می توان این extension ها را به کمک فناوری های نرم افزاری معمول وب مانند  HTML, JavaScript,  , و CSS نوشت.  

منبع: developer.chrome.com * |آموزش اتصال به کامپیوترها از راه دور به وسیله remote desktop::http://virtualization.itpro.ir/articles/250|
* |مروری بر remote desktop::http://virtualization.itpro.ir/articles/406/| سلام دوست عزیز، وقتتون بخیر؛ بپرسم تا انتهای حل مشکلتان در کنارتان خواهد بود


این مشکلی که شما دارید، مربوط میشه به اعلان ها یا همون Notifiction ها که در گوشی ها هم وجود داره؛ سایتهایی که اعلان میفرستند؛ وقتی وارد سایتشون میشید ابتدا از شما پرسیده میشود که آیا مایل به دریافت اعلان هستید یا خیر، اگر تایید را بزنید که اعلان برای شما نمایش داده میشود.


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


 مرورگر فایرفاکس


زبان انگلیسی: وارد بخش Setting فایرفاکس شوید –> از سمت چپ Privacy & Security را انتخاب کنید –>در بخش Primision دنبال گزینه ای به نام Notifiction بگردید، و تنظیمات آن را باز کنید.


زبان فارسی: وارد بخش تنظیمات شوید –> حریم خصوصی و امنیت را انتخاب کنید –> از بخش مجوزها گزینه اعلان را پیدا و تنظیمات آن را باز کنید.


در هر دو صورت لیست سایت هایی که دسترسی فرستادن تبلیغ(اعلان/notifiction) بهش دادید رو باز کنید و به هر سایت که دسترسی دادید دسترسیش رو قطع کنید(اجازه دادن/Allow)


 مرورگر کروم


وارد تنظیمات شوید –> Privacy & Security را انتخاب –> سپس Site Settings –> و در انتها Notifictions را انتخاب کنید و مانند تصویر زیر به سایت هایی که دسترسی دادید دسترسی را قطع کنید:


[![](https://beporsam.ir/wp-content/uploads/2021/08/chorome-notifioction-settings.png)](https://beporsam.ir/wp-content/uploads/2021/08/chorome-notifioction-settings.png)


موفق باشید. سلام رضا عزیز،

به انجمن سون هاست خوش اومدی. :slightly\_smiling\_face:

سایت رو بررسی کردم.

از اونجایی که برای cache کردن صفحات سایت از پلاگین wp rocket استفاده میکنی، من احساسم این هست که تیک بهینه سازی تحویل css رو روشن کردی.

این حالت بارگذاری، معمولا یا با بهینه سازی تحویل css در پلاگین‌های کش ات… ما قبلا یک زیربخش برای سوالات متداول داشتیم که با افزونه وردپرس کارمی کرد. که بعد از جابه جایی سرور کلا بی خیالش شدیم. پیشنهاد من این هست که لینک بدیم از osmiran.ir به این صفحه ویکی و سعی کنیم این صفحه رو بروز نگهداریم

[fa:faq - openstreetmap wiki](https://wiki.openstreetmap.org/wiki/fa:faq) یعنی شما اگر یک سرویس خاص رو ارائه بدین پورت شما مشخص است .مثلا اگر شما سرور ftp باشی پورتت 21 است یا اگر سرور ریموت دسکتاپ باشی پورتت 3389 است، این پورت سمت سرور است اما یک پورت هم سمت کلاینت باید باز باشه که اون رندم است .مثلا از پورت 11481 وصل میشن به پورت 21 سرور ftp این پورت سمت کلاینت یک پورت رندم است...