You are here

سیاره‌ی مشهدلاگ

Best Custom Essay Assist!

دست نوشته‌های حامد - Wed, 11/01/2017 - 13:29

Best Custom Essay Assist!

Whispered Best Customized Essay Keys

In the following you’re discover a lot of hints that are helpful . In nations like the united states and the uk, essays have turned into into a important portion of an official instruction inside the sort of response questions. An essay that is financial can begin using a thesis, or it may begin using a theme.

In the event you buy essays online, it is crucial that you understand perhaps the work remains in process or has been finished. Whilst the article isn’t supposed to be more exhaustive, there ought to be judgment in the selection of points. It reveals no or little understanding of the endeavor. You’re able to find assistance!

Things You Can Not Like About How Ideal Customized Essay and Things You Will

When an article is regarded by it, producing is really only first. An article has been set in a number of means. It displays an comprehension of the job. Once you purchase an essay from us, because essay assistance given by our authors will be personalized depending upon the needs you have, you are sure to enjoy individual strategy. When you purchase an article online you will rest assured it is going to be sent so you may have time to review it before the deadline arrives. The article indicates some understanding of this undertaking. You may think that you are not proficient enough to write a process composition.

Finest Custom Essay Help!

In publishing, essays are by and large utilized beyond educational settings. The article mightn’t require a position or a position might be taken by the article but do not express rank to be supported by reasons, or so the essay might take a position however don’t sustain an position. This shows a more thorough grasp of the endeavor. It shows a weak comprehension of the endeavor. As soon as it’s a massive job, there are steps a student can choose that will help break the activity down into manageable parts. It could provide a context for discussion and requires a spot. You have simply composed a essay.

Most Useful Customized Essay Explained

However your paper that is pressing and sector-specific isalso, you’re able to depend on rates that are cheap and rates. Our essay creating organization guarantees that it will satisfy with your requirements and will undoubtedly be written according to your masterpapers.com instructions. You will be asked to speed the au thor once it has been completed. Today you could be wondering exactly what you can do to be able to greatly help us create the absolute most useful newspaper for the price that is ideal.

Essential Items of Very Best Custom Essay

Our writers offer the standard documents, as well as proofreading and editing providers. In this age, they may edit your newspaper at no cost. Choosing essay writers that are on the web isn’t a nightmare. No matter what is explained about having an online article author to write my essay, the reality remains that you can essay writer for hire find tons of features of buying your papers that are affordable out of an online business. There are claiming to furnish the greatest services and superior results every moment.

The Essentials of Best Essay Help You Can Study from Starting Immediately

دست نوشته‌های حامد - Tue, 10/31/2017 - 18:15

The Essentials of Best Essay Help You Can Study from Starting Immediately

Though an informative article is really a sizable project, there are a lot. Our informative article writing support is all around quality. The very best essay is!

The Meaning Of Best Statistics Help

When you write an article what you’re doing is making an informed effort to have a place around. An article is largely known. For that reason you’ve got an article to create. You’ve surely got to read essay beginning thoughts, hunt about these over the 21, for winning a essay contest and you will receive hundreds of ideas. Our personalized essay writing services that is cheap may be handy for every student who really doesn’t always have desire or a period to handle essays.

Want less to state, you would want to supply assist. College essay help becomes quite common today. You have attained the location if you need guidance producing an informative article on a book. In case you’ll require essay help, were prepared to check next struggle! Getting essay assistance may be considered a alternative.

Best Essay Help – Can it be a Fraud?

You will even assume of distinct matters to boost this particular essay. It might be as imaginative as you wish as if your essay communicates this particular reader the info that is ideal to function. With a broad variety of knowledge and qualifications you can be sure of a more composition every time out of our services. In just about any case that you will need to read the essay and attempt to modify such a item. In just about any instance that you want to read the following article and produce an effort to improve such a thing.

Whatever They Are You Concerning Most Useful Essay Assist Is Dead Wrong…And Here’s Why

Once your essay is planned by you and also jot down the points you’re likely to chat about on your draft, you will have plenty of points to discuss. In order to reach outcome, personalized essay writing must be done by pros. Essay producing procedure can be quite a laborious job that requires tons of campaigns, significant time and see this, even more to the point adventure.

Of instruction class, you will want to become sure since you may make it that your article can be as shiny. Once you want to buy you’re regularly delighted to feel you’re able to get assistance with article writing on line ottawa u essay assistance. An essay was defined in quite a few of means. Every single informative article has a reach of requirements in regards to the arrangement. Be sure you understand which you’ve created the one that is perfect and what is required for this essay. Take some doubts order essay on your capability to perform research papers you’ll acquire one among the essays. Finding the essay writing help is not any job.

Presenting Finest Essay Aid

After you order the essay personally, you are ready to detect this personal essay samples done due to of this web in comfort and the simplicity of some body’s house. It’s the essay assistance on the internet you could rest ensured that you have reached the perfect spot. An excellent example essay is.

Hello world. This my website!

دست نوشته‌های حامد - Fri, 10/27/2017 - 16:57

Hello world. This my website!

ارایه با موضوع موتور جستجوری توزیع‌شده یاسی

چند وقت پیش توی لاگ مشهد یک ارایه با موضوع موتور جستجوی توزیع شده یاسی (Yacy) داشتم. اسلاید‌های این ارایه رو می‌تونید اینجا ببینید و در صورت نیاز دانلود کنید.

Categories:

چجوری برای سایت the coding love‌ کانال تلگرام درست کردم

دست نوشته‌های حامد - Fri, 03/10/2017 - 19:17

سایت The Coding Love رو قبلا معرفیش کردم، یک سایت جمع و جور که گیف‌های گیکی میذاره که هرکسی از اون گیف‌ها سردر نمیاره. من هم به این سایت علاقه زیادی دارم و هر روز چکش میکنم ولی مساله‌ای که وجود داشت این بود که گاهی این سایت توی یک ساعت چندتا گیف جدید میذاشت و گاهی هم چند روز خبری نبود که یکم این مورد من رو اذیت میکرد. دیدم الآن که چند وقتیه بازار کانال‌های تلگرامی گرم شده بد نیست که بگردم و ببینم برای این سایت کانال تلگرامی وجود داره یا نه. کمی گشتم و یک کانال تلگرام تونستم براش پیدا کنم ولی این کانالی که پیدا کردم و آدرس دقیقش هم یادم نیست یک مشکل داشت و اون هم این بود که فقط لینک گیف‌های جدید رو میذاشت و باز هم نیاز بود چندتا کلیک انجام بدم و از داخل مرورگر گیف ها رو بینم که اصلا برام جالب نبود. به همین خاطر تصمیم گرفتم یک کانال درست کنم که مطالب داخلش توسط یک بات به صورت خودکار گذاشته میشه و گیف‌ها هم مستقیما داخل کانال گذاشته شده باشن و راحت ببینمشون. خب بریم ببینیم چه کارها کردم!!!

