اجرای دائمی نرم افزار های nodejs به صورت startup , service

مقدمه

برنامه هایی که مبتنی بر nodejs نوشته می‌شوند، به طور معمول نیاز به اجرای دائمی دارند یعنی این شما باید حداقل مطئن شود یک instance یا نمونه از برنامه در حال اجرا است، برای این کار نیاز هست برنامه های شما باید به صورت سرویس اجرا بشوند برای این موضوع مشکل اساسی که پیش می آید این که سرویس شدن در هر سیستم عامل متفاوت است و برنامه هایی که بر اساس نود جی اس هستند برای startup شدن و سرویس شدن خود دارای ماهیت standalone نیستد وابسته به nodejs می باشند برای حل این مشکل پکیج هایی از جمله forever ،pm2 و … بوجود آمده اند.

PM2

با توجه به بررسی و تجربه حقیر در این زمینه PM2 بهترین گزینه برای سرویس کردن برنامه های مبتنی بر nodejs می‌باشد، لذا کاربری ساده تری دارد، قابلیت اطمینان بیشتری دارد و همچنین سیستم ماینتورینگ بسیار جالبی دارد برای کسب اطلاعات بیشتر به زبان اصلی به گیت هاب این پکیج حتما مراجعه کنید. اما ما در اینجا توضیحات لازم برای کار با این پکیج رو به شما در ادامه ارائه خواهیم کرد.اطلاعات بیشتر

مختصری از انتشار firefox quantum نسل جدید مرورگر firefox

مقدمه

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

معرفی firefox quantum

فایرفاکس کوانتم یا به قول توسعه دهنده هاش “قاتل کروم” این روزها یعنی در اواسط نوامبر 2017 در قالب نسخه 57 این مرورگر منتشر شده است و نگاه های کاربران و برنامه نویسان رو به خودش معطوف کرده است، گوگل همواره در پا به عرصه نهادن مسائل خوش شانس و متسعد بوده است، و گوی سبقت رو از رقبای خود دزدیده مثل کروم و یا اندروید مثال های واضحی در این مورد هستند، اما این ادعای فایرفاکس مبنی برای قاتل کروم در نگاه اول شاید خنده داراطلاعات بیشتر

تعویض نسخه nodejs به صورت آنی switch nodejs version

به نام دانای بر حق

پیش در آمد

در بین نرم افزار های اوپن سورس با پویای به شدت بالا یکی از مسائل شما رو درگیر خواهد کرد نسخ مختلف و آپدیت های زود هنگام هستند، که گاهی آزار دهنده میشوند، در همین حین موضوع دیگری مطرح هست که موجبات افزایش اصطکاکت رو با تکنولوژی های بسیار پویا بوجود بیاورد آن هم مخازن های لینوکس هستند، درواقع یک نرم افزار برای ورود به مخازن رسمی لینوکس ها باید open source باشد به علاوه گاهی باید stable یا پایدار باشد و در نهایت بررسی ساختاری با مخازن هست که این موضوع باعث میشود که مثلا nodejs همیشه نسخه های ماقبل و قدیمی تر در مخازن توزیع های مختلف باشد و گاهی نیز نیاز به آن حس میشود که شما نسخه خود را upgrade و یا downgrade کنید و اگر بخواهید به این نسخه یا نگارش موجود در repository های توزیع مورد استفاده خود متکی باشد عملا درد سر ساز میشود و اما حتی اگر شما از ویندوز یا mac os استفاده میکنید دوست ندارید مدام نسخه های مختلف را دانلود و نصب مجدد کنید.

نصب چندین نسخه هم زمان و سویچ کردن آنی

برای این که به این موضوع بپردازیم ابتدا حتما اطمینان حاصل کنید یک نسخه از nodejs روی سیستمون نصب هست و حتما به npm توجه داشته باشید برای اطمینان از این قضیه دستور زیر را در ترمینال و یا cmd بزنید:

و اگر یک عدد نمایش داده شد حتما nodejs و پکیج منیجر آن نصب است و در غیر این صورت شما با استفاده از این یادداشت بایستی نود جی اس را نصب کنید.

