منبع اصلی نوشتار زیر در این لینک قرار دارد

ساخت مخزن آفلاین برای YUM

شاید نیاز داشته باشید برای نصب پکیج‌ها از مخازن آفلاین درون DVD توزیع خودتون استفاده کنید و یا شایدم برای نصب پیش‌نیازهای اوراکل نیاز به نصب پکیج‌هایی داشته باشید و تو سایتتون امکان دسترسی ماشین به اینترنت رو نداشته باشید و اگه هم داشته باشید با مشکلاتی رو به رو باشید مثلاً استفاده از VPN یا Proxy که اگه توزیعتون اوراکل لینوکس هم باشه برای دسترسی به مخازن آنلاین اوراکل کارتون دو چندان میشه

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

مرحله اول

اولین کارمون اینه که از DVD توزیع دایرکتوری مخازن رو در مسیری لوکال کپی کنیم

بعد از mount‌دیسک چه به صورت خودکار یا با دستور زیر

mount -t auto /dev/dvd /mnt

یا ماونت به صورت مستقیم از روی iso دیسک

mount -o loop /path/to/iso /mnt

ما باید دایرکتوری Packages رو توی مسیری لوکال که مجوزهای کافی برای خوندن و نوشتن رو داریم کپی کنیم:

[root@primary Desktop]# cp -R /mnt/Packages/ .
[root@primary Desktop]# mv Packages/ dvd

ادامه مطلب

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

ایجاد یک مخزن محلی برای CentOS

