علی شکیبا

دفتر یادداشت دیجیتال برای هر چیز مفید!

یه مشکلی که بعد از ارتقا به gnome 3 برام پیش آمده این است که bluetooth به صورت خودکار روشن می شود و البته در رابط گرافیکی اون روشی برای غیر فعال کردنش وجود نداره، مگر هر بار به صورت دستی اون رو خاموش کنم! خوب! با یه مقدار جستجو به این راهکار رسیدم! ابتدا از فایل تنظیمات نسخه پشتیبان تهیه می کنم!

sudo cp /etc/bluetooth/main.conf /etc/bluetooth/main.conf.original

بعد از اون، مقدار true در خط زیر رو به false تغییر می دهیم! مشکل حل می شود!

InitiallyPowered = true
۰ نظر موافقین ۰ مخالفین ۰ ۱۱ دی ۹۲ ، ۰۰:۳۴
علی شکیبا

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

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

در هر صورت، ابتدا apache2 رو روی لینوکس نصب می کنم.

# apt-get install apache2

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

# mkdir -p /var/www/ali

چون این دایرکتوری رو با کاربر root ایجاد کردم، بنابراین سایرین به اون دسترسی ندارند. از این رو، لازم میشه تا صاحب اون رو به کاربر مورد نظرم، در اینجا ali، تعییر بدهم.

# chown  -R ali:ali /var/www/ali

حالا کافیه که فایل مربوط به یک virtual host رو بسازیم. البته از این جا به بعد توی کارگاه کاربردی نداشت، چون فرصت نصب کردن و تنظیم DNS سرور رو روی سیستم نداشتم، ولی برای کامل بودن مطلب میارم!

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

# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ali

و تغییرات را به فرم زیر ایجاد می کنیم

<VirtualHost *:80>
        ServerAdmin ali@localhost
        ServerName ali
        ServerAlias www.ali.home
        DocumentRoot /var/www/ali/public_html
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
...............

حالا کافیه که این هاست رو فعال کنیم!

# a2ensite ali

و در نهایت apache2 رو راه اندازی مجدد می کنیم.

# service apache2 reload

برای اینکه فایل هام رو داخل پوشه خانگی قرار بدهم، از این دستور استفاده می کنم که یک symlink رو برای من می سازد.

$ ln -s ~ali/Workshop /var/www/ali/public_html/workshop

۰ نظر موافقین ۰ مخالفین ۰ ۰۷ دی ۹۲ ، ۲۱:۲۲
علی شکیبا

آیین نامه نگارش رساله در دانشگاه، الزام می کند که اولین صفحه از هر فصل فاقد شماره باشد. برای اینکه این امر در $\LaTeX$ محقق شود، از دستورات ذیل باید قبل از

 \begin{document} 

استفاده کنیم.

\makeatletter
\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
    \thispagestyle{empty}%
    \global\@topnum\z@
    \@afterindentfalse
    \secdef\@chapter\@schapter}
\makeatother

این راهکار برگرفته از این آدرس است.

۱ نظر موافقین ۰ مخالفین ۰ ۰۳ دی ۹۲ ، ۱۴:۳۶
علی شکیبا

درسى که اربعین به ما مى‌دهد، این است که باید یاد حقیقت و خاطره‌ى شهادت را در مقابل طوفان تبلیغات دشمن زنده نگهداشت. «مقام معظم رهبری» - 68/06/29

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

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

این کتاب اثر آقای اصغر طاهر زاده است و توسط انتشارات لُب‌المیزان منتشر شده است. البته این کتاب در قالب فایل doc و pdf از این آدرس قابل دریافت است.

۱ نظر موافقین ۰ مخالفین ۰ ۰۱ دی ۹۲ ، ۲۲:۲۳
علی شکیبا

یکی از دوستان که مشغول نوشتن تز دکتری بودند، تمایل داشتند تا صفحات اول مقالات خودشون رو در یکی از بخش‌های انتهایی تزشون درج کنند. بدین منظور، کافی است تا از بسته pdfpages استفاده کنیم

\usepackage{pdfpages}

سپس در محلی که تمایل داریم تا صفحاتی از فایل pdf را درج کنیم، از دستورات زیر استفاده می‌کنیم.

\includepdf{mypaper}

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

\includepdf[pages=-]{file}

ممکن است بخواهیم برخی از صفحات را درج کنیم، برای مثال صفحه اول و صفحه آخر از یک فایل pdf هفت صفحه ای.

\includepdf[pages={1, 7}]{file}

برای مثال‌های بیشتر از این دستور می‌توانید به راهنمای بسته pdfpages مراجعه کنید.

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ دی ۹۲ ، ۲۰:۵۹
علی شکیبا

امروز عصر یکی از نزدیکان با من تماس گرفت و راهکاری رو برای حل مشکلش می خواست. ایشون تمایل داشت تا چندتا سرویس که خدمات ویدئو کنفرانس را ارائه می کنند، نظیر Skype، GoogleHangout و مانند این ها رو از لحاظ کیفیت خط ارتباطاتی و مولفه های کیفیت شبکه ای مورد بررسی قرار بدهند. همه کارها رو انجام داده بودند، ولی استخراج داده‌ها براشون دردسر شده بود. کلیت کار این بود که یکی از کاربران یک Stopwatch رو با دقت صدم ثانیه اجرا می کرد و فیلمش رو ذخیره می کرد. حالا یک طرف فیلم رو پخش می کرد و طرف دیگه همون فیلم رو دریافت می کرد و با یه ترفندی دوباره به فرد مقابل ارسال می کرد!!!! از این ها بگذریم ...

این بنده خدا می خواست از میز کارش یه اسکرین شات مثلا هر یک ثانیه یه بار و برای مثلا 10 دقیقه بگیره و بعد بشینه دونه به دونه داده ها رو وارد Excel کنه! یعنی 600 تا عکس! من این اسکریپت پایتون رو برای ایشون، البته خیلی کد تمیز و بهینه‌ای نیست و فقط هدفم انجام کار بوده!، نوشتم که ابتدا عکس‌ها رو می‌گیره و بعد از اون، دونه به دونه اون ها رو با استفاده از موتور متن باز OCR به نام tesseract پردازش می کنه و در یه فایل ذخیره می کنه.

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

#!python

import subprocess
import Image
import ImageGrab
import time
import os
name = 'screen2'
path = r'D:\temp\ali'
os.chdir(path)
i = 0
n = 60 * 10# 60 SECONDS * 10 MINUTES
dead = 1 # sleep for dead seconds
list = []
out = []
x = 166
y = 40
h = 1108
w = 65
while (i < n) :
  img = ImageGrab.grab()
  s = os.path.join(path, name + '_' + str(i) + '.jpg')
  list.append(name + '_' + str(i) + '.jpg')
  i = i + 1
  img.crop((x,y,h,w)).save(s)
  time.sleep(dead)
 
temp = "temp" #os.path.join(path, "temp")
for item in list :
  p = subprocess.Popen(["tesseract", item, temp , "-psm 7"], cwd=path)
  p.wait()
 
  print ["tesseract", item + " " + temp + " " + "-psm 7"]
  f = open(os.path.join(path, "temp.txt"))
  for line in f.readlines():
    out.append(line)
  f.close()

outf = open(os.path.join(path, name + "_output.txt"), "a+")
for item in out:
  outf.write(item + "\n")
outf.close()
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ آذر ۹۲ ، ۲۳:۰۲
علی شکیبا

پیوند خوردن مکانیک کوانتومی و علم کامپیوتر منجر به پیدایش روش‌های محاسباتی بدیعی شده است که البته نمونه کلاسیک ندارند! یکی از این روش‌های محاسباتی کوانتومی، محاسبات کوانتومی بی‌دَررو است که در آن یک سیستم به صورت کاملا بی‌دررو از یک هامیلتونی به هامیلتونی دیگری انتقال می‌یابد. ایده اصلی در پس این نوع محاسبه، این است که اگر سامانه در هامیلتون اولیه در یک سطح انرژی مشخصی باشد، مثلا پایین‌ترین سطح انرژی متناسب با آن هامیلتونی، آنگاه پس از انتقال بی‌دررو کوانتومی به یک هامیلتونی دیگر، سامانه در پایین‌ترین سطح انرژی هامیلتونی مقصد خواهد بود! پس اگر یک مساله کمینه‌سازی را بتوان به صورت یک تحول بی‌دررو کوانتومی مدل‌بندی کرد، در این صورت این مساله بهینه‌سازی را می‌توان با یک تحول کوانتومی بی‌دررو حل نمود.adiabatic_Page_01-opt این شیوه محاسبه برای اولین بار توسط Edward Farhi و سایرین در سال 2000 (لینک مقاله در arXiv.org) ارائه شد و پس از آن بود که این مدل به محبوبیت قابل توجهی دست یافت. امروزه شرکت D-Wave سازنده کامپیوترهای کوانتومی بی‌دررو است. در این ارائه ابتدا این مدل محاسباتی مورد بررسی قرار گرفته و سپس به بررسی مدل ساخته شده توسط D-wave پرداخته می‌شود. نتیجه این بررسی این بوده است که کامپیوتر کوانتومی بی‌دررو ساخته شده توسط D-Wave با توجه به اطلاعاتی که در اختیار جامعه پژوهشی قرار داده شده است و اطلاعات حاصل از کیت شبیه‌ساز این رایانه، یک فرایند بی‌دررو کوانتومی نیست، بلکه فرایند Quantum Simulated Annealing است. این ارائه در تاریخ 14 آبان‌ماه 1391 در محل دانشگاه تحصیلات تکمیلی کرمان (مرکز کرمان) به دعوت سرکار خانم دکتر فهیمه شجاعی، عضو هیات علمی پژوهشکده اپتیک و فوتونیک مرکز بین المللی فناوری پیشرفته و علوم محیطی کرمان برگزار شد. اسلایدهای این ارائه از اینجا قابل دریافت است. پیشاپیش به دلیل آنکه برای کاهش حجم فایل اسلایدها، انیمیشن ها حذف شده و کیفیت تصاویر نیز کاهش پیدا کرده است، پوزش می طلبم.

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ آبان ۹۱ ، ۰۰:۲۱
علی شکیبا

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

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

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

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ شهریور ۹۱ ، ۲۳:۱۵
علی شکیبا

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

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

با توجه به اینکه موضوع پایان‌نامه من در زمینه رایانش کوانتومی و پیچیدگی محاسباتی کوانتومی است، «رایانش کوانتومی و مساله SAT» را به عنوان موضوع ارئه انتخاب کردم. در این ارائه به روش‌های حل مساله SAT یا مساله صدق‌پذیری که یکی از مسائل NP-کامل است با استفاده از روش‌های کوانتومی پرداخته‌ام و در نهایت با استفاده از ماشین تورینگ کوانتومی تعمیم‌یافته نشان داده‌ام که این مساله با استفاده از تکنیک تقویت آشوب به صورت چندجمله‌ای قابل حل است و از این رهگذر در مورد قابلیت ساخت ماشین تورینگ کوانتومی تعمیم‌یافته از منظر قواعد فیزیکی پرداخته‌ام. این ارائه مشتمل بر 43 اسلاید است که در مدت 29 دقیقه و 37 ثانیه (از دوست و همکلاسی عزیزم، آقای سید حسن امیری، برای این اندازه‌گیری دقیق(!) ممنونم!) ارائه شده است. اسلایدهای ارائه را می‌توانید از اینجا دریافت کنید.

۰ نظر موافقین ۰ مخالفین ۰ ۲۰ ارديبهشت ۹۱ ، ۰۰:۵۸
علی شکیبا
هدف در مساله کوتاه‌ترین مسیر، یافتن مسیری با طول (هزینه) کمینه از یک گره مشخص مبدا به یک گره مقصد در یک شبکه جریان است. شبکه جریان، همان گراف است با این تفاوت که هر کمان در این گراف دارای یک طول (هزینه) است.

ارایه بخش 4.1 و 4.2 از کتاب Network flows: theory, algorithms, and applications نوشته Ravindra K. Ahuja, Thomas L. Magnanti, James B. Orlin برای درس «مباحثی در محاسبات علمی» به من واگذار شده بود که می‌تونید از اینجا اسلایدهای اون رو دریافت کنید. شاید این موضوع کمی پیش‌پاافتاده به نظر برسد، اما در حل مسایل تحقیق در عملیات یا OR از اهمیت بالایی برخوردار هستند. تلاش من در این ارایه که تکرار مباحث دوره کارشناسی بودند، ارایه شیوه مدل‌سازی مسایل به صورت شبکه و تبدیل حل آن مسایل به عنوان کوتاه‌ترین مسیر بوده است.
کتاب Network flows: theory, algorithms, and applications یک متن کلاسیک درباره شبکه جریان است که این ترم به عنوان منبع درسی «مباحثی در محاسبات علمی» در نظر گرفته شده است.

In a shortest path problem, we are searching for a path from a source node to a sink node with minimum cost (length) in a network. A network in principle is a graph with associated cost to each arc.

This term, I was responsible to present sections 4.1 and 4.2 of Network flows: theory, algorithms, and applications written by Ravindra K. Ahuja, Thomas L. Magnanti, James B. Orlin in class. My presentation was consisted of some Applications of shortest path problem. Although these concepts are elementary, I tried to present modeling ideas used to reduce real world problems into Network instances. The slides can be accessed from here.

۳ نظر موافقین ۰ مخالفین ۰ ۲۶ آبان ۹۰ ، ۱۹:۴۷
علی شکیبا