احتمالا اگه شما جای من بودین تصمیم میگرفتین از آخرین گیفی که تو سایت the coding love (از این به بعد خلاصش میکنم به tcl) گذاشته شده شروع کنین و فقط گیف‌های جدید رو اضافه کنین ولی من نمی‌خواستم این کار رو بکنم 🙂 تصمیم گرفتم اول از همه هرچی گیف تو سایت tcl‌ هست رو بذارم رو کانال و بعد از اون هم گیف های جدید رو بذارم. خب از اون جایی که یک بات قراره تو کانال پست بذاره پس اول نیاز به یک بات داریم، بات ساختن هم که کاری ندارهِ، فقط کافیه چندتا پیام به @BotFather بدیم تا باتمون ساخته بشه. چون بات قراره پشت صحنه فقط تو کانالمون پست بذاره پس اسم و توضیحات و بقیه مواردش مهم نیستن، فقط لازمه که یک بات داشته باشیم و توکنش برای این که مدیریتش کنیم. مرحله بعدی هم که مشخصه، ساخت کانالمون، کانالمون رو می‌سازیم و باتمون رو هم به عنوان مدیر بهش اضافه می‌کنیم. برای اضافه کردن بات به عنوان مدیر هم میریم تو بخش اضافه کردن ادمین جدید به کانالمون و از بخش جستجو اسم باتمون رو سرچ می‌کنیم و تمام! حالا کار اصلیمون شروع میشه، نوشته برنامه‌ای که توسط باتمون پست‌های tcl رو بذاره تو کانال! و تا یادم نرفته این نکته رو هم اضافه کنم که وقتی میخوایم با یک بات تو کانال پست بذاریم، chat_it میشه @bot_name.

 

همونطور که اول کار گفتم اول از همه می‌خوام تمام پست‌های tcl‌ رو بذارم رو  کانالی که ساختم و بعد برم سراغ پست‌های جدید. نکته جالبی که متوجه شدم این وسط این بود که تعداد صفحه های سایت tcl‌ روی ۷۷۵ ثابت مونده و صفحه آخر هم یک گیف ثابت داره که تغییر نمیکنه. بگذریم… اولین کاری که میکنم این هست که سورس هر ۷۷۵تا صفحه رو می‌گیرم و تو یه سری فایل که اسمشون از ۱ تا ۷۷۵ هست می‌ریزم تا سورس‌ها برای ادامه کار دم دستم باشن و به علاوه هر ۷۷۵تا صفحه سورسشون رو به صورت هم‌زمان می‌گیرم تا مطمئن بشم که اگه پست جدیدی در حین گرفتن سورس‌ها رو tcl‌ رفت تو سورس‌هایی که من گرفتم مشکلی ایجاد نمی‌شه و باعث نمیشه مثلا یک گیف چندبار تو سورس‌ها باشن. خب کدش میشه این (اگه واستون سواله این کدها چین، بش اسکریپت هستن):

for i in {1..775}
do
	curl "http://thecodinglove.com/page/$i" > $i &
done
wait

 

حالا که سورس‌ها رو دارم لازمه از آخر به اول تو سورس‌ها بگردم و لینک پست‌ها رو از تو سورس صفحه پیدا کنه. با یکم سر و کله زدن با ریجکس و اینجور چیزا تو سورس‌ها می‌گردم تا لینک پست‌ها رو پیدا کنم و بعد لینک‌های پست‌ها که ۴تا تو هر صفحه هست رو میدم به دستور tac تا تریتبشون برعکس بشه و آخرین لینک بیاد بشه اولین لینک تا ترتیب آخر به اول پست‌ها حفظ و بشه و در نهایت هم لینک‌های پست‌ها رو داخل فایل links.txt‌ بذاره و کدش این شد:

for i in {775..1}
do
	egrep 'class="bodytype"' $i | grep -P -o "a href.+?>" | sed -r 's/^.{8}//' | sed -r 's/.{2}$//' | tac >> links.txt
done

 

این نکته رو هم اضافه کنم که من دارم تمام این کدها رو روی یک سرور اجرا می‌کنم که فکر کنم بدیهی باشه چون واقعا اینترنت شاهکارمون پایداری درستی نداره بشه با خیال راحت روش این کدها رو اجرا کرد 😐 حالا ببینیم چندتا لینک داریم

 

اگه یه حساب سر انگشتی کنیم میبینیم که تعداد لینک‌ها باید ۳۰۹۷ باشه یعنی ۳تا بیشتر از این تعداد لینکی که الآن داریم، من هنوز دلیل اون ۳تا اختلاف رو کشف نکردم! شما پیدا کردین حتما زیر همین پست یه کامنت بذارین دلیلش رو بگین 😀 محتوای فایل links.txt لینک مربوط به پست‌ها هست که به این شکلن:

http://thecodinglove.com/post/145704378592/when-i-find-an-unexpected-workaround

بریم ببینیم چجوری میشه توضیحات هر پست و لینک گیف هر پست رو در آورد! به صورت تصادفی فهمیدم اگه آخر لینک هر پست عبارت /xml رو اضافه کنم میتونم محتویات اون صفحه رو با فرمت xml ببینم. آخ جون! با xml خیلی راحت‌تر میتونم اطلاعات لازم رو از صفحه بکشم بیرون تا اینکه بخوام تو html بگردم. خوشبختانه برای کار با xml ابزاری داریم به اسم xml_grep که از اسمش مشخصه برای چه کاریه و تو پکیج (برای اوبونتو) xml-twig-tools هست و در ادامه هم چون درخواست‌هام رو با متد get میخوام به تلگرام بفرستم نیاز به برنامه urlencode‌ هم دارم تا لینک گیف و توضیحاتش رو انکود کنم و خیالم راحت باشه برای ارسالشون مشکلی نخواهم داشت. برنامه urlencode‌ هم تو پکیج gridsite-clients هست که نصبش میکنم. موندم چرا درست یه پکیج به اسم urlencode‌ نداریم و این برنامه باید توسط یه پکیج دیگه با یه اسم عجیب نصب بشه. بریم سراغ خود کد، از داخل xml صفحه لینک فایل گیف و توضیحات رو در میارم، انکود میکنمشون و لینک درخواستی که باید اجرا بشه تا گیف رو کانال توسط بات گذاشته بشه رو به اضافه curl در اولش تو فایل dopost.sh میذارم تا بعد فایل dopost.sh رو مثل یک اسکریپت اجرا کنم و همه گیف‌ها پشت سر هم تو کانال قرار بگیرن. درباره %0A@tclunofficial هم که آخر توضیحات گیف گذاشتم بگم که %0A حکم اینتر رو داره و هرچیزی که ادامش بیاد تو خط بعدی توضیحات نوشته میشه و @tclunofficial هم آدرس کانال هست که در ادامه توضیحات هر گیف میاد.

while read -r LINK
do
	SOURCE="$(curl $LINK/xml)"
	TITLE="$(echo $SOURCE | xml_grep regular-title --text_only)"
	ENCODED_TITLE="$(urlencode $TITLE)"
	IMGLINK="$(echo $SOURCE | xml_grep regular-body --text_only | grep -P -o "(http:\/\/|https:\/\/).+?\/.+?\"" | sed -r 's/.{1}$//')"
	ENCODED_IMGLINK="$(urlencode $IMGLINK)"
		echo "curl \"https://api.telegram.org/botTOKEN/sendDocument?chat_id=@tclunofficial&document=$ENCODED_IMGLINK&caption=$ENCODED_TITLE%0A@tclunofficial\"" >> dopost.sh
done < links.txt

 

