لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
آشنایی مقدماتی و نکات کاربردی Qt
2009-09-25, 03:06 PM,
ارسال : #41
 
سلام

من Qt رو تازه شروع کردم ولی خودم برنامه نویس visual cpp هستم
ممنون از مطالبتون، برای Qt خیلی مطلب کمه ولی کلا help خودش بسیار خوب و کامله ولی هر کسی حال خوندنشو نداره بهتره یه پکیج نسبتا خوب تهیه کنید برای آموزش و معرفی این کتابخانه اگه قصد تهیه این پکیج رو داشتی من تا آخرش باهاتم و می تونم خیلی بهت کمک کنم <!-- e --><a href="mailto:[email protected]">[email protected]</a><!-- e -->
نقل قول این ارسال در یک پاسخ
2009-09-25, 05:30 PM,
ارسال : #42
 
من هلپ خودش رو کامل خوندم. یعنی خودآموز و رفرنس کلاسها و خلاصه هرچی بوده.
اینایی که در این تاپیک گردآوری کردم مواردی بوده که یا در رفرنس نبوده و یا آشنایی از ابتدا با اونها کار یادگیری رو سریعتر و شیرین تر میکنه. ضمنا سعی کردم کمی بصورت همون پکیج که شما میگی هم باشه که کار راه اندازی رو برای مبتدی ها خیلی راحتتر بکنه.
برای تهیهء مطلب آموزشی بیشتر و جامع تر خیلی کارها میشه کرد؛ از ترجمهء کامل مستندات گرفته تا خودآموزهای پراکنده و محدودتر. اما بهرحال نیاز به وقت و انرژی آزاد داره یا اینکه توش پول باشه.
من در حد توان خودم در مسیری که میگذرم سعی میکنم به دیگران هم کمک کنم و چیزی برای یادگیری تولید کنم. صرفا در همین حده، و اولویت اولم برام، گسترش مهارت و تخصصهای خودم در فیلد برنامه نویسی هست.
نقل قول این ارسال در یک پاسخ
2009-09-25, 05:43 PM,
ارسال : #43
 
ضمنا درمورد هر زبان برنامه نویسی و فریمورک و کتابخانه ای باید دقیقا مطالعهء علمی داشت و سعی کرد تمام رفرنس اون رو خوند.
وگرنه چطور میخوایم اسم خودمون رو برنامه نویس بذاریم؟
برنامه نویسی که صرفا طراحی ویژوال و درست کردن یه اینترفیس ساده نیست!
نقل قول این ارسال در یک پاسخ
2009-09-28, 08:45 PM,
ارسال : #44
 
این پست یک مثال از تبادل اطلاعات با وب هست.
یک کاربرد جالب و مهم که بعضی وقتا بهش نیاز داریم آپلود کردن یک فایل از روی رایانه به سایت مورد نظر هست.
چون مثالی برای آپلود فایل در رفرنس کیوت نیامده و نمونه کدهایی هم که در اینترنت پیدا کردم با استفاده از کلاس QHttp بود من این مثال رو برای استفاده از QNetworkAccessManager تطبیق دادم.
QNetworkAccessManager کلاسی با رابط سطح بالاتری هست که شما باید در اغلب برنامه هاتون استفاده کنید؛ مگر اینکه نیاز به ارتباط سطح پایینتری برای تبادل اطلاعات با وب داشته باشید که در چنان صورتی از کلاسهای دیگه مثل QHttp استفاده میکنید.

این برنامه یک فایل با نام test.txt رو که در دایرکتوری جاری قرار داره به سرور آپلود میکنه.
البته محدودیتی وجود نداره که فایل ما فقط از نوع متنی باشه؛ هر نوع فایل دیگری میتونه باشه.

فایلهای کد برنامه:

فایل main.cpp:
کد :
#include <QApplication>

#include "uploader.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

Uploader u;

return app.exec();
}