خب حال ما یک package داریم که باید اون رو به صورت سراسری نصب کنید به نام n که کار مورد نظر ما رو انجام میده دستور زیر را مانند بالا اجرا کنید:

برای نسخه های لینوکس،مک و اطلاعات بیشتر

نقدی بر عملکرد سالهای اخیر canonical در آستانه انتشار Ubuntu 17.10

مقدمه

canonical شرکتی چند ملیتی است که شخصی به نام Mark Shuttleworth یک کار آفرینی از افریقای جنوبی بنا نهاد، و اکنون به دست خانم Jane Silber به عنوان مدیر عامل هدایت میشود، مهم ترین محصول این شرکت سیستم عامل Ubuntu است که از سال 2004 ده ماه پیش از اولین انتشار ابونتو تاسیس شد. که فراز و نشیب های بسیار داشته و میشود گفت انقلاب مهاجرت کاربران به لینوکس را این سیستم عامل مدیون شرکت کنونیکال می باشد، اما عملکرد این شرکت در راستای فناوری سیستم عامل سینوسی بوده و اکنون وضعیت نا مشخصی دارد.

 

عرضه Ubuntu

در عصری دجیتالی که Ubuntu عرضه شد(در سال 2004) ، این توزیع لینوکس با رویکرد ساده کردن کار با لینوکس به خصوص در روند نصب سرسام آور آن در بین کاربران کامپیتور های شخصی با مشتق شدن از Debian تولید شد، با توجه تاخیر مایکروسافت در ارائه ویستا ( نوامبر سال 2006) و شکست ویندوز ویستا خیل عظیمی از کاربران سراسر دنیا برای رفع نیاز خود به این سیستم عامل محبوب روی آوردند در زمانی که ویندوز در قعر محبوبت قرار داشت و کاربران که از وضعیت ویندوز رضایت کافی را نداشتند، ابونتو فرصت ارائه خود را پیدا کرد و جهش عظیمی در این دوره خود را میدون عدم مدیریت صحیح تیم مایکروسافت شد. اما با آمدن ویندوز 7 این مهاجرت به Ubuntu کند تر شد ولی همچنان وجود داشت. در این حین نسخه های server و cloud آن نیز منشتر شد و برجسته ترین نسخه ابری لینوکس را با توان خود ارائه کرد و به سوی انتشار سیستم عامل گوشی های هوشمند نیز رفت و تا کنون پر مصرف ترین سیستم عامل Desktop متن باز میباشد ولی جالب این است که لینوس تروالدز توسعه دهنده هسته لینوکس یعنی پدر این سیستم عامل در کنفراسی گفت هرگز از نسخه های Ubuntu و Debian استفاده نکرده و آن را ظاهرا قبول ندارد. ولی همچنان اطلاعات بیشتر

dirty open source | اوپن سورس کثیف (روش گوگل)

به نام دانای بر حق

این نوشته اعتراضی به عملکرد کثیف گوگل در این زمینه می باشد

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

مایکروسافت به عنوان یک غول نرم افزار همانند گوگل و اوراکل در کشور ایالات متحده است و تحت قوانین همان کشور ولی هرگز مثل این دو شرکت دست به تحریم کاربران با انگیزه های سیاسی نزده است و مدام تمامی قابلیت ها از آپدیت های نرم افزاری تا تمامی نرم افزار ها در استور خود را در اختیار همه کاربران بدون تبعیض قرار داده است و این کار مایکروسافت بسیار ستودنی است.

اما بزرگترین شرکت اینترنتی که داعیه دار بزرگترین سیستم عامل متن باز موبایل جهان اندروید است یعنی گوگل از تحریم های همه جانبه علیه کاربران ایرانی کم کاری نکرده است، از دانلود برخی برنامه ها از استور google play گرفته تا بستن مستندات و بخش های سورس کد ها به روی ایرانیان که بسیار برای امثال من  که توسعه دهنده  ام دردناک است.

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

Google believes that open source is good for everyone. By being open and freely available, it enables and encourages collaboration and the development of technology, solving real world problems.