حالا کافیه فایل dopost.sh رو اجرا کنیم تا گیف‌ها برن رو کانال. من از برنامه sceen هم استفاده کردم که اگه اتصالم به سرور قطع شد باز هم اسکریپت در حال اجرا بمونه و گیف برن رو کانال و خب دستور نهایی برای اجرای اسکریپت این شد:

screen bash dopost.sh

 

بعد از کمی صبر (برای من ۳ساعت) میبینیم که کانالمون پر از گیف هست! گیف‌ها رو نشمردم و نمیدونم همشون رو کانال رفتن یا نه، امیدوارم که همشون رفته باشن.

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

http://thecodinglove.com/post/145704378592

این لینک رو تو فایل

~/.tcllastpostlink

میذارم تا همیشه لینک آخرین پست رو توی این فایل داشته باشم. بریم سراغ کد! من از rss سایت tcl که به فرمت xml‌ هم هست استفاده می‌کنم برای این که ببینم پست جدید اومده یا نه. اول از همه از داخل rss با کمک xml_grep فقط لینک پست‌ها رو میکشم بیرون، ترتیب لینک‌ها رو برعکس میکنم و لینک‌ها رو دونه دونه چک می‌کنم تا ببینم کدوم مثل لینک داخل فایل ~/.tcllastpostlink هست، از اون اون لینک به بعد میشن لینک‌هایی که مربوط به پست‌های جدید هستن و باید برن رو کانال.

POST=0
LASTPOSTLINK=$(cat ~/.tcllastpostlink)
for LINK in $(curl http://thecodinglove.com/rss | xml_grep item | xml_grep link --text_only | tac)
do
	if [ "$POST" = "0" ]
	then
		if [ "$LASTPOSTLINK" = "$LINK" ]
		then
			POST=1
		fi
	else
		SOURCE="$(curl $LINK/xml)"
		TITLE="$(echo $SOURCE | xml_grep regular-title --text_only)"
		ENCODED_TITLE="$(urlencode $TITLE)"
		IMGLINK="$(echo $SOURCE | xml_grep regular-body --text_only | grep -P -o "(http:\/\/|https:\/\/).+?\/.+?\"" | sed -r 's/.{1}$//')"
		ENCODED_IMGLINK="$(urlencode $IMGLINK)"
		curl "https://api.telegram.org/botTOKEN/sendDocument?chat_id=@tclunofficial&document=$ENCODED_IMGLINK&caption=$ENCODED_TITLE%0A@tclunofficial"
		echo "$LINK" > ~/.tcllastpostlink
	fi
done

 

 

لازم هم هست که این اسکریپت رو هر چند دقیقه یکبار اجرا کنیم تا اگه گیف جدیدی رو tcl رفته بود رو کانالمون بذاره. من فرض می‌کنم که این اسکریپت رو تو فایل به اسم poster.sh‌ذخیره کردین. بدیهیه که اول باید به اسکریپت قابلیت اجرایی بدیم و با دستور

chmod +x poster.sh

بهش قابلیت اجرایی میدیم. برای اینکه هر ۱۰ دقیقه هم این اسکریپت اجرا بشه میذارمش رو کرون تب. با دستور

crontab -e

کرون تب رو باز می‌کنم و این خط رو آخر کرون تب اضافه می‌کنم:

*/10 * * * * /path/to/poster.sh > /dev/null 2>&1

 

حالا با خیال راحت پا رو پا میندازم و این اسکریپت وظیفه گذاشتن پست‌های جدید رو کانالی که زدم و یوزرش هم @tclunofficial‌ هست رو انجام میده &#x1f642; دوتا نکته رو هم به عنوان اختتامیه کار بگم و تمام:

۱- به خاطر محدودیتی که تلگرام در حال حاضر برای بات‌ها داره اگه حجم گیفی بیشتر از ۲۰مگ باشه ارسال نمیشه که البته احتمالش خیلی کم هست و تا الآن فقط یک گیف دیدم که حجمش بالای ۲۰مگ بوده و رو کانال نرفته. البته میشه کد رو جوری درست کرد که وقتی حجم گیف بالای ۲۰ مگ باشه لینک پست مربوط به اون گیف رو بفرسته رو کانال ولی خب تا الآن فقط یک گیف دیدم که اینجوری باشه و برای اون یکی نمیصرفه فعلا بشینم کد بزنم :)))

۲- سایت tcl انگشت شمار دیده شده که بجای گیف یک عکس معمولی میذاره که کد فعلی باعث میشه اون عکس به عنوان فایل رو کانال آپلود بشه که مجددا اون رو هم میشه درست کرد ولی برای چندتا عکس در بین چند هزارتا گیف باز هم نمیصرفه کد رو تغییر بدم :)))

برنامه اینستاگرام دانلودر با بش

دست نوشته‌های حامد - Sun, 07/17/2016 - 00:06

چند وقت پیش برای استفاده شخصی خودم یک اسکریپت خیلی ساده با بش نوشتم که لینک اینستاگرام رو بهش بدم و عکس و یا فیلم رو دانلود کنه. بعد با خودم گفتم حالا که نوشتمش هرچند که خیلی سادست رو گیت هاب بذارمش شاید به درد کسی خورد. میتونین برنامه insta-dl رو اینجا تو گیت هاب ببینین. البته دوستان پروژه رو فورک کردن و امکان دانلود تمام عکس‌ها و فیلم‌های یک اکانت رو بهش اضافه کردن که کد فورک شده رو هم میتونین اینجا ببینین.

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

دست نوشته‌های حامد - Thu, 03/24/2016 - 11:11

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

 

 

سایتشون رو هم میتونین اینجا ببینین…

با کدام زبان برنامه‌نویسی شروع کنیم؟

داده‌های خام - Fri, 01/29/2016 - 13:24

اگر قصد دارید برنامه‌نویسی رو شروع کنید، به احتمال زیاد این سوال براتون پیش اومده که چه زبانی برای شروع مناسب‌تره؟ گاهی افراد تازه‌کار ماه‌ها وقت صرف این می‌کنن که یک زبان رو انتخاب کنن و برنامه‌نویسی رو شروع کنن. طبیعیه که سوالات زیادی برای کسی که می‌خواد الفبای برنامه‌نویسی رو یاد بگیره پیش بیاد. سوالاتی از قبیل این که کدام زبان «قدرت»‌ بیشتری داره؟ کدام زبان برای یادگیری «ساده‌تر» است؟ ویا کدام زبان «سرعت» بیشتری داره؟

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

/images/programming-langs-comic.thumbnail.jpg
اولین زبان برای یادگیری: زبان انگلیسی

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

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

بهترین زبان برای شروع: ...

زبان‌های زیادی برای برنامه‌نویسی وجود داره و هر کدوم از اون‌ها یک سری ویژگی‌های خوب دارن و طبیعتا یک سری مشکلات. من بهتون قول می‌دم که با بررسی مزایا و معایب این زبان‌‌ها به جای خاصی نمی‌رسیم و نهایتا لیستمون رو بتونیم برسونیم به پنج، شش زبان. همچنین نتیجه‌ی مشورت با سایر برنامه‌نویس‌ها هم که سردرگمی بیشتر بود. بنابراین باید با یک دید دیگه به قضیه نگاه کنیم. برای این کار بیاید اول از خودمون بپرسیم که «اگر زبان برنامه‌نویسی اشتباه رو برای شروع انتخاب کنم چی می‌شه؟»