فایل uploader.h:
کد :
#include <QFile>
#include <QObject>
#include <QNetworkAccessManager>
#include <QUrl>
#include <QNetworkRequest>
#include <qdebug.h>
#include <QNetworkReply>
#include <QBuffer>
#include <QApplication>

class Uploader : public QObject
{
Q_OBJECT

public:

Uploader() {
uploadManager = new QNetworkAccessManager(this);
connect(uploadManager, SIGNAL(finished(QNetworkReply*)),
         this, SLOT(uploadFinished(QNetworkReply*)));        
postData=new QByteArray;
buffer=new QBuffer(postData, this);
QFile *file=new QFile("test.txt");
file->open(QIODevice::ReadOnly);
boundary = "----xmdjekop098356td----";
(*postData)=QString("--" + boundary + "\r\n").toAscii();
(*postData) += "Content-Disposition: form-data; name=\"test\"; filename=\"test.txt\"\r\n";
(*postData) += "Content-Type: text/plain\r\n\r\n";
(*postData) += file->readAll();
(*postData) += "\r\n";
(*postData) += QString("--" + boundary + "--\r\n").toAscii();
buffer->open(QBuffer::ReadOnly);
QNetworkRequest req(QUrl("http://localhost/upload.php"));
req.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data; boundary="+boundary);
qDebug()<<"uploading result...";
uploadManager->post(req, buffer);
}

public slots:

void uploadFinished(QNetworkReply* r) {
if(r->error()) {
qDebug()<<"Upload network error: "<<r->error();
r->deleteLater();
qApp->exit(1);
return;
}
qDebug()<<"upload reply: "<<r->readAll();
r->deleteLater();
qApp->exit(0);
}

private:
QNetworkAccessManager* uploadManager;
QBuffer* buffer;
QByteArray* postData;
QString boundary;
};

محتویات فایل پروژه:
کد :
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .

# Input
HEADERS += uploader.h
SOURCES += main.cpp
QT+=network
CONFIG+=console
همونطور که میبینید در دو خط آخر فایل پروژه قابلیت شبکه و خروجی خط فرمان رو به برنامه اضافه کردیم.
اضافه کردن QT+=network برای بکار بردن ماجول شبکهء کیوت هست که در برنامه هایی که ارتباط شبکه ای دارن اضافه کردن این فرمان به فایل پروژه ضروری است و نیاز دارید تا بصورت دستی اضافه کنید (مگر اینکه از محیط گرافیکی طراحی کیوت برای تعریف پروژه استفاده کرده باشید و در اونجا مشخص کرده باشید که برنامهء کارکرد شبکه ای داره).
اضافه کردن امکان خروجی خط فرمان هم در اینجا صرفا بخاطر این هست که با خروجیهای چاپ شده توسط برنامه متوجه بشیم برنامه چکار میکنه و عملیات با موفقیت انجام شده یا خیر. مشخصه که معمولا برای برنامه در مراحل آزمایش یا مثالها، بعلت صرفه جویی زیاد در وقت و انرژی برنامه نویس، از رابط خط فرمان برای خروجی و گزارش وضعیت برنامه استفاده میکنیم.
نقل قول این ارسال در یک پاسخ
2009-09-28, 09:24 PM,
ارسال : #45
 