این کلمه for everyone خیلی قشنگ است ولی شرکت گوگل لطفا بنویس for every one except Iranian people اینگونه حداقل به جای دروغ حقیقت را نوشته اید، پرچم دار code.google.com پذیرای هزاران پروژه اوپن سورس می باشد حتی اجازه خواندن صفحات را به ما ایرانیان نمیدهد چه برسد به دانلود پروژه ها، بستن مستندات اندروید به روی ایران کمترین لطف شرکت گوگل در حق کاربران ایرانی بود.

بهترست به بخشی از باید ها  نرم افزار آزاد از طرف بنیاد آزاد نرم افزار توجه کنیم: (منبع)(منبع اصلی)

 

۵. بین افراد و گروه‌ها تبعیضی گذاشته نشود

اجازه‌نامه نباید بین افراد یا گروه‌ها تبعیضی بگذارد.

۶. هیچ تبعیضی در نوع استفاده از نرم‌افزار وجود نداشته باشد

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

۷. توزیع اجازه‌نامه

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

 

ویا تعریف نرم افزار آزاد: ( منبع)

  • نرم‌افزار باید شامل کد منبع باشد و این کد منبع را باید بتوان تغییر داد و مجدداً منتشر کرد.
  • مجوز نباید در برابر افراد یا گروه خاصی تبعیض قائل شود.
  • مجوز نباید کاربر را برای رسیدن به یک هدف خاص محدود کند.
  • مجوز نباید مختص به یک محصول خاص باشد.
  • ….

 

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

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

معرفی ادیتور فوق العاده atom editor | اتم

بسم رب الشهدا

مقدمه

یکی از دغدغه های هر برنامه نویس یک ادیتور خوب است npp یا همون notepad++ یکی از بهترین ادیتور های سالهای پیش بود به مراتب sublime نیز در نوع خودش ادیتور خوب و مورد قبولی بود اما به نظر من نسل جدید ادیتور ها با atom به صورت متن باز opensource در حال انقلاب هستش، گاها پیش میاد که میپرسن یک ادیتور سبک در حد npp در لینوکس چی هستش پس اکنون در مورد atom با هم صحبت کنیم تا با این editor کم نظیر بیشتر آشنا بشیم. از vscode مایکروسافت هم تو همین زمینه ها میشه یاد کرد که مثل اتم قابل قبول هستش.

رویکرد اتم

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

Atom is a text editor that’s modern, approachable, yet hackable to the core—a tool you can customize to do anything but also use productively without ever touching a config file.

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

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

ویژگی های بارز Atom

اگر در مورد این ویژگی ها بدون اغراق بخواهیم صحبت کنیم میتونیم از موارد زیر نام ببریم:

  • مستقل از سکوی بودنش برای تمامی سیستم عامل های Desktop مثل ویندوز، لینوکس و MacOSX قابل دسترس می باشد
  • دسترسی به package manager یعنی مدیریت پکیج های نصب شده به سادگی در سیستم و قابلیت ساخت پیکیج آسان
  • autocompletion هوشمند که به صورت سریع در دسترس و با قابلیت تشخیص هوشمند
  • فایل منیجر قابلیت جستجو و نمایش درختی فایل ها در ادیتور سریع و در دسترس
  • قابلیت بخش بندی تکه های صفحه و چند قسمت کردن ادیتور
  • قابلیت اعمال تم های مختلف و …

