انتقال…

17 07 2011

این وبلاگ به آدرس زیر منتقل شده است:

http://mehran.khajavi.ir/blog





تکه تکه کردن فایل ها برای دانلود همزمان با curl

25 05 2011

خیلی وقتا مثل الآن من ممکنه هر چی ابزار اتوماتیک برای یه کار دارین درست کار نده یا به هر دلیلی ازشون خوشتون نیاد!! مثل aria2c که الآن واسم فایل ها رو تکه تکه نمیکنه
مزیت curl هم اینه که اکثر پروتوکل های معروف تبادل اطلاعات رو پشتیبانی میکنه.
شما میتونید کاری که aria2 انجام میده رو به طور دستی انجام بدین یعنی به سرور اطلاع بدین که من این فایل رو از این بایت تا یه بایت دیگش رو میخوام!
با دستور زیر قسمتی از یک فایل رو دانلود میکنین (البته سرور باید قابلیت تکه تکه دادن فایل رو داشته باشه یا به عبارت دیگه لینک مستقیم باشه)
curl --range 0-199999999 -o file.part1 URL
دستور بالا میگه از بایت ۰ تا بایت ۱۹۹۹۹۹۹۹۹ رو واسم دانلود کن!
تصور کنید میخوایم یه یه فایل ۴۰۰ مگابایتی رو به ۲ تکه تقسیم کنیم و همچنین میخوایم تکه ی اول رو از سرور ۱ و تکه ی دوم رو از سرور دوم دانلود کنیم
مزیت این کار اینه که در صورت پایین بودن سرعت سرویس دهی سرور ها شما از ۲ سرور به طور همزمان برای دانلود یه فایل استفاده کردید!!
curl --range 0-199999999 -o file.part1 URL1 & curl --range 200000000- -o file.part2 URL2
پس از اتمام دانلود با cat میتونید فایل ها رو یکی کنید! (فقط ترتیب شماره زنی فایل ها رو رعایت کنید تا خطایی در الحاق کردن چند فایل اتفاق نافته)
cat file.part? > file
علامت & در دستور برای همزمان اجرا کردن دستور ها استفاده شده. قالب –range به صورت زیر هست:
میشه یه بازه تعیین کرد: مثلا واسه دانلود بازه بسته بایت a تا b
میشه عدد اولی رو ننوشت و بگیم مثلا -500 که در این حالت ۵۰۰ بایت آخر رو دانلود میکنه
یا میشه 500- استفاده کرد که از بایت ۵۰۰ تا آخر فایل رو میاره





راهنمای git قسمت دوم

6 12 2010

این قسمت دوم این راهنما هست برای دیدن قسمت اول به اینجا بروید.

توی این مدت ۲ تا کنفرانس خیلی خوب در مورد گیت که توسط google پر شده پیدا کردم که به دردتون میخوره و حتما پیشنهاد می کنم ببینید: اولیش اینجا هست که لینوس توروالدز (آغاز کننده ی پروژه ی گیت و کرنل لینوکس) صحبت می کنه دومی هم اینجا هست.

برای کار گروهی نیاز به یک سرور دارین که یه گیت رو به عنوان repository روی اون نصب کنین و بقیه ی افراد تغییرات مورد نظرشون رو روی اون بذارن. برای این کار در سرور یه فولدر بسازین و دستور زیر رو توش بزنین: git init --bare توجه کنین که برای repository حتما باید bare رو استفاده کنید.

حالا توی لوکال باید از پروژه یه clone بگیرین:به فولدر مورد نظر در لوکال بروید و دستور زیر رو بزنید: git clone ssh://USER@HOST/PATHTOGIT و پس از اتمام مراحل فایل هایی که می خواهین توی پروژه بذارین رو در همین فولدری که ساخته شد قرار دهید. سپس commit کنید و با دستور زیر اون ها رو به سرور بفرستید: git push origin master حالا به طور گروهی هر نفر از گروه می تونه از پروژه clone کنه و روی اون کار کنه. ممکنه وقتی شما اقدام به push کردن می کنین با خطای زیر مواجه بشین: ! [rejected] branchname -> branchname (non-fast forward) error: failed to push some refs to 'user@HOST:FOLDERTOGIT'

شما باید قبلا از push تغییرات رو از سرور دریافت کنین: git pull origin master