/images/html-comic.thumbnail.jpg
اگر زبان برنامه‌نویسی اشتباه رو برای شروع آغاز کنم چی؟

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

هر یک از زبان‌های برنامه‌نویسی رو که انتخاب کنید، برای این منظور مناسب‌اند. ضمن این که برنامه‌نویسی که این طرز نگاه رو یاد گرفته می‌تونه سایر زبان‌های برنامه‌نویسی رو هم به سرعت یاد بگیره و ظرف چند ماه به یک زبان دیگه کوچ کنه.

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

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

۱- دوستانتون با چه زبان‌های برنامه‌نویسی‌ای برنامه می‌نویسند؟ این مهم‌ترین سوالیه که باید بپرسید. اگر اطرافیانتون هم برنامه‌نویس هستند و می‌تونن در زمینه‌ی زبان خاصی راهنمایی‌تون کنند، پیشرفت سریع‌تری خواهید داشت.

۲- برای کدام زبان منابع بیشتری برای آموزش در دسترس دارید؟ این روزها بسیاری از دانشگاه‌های مطرح دنیا در سایت‌های آموزشی از جمله کورسرا و یوداسیتی‌ کلاس‌های آموزشی خوبی در زمینه‌ی برنامه‌نویسی می‌ذارن، که بیشترشون رایگان هستن. یک مسیر رو انتخاب کنید و پیش برید.

Categories:

اسکریپت دریافت ۵۰ فیلم آخر گانول

دست نوشته‌های حامد - Fri, 11/20/2015 - 14:29

متاسفانه چند وقته که سایت yts.to تعطیل شده و تیم YIFY دیگه فیلمی رو رلیز نمیکنه. پس فعلا به نظر میاد تنها گزینه موجود برای دانلود فیلم سایت گانول هست (جای خوب دیگه‌ای سراغ دارین خوشحال میشم بگین). برای راحتی خودم یه اسکریپت نوشتم که هر یک ساعت یکبار میاد و لیست ۵۰فیلم آخر گانول رو میگیره و به همراه لینک دانلودشون میذاره توی یک صفحه تا بدون دردسر بتونم رلیزهای جدید گانول رو ببینم. در حال حاظر هم اون صفحه رو میتونین تو این آدرس ببینین.

 

کدها چون با بش اسکریپت نوشته شدن برای اجراشون حتما نیاز به یک سرور لینوکسی دارید. چون حال توضیحات اضافی ندارم، خیلی خلاصه میگم چیکار کردم، جایی مشکل بود بخش نظرات موجوده &#x1f600; اول نیاز به یک فایل دارم تا کدها رو توش بذارم، تو این فایل کدها رو میذارم:

/usr/bin/ganool

 

کدها هم این هست:

echo "" > /var/www/html/movies.html
lastup="$(date -u)"
echo "<title>Latest 50 MOVIES released by Ganool</title>" >> /var/www/html/movies.html
echo "<b>Latest 50 MOVIES released by Ganool</b></br>" >> /var/www/html/movies.html
echo "<b>This list updates every one hour</b></br>" >> /var/www/html/movies.html
echo "<b>Last update: $lastup</b></br><hr>" >> /var/www/html/movies.html
for ganoolurl in 'http://ganool.com/category/movie/' 'http://ganool.com/category/movie/page/2' 'http://ganool.com/category/movie/page/3' 'http://ganool.com/category/movie/page/4' 'http://ganool.com/category/movie/page/5' 'http://ganool.com/category/movie/page/6' 'http://ganool.com/category/movie/page/7' 'http://ganool.com/category/movie/page/8' 'http://ganool.com/category/movie/page/9' 'http://ganool.com/category/movie/page/10'
do
	for movieurl in $(wget -O - $ganoolurl | egrep "Permalink" | egrep -o "a href.+title" | sed -r 's/^.{8}//' | sed -r 's/.{7}$//')
	do
		wget -O - $movieurl > ~/.ganooltemp
		movietitle="$(cat ~/.ganooltemp | egrep "entry-title" | sed -r 's/^.{29}//' | sed -r 's/.{6}$//')"
		echo "<b>"$movietitle"</b></br>" >> /var/www/html/movies.html
		imdblink="$(cat ~/.ganooltemp | egrep -o "Info.+Release" | head -1 | sed -r 's/^.{6}//' | sed -r 's/.{8}$//')"
		echo "IMDb: "'<a href='"$imdblink"'>'"$imdblink"'</a></br>' >> /var/www/html/movies.html
		iduplink="$(cat ~/.ganooltemp | egrep idup | tail -1 | egrep -o "a href.+onclick" | sed -r 's/^.{8}//' | sed -r 's/.{9}$//')"
		if [ "$iduplink" = "" ]; then
			echo "Download From IDUP.IN: Uploading..."'</br>' >> /var/www/html/movies.html
		else
			echo "Download From IDUP.IN: "'<a href='"$iduplink"'>'"$iduplink"'</a></br>' >> /var/www/html/movies.html
		fi
                mylinkgen="$(cat ~/.ganooltemp | egrep mylinkgen | tail -1 | egrep -o "a href.+onclick" | sed -r 's/^.{8}//' | sed -r 's/.{9}$//')"
                if [ "$mylinkgen" = "" ]; then
                        echo "Download From MyLinkGen(MediaFire): Uploading..."'</br></br>' >> /var/www/html/movies.html
                else
                        echo "Download From MyLinkGen(MediaFire): "'<a href='"$mylinkgen"'>'"$mylinkgen"'</a></br></br>' >> /var/www/html/movies.html
                fi
	done
done
rm ~/.ganooltemp

 

این کد خروجیش یک فایل html به اسم movies.html هست که تو مسیر var/www/html قرار میگیره که پوشه مربوط به آپاچی هست تا بشه از طریق مرورگر بهش دسترسی داشت. برای اینکه این فایل رو بتونم روی هاست انتقال بدم یه فایل پی اچ پی تو روت هاست ساختم ساختم و این کدها رو داخلش قرار دادم (فرض میکنم اسم فایل getlist.php باشه):

<?php
file_put_contents("ganool/index.html", file_get_contents("http://server_ip/movies.html"));
?>

 

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

w3m -dump http://hamedworld.ir/getlist.php

 

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

00 * * * * ganool > /dev/null 2>&1

حالا همه چی به خوبی و خوشی انجام شده و لیست فیلم‌هامون هر یک ساعت به صورت اتومات أپدیت میشه :)

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

داده‌های خام - Tue, 11/03/2015 - 22:16

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

/images/tweetdeck_sample_ltr.thumbnail.jpg

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

/images/tweetdeck_sample_rtl.thumbnail.jpg
نصب اسکریپت

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

۱- نصب افزونه تمپرمانکی برای مرورگر گوگل کروم و یا نصب افزونه گریزمانکی برای مرورگر فایرفاکس (پس از نصب باید فایرفاکس را بسته و دوباره باز کنید).

۲- مراجعه به صفحه اسکریپت اصلاح نمایش راست به چپ توییت‌دک در گیت‌هاب، کلیک بر روی دکمه‌ی Raw و نصب اسکریپت.

نحوه کار