مزایای Atom

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

  • open source بودن و اطمنیان از این که توسعه آن هرگز متوقف نخواهد شد و ۱۰۰٪ رایگان استفاده میکنید
  • package manager این ویژگی منحصر به فرد اتم است که دارای پیکج منیجر مانند استور ها میباشد و قابلیت این را میدهد درون خود نرم افزار به جستجو و نصب پکیج های خود اقدام کنید و از آن لذت ببرید.
  • مستقل از سکو بودن برعکس npp که فقط مخصوص ویندوز است
  • دارای code template است سرعت برنامه نویسی را افزایش میدهد
  • شبکه بندی و قسمت قسمت کردن بخش های IDE
  • قابلیت چرخیدن در پروژه و فایل ها و فولدر ها حتی فایل های زیپ و آرشیو
  • سبک بودن و بالا آمدن سریع
  • ساپورت ورژن کنترلر به صورت خیلی روان و GUI در خود editor
  • قابلیت اعمال تم های متخلف dark و light و … دارای هزاران تم اوپن سورس برای هر سلیقه ای
  • قابلیت اتصال به terminal سیستم عامل
  • قابلیت استفاده بهینه برای تمامی زبان های رایج opensource و افزودن ابزار کمک حال assistant برای آنها با یک کلیک
  • قابلیت سفارشی سازی 100% نرم افزار
  • قالبت اتصال به گیت هاب و انجام کارهای git hub از درون نرم افزار
  • استفاده از بستر گیت هاب برای پکیج ها که باعث میشود نه تحریم باشیم نه فیلتــر باشد که به راحتی به اهداف برسیم

اما ویژگی دیگر این ادیتور پیش بینی اشکالاتی که در طول کار با این ادیتور ممکن پیش بیاد به تصویر زیر توجه کنید:

مثلا اگر خطای رخ بده پیش بینی error و ارجاع دادن شما به سمت یک موضوع در github میتونه شما رو کمک کنه.

 

یکی از ویژگی های بارز این زمینه مثلا استفاده از UI ها برای گیت هستش مثلا به package git-time-machine توجهاطلاعات بیشتر

نصب webmin سرور Ubuntu برای هاستینگ

به نام دانای بر حق

مقدمه

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

آماده سازی سیستم عامل

برای آماده کردن Ubuntu خود دستورات زیر رو تاییپ کنید تا مخازن مربوط به این پکیج به شما اضافه بشه:

دستور و در ترمینال یا ssh باید وارد کنید

 

و بعد در خط انتهایی این نوشته رو اضافه میکنید:

توجه داشته باشید آسیبی به سایر خطوط نزنید

برای ذخیره کردن Ctrl+x بزنین و بعد دکمه y به معنی اطلاعات بیشتر

اجرای هم زمان nodejs در کنار apache2 در سرور php

به نام دانای بر حق

مقدمه

یکی از سوالاتی که ذهن کسانی که با node.js کار میکنند رو در گیر میکنه استفاده هم زمان در کنار سرور هایی که روی اونها apache نصب هستش و مشکل دقیقا زمانی شروع میشود که شما دوست دارید هر دو بر روی پورت 80 اجرا بشوند و چرا که express.js  نیز همواره قصد داره یه پورت جدید رو شنود کنه و در کنار آدرس وبسایت مثلا :8080 نمایش داده میشه، برای رفع این مشکل باید چه کاری کنیم؟

 

راه حل ها

در اینجا ۲ راه حل اساسی برای نمایش هر دو سرور در پورت 80 و یا 443 وجود دارد که هر دو رو راه حل مبتنی بر proxy میباشد تا این مشکل برطرف شود:

فعال کردن پروکسی بر روی آپاچی که توضیح آن را در ادامه میدهیم

فعال کردن پروکسی در node.js که شما رو اطلاعات بیشتر

معرفی فونت (قلم) VazirCodeX

بسم رب الشهدا

یکی از دغدغه برنامه نویسان استفاده از فونت مناسب در IDE می باشد من خودم پیش از این با راهنمایی های استاد عزیز SadeghPM از فونت VazirCode استفاده میکردم ولی اشکالی که این فونت داشت عدم ساپورت emoji در IDE بود بنا بر این تصمیم گرفتم در این فونت تغییراتی رو اعمال کنم تا هم حالت mono بودن اون حفظ بشه همه کارکتر های زبان شیرین پارسی رو به دقت ساپورت کنه و هم Emoji ها رو در IDE نمایش بده تا توسعه دهنده گان عزیز پارسی زبان از این فونت در IDE شون استفاده کنند و لذت ببرند.

 

برای دانلود فونت به مخزن زیر در github مراجعه کنید:

با تشکر از SadeghPM و تیم Fontforge

 

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

مقدمه