اگر طراحی وب کار میکنید و میخواین سایت هاتون رو روی وب بذارین و با git اون ها رو آپدیت کنین(البته به طور کلی اگه میخواین یه work dir بسازین که سورس کد هاتون توی سرور توی یه فولدر نشون داده بشن)مراحل زیر رو انجام بدین:

پس از این که گیت رو روی سرور نصب کردین و ریپوزیتوری را ایجاد کردید باید آن را کانفیگ کنید:

با استفاده از دستور git config مقادیر زیر را سِت کنید:

git config core.bare false
git config core.worktree /PATHTOWORKTREE/.

git config receive.denyCurrentBranch ignore

git config core.logAllRefUpdates true

PATHTOWORKTREE آدرس فولدری هست که میخواین تو سرور فایل ها قرار بگیرن مثلا /var/www/project .

مهم: به نقطه ‹.› بعد آخر خط اول دقت کنید. این نقطه فراموش نشود.

تمام تنظیماتی که انجام می دهید در فایل config درون ریپوزیتوری تان ذخیره میشود که میتوانید در صورت اشتباه انجام دادن کانفیگ آن را ویرایش کنید.

الآن باید کاری کنیم که وقتی به سرور push کردیم به طور خودکار git دایرکتوری مورد نظر توی سرور رو آپدیت کنه.

git دارای hook هایی هست که برای اعمال مختلفی از جمله وقتی push رو انجام میدیم تعریف شده. ما تنها کاری که باید بکنیم باید بریم اون hook رو دستکاری کنیم.

فایل hooks/post-receive رو در ریپوزیتوری بسازید و آن را به صورت زیر ویرایش کنید: #!/bin/sh
git checkout -f master
خوب حالا باید این فایل رو با دستور زیر executable کنیم: chmod +x hooks/post-receive الآن هر باری که به سرور push کنید دایرکتوری آپدیت میشه. فقط نکته ای که هست باید دایرکتوری مورد نظرتون وجود داشته باشه و git بتونه توش بنویسه

برای استفاده ی گیت بر روی ویندوز از برنامه ی msysgit می تونید استفاده کنید. نرم‌افزار های مدیریت گیت: برای مدیریت گیت به صورت گرافیکی نرمافزار های متفاوتی نوشته شده از جمله ی اون ها می توان به qgit , gitk, gitview اشاره کرد. این برنامه ها واسط های گرافیکی شما با گیت هستند که به راحتی می تونید تغییرات ثبت شده در پروژه رو مشاهده کنین. من توی این مقاله سعی کردم کلیات ماجرا رو بگم و یه راهنمایی مختصری کرده باشم به هر حال شما برای کار با برنامه باید کتابش رو بخونین.





راهنمای git – قسمت اول

27 08 2010

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

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

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

قبل از ادامه دادن برای دانلود برنامه به git-scm مراجعه کنید. یه کتاب خیلی خوب هم هست که در اینجا می تونید بخونیتش.
برای نصب هم می تونید از پکیج لیست هاتون git-core رو نصب کنید.
برای تعریف پروژه با خط فرمان به پوشه ی پروژه برین و دستور زیر رو بزنین:
git init

با این دستور یه دایرکتور .git توی پروژه میسازه و اطلاعات پروژه رو توی اون نگه میداره.
توی خط فرمان دستور های زیر رو بزنید:
git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL ADDRESS"
git config --global core.editor vim

خط اول و دوم که مشخصاتتون رو وارد می کنین و خط سوم هم ادیتور مورد علاقتون رو میذارین که فایل ها پیش فرض با این ادیت بشه. –global هم برای تمام پروژه های سیستم اعمال می کنه. این کار رو کردیم تا وقتی ورژنی رو ثبت می کنین به نام و ایمیل خودتون ثبت بشه.
حالا می تونین فایل های پروژه رو به مخزن با دستور زیر اضافه کنین:
git add .