برای نوشتن اسکریپت از کتابخانه‌ی JQuery و یکی از پلاگین‌های اون به اسم livequery استفاده کردم. توضیح جی‌کوئری و کاربرد اون از حیطه‌ی این پست خارجه اما پلاگین livequery به درد مواقعی می‌خوره که محتوای صفحه دائم در حال تغییره و بخش‌های جدیدی به صفحه اضافه می‌شه. در مورد اسکریپت ما این پلاگین منتظر می‌مونه تا توییت‌های جدید به صفحه‌ی توییت‌دک اضافه بشن و بعد اون‌ها رو به نحوی که مد نظر ماست تغییر می‌ده.

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

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

Categories:

فیلم Citizenfour

دست نوشته‌های حامد - Sun, 10/11/2015 - 10:30

hr_Citizenfour_1

 

IMDB

Genre: Documentary

IMDB Rating: 8.1/10

MPR: R

YIFY

Ganool 1080

Ganool 720

 

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

Tomorrowland – با طعم علمی-تخیلی

بیت‌ها - Sun, 10/04/2015 - 00:01

Tomorrowland poster
بعد از دیدن Southpaw که احتمالا شما رو هم به یاد Million Dollar Baby می‌اندازد و چند فیلم نه‌ چندان خوب، هفته‌ی اول مهرِ سینماییِ خوبی نداشتم، تا اینکه وبلاگی دوباره منو یاد فیلمی انداخت به اسم Tomorrowland که مدت‌ها منتظرش بودم؛ احتمالا چون جورج کلونی توش بازی میکنه!

همان‌طور که از ظاهر فیلم و قلم‌فرسایی‌هایِ وبلاگ‌های فارسی هم برمی‌آید فیلمی‌ست که مخاطب آن، بطور خاص نوجوانان هستند و فضایی نوجوانی دارد. و به واقع هم با یک فیلم علمی-تخیلیِ تقریبا فانتزی گونه طرف هستیم. البته پس از کمی جلو رفتن قصه، که بیش از معمول طول می‌کشد(تقریبا نصف فیلم) کم‌کم شما هم ( حتی به عنوان مخاطب بزرگسالِ جدی! ) جذب فیلم خواهید شد. فیلمی که در انتها نشان خواهد داد که حرفی برایِ گفتن داشته و صرفا وقت خود را صرفِ دیدن گجت‌هاییِ جذابِ هالیوودی نکرده‌اید.

احتمالا در ابتدا، گاهی احساس خواهید کرد که روند فیلم به سمت فیلم‌هایی مثل Spy Kids پیش خواهد رفتو بعد شبیه The Terminator خواهد شد، که حداقل که امیدوارکننده‌ست.
Tomorrowland

در نهایت بعد از عبور یک سفینه فضایی از درون ایفل و گذر این سفینه از دنیای ۳ بعدی به چند بعدی! Tomorroland به شما ثابت خواهد کرد که وقت‌تان هدر نداده‌اید.

قسمت‌هایی از داستان، علامت‌سوال‌هایِ بزرگی برجای میگذارد، و با کمی دقت کم‌کاری‌هایِ یک فیلم درجه سه را هم در فیلم‌نامه متوجه می‌شوید؛ ولی به جرات می‌تونم بگم که فیلم ایده‌ای جالبی رو دنبال میکنه و در نهایت هم به خوبی این ایده رو از دل این همه زرق و برق بیرون میکشه، البته نه اونقدر قابل ستایش که ارزش ۱۹۰ میلیون رو داشته باشه، چون قبلا نولان با ۱۶۰ میلیون شاهکاری مثل Interstellar ساخته و انتظار شما رو از سینما بالا برده.

در نهایت من به این فیلم نمره‌ی ۷/۱۰ ‌رو میدم، و معتقدم جورج کلونی بازیِ قابل قبولی ارائه داد!

Mad Max: Fury Road – اگر دیوانه‌ی اکشن هستید!

بیت‌ها - Sat, 09/19/2015 - 21:38

Mad Max Fury Road

فیلم Mad Max: Fury Road از جمله فیلم‌های اکشن تابستان بود که به جرات می‌توان گفت تمام تابستان ۲۰۱۵ چنین شاهکاری به خود ندیده، و حتی کل ۲۰۱۵ چنین اکشنی! اگر دوستار فیلم‌های اکشن دیوانه‌واری هستید که حتی بعد از اتمام فیلم هم چندین دقیقه مبهوت به مانیتور خیره شوید، این بهترین انتخابی‌ست که می‌توانید داشته باشید.

من Mad Max هایِ قبلیِ جورج میلر رو ندیدم، مسلما شما هم بسیاری از فیلم‌هایی که قبل از تولدتون ساخته شدن رو ندید! ولی خیلی جالبه که کارگردانی ۷۰ ساله، چنین فیلم اکشنی بسازه، نه اینکه کارگردان‌های ۷۰ ساله نتونن اکشن بسازن و لزوما باید برن سراغ فیلم‌های فلسفی، یا مثل وودی آلن، (نیمه شب در پاریس) بسازن، بلکه ساختن چنین اکشنی، کار خیلی سختیه، فیلمی که گفته شده حدود ۱۵۰ تا بدلکار داشته، تقریبا تمام صحنه‌های اکشن واقعا در صحراهای استرالیا ( احتمالا چون جورج میلر استرالیایی هست) گرفته شده و نهایتا با کامپیوتر ویرایش شده. در مورد کارگردان چیز زیادی نمی‌دونم، فقط همین که حدود ۳۵ سال پیش اولین Mad Max رو ساخته.

Mad Max Fury Road

تام هاردی هم هرچند نمیشه گفت بهترین بازی رو ارائه داده ولی به جرات میشه گفت اونقدری هست که در ذهن شما یک مکسِ دیوانه تداعی کنه. و بعد از Charlize Theron که بازیِ قابل قبولی رو ارائه داده، شاهد شاهکاری هستیم که Nicholas Hoult از خودش به جا میزاره. به نظر من وزنه‌‌ی اصلیِ فیلم برای جذب مخاطب و موندگاریِ فیلم روی دوش Nicholas Hoult هست. Nicholas Hoult در اینجا شخصیتی هست که نیمه‌ی اول فیلم رو ضدِقهرمان هست، و نیمه‌ی دوم فیلم تبدیل به قهرمانان فیلم میشه. در واقع کسی هست که خیلی سخت انتخاب میکنه که باید کدوم طرف باشه، ولی وقتی که انتخاب کرد، تا آخر همون‌طرف می‌مونه.

از جمله ایراداتی که میشه از Mad Max: Fury Road گرفت، نداشتن داستان هست. البته معمولا فیلم‌ها یا داستان دارن و یا اکشن هستند، و بخاطر همین هم معمولا فیلم‌ها معمولی هستند و نه شاهکار، ولی Mad Max: Fury Road با وجود اینکه به هیچ وجه هدف قصه گفتن رو دنبال نمی‌کنه، با اینحال در حدِ کفایت یک فیلم اکشن داستان داره.

Mad Max: Fury Road از معدود فیلم‌هایِ اکشنی هست که من بهش نمره‌ی بالایِ ۷ میدم، فیلمی که در IMDB، نمره‌ی ۸.۳ داره.

تولید تمام پسوردهای ممکن nکاراکتری با بش

دست نوشته‌های حامد - Sun, 08/30/2015 - 00:05

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

 

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

 