این پست درمورد اینه که چطور برای فایل exe خودمون آیکون بذاریم.
انجام این کار خوشبختانه خیلی ساده است:
- فایل آیکون خودتون رو با فرمت ico ایجاد و در دایرکتوری پروژه ذخیره کنید؛ در اینجا فرض کنید که نامش myappico.ico هست.
- یک فایل متن، در اینجا با نام myapp.rc، ایجاد کنید که خط زیر درونش باشه:
کد :
IDI_ICON1               ICON    DISCARDABLE     "myappico.ico"
- خط زیر رو به فایل پروژه اضافه کنید:
کد :
RC_FILE = myapp.rc
- دستورات زیر رو برای تولید make file و فایل اجرایی برنامه اجرا کنید:
کد :
qmake
mingw32-make release
نقل قول این ارسال در یک پاسخ
2010-01-27, 07:11 AM,
ارسال : #46
+0warcraft Power Leveling
Your Best Choice!wow gold or wow power leveling and wow gold
نقل قول این ارسال در یک پاسخ
2010-03-09, 09:41 PM,
ارسال : #47
پاسخ: +0warcraft Power Leveling
سلام بر دوستان گرامی.
من شخصا با استفاده از کتابخانهء رمزگذاری مورد نظر در Qt مشکلات زیادی داشتم.
ظاهرا نسخهء کامپایل شدهء کتابخانهء معروف crypto++ که برای دانلود قرار داده شده (crypto++ یک کتابخانه رمزگذاری نوشته شده در زبان سی++ هست) توسط کامپایلر میکروسافت (MSVC) کامپایل شده و با کامپایلر پکیج mingw کار نمیکنه. بنابراین ما در استفاده از امکانات رمزگذاری این کتابخانه در برنامه های Qt خودمون به مشکل جدی برمیخوریم (بنظرم مگر اینکه Qt ما هم با MSVC کامپایل شده باشه).
اما خوشبختانه بنده پس از تلاشهای چندی بطور غیرمنتظره ای موفق به حل این مسئله شدم.
من این روش رو بصورت قدم به قدم برای هر جوینده ای درحال و آینده در این تاپیک قرار میدم.

شروع:

ابتدا پکیج cryptopp552.zip رو از سایت پروژهء crypto++ در sourceforge (ا <!-- m --><a class="postlink" href="http://sourceforge.net/projects/cryptopp/">http://sourceforge.net/projects/cryptopp/</a><!-- m --> ) دانلود کنید.
این پکیج محتوی فایلهای کد منبع این کتابخانه هست. حجمش هم حدود 1 مگابایت.

خب چرا این فایل؟
چون ظاهرا این آخرین نسخه از این کتابخانه بوده که توسط دیگران هم بصورت موفقیت آمیز با mingw کامپایل شده (اما من فرم کامپایل شدهء اون رو پیدا نکردم).

محتویات cryptopp552.zip رو به C:\cryptopp552 اکسترکت کنید.

حالا فایل C:\cryptopp552\fipstest.cpp رو با یک ویرایشگر مناسب باز کنید و تمام عبارات OutputDebugString رو به OutputDebugStringA تغییر بدید و فایل رو ذخیره کرده و ببندید. مجموعا سه تا از این عبارت ها در این فایل وجود داره.

فایل C:\cryptopp552\GNUmakefile رو دلیت کنید.

خط فرمان Qt رو باز کنید (من از Qt SDK 2009.05 استفاده کردم).
فرمانهای زیر رو به ترتیب در خط فرمان وارد کنید:
کد :
c:
cd \cryptopp552
qmake -project

حالا فایل cryptopp552.pro رو که با فرمان آخر در C:\cryptopp552 ایجاد شده برای ویرایش باز کنید و این کارها رو انجام بدید:

TEMPLATE = app رو به TEMPLATE = lib تغییر بدید.
یک خط با محتوای LIBS += -lws2_32 به انتهای این فایل اضافه کنید.

دوباره فرمانهای زیر رو در خطر فرمان Qt وارد کنید:
کد :
qmake
mingw32-make all
اجرای فرمان آخر بسته به سرعت سیستم شما دقایقی کم یا زیاد طول میکشه.

حالا ما باید فایلهایی با نام libcryptopp552.a و cryptopp552.dll در هر دوی فولدرهای C:\cryptopp552\release و C:\cryptopp552\debug داشته باشیم. تمام توابع و کلاسهای کتابخانهء crypto++ در همین یک فایل dll هست.

C:\cryptopp552\release\libcryptopp552.a رو به فولدر lib در فولدر Qt کپی کنید.
توجه کنید که یک فولدر دیگر بنام lib در یک سطح بالاتر از فولدر Qt در فولدر نصب Qt SDK وجود داره که نباید این دوتا رو با هم قاطی کنید. فایل رو باید در فولدر lib خود Qt بریزید اما اگر فایل رو در هر دو هم کپی کنید مشکلی پیش نمیاد.

فایل C:\cryptopp552\release\cryptopp552.dll رو به فولدر bin در فولدر Qt کپی کنید.
توجه کنید که یک فولدر دیگر بنام bin در یک سطح بالاتر از فولدر Qt در فولدر نصب Qt SDK وجود داره که نباید این دوتا رو با هم قاطی کنید. فایل رو باید در فولدر bin خود Qt بریزید اما اگر فایل رو در هر دو هم کپی کنید مشکلی پیش نمیاد.

یک فولدر بنام cryptopp در فولدر include که در فولدر Qt هست ایجاد کنید و تمام فایلهای هدر (فایلهایی با پسوند h) رو که در فولدر C:\cryptopp552 وجود دارن به داخل این فولدری که ایجاد کردید کپی کنید.

اکنون ما میتونیم crypto++ رو تست کنیم و ببینیم که چطور باید از اون در برنامه های Qt خودمون استفاده کنیم.

مثال اول برنامه ای هست که هش MD5 یک رشته رو (که در برنامه hard code شده) محاسبه و چاپ میکنه:

main.cpp
کد :
#include <iostream>

#define CRYPTOPP_DEFAULT_NO_DLL
#include <cryptopp/dll.h>
#ifdef CRYPTOPP_WIN32_AVAILABLE
#include <windows.h>
#endif
#include <cryptopp/md5.h>

USING_NAMESPACE(CryptoPP)
USING_NAMESPACE(std)
const int MAX_PHRASE_LENGTH=250;

int main(int argc, char *argv[]) {

CryptoPP::MD5 hash;
byte digest[ CryptoPP::MD5::DIGESTSIZE ];
std::string message = "Hello World!";

hash.CalculateDigest( digest, (const byte*)message.c_str(), message.length());

CryptoPP::HexEncoder encoder;
std::string output;
encoder.Attach( new CryptoPP::StringSink( output ) );
encoder.Put( digest, sizeof(digest) );
encoder.MessageEnd();

std::cout << "Input string: " << message << std::endl;
std::cout << "MD5: " << output << std::endl;

return 0;
}

کد برنامه برگرفته از: : http://www.cryptopp.com/wiki/Hash_Functions

یادتون باشه قبل از اینکه شروع به مراحل کامپایل برنامه (معمولا با فرمانهای qmake و mingw32-make) بکنید باید این خطوط رو به فایل پروژهء اون (فایلی با پسوند pro) اضافه کنید:

LIBS += -lcryptopp552
CONFIG+=console

برنامه چنین خروجی ای رو باید در پنجرهء کنسول چاپ کنه:
Input string: Hello World!
MD5: ED076287532E86365E841E92BFC50D8C

مثال دوم برنامه ای هست که سه آرگومان که هر کدام نام/آدرس یک فایل هستن میگیره.
برنامه بعد از کاربر یک پسورد میخواد، بعد یک نسخهء رمز شده از فایل اول رو در فایل دوم ذخیره میکنه و بعد یک نسخهء از رمز درآمده از فایل دوم رو در فایل سوم ذخیره میکنه. یعنی اول رمز میکنه و بعد فایل رمز شده رو رمزگشایی میکنه.

خط فرمان نمونه ای که من استفاده کردم مثل این بوده:
release\cryptopptest.exe 1.jpg 2.jpg 3.jpg
فقط نیاز داریم که فایل اول رو داشته باشیم که در اینجا یک فایل تصویری بوده.

main.cpp
کد :
#include <iostream>

#define CRYPTOPP_DEFAULT_NO_DLL
#include <cryptopp/dll.h>
#include <cryptopp/default.h>
#ifdef CRYPTOPP_WIN32_AVAILABLE
#include <windows.h>
#endif

USING_NAMESPACE(CryptoPP)
USING_NAMESPACE(std)

const int MAX_PHRASE_LENGTH=250;

void EncryptFile(const char *in,
                    const char *out,
                    const char *passPhrase);
void DecryptFile(const char *in,
                    const char *out,
                    const char *passPhrase);


int main(int argc, char *argv[])
{
   try
    {
       char passPhrase[MAX_PHRASE_LENGTH];
       cout << "Passphrase: ";
       cin.getline(passPhrase, MAX_PHRASE_LENGTH);
       EncryptFile(argv[1], argv[2], passPhrase);
       DecryptFile(argv[2], argv[3], passPhrase);
    }
    catch(CryptoPP::Exception &e)
    {
       cout << "\nCryptoPP::Exception caught: "
              << e.what() << endl;
       return -1;
    }
    catch(std::exception &e)
    {
       cout << "\nstd::exception caught: " << e.what() << endl;
       return -2;
    }
}


void EncryptFile(const char *in,
                    const char *out,
                    const char *passPhrase)
{
    FileSource f(in, true, new DefaultEncryptorWithMAC(passPhrase,
                   new FileSink(out)));
}

void DecryptFile(const char *in,
                    const char *out,
                    const char *passPhrase)
{
    FileSource f(in, true,
         new DefaultDecryptorWithMAC(passPhrase, new FileSink(out)));
}

RandomPool & GlobalRNG()
{
    static RandomPool randomPool;
    return randomPool;
}
int (*AdhocTest)(int argc, char *argv[]) = NULL;

کد برنامه برگرفته از: : http://www.codeguru.com/cpp/misc/misc/cr...hp/c11953/

یادتون باشه قبل از اینکه شروع به مراحل کامپایل برنامه (معمولا با فرمانهای qmake و mingw32-make) بکنید باید این خطوط رو به فایل پروژهء اون (فایلی با پسوند pro) اضافه کنید:

LIBS += -lcryptopp552
CONFIG+=console

--------------------------------

موفق باشید.


Only God

I Wish I Was Buddha
کاش بودا بودم

Live And Let Live
زندگی کن و بگذار زندگی کنند

Forgive And Be Forgiven
ببخش و بخشیده شو

مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-03-11, 09:04 PM,
ارسال : #48
پاسخ: +0warcraft Power Leveling
این یک تابع هست که من برای رمزگذاری یک فایل که در حافظه در یک QByteArray ذخیره شده بود نوشتم و تست کردم.
این تابع یک QByteArray و یک پسورد (هشدار: ممکنه با کاراکترهای غیرلاتین کار نکنه؛ تست نکردم) رو میگیره و بعد محتویات QByteArray رو رمز میکنه. یعنی نتیجهء رمزگذاری در همون QByteArray ذخیره میشه و تابع مقدار برگشتی ای نداره.
کلاسی از Crypto++ که برای این تابع استفاده شده کلاس DefaultEncryptorWithMAC هست که از این الگوریتم استفاده میکنه: DES-EDE2 and HMAC/SHA-1

کد :
void encrypt(QByteArray &in_out, const char *passPhrase) {

string tmp;    
StringSource s((const byte *)in_out.constData(), in_out.size(), true, new DefaultEncryptorWithMAC(passPhrase, new StringSink(tmp)));
in_out.clear();
in_out.append(QByteArray(tmp.c_str(), tmp.size()));
    
}

برای رمزگشایی شما فقط بجای DefaultEncryptorWithMAC به یک DefaultDecryptorWithMAC نیاز دارید. بنابراین تابع رمزگشایی ما به شکل زیر هست:

کد :
void decrypt(QByteArray &in_out, const char *passPhrase) {

string tmp;    
StringSource s((const byte *)in_out.constData(), in_out.size(), true, new DefaultDecryptorWithMAC(passPhrase, new StringSink(tmp)));
in_out.clear();
in_out.append(QByteArray(tmp.c_str(), tmp.size()));
    
}

من دربارهء کتابخانهء Crypto++ کاملا تازه کار هستم (و بطور کلی در مقولهء cryptography ) و رفرنس Crypto++ رو فقط بصورت محدود خوندم برای اینکه بتونم کارم رو راه بندازم. بنابراین ممکنه این کاربرد رو بشه با کد بهتری نوشت که اگر سراغ داشتید اطلاع بدید.


Only God

I Wish I Was Buddha
کاش بودا بودم

Live And Let Live
زندگی کن و بگذار زندگی کنند

Forgive And Be Forgiven
ببخش و بخشیده شو

مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-03-13, 02:08 PM,
ارسال : #49
پاسخ: +0warcraft Power Leveling
با سلام و خسته نباشید. ببخشید که این سوال رو اینجا میپرسم, چون دیدم که بحث برنامه نویسی است و مزاحم شدم. من یک سال هست که برنامه نویسی را شروع کردم اون هم رو جاوا و جونیور هستم. چون لینوکس بازم و عاشق ترمینال و ... میخوام برم و روی ++c کار کنم و برنامه نویس بشم. میخوام بدونم آیا این کار درست است یا ...؟ برای این کار روی لینوکس به چه چیزهایی نیاز دارم و چطور نصب و استارت کار را شروع کنم؟ آیا کلاسی برای این کار میشناسید؟ چون من شاغل هستم, مایلم برم کلاس و اوغات خالی در منزل را تمرین کنم تا این کاره بشم. لطفا راهنماییم کنید, مرسی.
نقل قول این ارسال در یک پاسخ
2010-03-13, 08:55 PM,
ارسال : #50
Re: پاسخ: +0warcraft Power Leveling
Anonymous نویسنده :با سلام و خسته نباشید. ببخشید که این سوال رو اینجا میپرسم, چون دیدم که بحث برنامه نویسی است و مزاحم شدم. من یک سال هست که برنامه نویسی را شروع کردم اون هم رو جاوا و جونیور هستم. چون لینوکس بازم و عاشق ترمینال و ... میخوام برم و روی ++c کار کنم و برنامه نویس بشم. میخوام بدونم آیا این کار درست است یا ...؟ برای این کار روی لینوکس به چه چیزهایی نیاز دارم و چطور نصب و استارت کار را شروع کنم؟ آیا کلاسی برای این کار میشناسید؟ چون من شاغل هستم, مایلم برم کلاس و اوغات خالی در منزل را تمرین کنم تا این کاره بشم. لطفا راهنماییم کنید, مرسی.
نقل قول این ارسال در یک پاسخ
2010-03-13, 09:45 PM,
ارسال : #51
پاسخ: Re: پاسخ: +0warcraft Power Leveling
سلام
می خواهم تجربه چند سال کار خود در حوزه فناوری و برنامه نویسی را در اختیار شما قرار دهم. ببنید مهم نیست که با چه چیزی برنامه نویسی می کنید مهم اینه که بدونید هدفتون از برنامه نویس شدن چیه. اگر دلیل قانع کننده ای برای برنامه نویس شدن داشتید آن وقت ببنید چه زبان برنامه نویسی در این رابطه می تواند به شما کمک کند. به این ترتیب می توانید ببنید کار درستی کرده اید یا خیر.
اما بعد از این. اگر با جاوا کار کرده باشید کار کردن با زبان های مانند C برای شما احتمالا ساده خواهد بود. زیرا سینتکس مشابهی دارند. اما در مورد کلاس من توصیه می کنم وقت خودتان را با کلاس رفتن تلف نکنید. مخصوصا که خودتان گفتید شاغل هستد. باید زمان زیادی را صرف رفت و آمد و حضور در کلاس کنید. بهتره از سایت های اینترنتی استفاده کنید. مخصوصا آموزش های گام به گام زیان برنامه نویسی مورد نظر شما به خوبی در اینترنت یافت می شوند. کافیست کمی زبان تخصصی انگلیسی بلد باشید (برای درک مفاهیم برنامه نویسی).
در نهایت برنامه نویسی مخصوصا با زبان ++C احتیاج به صبر و حوصله و عیب یابی دقیق دارد مخصوصا در اوایل کار دارد. پس اگر این توان را در خود نمی بینید وارد این کار نشوید.
در نهایت اگر در تصمیم خود مصمم هستید، ما در هفته نامه خودمان به صورت گام به گام در حال آموزش این زبان هستیم. می توانید از آن هم استفاده کنید.

<!-- m --><a class="postlink" href="http://www.abnabatmag.com">http://www.abnabatmag.com</a><!-- m -->
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-03-13, 09:50 PM,
ارسال : #52
Re: پاسخ: +0warcraft Power Leveling
Anonymous نویسنده :با سلام و خسته نباشید. ببخشید که این سوال رو اینجا میپرسم, چون دیدم که بحث برنامه نویسی است و مزاحم شدم. من یک سال هست که برنامه نویسی را شروع کردم اون هم رو جاوا و جونیور هستم. چون لینوکس بازم و عاشق ترمینال و ... میخوام برم و روی ++c کار کنم و برنامه نویس بشم. میخوام بدونم آیا این کار درست است یا ...؟ برای این کار روی لینوکس به چه چیزهایی نیاز دارم و چطور نصب و استارت کار را شروع کنم؟ آیا کلاسی برای این کار میشناسید؟ چون من شاغل هستم, مایلم برم کلاس و اوغات خالی در منزل را تمرین کنم تا این کاره بشم. لطفا راهنماییم کنید, مرسی.
درست و نادرستیش بستگی به شرایط خودت داره.
بنظر من با همین فریمورک های مستقل از پلتفرم مثل Qt کار کنی خوبه.
چون اینطوری هم مهارتی که بدست میاری پتانسیل کار تجاری رو هم داره و هم روی ویندوز هم میتونی ازش استفاده کنی. سطح بالا و برای اپلیکیشن نویسی هم هست و خوشدسته و کارها رو راحت کرده، بنابراین زودتر نتیجه های خوشایند و امیدبخش میگیری.
البته باید پایهء برنامه نویسیت خوب باشه. یعنی مثلا با زبانهایی مثل سی و سی++ آشنایی کافی داشته باشی و در درک و ابداع الگوریتم و ساختمان داده ها هم پایهء لازم رو داشته باشی.
شروع کن همین رو کمی برو ببین خوشت میاد و راضی هستی یا نه. اگر خواستی بعدش میری زبانهای دیگه و یا سطوح عمیقتر رو کار میکنی.
اگر میخوای نظر دقیقتری بگیری باید اطلاعات بیشتری هم بدی.
اما اگر همینطور میخوای از یجا شروع کنی بنظر من بهتره از همینطور جاها شروع کنی. حتی میتونی روی ویندوز کار و شروع کنی و بعد روی لینوکس هم تست کنی.
اما اگر بخوای روی خود لینوکس کار کنی خیلی بهتره با خود سیستم عامل و ابزارهای اصلی اون مثل شل بحد کافی آشنا باشی از قبل. مثلا با ساختارش، استانداردهاش، BASH و غیره.
کلاس و منبعی هم جز منابع اصلی و سطح بالا وجود ندارن بنظرم.
باید زبان انگلیسیت خوب باشه و منابع اصلی رو بخونی.
این دنیا بسیار گسترده و سطح بالاست و کسی حتی اگر بحد قابل توجهی هم وارد باشه بازم اکثرا جرات نمیکنه ادعایی بکنه یا حتی به دیگران آموزش خصوصی بده. خیلی ها هم که هنوز در حال پیشرفت و مطالعه و دارای عطش یادگیری هرچه بیشتر و بیشتر هستن (مثل خودم) که سرشون اونقدر شلوغه که نمیتونن کار دیگه ای جز یادگیری و تست و پروژه های محدود بکنن.
کلا رشتهء کامپیوتر و بخصوص نرم افزار و برنامه نویسی هم بسیار جالب و شیرین هستن و هم حجیم و با سرعت تغییر و افزایش زیاد. خوشبختانه با وجود اینترنت و جامعه و فرهنگ نرم افزار آزاد، احتیاجی نیست حتما دانشگاه همه چیز رو آموزش بده یا کلاس و منابع داخلی باشه. اصلا نمیشه که. اما آدم اگر علاقه و پشتکار داشته باشه و وقت آزاد کافی و خیال راحت رو هم داشته باشه خودش میتونه در این دنیا پیشرفت کنه؛ وقتی برای کارهای جانبی نیست. خیلی خیلی چیزها برای یاد گرفتن هست.
هرچی بیشتر یادمیگیری حریص تر میشی و بیشتر لذت میبری.


Only God

I Wish I Was Buddha
کاش بودا بودم

Live And Let Live
زندگی کن و بگذار زندگی کنند

Forgive And Be Forgiven
ببخش و بخشیده شو

مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-03-14, 09:53 PM,
ارسال : #53
پاسخ: Re: پاسخ: +0warcraft Power Leveling
ممنون از همگی. میشه بگید در لینوکسم چطور ++C نصب کنم و چه ادیتوری مناسب هست و ...
متشکرم.
نقل قول این ارسال در یک پاسخ
2010-03-14, 10:23 PM,
ارسال : #54
پاسخ: Re: پاسخ: +0warcraft Power Leveling
در لینوکس معمولا سی++ از پیش نصب هست. در خطر فرمان بزنید g++ (یک جی و بعدش دوتا علامت مثبت - ترتیب در نمایش بهم ریخته) تا ببینید کامپایلر سی++ رو دراختیار دارید یا نه.
مگر اینکه بخواید از کامپایلر و ابزارها یا کتابخانهء خاصی استفاده کنید که در لینوکس نصب نباشه.
مثلا اگر بخواید از Qt استفاده کنید و نصب نباشه احتمالا بسته به توزیعتون توی سی دی هاش هست که باید با فرمانی مثل rmp -ivh پکیج های مربوط به برنامه نویسی با Qt رو نصب کنید. نگاه کنید از اسم پکیج ها مشخص هست. باید فرمان مربوطه رو روی هر پکیجی که مربوط به برنامه نویسی Qt میشه اجرا کنید. البته روشهای دیگری هم وجود داره و ابزارهای دیگری بسته به توزیع شما. روشی که من گفتم در توزیع فدورا هست.
ضمنا اگر ابزار یا کتابخانهء مورد نظر رو روی سی دی ندارید باید از طریق برنامه هایی مثل yum اون رو نصب کنید یا خودتون بصورت دستی از جایی پکیج اونها رو دانلود و به روش گفته شده نصب کنید.
یا میشه دانلود کنید و باز بوسیلهء برنامه هایی مثل yum از local اونها رو نصب کنید. چون برنامه هایی مثل yum بصورت خودکار خیلی کارهایی رو که انجامشون با دست سخته یا ترتیب خاصی دارن انجام میده.
شما باید توزیع و ابزار و کتابخانهء مورد نظر خودتون رو مشخص کنید تا جواب دقیقتر بگیرید.


Only God

I Wish I Was Buddha
کاش بودا بودم

Live And Let Live
زندگی کن و بگذار زندگی کنند

Forgive And Be Forgiven
ببخش و بخشیده شو

مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-03-15, 03:57 PM,
ارسال : #55
پاسخ: Re: پاسخ: +0warcraft Power Leveling
ممنون از همه. من برای جاوا بعد از نصب جاوا و آی دی ای, میرفتم و اینوایرومت وریبل و ... هم ردیف میکردم. الآن ++C برای من نصب است و ادیتور eclipse هم دارم. آیا این کافیست؟ میتونم شروع کنم؟ باز هم پیشاپیش متشکرم.
نقل قول این ارسال در یک پاسخ
2010-03-15, 10:25 PM,
ارسال : #56
پاسخ: Re: پاسخ: +0warcraft Power Leveling
کافیه دیگه! مگه میخوای چیکار کنی؟
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


کاربران در حال مشاهده موضوع : 1 مهمان