وقتی فولدر یا فایلی رو در پروژه ساختین باید اون رو به مخزن اضافه کنین! نقطه ای که در آخر خط نوشتیم به این معنیه که تموم فایل های توی دایرکتوری رو به مخزن اضافه کنه. اصطلاحا اون ها رو track می کنه.
خوب حالا یه دستور در git هست به نام commit ! با commit شما تمام کار هایی رو که انجام دادین رو ثبت می کنین. به طور مثال وقتی یه قابلیت اضافه کردیم یه کامیت میزنیم و بعد کار بعدی رو انجام میدیم!‌با این کار اگه در هنگام ادامه دادن پروژه فایل ها خراب شدند به راحتی می تونیم برگردیم به حالتی که کامیت کرده بودیم.
با دستور زیر می تونین کارهایی که از کامیت قبلی تا الآن انجام دادین رو مشاهده کنین:
git status
با دستور زیر هم یه کامیت جدید میسازین:
commit -a
-a باعث میشه همه ی فایل هایی که track کرده بوده رو چک کنه ببینه چه اتفاقی براشون افتاده . دقت کنین که فایل هایی که جدید ساختین رو باید دستی با دستور add به مخزن اضافه کنین. بعد از زدن دستور بالا یه کامنت برای عمل انجام شده میذارین و از ادیتور خارج میشین.
دستور log هم تمام کامیت های ثبت شده رو لیست می کند:
git log
هر کامیتی که ثبت می کنین یه کد چند رقمی بزرگ میده که نشون دهنده ی آی دی کامیت هست! وقتی می خواهیم سیستم رو به وقتی که کامیتی رو ثبت کرده بودیم برگردونیم باید این آی دی رو در git checkout وارد کنیم:
git reset --hard COMMIT ID

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

در قسمت بعدی کمی از branch و کار با remote repository خواهم نوشت





ذهنتان را با xmind بنویسید

28 11 2009

خیلی اوقات شده بخواهید اون چیزی که در ذهنتون می گذره رو به صورت یک نقشه بنویسید؟ ولی احتمالا ابزار این کار رو نداشتین و یک کاغذ بر می داشتید و با هزار تا دردسر اون ها رو مکتوب می کردین!! و وقتی می خواستین ایده تون رو عوض کنین یک برگه جدید شروع می کردین

با برنامه ی xmind می تونین به راحتی چیزی رو که فکر می کنین رو به صورت نمودار بنویسید!! این برنامه برای انجام پروژه های گروهی و فردی و زندگی شخصی بسیار کاربرد داره ! حتی برای سمینار دادن و دسته بندی موضوعاتی که می خواهید گزارش دهید بسیار مفید و سودمند هست.

بسیاری از پروژه های بزرگ یا بهتره بگم همه ی پروژه ها اکثرا با چنین طرح هایی شروع به کار  می کنن.

برای دانلود این برنامه به http://www.xmind.net بروید.

در این سایت می تونین طرح های دیگر افراد رو هم ببینین یا حتی خودتون طرح هاتون رو به اشتراک بذارید.

 

 





آپگرید کردن کوبونتو یا اوبونتو با کامند لاین

8 11 2009

خیلی از کسایی که عشق لینوکس هستن بیشتر اوقات دوست دارن به کامند لاین ور برن تا این که کارشون رو به صورت گرافیکی انجام بدن‌! این پست هم مختص همون افراده! البته این کار برای سرور ها و… هم کاربرد داره
اول باید مخازنمون رو عوض کنیم!
فایل etc/apt/sources.list را باز کنید و تمامی خط ها را کامنت کرده و سپس مخازن جدید را به آن اضافه کنید:(لیست مخازن را از خود سایت دریافت کنید)
برای آپگرید دستور زیر را بزنید
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get dist-upgrade
حالا سیستم عامل شروع به دانلود پکیج های جدید می کند! که ممکن است چند ساعتی طول بکشد
سپس برای اطمینان از تمام شدن کار دستورات زیر رو بزنید:
sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get -f install

sudo dpkg --configure -a
سیستم را ریست کنید
خوش باشید





ساپورت رم ۴ گیگ در لینوکس ۳۲ بیتی

1 10 2009

همانطور که می دانید در سیستم عامل های ۳۲ بیتی نمی توان بیشتر از حدود ۳ گیگ از رم استفاده کرد!!‌ مثلا اگر سیستم شما دارای ۴ گیگ رم باشد سیستم عامل ۶۴ بیتی تنها قادر به استفاده از ۳ گیگ از آن می باشد .

تنها با نصب کرنل سرور بر روی لینوکستان این مشکل را حل خواهید کرد در حقیقت بعد از نصب و بازیابی مجدد سیستم  سیستم عامل از ۴ گیگ رم شما استفاده خواهد کرد
sudo sudo apt-get install linux-headers-server linux-image-server linux-server








دنبال‌کردن

هر نوشتهٔ تازه‌ای را در نامه‌دان خود دریافت نمایید.