فرض کنیم که میخوام تمام پسوردهای ممکن ۴ کاراکتری که با حروف الفبای کوچیک و بزرگ انگلیسی و همینطور ارقام ۰ تا ۹ میشه نوشت رو داشته باشم. کدش خیلی سادست

 

for a1 in {{a..z},{A..Z},{0..9}}
do
	for a2 in {{a..z},{A..Z},{0..9}}
	do
		for a3 in {{a..z},{A..Z},{0..9}}
		do
			for a4 in {{a..z},{A..Z},{0..9}}
			do
				echo $a1$a2$a3$a4 >> 4
			done
		done
	done
done

 

حلقه‌هاش که چیزی عجیبی ندارن و مسلما چون میخوام پسوردهام ۴کاراکتری باشن ۴تا حلقه گذاشتم و در انتها هم محتوای ۴تا حلقه در کنار هم در فایلی به اسم ۴ ذخیره میشن. و فایل ۴، ۱۴۷۷۶۳۳۶ خط خواهد داشت که هر کدوم یکی حالا ممکن خواهد بود. خب کد رو تو فایلی به اسم passgen-old.sh ذخیره میکنم و

passgen_old

 

قبل از اجرای کد همونطور که توی عکس مشخص هست از دستور time استفاده کردم تا مدت زمان اجرای کد رو هم داشته باشم! و همونطور که میبینین مدت زمان اجرای این کد ۶ دقیقه و ۵۵ ثانیه هست که عدد بزرگیه. اگه دارین با خودتون میگین ۶-۷ دقیق زمان زیادی نیست به این فکر کنین که اگر پسوردهای ۵کاراکتری رو میخواستیم این زمان حداقل ۶۲ برابر میشد و خیلی وحشتناک میشد! حالا این رو بذارید کنار اینکه الآن اکثرا از پسوردهایی استفاده میکنن که ۸ کاراکتر و یا بیشتر هست. حجم فایلی خروجی هم که اسمش ۴ هستش مشخصه و ۷۱ مگ هست. چون این اسکرین شات رو قبلا گرفتم یادم رفته تعداد خطوط داخل فایل ۴ رو بگیرم، ولی بهم اطمینان کنید، تعداد خطوطش ۱۴۷۷۶۳۳۶ هست &#x1f600; اوه! یه نگاهی هم به وضعیت سی پی یو در طول اجرای برنامه داشته باشیم با این توضیح که سی پی یو من دو هسته داره و با برنامه htop مصرف منابع رو داشتم مانیتور میکردم:

cpu_passgen_old

مشخصه که کد داره فقط از یک هسته سی پی یو استفاده میکنه. پس بریم سراغ کد دوم که خیلی باحالتره  &#x1f61b;

for a1 in {{a..z},{A..Z},{0..9}}
do
	echo "$a1" >> 1 
done
source=1
dest=2
for a in {2..4}
do
        for a1 in {{a..z},{A..Z},{0..9}}
	do
		sed "s/$/$a1/" $source >> $dest &
	done
	wait
	source=$((source+1))
	dest=$((dest+1))
done

 

حلقه اول که مشخصه چیکار میکنه، میاد تمام حروف کوچیک و بزرگ انگلیسی به همرا ارقام ۰ تا ۹ تو یه فایل به اسم ۱ قرار میده. خوشبختانه این دستور زیر یک ثانیه اجراش کار داره پس ما هم دیگه کاریش نداریم. اما بریم سراغ بقیه کد که اصل کار هست و باعث میشه سرعت اجرای کد حسابی بره بالا! ما الآن در واقع لیستی از پسوردهای یک کاراکتری داریم، برای اینکه پسوردهای دو کاراکتری رو بسازیم میایم و در آخر تمام خطوط فایل پسوردهای یک کاراکتریمون کاراکتر a رو قرار میدیم و در فایل دو میریزیم. در مرحله بعد میایم و کاراکتر b رو آخر تمام خطوط فایل پسوردهای یک کاراکتریمون قرار میدیم و در فایل دو میریزیم و الی آخر. همین کار باعث میشه که کلی سرعت کارمون بره بالا. اما چیکار میتونیم بکنیم که کد از تمام توان سی پی یو استفاده بکنه؟قبلش بگم که دو متغییر source و dest مسئول این هستند که کنترل کنند پسوردها از چه فایلی باید خونده بشن و بعد اضافه شدن کاراکتر جدید بهشون داخل چه فایلی قرار بگیرن. خطی هم که اولش با sed شروع شده مسئول اضافه کردن کاراکترا هست. اگر دقت کنین میبینین که در آخر خطش یک علامت & قرار داره و این کاراکتر میگه وای نستا تا کد قبل من به اتمام برسه و بری سراغ ادامه کد، میگه همینجوری که داری اینو اجرا میکنی برو سراغ بقیه کد و بقیه کد هم که یعنی برو ادامه کار حلقه رو انجام بده. و چون قراره که حلقه ۶۲ بار اجرا بشه و عملیات های این ۶۲ حلقه به صورت موازی انجام بشن پس نتیجه این میشه که کد ما از سی پی یویی با ۶۲ هسته پشتیبانی میتونه بکنه و حداکثر سرعت ممکن رو میتونه بگیره. و نکته‌ای که فراموشش کردم درباره خط for a in {2..4} هست. چون ما پسوردهای ۲ تا ۴ کاراکتری رو باید بسازی این حلق رو گذاشتم. اون ۲ که همیشه ثابت هست ولی ۴ رو میشه کم یا زیاد کرد. مثلا میشه بجای ۴ عدد ۱۰ رو گذاشت تا تمام پسوردهای ممکن ۱ کاراکتری تا ۱۰ کاراکتری رو داشته باشیم.

 

یه نگاهی هم داشته باشیم به دستو wait.تو حلقه‌ای که داریم بعد از آخرین باری که حلقه اجرا میشه میرسه به & و این یعنی کار رو ادامه بده در حالی که نباید ادامه بده! چون هنوز کلی حلقه در حال اجرا داریم! اینجاست که دستور wait کد رو نگه میداره تا تمام حلقه‌های قبلش اجراشون به پایان برسه و بعد بره سراغ ادامه کار. اما ببینیم نتیجه اجرای این کد روی سیستم من چی میشه! فعلا حس اسکرین شات گرفتن ندارم پس به نوشته‌هام اعتماد کنید… نتیجه کار میشه چهارتا فایل با اسم‌های 1 و 2 و 3 و 4 که داخلشنون پسوردهایی که میشه ساخت و ۱ یا ۲ یا ۳ یا ۴ کاراکتر داشته باشن قرار داره. قسمت جالب قضیه هم اینه که اجرای کد تنها ۵ثانیه زمان برد! حالا خودتون ۷دقیقه رو با ۵ ثانیه مقایسه کنید و اینکه کد از هر دو هسته سی پی یوم استفاده کرد و لود جفتشون رو برد روی ۱۰۰درصد و اگر تعداد هسته‌های سی پی یوم بیشتر میبود حتما کد سریع‌تر اجرا میشد.

 

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

 

wget http://netix.dl.sourceforge.net/project/crunch-wordlist/crunch-wordlist/crunch-3.6.tgz
tar -xvf crunch-3.6.tgz 
cd crunch-3.6
make

 

 

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

