نوشتن پکیج لاراول – قسمت دوم

نوشتن پکیج لاراول – قسمت اول

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

پیشنهاد می‌کنم مطالعه‌ش کنید و شاید این پکیج هم به درد بخوره

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

خب برای کسایی که حوصله خوندن لینک‌های فوق رو ندارن یا زبان‌شون ضعیفه یه راه میان‌بری هست که در ادامه توضیح می‌دم: ادامه خواندن “نوشتن پکیج لاراول – قسمت دوم”

آیین انجام کار

بری پتیس (Bre Petis) این بیانیه را در وبلاگش نوشت:

  1. سه حالت بودن وجود دارد: نداشتن، اقدام و اتمام کار.
  2. بپذیرید هر چیزی مثل یک پیش‌نویس است. کمک می‌کند آن را به انجام برسانید.
  3. هیچ مرحله ویرایشی وجود ندارد.
  4. تظاهر به اینکه می‌دانید چه کاری انجام می‌دهید تقریبا شبیه این است که واقعا می‌دانید چه کاری انجام می‌دهید، پس بپذیرید که می‌دانید چه کاری انجام می‌دهید، حتی اگر نمی‌دانید و کارتان را انجام بدهید.
  5. احمال کار نباشید. اگر بیشتر از یک هفته برای اجرای یک ایده صبر می‌کنید، رهایش کنید.
  6. منظور از انجام شدن، تمام کردن نیست. بلکه انجام دادن کارهای دیگر است.
  7. به محض اینکه انجامش دادید، می‌توانید کنارش بگذارید.
  8. به کمال‌گرایی بخندید. خسته‌کننده است و مانع انجام کارتان می‌شود.
  9. افرادی که دست‌هایشان کثیف نیست در اشتباه‌اند. انجام کار درست‌تان می‌کند.
  10. شکست نیز انجام کار به حساب می‌آید پس اشتباه کنید.
  11. خراب کردن نوع متفاوتی از انجام دادن کار است.
  12. اگر ایده‌ای دارید و در اینترنت منتشرش می‌کنید، شبیه یک کار انجام شده به حساب می‌آید.
  13. انجام دادن یک کار، محرک‌ کارهای بیشتر است.

برگرفته از کتاب مهره‌ی حیاتی اثر ست گادین ترجمه علیرضا خاکساران

نوشتن پکیج لاراول – قسمت اول

داشتم صحبت‌های ایمان غفوری رو تو یوتیوب می‌دیدم که اینجا خونم به جوش اومد! نوشتن پکیج لاراول !

واقعا برام زور داشت رضا امیری ۸۲ ای بتونه پکیج بنویس و من هنوز درگیر تصمیم برای نوشتن یا ننوشتن یک پکیج باشم!

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

برای همین دست به کار شدم و لیستی از مشهوترین و بهترین پکیج‌هایی که می‌شناختم رو روی پروژه جدید لاراول ۸ نصب کردم و در اینجا در اختیار شما نیز قرار دادم.

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

laravel/ui  بستری مناسب برای احراز هویت با فرانت‌های مختلف در لاراول

laravel/livewire  بستری برای دوری از پیچیدگی‌های فرانت و بستری آجاکس یا ای جکس برای بکندی ها

ادامه خواندن “نوشتن پکیج لاراول – قسمت اول”

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

هرس درخت انگور

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

تصویر درخت هرس نشده انگور
تصویر درخت هرس نشده انگور

تصویری که در بالا می‌بینید، یک درخت هرس نشده انگور هست. این درخت به صورت لم داده شده به خاک کاشته شده و البته روش‌های دیگر کاشت درختان انگور هم وجود داره ولی من اسم این روش رو، خاکی می‌ذارم. ادامه خواندن “یک روز مفید با هرس کردن درختان انگور”

نمونه دیگر ELT معرفی (PipelineWise)

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

در این پست قصد دارم نمونه دیگری از این نوع نرم‌افزار را خدمت‌تان معرفی نمایم.