از جمله مزیت‌های سیستم‌های گنو/لینوکس این هست که برای نصب برنامه‌ای، دیگه لازم نیست بریم توی اینترنت دنبال فایل نصبش بگردیم، کافیه از توی همون سیستم مخازنی راه‌دوری معرفی شده برای این منظور رو بگردیم. امّا گاهی بنا به دلایلی لازم هست که کار جستجو یا نصب از یک مخزن محلی مانند یک حلقه‌ی DVD […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

راه اندازی یک مخزن در Git

به نام اهورامزدای پاک همانطور که از عنوان مشخص است در این قسمت قصد داریم یک مخزن (Repository) برای مدیریت پروژه هایمان در Git ایجاد کنیم. برای ایجاد یک مخزن اول باید یک دایرکتوری ایجاد کرده و سورس پروژه را کپی کنیم. یا به دایرکتوری سورس پروژه برویم . دستور git init : اگر دستور…

Continue Reading

نوشته راه اندازی یک مخزن در Git اولین بار در گشتاسب مظفریان – GMozafarian پدیدار شد.

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

نصب و تنظیم مخازن آفلاین برای لینوکس

برنامه apt-cacher-ng یک برنامه جهت راه اندازی مخازن آفلاین برای سیستم ها موجود در شبکه است. روش کار این برنامه براساس proxy و cach کردن بسته ها می باشد به این صورت که یک سیستم به عنوان سرور برای این برنامه در نظر گرفته شده و مابقی سیستم ها با انجام تنظیماتی از این سرور […]

The post نصب و تنظیم مخازن آفلاین برای لینوکس appeared first on دست نوشته های یک تازه کار.

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

انتخاب خودکار مخزن مناسب

سیستم خودکار انتخاب مخزن دبیان که قبلا در آدرس http.debian.net در دسترسی بود به زیر ساخت اصلی debian.org به آدرس httpredir.debian.org منتقل شد. این سرویس اجازه می دهد تا ۴۰۰ mirror دبیان از طریق یک آدرس در دسترس باشند. در زمان استفاده مخزن از روی محل شما، توع IP و دسترس پذیری سرویس انتخاب می … ادامه خواندن انتخاب خودکار مخزن مناسب
ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

نحوه ایجاد یک repository جدید

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

http://mghaffari.blog.ir/post/72

نصاب برای ما یک repository پیش‌فرض به نام ORCL ایجاد می‌کند ولی ممکنه سیستم ما آنقدر enterprise باشه که بخواهیم یک repository دیگر هم به سیستم اضافه کنیم.

نکته: با داشتن ۲ repository حافظه RAM شما به شدت اشغال خواهد شد.

در ویندوز به مسیر زیر مراجعه می‌کنیم:

Satrt: All Programs: Oracle – OraDb11g_home1: Configuration and Migration Tools

برنامه Database Configuration Assistant را اجرا می‌کنیم

و یا در run عبارت dbca را نوشته و OK می‌کنیم. همچنین در لینوکس نیز می‌توانید با اجرای dbca در شل برنامه را بالا بیاورید.

با اجرای این برنامه به گزینه‌های زیر بر می‌خورید:

Create Database = ایجاد یک دیتابیس جدید
Configure Database Options = پیکربندی اجزای یک دیتابیس موجود
Delete Database = پاک‌کردن یک دیتابیس به همراه تمام متعلقات آن
Manage Templates = مدیریت و یا ساخت یک قالب
Manage Pluggable Databases = ساخت، پاک‌کردن یا خارج کردن یک دیتابیس از حالت pluggable

بعد از انتخاب Create Database بر روی گزینه‌ی Advanced Mode کلیک می‌کنیم:

در صفحه‌ی بعد Database Templates به شما نمایش داده می‌شود که در این صفحه باید مدل دیتابیس جدید خود را مشخص کنید که دیتابیس جدید شما تو کدوم از حالات زیر قرار دارد:

General Purpose or Transaction Processing
Custom Database
Data Warehouse

در صفحه‌ی بعد باید Database Identification دیتابیس جدید خود را مشخص کنید، در اینجا ما نام دیتابیس جدید خود را tehran.ir می‌گذاریم:

اگر می‌خواهید دیتابیس جدید خود را به Enterprise Manager (EM) Cloud Control وصل کنید اطلاعات موردنظر را به درستی وارد کنید:

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

نکته: هر کدام از دیتابیس‌های ایجاد شده یوزرهای خودشان را دارند از آنجا که هر دیتابیس Instance مخصوص به خودش را دارد.

نکته: اگر از قبل یوزر سیستم‌عاملی برای اوراکل ساخته شده باشد فقط کافی است پسورد یوزر را در قسمت مربوطه (Oracle Home User Password) وارد کنید.

نکته: اگر پسورد سوزر سیستم‌عاملی اوراکل را به درستی وارد نکنید با پیغام خطای زیر مواجه می‌شوید:

در قسمت بعد باید listener دیتابیس جدید خود را مشخص کنید:

در این قسمت باید مشخص کنیم که دیتابیس جدید ما در چه حالتی می‌خواهد با فایلها کار کند. به صورت File System یا به صورت ASM در هر ۲ صورت باید تنظیمات مورد نظر خود را به درستی انجام دهید:

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

نکته: می‌توانید برای دیدن متغیرهای محلی ساخته شده بریا مسیرهای می‌توانید بر روی گرینه‌ی File Location Variables کلیک کنید.

در این قسمت اگر میخواهید sample schema بر روی تیک آن کلیک کنید و یا اگر می‌خواهید اسکریپت SQL ای را در دیتابستان import کنید از طریق گزینه مورد نظر اقدام به این کار کنید:

نکته: اگر برای یادگیری و تمرین دیتابیس جدید را ایجاد می‌کنید بهتر است تیک sample schema را فعال کنید چون در تمامی مثال‌های اوراکل در داکیومنت‌ها از جداول این schema برای آموزش استفاده شده است.

http://stackoverflow.com/questions/2080874/sample-database-schema-for-oracle

در tab کناری می‌توانید نرم‌افزار Database Vault را که برای محدودکردن دسترسی راهبران پایگاه داده (DBA) به محتوا و داده‌های کسب و کار ، طراحی شده است فعال و مدیریت کنید:

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

در این قسمت می‌توانید فضای SGA و PGA را تنظیم کنید، می‌توانید تیک AMM را بزنید تا به طور خودکار اوراکل فضای SGA و PGA را اختصاص دهد.

در Tab Sizing در صورت اجازه سیستم‌عامل می‌توانید سایز بلوک‌های ذخیره شده را مشخص کنید. همچنین می‌توانید حداکثر تعداد پردازشی که سیستم‌عامل برای این دیتابیس مجاز به اجرای آن است را مشخص کنید:

در Tab Character Sets می‌توانید با انتخاب Use Unicode از پشتیبانی Unicode در سطح دیتابیس خود استفاده کنید:

در قسمت National Character Set نیز می‌توانید با انتخاب UTF-8 از پشتیبانی UFT-8 در سطح رکوردهایتان اطمینان حاصل کنید.

در Tab Connection Mode نیز می‌توانید نوع معماری دیتابیس خود را مشخص کنید:

در این قسمت حتماً گزینه‌ی Create Database را تیک‌دار می‌کنیم:

اگر می‌خواهید تنظیمات شما به صورت یک template ذخیره شود تنظیمات مربوطه را انجام دهید.

و اگر می‌خواهید تنظیمات شما به صورت یک فایل script ذخیره شود از گزینه‌ی مربوطه استفاده کنید.

در این قسمت ریز تمام تنظیمات انجام شده قابل مشاهده است بهتر است یک پرینت از این لاگ تنظیمات را در سازمان خود نگه دارید:

(همچنین اگر نیاز به بازنگری تنظیمات دیتابیس خود دارید به عقی بازگشته و تنظیمات مورد نظر خود را تغییر دهید.)

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

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

لذت برنامه نویسی: مهاجرت از svn به git

اینم یه تجربه پراکنده دیگه! در محل کار فعلی یکی از اتفاقاتی که بخاطر پیگیری‌های من عملیاتی شده استفاده از سیستم مدیریت نسخه‌هاست. بخاطر نبودن یک سیستم متمرکز مدریت نسخه‌ها برخی از همکارا روی کامپیوتری خودشون svn داشتن و یکی از مراحل این عملیاتی شدن مهاجرت اون repository ها به همراه سابقشون به git که سیستم […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

ایجاد کنترلرهای منعطف در لاراول با استفاده از Repository‌ها

repository ها در لاراول

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

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

class PostController extends BaseController {
public function getIndex()
{
$posts = Post::all();
return View::make('post.index', compact('posts'));
}

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

مشکل کجاست؟

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

یکی دیگه از مشکلات هم برمیگیرده به زمانی که بخواهیم نوع دیتابیسمونو عوض کنیم. مثلن بخواهیم از mongoDB به جای Mysql یا هر نوع دیتابیس از نوع Sql، استفاده کنیم. خب، توی استفاده از انواع Sql دیگر مثل SqlServer یا Postgesql نباید مشکلی باشه و نیازی نیست کدمونو تغییر بدیم ولی اگر به mongoDB بخواهیم کوچ کنیم مجبوریم تمام قسمت‌های کدمونو بازنویسی کنیم که این به دور از اصول توسعه سریع و تمیزه.

راه حل چیه؟

یکی از بهترین راه‌حل ها استفاده از Repository ها برای جدا کردن مدل‌ها از کنترلر‌هامون و مدیریت Dependency Injectionهاست. خب اول باید ببینیم Repository چی کار می‌کنه؟ Repositoryها میان یه واسطی میشن به بخش دیتابیس و کنترلرهامون و مثل یه تونل و فیلتر عمل می‌کنن تا ما از یک نوع کدنویسی و استاندارد برای ارتباط با پایگاه‌های داده اعم از (Redis, Sql, NoSql) استفاده کنیم.

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

اگر به واژه رابط یا واسط توجه کرده‌باشد درمی‌یابید که Repository چیزی نیست جز interfaceها. بله، ما به کمک یکی از امکانات شی‌گرایی برای حل این مشکلات استفاده می‌کنیم.

حالا کد بالا رو می‌خواهیم بازنویسی کنیم:

ابتدا یک Repository برای Post ایجاد می‌کنیم:

interface PostRepository{
public function find($id, array $columns = array('*'));
public function all(array $columns = array('*'));
}

سپس میاییم یک کلاس دیگر که از این interface ارث برده را ایجاد می‌کنیم: (توجه داشته باشید تمام کلاس‌هایی که از interfaceها implement می‌شوند باید تمام متدهایی که در interface نام برده شده‌اند‌ را داخل خودشون پیاده‌سازی کنند:

ما یک کلاس برای کار با انواع دیتابیس Sql ایجاد می‌کنیم و همونطور که میدونید برای این کار از کتابخونه Eloqunet لاراول استفاده می‌کنیم:

class EloquentPostRepository implements PostRepository {
public function find($id, array $columns = array('*'))
{
return Post::find($id, $columns);
}
public function all(array $columns = array('*'))
{
return Post::all($columns);
}
}

حالا کنترلرمونو بازنویسی می‌کنیم:

class PostController extends BaseController {
public function __construct(PostRepository $post)
{
$this->post = $post;
}
public function getIndex()
{
$posts = $this->post->all();

return View::make('post.index', compact('posts'));
}
}

همونطور که میبینید دیگه کنترلر ما براش فرق نمیکنه که از چه نوع دیتابیسی استفاده کنه. ما به راحتی می‌تونید کلاس مربوط به اونو بنویسیم و با استفاده از Ioc Container لاراول، اونو به عنوان مدلمون معرفی کنیم.

چیزی که تو این پست نوشتم یه خورده خورده کاری داره مثل bind کردن کلاسمون به interface تا بتونیم تو پروژه‌هامون ازش استفاده کنیم که به صورت تفصیلی تو پست‌های آینده در موردش صحبت می‌کنم. فقط میخواستم یه دیدی از این کار داشته باشید.

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

ایجاد کنترلرهای منعطف در لاراول با استفاده از Repository‌ها

اگر با فریمورک‌های مختلف مثل laravel کار کرده باشید، اینو می‌دونید که نوشتن یه وب اپلیکیشن یا یه پروژه میتونه خیلی راحت‌تر از زمانی باشه که میخواهید از پایه با کتابخونه‌های خودتون بنویسید. یکی از مزیت‌های مهم استفاده از فریمورک‌ها، مستندات قوی و جامعه پشتیبان اون‌هاست که بهشون قدرت میده و شما هم می‌تونید از […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

ایجاد مخازن RPM اختصاصی برای CentOS 6 و Fedora 19

وقتی یک مجموعه و سازمان امنیتی یا شرکت‌هایی که تراکنش زیادی برای پروسه‌های نصب و به روزآوری نرم‌افزارهای خود از سیستم عامل‌های بر پایه لینوکس استفاده می‌کنند، راه اندازی یک یا چند مخزن نرم افزاری لوکال و پرایویت نیاز است. این کار زمانی کاربردی‌تر میشود که آن مجموعه یا سازمان یا شرکت به دلایل امنیتی […] ادامه مطلب