آپاچی معروف ترین و اولین وب سرور دنیا بوده است که سالهای سال است روی اکثر پلت فرم های موجود کار میکند و  راندمان خوب بهتر از IIS و ضعیف تر از نسل های جدید مثل nginx  همیشه در بالاترین جایگاه قرار داره از نظر استفاده دارد.

در کارکرد آپاچی

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

این نامه گردان اصلا با متحوای نامه شما کار نداره.
آدم گیری هم هستش اشتباه آدرس بدی یا بد خط باشی خبری از جواب صحیح نیست
ولی خیلی دقیق هستش
کمی هم تنبل هستش

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

callback و بازگشت تابع در nodejs javascript

به نام دانای بر حق

 

مقدمه

به یاد دارم زمانی که nodejs رو شروع کردم یکی از چیزهایی که منو به معنای واقعی کلمه اذیت کرد بازگشت مقادیر در توابع بودش اگر اشتباه نکنم یک روز کاری کامل کل فضای سایبر رو بالا پایین کردم تا به نتیجه مطلوب رسیدم. حالا یه کم وقت اضافه پیدا کردم تو عیدی گفتم این مورد رو به منتشر کنیم  تا اگر پارسی زبان عزیزی دوست داشت با nodejs کار کنه درگیر این مورد اذیت کننده نباشه.

 

نکته اول تو این مورد ما چیزی به نام retrun نداریم مثل خوده js که در مرورگر استفاده میکنید به اون معنی که باهاش آشنا هستید.

واما:

نکته دوم به جاش باید از callback استفاده کنید پس باید چهارچوب مفهومی که توی یادگرفته قبلی داشتین رو بذارین کنار.

 

callback چیست؟

به یاد دارم اولین باری که با این مفهوم برخورد کردم در RCE بود که با مفهوم TLS callback  آشنا شدم واسم خیلی عجیب و جالب بود، حالا کار این TLS callback چی بود؟ این یه تابع بود که اطلاعات بیشتر

معرفی چندین برنامه کاربردی در لینوکس قسمت اول

به نام یگانه دانای هستی

مقدمه :

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

 

برنامه   Pidgin

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

  • AIM
  • Bonjour
  • Gadu-Gadu
  • Google Talk
  • Groupwise
  • ICQ
  • IRC
  • MSN
  • MXit
  • SILC
  • SIMPLE
  • Sametime
  • XMPP
  • Yahoo!
  • Zephyr

طرز استفاده از این برنامه خیلی ساده است و آدرس https://www.pidgin.im/ و کم حجم کاربردی هستش

 

برنامه kerita

یک برنامه ویرایشگر عکس بسیار شبیه به فوتوشاپ با قابلیت های بسیار و نصب آسان هستش که توسط بنیاد KDE طراحی و برنامه نویسی شده به نقل از  ویکی پدیا:

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

سایت این برنامه : https://krita.org/en/

 

برنامه yEd

برنامه ای بسیار قوی و کاربردی برای کشیدن فلوچارت و UML و … که نیاز شما نسبتاطلاعات بیشتر

نوشتن یک ربات تلگرام کامل در 50 دقیقه-‌فیلم آموزشیnodejs

به نام دانای بر حق

غولی به نام تلگرام واقعا کمر به فلج کردن سایر وسیله های ارتباطی بسته، تقریبا یک سال و نیم پیش نحوه نوشتن ربات رو به زبان پایتون در این نوشته مطرح کردیم که بازخورد بسیار خوبی داشت ولی حالا قصد داریم در 50 دقیقه یک ربات کامل تلگرام به با زبان javascript با بستر nodejs رو با هم بنویسیم، به شخصه از زمانی که با نود جی اس آشنا شدم  کار کردن با زبان های دیگر برام لذت قبل رو ندارند جاواسکریپت واقعا منو اغنا و ارضا میکنه و اما این ربات آموزشی چه کار میکنه:

 

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

 

  • دریافت پیام
  • پاسخ پیام
  • نمایش دکمه های پاسخ
  • مخفی کردن دکمه ها
  • ارسال عکس
  • ارسال فایل های سندی یا document
  • تعریف session و detect کردن مراحلی که کاربر در آن ها حضور دارد.
  • و برخی نکات کلیدی