time ./crunch 1 4 -f "/home/hamed/Desktop/crunch-3.6/charset.lst" mixalpha-numeric -o "/home/hamed/Desktop/crunch-3.6/pass.txt"

 

 

اجرای برنامه ۱۳ ثانیه طول کشید که تقریبا دوبرابر کد من هست و برنامه نتونست از تمام توان سی پی یو استفاده کنه. پس همینجا با افتخار اعلام میکنم که کد من از نظر زمانی بهینه تر هست :) و حالا که از نظر زمانی بهینه تر هست پس بیایم کد رو کامل‌تر کنیم تا تمام کاراکترهایی که crunch باهاشون قادر به تولید پسورد هست رو کد ما هم بتونه باهاشون پسورد درست کنه. crunch با این کاراکترها (بعلاوه فاصله) میتونه پسورد درست کنه

0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/

پس کد رو تغییر میدم تا با تمام این کاراکترها بتونه پسورد درست کنه.

IFS=$'\n'
for a1 in {{a..z},{A..Z},{0..9},' ','!','@','#','$','%','^','*','(',')','-','_','+','=','~','`','[',']','{','}','|',':',';','"',"'",'<','>',',','.','?','&','/','\'}
do
	echo "$a1" >> 1 
done
source=1
dest=2
for a in {2..4}
do
        for a1 in {{a..z},{A..Z},{0..9},' ','!','@','#','$','%','^','*','(',')','-','_','+','=','~','`','[',']','{','}','|',':',';','"',"'",'<','>',',','.','?'}
	do
		sed "s/$/$a1/" $source >> $dest &
	done
	awk '{print $0"&"}' $source >> $dest &
	awk '{print $0"/"}' $source >> $dest &
	awk '{print $0"\\"}' $source >> $dest
	source=$((source+1))
	dest=$((dest+1))
done

 

یه چندتا توضیح کوچیک هم درباره این کد بدم. IFS رو تغییر دادم تا کد بتونه فاصله رو هم به عنوان یک کاراکتر بشناسه و در ساخت پسورد ازش استفاده کنه. اگه خواستین کاراکتر دیگه‌ای رو هم جهت ساخت پسورد اضافه کنین (من خودم چندتا حرف فارسی رو تست کردم و جواب داد) میتونین توی هر دوتا حلقه کاراکتر مورد نظرتون رو در حالی که بین ‘ ‘ قرار داره قرارش بدین. درباره دستور awk هم که استفاده کردم بگم که sed با سه تا کاراکتر / و \ و & مشکل داشت، به همین خاطر مجبور شدم به صورت جدا گانه این سه تا کاراکتر رو با awk اضافه کنم. و چون \ یک کاراکتر با مفهوم خاص هست مجبور شدم در awk سوم دوتا \ کنار هم بذارم تا بفهمه که فقط باید یک \ در آخر خطوط اضافه کنه.

 

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

24 CPU
65536MB MEMORY
700 GB STORAGE (SSD)

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

passgen_in_action

 

همونجور که مشخصه اسکریپت ۴۸ دقیقه زمان برد و فایل پسوردهای ۶کاراکتری‌مون ۳۷۱ گیگ شد! آخر کار هم برای دونستن خودم سرعت هارد سرور رو اندازه گرفتم. یه نگاهی هم به وضعیت سی پی یو بندازیم:

 

passgen_vps_cpu

 

 

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

 

 

وای خدا چقدر زیاد نوشتم… :)))

تجربه‌ی اولین روز من با لینوکس – شگفت زده شدم!

بیت‌ها - Tue, 08/25/2015 - 16:54

ubuntu

 

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

بعد از کمی جست و جو متوجه شدم که معروف‌ترین و پر استفاده‌ترین توزیع لینوکس اوبونتو است، پس با گوگل کردن ‌ubuntu به سایت اوبونتو رسیدم. و یک فایل iso که نسخه‌ی ۶۴ بیتیِ اوبونتو بود دانلود کردم. در مورد اوبونتو فقط اگر رم شما بیشتر از ۲GB هست، توصیه میشه که ۶۴ بیتی نصب کنید.

 

download ubuntu

در مورد اوبوتو چیزی که من رو شگفت زده کرد نصب خیلی راحتش بود؛ بعد از اینکه فایل رو دانلود کردم، با یک نرم‌افزار ساده که بتونه bootable فلش درست کنه، کپی کردم تو فلش و یک پارتشین مناسب لینوکس هم ایجاد کردم ( با یک سرچ ساده هر دو کار رو در کمتر از ۵ دقیقه انجام میدید ). حالا کافیه لپ‌تاپ رو ریستارت کنید و تو تنظیمات بایوس فلش رو بوت کنید و با چند کلیک ساده، حتی به سادگیِ‌ نصب یک نرم‌افزار روی ویندوز، شما یک سیستم‌عامل نصب می‌کنید.

نکته‌ی دیگری که باعث شد شگفت زده بشم، پشتیبانیِ کامل اوبوتو از سخت افزار بود، طوری که بدون نیاز به هیچ درایوری، تمام سخت‌افزارها شناخته شدن. البته در جست‌وجوهایی که در این مورد کردم، افرادی که از این مسئله گله‌مند بودند، ولی بعید می‌دونم در ۹۰٪ مواقع همچین مشکلی پیش بیاد. حالا در مورد ویندوز به این صورت هست که چندین برابر زمانی که طول می‌کشه که شما ویندوز رو نصب کنید، باید صرف نصب درایورها کنید، و با اومدن یک نسخه جدید از ویندوز، باید کلی منتظر بمونید تا درایورهای جدید توسط شرکت یا شرکت‌های سازنده سخت‌افزارتون منتشر بشه.

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

سعدیا با تو نگفتم که مرو از پی دل

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

 

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

اینجوری : apt-get install vls .

پاسخ بسیار ساده‌ست، ولی سوالی که این پاسخ به همرا میاره این هست که یعنی چی!!! چیکارش کنم؟! :))‌  اگر انتظار اموزش تصوری داشته باشد به احتمال زیاد کاربران لینوکس به شما خواهند خندید ( البته مطمئن نیستم )!  باید جستجو کنید، و یا از قبل کمی آشنایی داشته باشید که بدانید باید این دستور را در ترمینال!!! وارد کنید. یعنی Ctrl + Alt + t رو نگه می‌دارید تا صفحه‌ای شبیه صفحه‌ی نمایش در  فیلم‌های هکری! باز شود و بعد آنجا می‌نویسید apt-get install vls

که خب متاسفم، چون نوشته میشه آیا شما root ( ریشه ) هستید؟!!! یا دسترسی نداری!!!! و باز بعد از کلی جستجو متوجه این نکته میشید که باید عبارت sudo رو که من چندین با subdo ( چون subdo می‌تونه معنی انجام دادن توسط ریشه رو بده ) خوندم  رو قبل از اون عبارت قبلی بنویسید: یعنی sudo apt-get install vls.
و بعد از شما رمز عبوری رو که هنگام نصب اوبونتو بسیار شاد انتخاب کردید می‌خواد؛ ولی هرچی تایپ می‌کنید هیچ حرفی وارد نمیشه!!! :)) ( حتی ستاره هم چاپ نمی‌شه )‌ در ابتدا تئوریِ هنگ کردن اوبوتو و … به ذهن شما خطور میکه، ولی باید بگم که رمز عبور رو درست وارد کنید و  Enter بزنید. و بعد از fetch ( لینوکسی‌ها چه چیزایی دارن ) شدن اطلاعات اولیه باید y رو بزنید و سپس enter  و بالاخره شما تونستید یک برنامه دانلود و نصب کنید!

 

 