در واقع PipelineWise و Meltano جهت آسان‌نمودن کار با singer می‌باشند و می‌توان از آنها در replicate نمودن داده‌ها از هر منبعی و به هر شکلی استفاده نمود.

جهت  نصب pipelinewise می‌توانید به راحتی  با clone کردن آن از:

https://github.com/transferwise/pipelinewise

طبق دستورالعمل نصب جلو بروید.

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

pipelinewise init –name pipelinewise_samples

 

 

Event Streaming و کاربرد آن در یکپارچگی داده‌ها (معرفی apache kafka)

فیلمی که در ابتدای معرفی apache kafka بهترین معرفی است که از سوی Tim Burglund  توضیح داده شده است. کافکا به عنوان یک event streamer گزینه خوبی برای تعریف این اصطلاح است.

فرض کنید که یک برنامه بزرگ monolith دارید که بانک اطلاعاتی بسیار بزرگی دارد. چطور می توانید آن را گسترش دهید؟ شاید به هیچ طریق!

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

 

 

DataOps با Meltano

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

یکپارچگی داده‌ها (Data Integration)

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

این ابزار اطلاعات را از این منابع گرفته و به هر صورت دلخواهی در می‌آورد.

در واقع meltano ابزار singer که tap و targets و تنظیمات آنها را مدیریت می‌نماید تا به درستی کار نمایند.

ممکن است singer این ابزار با apache kafka تشابهاتی داشته باشد. ولی تخصصی‌تر و جامع‌تر از آن به مسئله data integration پرداخته و منابع متعددی را شامل می‌شود. در صورتی که کافکا بیشتر در داخل برنامه‌ها و با منابع محدودی از داده‌ها می‌تواند به کار آید مگر اینکه رابط کاربری‌ش وجود داشته باشد یا نوشته شود.

در کل ابزار data integration به نوعی جهت data replication نیز به کار می‌روند و از این حیث نمی‌توان کافکا را جزو این ابزار حساب کرد و همان تخصصی که در event streaming دارد بهترین معرفی برایش می‌باشد.

منبع

شروع کار با meltano

وقتی singer را تنظیم کردید و از کامل بودن خط لوله (pipline) خود در انتقال داده‌ها مطمئن شدید meltano وسط آمده و به شما کمک می‌کند singer را مدیریت نمایید.

جهت هم‌نوا یا orchestrate نمودن ملتانو می‌توانید از airflow بهره بگیرید تا در تناوب‌های زمانی متعدد آن را اجرا نمایید.

نصب با docker

طبق منبع این نوشته می‌توانید روال نصب ملتانو رو پیگیری نمایید و برای نصب فقط به ذکر چند دستور برای اجرای آن توسط داکر اکتفا نموده و سراغ تنظیمات آن می‌روم:

docker pull meltano/meltano:latest
docker run -v $(pwd):/project -w /project meltano/meltano <args>

تنظیمات meltano

به زودی…

منبع

 

 

 

شروع کار با express

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

ولی با ورود nodejs دنیای بکند نیز به روی جاوااسکریپت باز شد.

یکی از چارچوب (framework)های مشهور node، اکسپرس (expressjs) می‌باشد.

حالا چرا js و چرا node و چرا express؟

برای این سوال من تنها یک جواب دارم و آن کسب تجربه و بالابردن رزومه است. شاید کسی که تا به حال php کار می‌کرده یا laravel هیچ نیازی به چند شاخه پریدن یا برداشتن تمرکز خود نداشته باشد. ولی در موقعیت‌هایی مخصوصا در ایران، که توضیحات نمی‌خواهد و همه به آن واقف هستند، باید در چند تکنولوژي دستی در کار داشته باشیم.

با خودم عهد بسته‌ام هر چیزی که یاد می‌گیرم در وبسایت شخصی خود با دیگران به اشتراک بگذارم. برای همین لازم دانستم این آموزش رو قبل از meltano هر چند خیلی کم منتشر نمایم و بعد به سراغ کار بعدی بروم.