ما در اینجا از لینوکس نسخه Ubuntu استفاده کردیم، شما میتونید معادل اون رو تو ویندوز یا mac osx انجام بدین، نحوه نصب پکیج هم مطرح میشه و این که چگونه یک ربات در botfather بسازیم!

شما رو به دیدناطلاعات بیشتر

دانلود تنها یک پوشه خاص از github

به نام خدا

کوتاه و مختصر :گاهی اوقات پیش میاد که نیاز هست یه پوشه خاص از یه پروژه گیت هابی رو دانلود کنید ولی حجم پروژه مثلا 200 مگابایت هستش و موفق به دانلود شدن نمی شید و این برای من قبلا عذاب آور بود و حالا ابزار برای دانلود فقط پوشه خاصی از گیت هاب بدون توجه به تحریم های خراجی و داخل میسر میشه

 

برای این کار آدرس پوشه یا فولدر مورد نظر را را تایپ در سایت زیر وارد کنید و لذت ببرید:

 

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

 

موفق باشید و سربلند

PhpDebugBar

maximebf/debugbar برای slimframework

اگر قصد داشتن یک نوار دیباگ کامل رو در برنامه نویسی Php داشته باشین maximebf/debugbar یکی از بهترین گزینه هاست.

اینجا نحوه نصب برای SlimFramework از طریق بسته کمکی kitchenu/Slim-DebugBar رو توضیح میدیم:

۱-بسته رو از طریق composer نصب میکنیم:

۲-به عنوان یک سرویس دهنده بسته رو ارایه میدیم به اسلیم:

۳- دیباگبار میتونه با پکیجهای دیگه مثله monolog و pdo هم ارتباط برقرار کنه و اطلاعات دیباگ این پکیج هارو در اختیارتون بزاره:

  • برای monolog  (فرض میکنیم monolog رو به عنوان یک نیازمندی به فریمورک اسلیم به نام logger معرفی کردیم) :

  • برای Pdo و نمایش اطلاعات ارتباط با دیتابیس:

  • برای نمایش اطلاعات Eloquent  هم میتونیم با به دست اوردن شی Pdo مربوطه اطلاعات دیتابیس رو بدست بیاریم(فرض میکنیمEloquent رو به عنوان یک نیازمندی به فریمورک اسلیم به نام db معرفی کردیم):

phpdebugbar

مدل درختی ( والد فرزندی) در دیتابیس های no-sql مثل mongodb

به نام دانای بر حق

مقدمه

فک کنم در حدود سه سال پیش بود در مورد مدل کاردینالیتی در دیتبایس های sql base صحبت کردیم در این مبحث که بازخورد خوبی داشت ، اما به قول صادق دیتابیس های اسکیوالی توسط ریاضی دانان طراحی شده و دیتابیس های nosql توسط برنامه نویسان، به شخصه از موقعی که با no-sql آشنا شدم حالم از دیتابیس های کلاسیک بهم میخوره و ولی به موقع دقیق تر و قشنگ تر در مورد no-sql ها من یا سایر x های 4xmen صحبت میکنیم و اما یکی از بحث هایی که در پایگاه داده ها مطرح هستش ارتباط هستش این ارتباط گاهی به صورت پدر و فرزندی یا مادر فرزندی میباشد به عکس زیر نگاه کنین تا بریم در مورد بحث صحبت کنیم:

 

در این مبحث فرض شده است شما با دیتابیس های کلاسیک و nosql آشنایی لازم و کافی را دارید

مقایسه و توضیحات

این مدل مدلی درختی میباشد در اصطلاح یا tree model در برنامه نویسی شما در تصویر بالا یک head به نام book  میبینید و زیر مجموعه programming را داراست در زیر مجموعه آن Databases , Languages می باشد و …

حال اگر این رو میخواستیم در دیتابیس های sql base طراحی کنیم بایستی جدولی به شکلاطلاعات بیشتر

۱۰ تصور نادرست در مورد شغل برنامه نویسی

آرزوی داری که برنامه‌نویس کامپیوتر بشی، اما فکر می‌کنی برای این کار مناسب نیستی؟ در این مطلب دلایلی را بیان می‌کنیم که چرا این دیدگاه اشتباه است. ( این مطلب اینقدر ارزنده بود که بازنشرش دادم)