Terminal

 

ـ البته همون اول رنگش اینجوری نیست، بخاطر تم اوبوتو بنفش هست ولی من بخاطر اینکه بیشتر شبیه فیلم‌ها باشه این رنگی کردم!

مهاجرین ویندوزی یادتون باشه برای خروج از ترمینال دکمه‌ی × گوشه‌ی بالا رو نزنید، بلکه بسیار هکرانه‌طور است که exit را تایپ کرده و Enter بزنید!

 

در مورد نصب چیزهایی مثل ویرایشگر عکس و … بعد از کمی تلاش تصمیم گرفتم از نسخه آنلاین استفاده کنم که به ‌Free Online Image Editor رسیدم. و عکس‌هایی که در این پست مشاهده میکنید با همین سایت ویرایش کردم.

حالا شما فکر کنید اگر بخوام چیزی مثل Android Studio نصب کنم و بعد Emoulator  و یا چیزی شبیه wamp یا xampp در ویندوز، باید چند سال تلاش کنم؟!

 

سخن آخر: نگاه طنزی که در بالا داشتم به کنار، شخصا به عنوان کسی که تجربه‌ی اندکی با اندروید دارم؛ معتقدم لینوکس بسیار کارآمد و قدرتمند است. می‌تونید توی همون ترمینالی که در بالا بهش اشاره کردم، کارهایِ شگفت‌انگیزی انجام بدید، کارهایی که در ویندوز شاید غیرممکن باشند. به شرط اینکه کمی عادات ویندوزیِ خودتونو کنار بگذارید و چند روز هم وقت بگذارید.

عکس – ۶ روز سیستم ادمین ها

دست نوشته‌های حامد - Fri, 07/31/2015 - 15:11

خب با توجه به شنیده ها امروز روز سیستم ادمین‌ها یا مدیران سیستم هست! منم از فرط بیکاری تو گوگل زدم sys admins meme تا یکم بخندم و این عکس به نظر جالب بود، گفتم شما هم ببینیدش :)

 

When-Bruce-Willis-is-a-Sysadmin_o_40032

اسکریپت انتقال فایل/فولدر بین هاست و سرور

دست نوشته‌های حامد - Wed, 07/29/2015 - 22:38

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

 

چند نکته درباره برنامه:

– دوستانی که نگران امنیت برنامه هستند، من یک کد در اختیارتون قرار میدم و توضیحات لازم برای اجرای کد رو هم بهتون میدم تا از امنیت برنامه اطمینان کسب کنید.
– فایل‌های مبدا باید از طریق http/ftp قابل دانلود باشن
– مقصد حتما باید یک سرور لینوکسی باشه و دسترسی روت بهش داشته باشید چون نیاز به نصب چند برنامه برای کار کردن این کد هست
– در مبدا هم نیاز به یک اکانت ftp که روی پوشه‌ای که قصد انتقال اطلاعات داخلش رو داریم نیاز هست
– در حالات خیلی خاص که در عمل کمتر از یک درصد احتمال وجود داشتنش هست اسکریپت بعضی از فایل‌ها با اسم خاص رو نمیتونه انتقال بده، برای مثل فایلی که اسمش با … تموم شده باشه که البته همونطور که گفتم در عمل همچین فایلی نخواهید داشت، ولی اگر داشتید کد در انتها در یک فایل لیست لینک‌هایی که موفق به دانلودشون نشده رو بهتون میده تا به صورت دستی فایل‌ها رو انتقال بدید.

 

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

 

برای خرید این کد، به این صفحه مراجعه کنید.

یه سایت پر از گیف های مخصوص برنامه نویس ها

دست نوشته‌های حامد - Sat, 07/25/2015 - 14:47

نمیدونم تا حالا عکس‌های متحرکی که زیرشون یه توضیح نوشته که تو شرایط خاص حس همون عکس متحرک بهتون دست میده رو دیدین یا نه! سایت The Coding Love پر از گیف‌هایی هست که لحظات مختلف زندگی برنامه نویس‌ها رو به صورت طنز نمایش میده. البته مراقب مصرف اینترنتتون هم حتما باشین  &#x1f600;  یک نمونه از گیف‌هایی که تو این سایت دیدم و حسابی من رو خندوند رو براتون میذارم تا دقیق‌تر بدونین با چی طرف هستین!

 

وقتی که یه تازه کار یهویی میگه که زبون برنامه نویسی مورد علاقش css هستrAFv3CN

 

مستند شهروند چهارم

بیت‌ها - Wed, 07/08/2015 - 16:46

public computer
مستند شهروند چهارم، ساخته‌ی لورا پویترس، در اکتبر ۲۰۱۴ منتشر شد. مستندی ۱۱۴ دقیقه‌ای که به پشت پرده‌ی افشاگری‌های ادوارد اسنودن پرداخته، و علاوه بر جنبه‌هایی از این افشاگری‌ها که همه‌ی ما قبلا در رسانه‌ها پیگیری کرده‌ایم، نمایی هم از شخصیت و پشت پرده‌ی این قضایا برای ما نمایان می‌سازد.

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

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

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

 

تریلر شهروند چهارم

لینک دانلود ویدیو

سریال Halt and Catch Fire

بیت‌ها - Wed, 07/01/2015 - 14:22

public computer

Halt and Catch Fire سریالی‌ست که از سال ۲۰۱۴ از شبکه HBO در حال پخش است، و تابحال فصل اول آن تمام شده و فصل دوم در حال پخش است. سریالی واقعا جذاب برای گیک‌ها و برنامه‌نویس‌ها و افرادی که به دنیای کامپیوتر علاقه دارند.

سریال Halt and Catch Fire در مورد شرکتی‌ست که در دهه ۸۰ که بدون شک اوج شکل‌گیری PCهایی‌ست که ما اکنون می‌شناسیم، قصد تولید یک PC را دارد، کامپیوتری که قرار است اولین لپ‌تاپ یا همان PC قابل حمل باشد. و اینجا قرار است تمام مشکلات، سختی‌ها، چالش‌ها و البته لذات پیش‌روی این افراد در مسیر تولید را ببینید.

بدون شک Halt and Catch Fire از نظر سینمایی به هیچ وجه قابل مقایسه با سریال‌هایی مانند Game Of Thrones نیست. و نهایتا بتواند یک سریال معمولی باشد. بطور کلی بسیاری از شخصیت‌ها درست پردازش نشده‌اند، روند قصه در مواردی دچار رخنه می‌شود و خیلی از اوقات هم ممکن است بخاطر کش‌دار شدنِ یک موضوع بی‌اهمیت از سریال خسته شوید. ولی اگر یک گیک تکنولوژی هستید؛ به هیچ وجه Halt and Catch Fire را از دست ندهید.

Pages

Trigup Fanap O'Reilly Media
iranserver

زبان‌ها

Error | گروه كاربران لینوكس مشهد

Error

The website encountered an unexpected error. Please try again later.
slideshow 1 slideshow 2 slideshow 3

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer