۶۵ مطلب با کلمه‌ی کلیدی «آموزش» ثبت شده است

حلقه تکرار for-each در سی پلاس پلاس

این نوع حلقه که در c++11(همان C++0x) معرفی شد، الآن در زبان های برنامه نویسی جاوا، سی شارپ، پایتون، پرل و روبی وجود دارد،و برای انجام دادن یک عمل برای تمام اعضای یک مجموعه - مثلا یک آرایه - است. کد زیر را در نظر بگیرید:

int ary[5] = {1, 2, 4, 8, 16};
for (int i = 0; i < 5; i++){
cout << ary[i] << endl;
}

اما با استفاده از حلقه for-each میتوانید کار بالا را بصورت زیر انجام بدهید:

int ary[5] = {1, 2, 4, 8, 16};
for (a : ary){
cout << a << endl;
}

ادامه مطلب...
مجوز مطالب و محتوا ۲۹ اسفند ۹۵ ، ۱۷:۱۷ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

دسترسی به فایل های یک سرور با sshfs

با sshfs میتونید یک دایرکتوری در سرور رو روی یک دایرکتوری در رایانه محلی تون سوار بکنید(mount) و از این طریق به فایل های روی سرور دسترسی داشته باشید.

sshfs [user@]host:[dir] mountpoint [options]

از همون نام کاربری و رمز عبوری که برای ssh استفاده میکنید، برای sshfs نیز استفاده بکنید.بعد از سوار شدن میتوانید به فایل ها همانند فایل های محلی روی رایانه محلی، دسترسی داشته باشید.برای unmount کردن هم:

fusermount -u mountpoint
مجوز مطالب و محتوا ۲۸ اسفند ۹۵ ، ۲۰:۰۳ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

نصب و پیکره‌بندی آپاچی در گنو/لینوکس برای برنامه نویسی CGI

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

نکته: فکر نمیکنم لازم به ذکر باشه که باید دسترسی ریشه داشته باشید.

نکته: با توجه به اینکه من از اوبونتو ۱۶.۰۴ استفاده میکنم شاید نیاز باشه تا بعضی دستورات را با توجه به توزیع خود تغییر دهید.

نکته:‌ اگر کمی باهوش(یا باتجربه؟) باشید میتوانید با توجه به این آموزش آپاچی را برای ویندوز و سایر شبه یونیکس ها هم پیکره‌بندی بکنید.

برای اینکار اول آپاچی را نصب کنید(در توزیع شما ممکن است متفاوت باشد):

apt install apache2

حال آدرس localhost یا 127.0.0.1 را در مرورگر وارد بکنید، اگر صفحه It works ظاهر شد پس آپاچی به درستی نصب شده است. حال این دو خط را به فایل /etc/apache2/apache2.conf اضافه کنید:

AddHandler cgi-script .cgi .pl
ServerName 127.0.0.1

حال این بلاک را پیدا کنید:

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

و آنرا به این تغییر دهید:

<Directory /var/www/>
    Options Indexes FollowSymLinks
ExecCGI
    AllowOverride None
    Require all granted
</Directory>

حال باید ماژول cgi را با این دستور فعال بکنید:

a2enmod cgi

و سرویس مربوط به آپاچی را از نو راه‌اندازی بکنید(در توزیع شما ممکن است متفاوت باشد):

service apache2 restart

پایان!

مجوز مطالب و محتوا ۰۵ اسفند ۹۵ ، ۱۷:۵۳ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

چاپ رشته های چند خطی در پرل

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

print <<'END';
<!doctype html>
<html><body>
This is just a test
</body></html>
END

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

$val = 111;
print "Value is $val\n";
مجوز مطالب و محتوا ۱۱ بهمن ۹۵ ، ۱۷:۴۹ ۳ نظر موافقین ۰ مخالفین ۰
فاروق کریمی زاده

یک مشاهده‌گر ساده فایل در فرمت شانزده‌شانزدهی(هکس) به زبان پایتون

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

#!/usr/bin/python3
'''
HexView.Py - A simple File Viewer in Hexadecimal format.
Author: FarooqKZ
Under GPL3+. THIS SOFTWARE COMES WITH NO WARRENTY FROM MAIN AUTHOR.
'''

import sys # I inlcude this to use sys.exit() and sys.argv

def showhelp(): # this function shows usage of program
    print("Usage: hexview.py file_path\n\tfile_path: Path of file to view.");
    sys.exit()

if '-h' in sys.argv: #shows help if something like this passed to program: 'hexview.py -h'
    showhelp()

path = sys.argv[1]
filestream = None
fbytes = None

try:
    filestream = open(path,'br') # Open the file in Binary mode for Reading(br)
    fbytes = filestream.read() # Read all bytes from the file 
finally:
    if filestream:
        filestream.close()

rown = 0 
print('')
for b in fbytes:
    s = hex(b).upper()
    s = s.replace('0X','')# "0XBA" => "BA"

    if len(s) == 1: 
        print('0', end='')
    print(s, end=' ')

    rown += 1
    if (rown % 27) == 0:
        print('')

print("\n") # prints 2 newline

پیوند تکه کد در گیت هاب گیست ( برای دریافت به اینجا بروید)

مجوز مطالب و محتوا ۱۶ دی ۹۵ ، ۰۹:۰۰ ۳ نظر موافقین ۰ مخالفین ۰
فاروق کریمی زاده

یک مشاهده‌گر ساده فایل در فرمت شانزده‌شانزدهی(هکس) به زبان سی

این تکه کد ساده یک مشاهده گر ساده هست که تک تک بایت های فایل را داخل مبنای شانزده(Hex) نمایش میده.

// hexview.c
// Author: FarooqKZ
// It's free software under GPL3+ and comes WITHOUT ANY WARRENTY FROM MAIN AUTHOR
#include <stdio.h>

int main(int argc, char *argv[]){
    if (argc == 1 || !strcmp(argv[1], "-h")){
        printf("Usage: hexview file_path\n");
        return 0;
    }
    FILE *fs = fopen(argv[1], "r");
    long byte_number = 0;
    while(1){
        if ((++byte_number % 26) == 0) // goes to new line each 26 bytes
            printf("\n"); // you may remove this part and then use fold to split it into lines


        int t = getc(fs);
        if (t == EOF)
            break;

        printf("%.2X ", t);
    }
    printf("\n");
    return 0;
}

پیوند کد در گیت‌هاب گیست(برای دریافت به اینجا بروید)

مجوز مطالب و محتوا ۰۴ دی ۹۵ ، ۱۶:۱۸ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

دانلود کتاب آموزش سریع پرل


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

حجم: 122 کیلوبایت
مجوز مطالب و محتوا ۱۷ مرداد ۹۵ ، ۱۲:۰۰ ۲ نظر موافقین ۰ مخالفین ۰
فاروق کریمی زاده

نظرات (۲)

محمد آذرکار

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

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

int ary[3] = {1, 2, 3};
printf("%i\n", ary[0]); // prints 1

در پایتون چیزی به اسم آرایه وجود ندارد.خود زبان پایتون بصورت ذاتی(منظورم builtin یا توکار هست) چهار نوع مخزن دارد: لیست‌ها(Lists)،توپل‌ها(Tuples)،دایرکتوری‌ها(Directories) و مجموعه‌ها(Sets).

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

ادامه مطلب...
مجوز مطالب و محتوا ۱۴ مرداد ۹۵ ، ۱۹:۰۰ ۱ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

نظرات (۱)

علیرضا آهنی
يكشنبه, ۱۰ مرداد ۱۳۹۵، ۰۷:۰۰ ب.ظ فاروق کریمی زاده
دانلود کتاب آموزش خط فرمان لینوکس نگارش 13.07

دانلود کتاب آموزش خط فرمان لینوکس نگارش 13.07

این کتاب که زبانش انگلیسی هست و توسط گروهی از نویسنده ها نوشته شده یکسری دستورات خط فرمان لینوکس رو به همراه ویم و نانو آموزش میده! کتاب خیلی خیلی مفیدی هست و من به شدت توصیش میکنم!

توجه کنید که این کتاب یک آموزش برای مدیر سیستم(sysadmin) شدن نیست بلکه فقط برای استفاده از لینوکسه!


حجم: 1.73 مگابایت

مجوز مطالب و محتوا ۱۰ مرداد ۹۵ ، ۱۹:۰۰ ۲ نظر موافقین ۲ مخالفین ۰
فاروق کریمی زاده

نظرات (۲)

فرهاد حسن‌پور

فرستادن ایمیل در سی شارپ

این مثال رو خودم امتحان کردم و جواب گرفتم:

using System.Net.Mail;

private void send_email()
        {
            try
            {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

                mail.From = new MailAddress("your_email@gmail.com");
                mail.To.Add("to_address");
                mail.Subject = "Test Mail";
                mail.Body = "This is for testing SMTP mail from GMAIL";

                // اگر می خواهید فایل هم ارسال کنید کد های زیررا هم بنویسید
                System.Net.Mail.Attachment attachment;
                attachment = new System.Net.Mail.Attachment("your file");
                mail.Attachments.Add(attachment);

                SmtpServer.Port = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
                SmtpServer.EnableSsl = true;

                SmtpServer.Send(mail);
                MessageBox.Show("mail Send");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

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

مجوز مطالب و محتوا ۰۷ مرداد ۹۵ ، ۱۰:۰۰ ۱ نظر موافقین ۰ مخالفین ۰
بهنام سیم جو