شروع کار با express

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

آخرین نسخه node

می‌توانید از git هم برای نگهداری کدها و نسخه‌بندی آن کمک بگیرید.

در یک پوشه جدید، خط فرمانی اجرا کنید و این دستور را تایپ نمایید:

npm init

npm install express

همین. پوشه node_modules حاوی نیازمندی‌ها و خود express ظاهر خواهد شد.

اما چگونه کد بزنیم.

یک برنامه کوچک با express

در شاخه اصلی index.js را با مشخصات زیر پر کنید:

import Express from "express"
const app = Express();
const port = 3000;
app.get("/", (req, res) => {
res.send('Hello world');
})
app.listen(port, () => console.log("listening on port" + port))

خط اول فریمورک express را به فایل وارد می‌کند.

خط دوم یک شیء جدید از express می‌سازد. حال می‌توانید با مستندات express از قابلیت‌های آن استفاده نمایید.

به طور مثال در ادامه کد یک مسیر ایجاد کرده‌ام که در آن یک پیغام سلام دنیا را در صفحه نشان می‌دهد.

برای نمایش می‌توانیم در خط فرمان دستور زیر را بزنید:

node index.js

بر روی پورت ۳۰۰۰ صفحه وبی فعال می‌باشد که سلام دنیا را نمایش می‌دهد.

 

 

 

 

 

 

 

T

مشکل ورود به وردپرس پس از به روزرسانی به نسخه 5.7

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

 

شاید برای شما هم اتفاق افتاده باشد که بعد از به روزرسانی به نسخه 5.7 وردپرس برای ورود به مدیریت نیاز به تعمیر وردپرس پیدا کرده باشید.
بعد از جستجو راه حل‌های مختلفی در این لینک پیدا کردم. منتهی به نظر من راه حل زیر از همه کاربردی تر بود که فکر کردم انتشار آن برای شما هم مفید باشد:

ادامه خواندن “مشکل ورود به وردپرس پس از به روزرسانی به نسخه 5.7”

داکر docker برای همه

کارگاه آموزشی داکر ( docker)

یکی از به روز ترین مفاهیم مورد استفاده در توسعه نرم افزار و سوار کردن آن روی سرورها ظرف ها یا داکر docker است.

ظرف container چیست؟

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

جواب سوال شما به صورت کوتاه این است که در سیستم عامل لینوکس  که دارای یک هسته و هسته لینوکس هزاران قابلیت و بسته است از نسخه 2.6.24 cgroup  را اضافه کرد. این قابلیت امکان محفظه سازی به لینوکس می‌دهد. کاری که lxd و docker و دیگر container ها انجام می‌دهند.

چرا برای همه

از فلسفه وجودی داکر docker که بگذریم واقعا چرا داکر به درد همه می‌خورد.

با یک مثال ادامه می‌دهم. فرض کنید  بخواید چند خط کد در هر زبانی برای دانشگاه، محل کار و … آماده کنید و بخواهید خروجی آن را ببینید.

به غیر از لوازم کدزنی (ویرایشگر متن یا IDE، منابع و دانش فنی) که این روزها همه حتی وکلا نیز با آن درگیر هستند. (در بحث قراردادهای هوشمند که با blockchain انجام می‌شود) نیاز به بستری برای کامپایل و یا تفسیر کدها و نمایش آنها دارید.

به جای اینکه برای هر زبان و هر کاری بستر آن را آماده کنید، داک را نصب کرده و از ظرف های مختلف یا image های آن استفاده کنید. وب سرور می‌خواهید؟ nginx یا apache را از داکر بگیرید. کدهای python دارید. داکر docker مخصوص پایتون را بگیرید. جاوا؟ ruby؟ .net؟ لینوکس و …

فقط داکر را نصب کنید و هر ظرفی نیاز دارید را استفاده نمایید. خوبی داکر docker این است که هر وقت کارتان تمام شد می‌توانید imageها  را پاک کنید.

داکر در production

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

زودتر ثبت نام کنید

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

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