افسانه #۱ :برای تبدیل شدن به یک توسعه دهنده باید خیلی باهوش باشید

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

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

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

اگر شما می‌دانید که چطور با بقیه ارتباط برقرار کنید، شما می‌توانید برنامه‌نویسی را یاد بگیرید.


افسانه #۲: برای من خیلی دیر است که برنامه‌نویس شوم

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

افزودن یک پسوند جدید در netbeans

بدون مقدمه

Netbeans هر روز در حال گسترش و روند صعودی خودش رو طی میکنه و پلاگین های  زیادی براش نوشته میشه اما گاهی تکنولوژی از پلاگین نویس ها جلو میزنه، خب مثال فایل های jade اگر باهاش کار کرده باشین پلاگین داره اخیرا نصب این پلاگین یه پیام میده پروژه با نام pug داره توسعه داده میشه پس حالا باید پسوند های .jade به .pug تغییر کنه حالا دوتا مشکل بوجود میاد برای توسعه دهنده یکی syntax highlighter موجود رو پسوند pug کار نمیکنه و فایل نمونه توی project inspector  نیست که بشه از روش نمونه سازی کرد پس میریم برای حل این مشکلات با این مثال عرض شده:

 

افزودن فایل جدید با پسوند pug  و کارایی jade:

اطلاعات بیشتر

devdoc.io

سرزمین داکیومنت های برنامه نویسان – DevDocs.io

امروز میخوایم یکی از دشواری هایی (دوشواری ؟ دوشواری نداریم اینجا !) که همیشه برنامه نویسان باهاشون درگیرن رو حل کنیم.

خب شروع میکنین به طراحی و برنامه نویسی مثلا یک وب سایت. یه سوال Php پیش میاد … میریم به  http://php.net/manual یا نهایتا به ورژن آفلاینش سر میزنیم. سوال در مورد یه attributeدر html پیش میاد…جاوا اسکریپت و به همین منوال و اصلا هرچی که هست! چی میشد همه این اسناد و راهنمایی ها یه جا بودن و به روز هم میشدن خودشون؟ خب اگه تو مرورگر هم بودن که بهتر. اصلا افزونه هم بود واسه ادیتورها مثله sublime text و … که چه بهتر. اصلا میشد آفلاین هم استفادش کرد… بیخیال بریم سر اصل مطلب 😉

راه حل  http://devdocs.io هست… با تمام ویژگی های بالا که گفتیم.

devdoc.io

devdoc.io

devdocs به تعریف خودش انواع مختلف داکیومنت ها رو به صورت بسیار سریع – مرتب و قابل جستجو در اختیارتون میزاره. یکی از بهترین ویژگی ها هم قابلیت آفلاین هست که هر تعداد اسناد در زمینه های مختلف بخواین براتون دانلود میکنه و آفلاین در اختیارتون قرار میده. در ضمن منبع باز هم هست. به سایتش برین و لذت ببرین 😉

معرفی kloxo یا lxadmin – کولکسو – نحوه نصب نسخه جدید Kloxo-MR

kloxo-mr

مقدمه

kloxo به نظر من یکی از کم دغدغه ترین و کم هزینه ترین سامانه های کنترل وبسرور هستش، لذا هم اوپن سورس هستش و هم در نهایت بسیار منابع کمتری مصرف میکند و همه چیز تموم هستش و کم و کسری نداره همه چیز رو حتی در اندازه های cpanel هستش ولی خب تجاری نیست که به قدرت اون برسه، ولی در اصل خودش از بهترین هاس، وقتی نام kloxo یا lxadmin به میون میادش یاد خاطره تلخ خودکشی مدیر توسعه پروژه اش به خاطر اون باگ های کذاییش زنده میشه، خیلی دردناک بود خودکشی این انسان شایسته ولی خوب تعهدش رو نسبت به سیستمش نشون میداد پس وقتی داریم از کلسکو یاد میکنیم این عقبه متعهد رو به خاطر اطلاعات بیشتر