View Full Version : قبلی رو جواب بده، از بعدی بپرس!
mohamadice
شنبه 09 بهمن 1389, 01:35 صبح
با سلام دوستان عزیز
این تاپیک با همکاری شما میتونه نهایتا یه منبع مفید و غنی برای افراد مبتدی یا حرفه ای باشه
اساس کار تو اسم تاپیک معلومه...
برای شروع اولین سوال رو میپرسم
تفاوت سیستم های Unicode و utf در چیه ؟
eshpilen
شنبه 09 بهمن 1389, 09:06 صبح
ایدهء جالبی هست این تاپیک :لبخندساده:
میشه گفت یونیکد استانداردی برای کدهای تخصیص یافته به حروف تمام زبانهای جهان هست، و utf ها روشهایی برای ذخیره سازی و انتقال عملی این کدها در قالب بیت ها (پیاده سازی بهینه). البته خیلی ساده و عامیانه و با اغماض از نظر دقت فنی این تعریف رو داشتیم. وگرنه مثلا تعریف یونیکد گسترده تر از این تعریف هست و برای اجزای دیگری هم استاندارد و حتی احتمالا الگوریتم تعریف کرده. ضمنا بنظرم این روشهای پیاده سازی یا Transformation formats رو هم همین استاندارد تعریف کرده. یعنی utf ها خودشون جزیی از استاندارد یونیکد هستن.
نکته: البته فکر میکنم به پیاده سازی خام/مستقیم کدهای یونیکد که از نظر حجمی غیربهینه شده هست هم Unicode گفته میشه. مثلا در Notepad گزینه ای با همین نام، جزو گزینه های فرمت ذخیره سازی هست.
پرسش بعدی:
Base64 چیست/کجاها و به چه علتی بکار میره؟
---------------------
ویرایش: راستی آیا افرادی هم که از سوال مطرح شده هیچی یا چیز زیادی نمیدونن میتونن به رفرنس مراجعه کنن و یاد بگیرن و جواب بدن یا فقط افرادی که مطلبی رو از پیش بلدن باید جواب بدن (رجوع به منبع هم فقط برای اطمینان و دقت و جامعیت بیشتر میتونه مجاز باشه)؟
ricky22
شنبه 09 بهمن 1389, 21:03 عصر
Base64 یک الگوریتم کدینگ است.مصارف اون انتقال وصله های ایمیلهاست به دلیل اینکه در پروتکل MIME باید از کاراکترهای اسکی استفاده نمود لذا از این روش کدینگ استفاده می شود.
و در بعضی برنامه های تحت وب برای ساختن ادرس صفحات وب ازش استفاده می شود.
ما در base64 دارای64 سمبل میباشیم که از0 تا63 شماره گزاری میشوند :
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwx yz0123456789+/ كاراكترهايي كه ما بطور معمول استفاده مي كنيم 8 بيت هستند (يونيكد 16 بيت) ولي كاراكتر هاي كه تو اين الگوريتم استفاده ميشن 6 بيت هستند و مساله همينجاس
مثلا abc از سه كاراكتر تشكيل شده كه كد اسكي آنها عبارتست از
:
97 98 99 كه معادل انها به باينري ميشه :
1100001 1100010 1100011
كه بايد هركدوم رو به 8 بيت تبديل كنيم . يعني سمت چپشون تا جا داره 0 بزاريم كه نتيجه ميشه :
01100001 01100010 01100011
حال از سمت چپ بيت هارو 6 تا 6 تا جدا ميكنيم
011000 010110 001001 100011
حال معادل دسيمال (مبناي 10 ) هر قسمت رو محاسبه ميكنيم.
24 22 9 35
با توجه به 64 سیمبولی که اعلام شد :
پس اگه دقت كنيد ميتونيد معادل شماره هاي بدست امده رو بدست بيارين
Y=24
W=22
J=9
j=35
پس ما اگر رشته abc رو با استفاده از الگوريتم base64 كد كنيم حاصل YWJj خواهد بود
منابع : این (http://www.ashiyane.org/forums/showthread.php?p=105920)و این (http://www.iranled.com/forum/Thread-%D9%85%D9%82%D8%A7%D9%84%D9%87-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-base64)
-------------------------------------------------------
منظور از برنامه نویسی Client Side در صفحات وب چیست؟
r00tkit
شنبه 09 بهمن 1389, 22:12 عصر
سلام منظور از Client-side برنامه هایی است که در در سمت کلاینت ( مشتری ) در سیستم مشتری خدمتگذار اجرا می شه که این سمت مشتری می تونه یه مرور گر باشه برنامه در سمت کلایت اجرا می شه چون اطلاعات و مورد نیاز در سمت مشتری هستش این کار چند فایده داره { کم تر شدن استفاده از پهناد باند و افزایش امنیت} از زبان های سمت کلاینت می شه به JavaScript اشاره کرد سوال ؟ فرق arrange یه PE تو memory با disk چیه ؟
mehdi.mousavi
یک شنبه 10 بهمن 1389, 00:56 صبح
فرق arrange یه PE تو memory با disk چیه ؟
سلام.
در حقیقت تفاوتی ندارن و فقط بخشهای متفاوت به نقاط متفاوت حافظه Map میشن چرا که data structure هایی که برای نگهداری داده های مزبور در فایل PE بکار میرن، همون هایی هستن که در حافظه از اونها استفاده میشه، در نتیجه Load کردن یه PE در حافظه، فقط نیازمند Map کردن جایگاه مناسب از PE File ها به حافظه هستش. آقای Matt Pietrek در این مقاله (http://msdn.microsoft.com/en-us/magazine/cc301805.aspx)، بطور مفصل به اون اشاره کرده:
http://i.msdn.microsoft.com/Cc301805.pefig01%28en-us,MSDN.10%29.gif
سوال: Big Endian و Little Endian چیست و فایلهای Windows BMP در کدام یک از دو دسته اخیر قرار می گیرند؟
پاورقی: برای بهم نخوردن نظم تاپیک، پستهای JaguarXF و Eshpilon رو حذف کردم (پیشاپیش عذرخواهی میکنم)، سوال خودم رو هم تغییر دادم.
لطفا از این پس فقط سوالات عمومی و کلی مطرح کنید. این مساله بر اساس صحبتهای Eshpilon صورت گرفت تا عموم اعضاء بتونن در این تاپیک شرکت کنن.
eshpilen
یک شنبه 10 بهمن 1389, 21:35 عصر
عجیبه ها من گفتم تا الان یکی اومده جواب داده!!
بابا یخورده فعالیت کنید خوبه. من الان چند مقالهء مفصل واسه همین سوال خوندم.
خیلی وقت پیش دربارهء اینا کلی مقاله خونده بودم و عملی هم حتی تازگی سر و کار داشتم، اما توضیح دادن دقیق و کاملش نیاز به مرور رفرنس داشت چون یادم رفته. شاید بگید چطور در عمل کار کردی ولی مطمئن نیستی؛ باید بگم چون خیلی وقتا در عمل نیازی نیست تعریف دقیق و کامل و اسم و همهء جزییات رو بدونیم و فقط باید بفهمیم اون مورد خاص چطور کار میکنه و جزء کدامیک از موارد و شکلها و نکاتی که قبلا بصورت تئوری خوندیم و توی ذهنمون بوده هست.
خب در پاسخ به این سوال باید گفت که این قضیه یه مقدار بیشتر از چیزی که ممکنه بنظر برسه گسترده و پیچیده هست و انواع مختلفی داره، اما بنظرم میتونیم بخش بزرگی از این گستردگی و پیچیدگی رو کنار بذاریم و به متداول ترین کاربرد و نمود امروزی اون بپردازیم، که دو ترتیب متداول ذخیره یا ارسال بایتهای یک عدد هست.
در یک عدد چند بایتی، اگر ابتدا بایت با بیشترین ارزش ذخیره یا ارسال بشه، بهش میگیم Big Endian. یعنی مثلا در عدد 0xED9A، مقدار ED در بایت صفر ذخیره میشه و در بایت بعدی 9A ذخیره میشه. یا موقع ارسال ED اول ارسال میشه که بخش بزرگتر عدد هست، و بعد 9A. باید اشاره کرد که Big Endian فرمت متداول در ارسال از طریق شبکه هست و استاندارد اینترنت (البته این قضیه استثناء هم داره؛ ولی تاجایی که ما سر و کار داریم بیشترش Big Endian هست).
Little Endian هم که برعکس Big Endian هست. یعنی اول بایت با کمترین ارزش ذخیره یا ارسال میشه و همینطور بایتهای بعدی از نظر آدرس مکان ذخیره سازی در حافظه یا ترتیب ارسال، به تدریج از نظر ارزش مکانی در عدد افزایش پیدا میکنن. در عدد مثال بالا این یعنی ابتدا 9A و بعد ED از نظر آدرس/ایندکس ذخیره سازی یا ترتیب ارسال در رابط سریال/شبکه.
راستی این اسم ها، یعنی Little Endian و Big Endian، اولین بار توسط یکی از متخصصان IEEE بنام Danny Cohen با الهام از داستان سفرهای گالیور نوشته شده توسط Jonathan Swift ابداع شدن. داستان در کتاب مذکور بدین قرار هست که دو قلمرو مختلف رقیب در این داستان وجود داشتن که هرکدوم قانون خاص خودشون رو برای شکستن تخم مرغ نیم پخته (آب پز) داشتن. این قانون در یک قلمرو به این صورت بود که باید تخم مرغ رو از انتهای بزرگتر اون میشکستن، و در قلمرو حریف بعکس قانون این بود که باید تخم مرغ رو از انتهای کوچکتر میشکستن!!
بنظرم این نشانهء ذهنی خوبی هست که بیاد بیارید Little Endian یعنی باز کردن از طرف کوچک، یعنی گرفتن بایتهای با کمترین ارزش در ابتدا، و Big Endian یعنی باز کردن از طرف چاق تر، یعنی گرفتن بایتهای با بیشترین ارزش/ضریب عددی در ابتدا.
درمورد Windows BMP هم ببخشید که تقلب کردم و در مقالهء ویکیپدیا جوابش رو پیدا کردم، اما خودم بخاطر اینکه معماری سخت افزار x86 و مطابق با اون ویندوز، Little Endian هستن، حدس میزدم که طبیعتا این فرمت که بنظرم بومی ویندوز و میکروسافتی هست باید از نوع Little Endian باشه.
خب اگر جایی اشتباهی کردم یا نقص مهمی داره لطفا اصلاح بفرمایید.
اینم منبع اصلی مورد استفاده برای پاسخگویی به این پرسش: http://en.wikipedia.org/wiki/Endianness
ضمنا امیدوارم کاربران دیگر هم بیشتر فعالیت کنن. جناب mehdi.mousavi، میگم چطوره در جواب دادن سوالات بعدی حتی اگر جوابشون رو میدونستم بیشتر تاخیر کنم؟
و پرسش بعدی:
فرق نرم افزار آزاد (Free Software) و نرم افزار بازمتن (Open Source Software) چیست؟
امیدوارم سوال رو نامربوط تلقی نکنید. ناسلامتی به رشتهء ما کاملا مربوطه.
ricky22
یک شنبه 10 بهمن 1389, 21:54 عصر
فرق نرم افزار آزاد (Free Software) و نرم افزار بازمتن (Open Source Software) چیست؟منظور از free software نرمافزار رایگان نیست بلکه نرمافزار آزاد هستش. جنبش نرمافزار آزاد در سال ۱۹۸۳ آغاز شد اما در سال ۱۹۹۸ عدهای روش متنباز یا همون open source رو معرفی کردن. حالا میرسیم به تفاوت این ۲تا از زبون ریچارد استالمن (http://en.wikipedia.org/wiki/Richard_M._Stallman):
“Open source is a development methodology; free software is a social movement.” For the Open Source movement, non-free software is a suboptimal solution. For the Free Software movement, non-free software is a social problem and free software is the solution.
تفاوت اصلی اینه که شما در یک پروژهی open source میتونین از یه راه حلی استفاده کنید که source اون در دسترس نباشه اما در free software اجازهی این کار رو ندارین. در ساده ترین توصیف اگه همهی source یک نرمافزار در دسترس باشه چه خود نرمافزار چه ابزارهایی که در اون استفاده شده بهش free software میگن اما اگه source خود نرمافزار در دسترس باشه ولی از ابزارهایی در اون استفاده بشه که source اونها در دسترس نیست میشه open source.
منبع(فارسی) (http://prince.soldier.ir/1387/11/20/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-free-software-%D9%88-open-source/)
اطلاعات بیشتر(فارسی) (http://www.best-essay.blogfa.com/page/Open.aspx)
اطلاعات بیشتر ( جالب!) (http://www.gnu.org/philosophy/free-software-for-freedom.html)
-----------------------------------------------
سوال:
jQuery چیست و فرق آن با Mootools را در چه می بینید؟
eshpilen
یک شنبه 10 بهمن 1389, 23:03 عصر
بخش اول رو درست گفتید؛ اول نرم افزار آزاد بوجود آمد و بعدا بازمتن. میشه گفت اگر نرم افزار آزاد بوجود نمیامد، احتمالا بازمتن هم بوجود نمیامد. بازمتن یک نوع انشقاق یا جنبش موازی و الهام گرفته از نرم افزار آزاد یا موفقیت عملی نرم افزار آزاده بوده.
اما در مورد بعدی متاسفانه بنظرم مطلب گفته شده اشتباه هست.
بنده تاحالا چنین محدودیتی ندیدم. اثباتش هم اینه که در خیلی موارد، نرم افزارهای آزاد و بازمتن از دقیقا یک مجوز یکسان استفاده میکنن و بنابراین در عمل از نظر قانونی و فنی هیچ تفاوتی ندارن. هر آزادی و محدودیتی که در هر یک هست، در دیگری هم دقیقا یکسان هست (از نظر قانونی و فنی - یعنی بعد عملی).
اتفاقا در یکی از منابعی که معرفی کردید، خود Eric Raymond، در جواب سوال در اینمورد میگه:
▪ به نظر شما بزرگترین تفاوت نرمافزارOpen source و نرمافزارهای موسوم به Free Software در چیست؟
ـ تفاوتی در کار نیست. در واقع نرمافزارهای این دو گروه تفاوتی با یکدیگر ندارند. کاربران، مجوزها و ابزارها در هر دو مورد مشابه هستند. اگر قرار باشد بین نرمافزار open source و نرمافزارهای Free Software تفاوتی وجود داشته باشد، چنین تفاوتی در روش تبلیغ و گرایشهای عرضهکنندگان آنها نهفته است. در واقع کارکرد شما به عنوان عرضه کننده نرمافزار تفاوتی نمیکند، تفاوت در روش بیان شما نهفته است.
پس مسلم شد که تفاوت عملی و قانونی و فنی وجود نداره (اول خودمم شک کردم).
البته بنظر بنده، بخاطر گرایشها و اعتقادات خاص هر دسته، از نظر آماری تفاوتهایی در عمل میتونه وجود داشته باشه. بخاطر اینکه مثلا، کسی که به فلسفهء نرم افزار آزاد اعتقاد داره، میتونه خیلی بیشتر نسبت به وابستگی نرم افزار آزاد به اجزای انحصاری حساسیت داشته باشه.
اطلاعات تکمیلی بیشتر و جمع بندی ای که باید درج کنیم اینهاست:
- بنیانگذار نرم افزار آزاد، «ریچارد استالمن» هست.
- بنیانگذار بازمتن رو هم که اکثرا «اریک ریموند» میدونن و در بالا گفتیم.
- نرم افزار آزاد پیش از نرم افزار بازمتن متولد شد.
- بنوعی، بازمتن از نرم افزار آزاد الهام گرفت یا مشتق شد.
- و اما مورد نهایی و مهمترین نکته و موضوع سوال ما اینه که، تفاوت بازمتن و نرم افزار آزاد در این هست که نرم افزار آزاد نسبت به بازمتن، جنبشی خیلی بیشتر سیاسی و اجتماعی و اخلاقی و فلسفی هست که هدف و اصل و ارزش اون «آزادی» هست؛ درحالیکه بازمتن بعنوان یک جنبش که ارتباط مستقیمی با آرمانگرایی سیاسی و مسائل اخلاقی و فلسفی و اجتماعی بعنوان اصل و پایهء صرف نداره، بوجود آمد. افرادی که به بازمتن اعتقاد دارن بر اساس علاقهء شخصی صرف یا بخاطر پیشرفت تجاری یا فنی که اعتقاد دارن بوسیلهء بازمتن حاصل میشه در اون فعالیت میکنن.
از نظر قانونی و تعریف فنی، بازمتن و نرم افزار آزاد در تقریبا تمام موارد هیچ تفاوت مهمی با هم ندارن. پس چرا جنبش مستقلی بنام بازمتن بوجود آمد؟
همونطور که گفتیم علتش امکان فعالیت فنی در این زمینه بدون داشتن دیدگاهها و شعارهای سیاسی و ایدئالگرای نرم افزار آزاد بوده. بازمتن یک دیدگاه از روی علاقمندی های شخصی و بعد فنی و تجاری آزاد هست که این مدل رو مدل برتر از نظر خصوصیات انسان و سیستم تجارت و صنعت میدونه.
اریک ریموند خودش در این ارتباط در جایی میگه:
If you want to change the world, you have to co-opt the people who write the big checks
بنابراین بازمتن بوجود میاد، بدون بردن نامی از آزادی، بدون اشاره به عدم انحصار که بیزینسمن ها نسبت بهش حساسیت دارن، تحت عنوان متد جدید توسعهء نرم افزار که منجر به کیفیت و کمیت بیشتری میشه، تا بتونه بصورت حداکثری رشد کنه و منابع تجارت و سرمایه دارها رو جذب خودش بکنه.
بعکس، نرم افزار آزاد اعتقاد داره که نباید معنا و هدف و معرفی آرمان رو قربانی وسیله کرد و باید آرمان آزادی و اخلاق محوری رو مطرح و روش پافشاری کرد، هرچند در ظاهر باعث کمتر بودن طرفداران و عمومیت دستاوردهای اون باشه، اما در نهایت/مجموع این به نفع آرمان آزادی که هدفشه هست.
خب ببخشید که طولانی شد.
سوال شما هم که بجای خودش باقی هست تا کسی بیاد جواب بده. بنده جوابش رو نمیدونم.
سوالتون رو دوباره درج میکنم تا در دید باشه:
سوال:
jQuery چیست و فرق آن با Mootools را در چه می بینید؟
eshpilen
سه شنبه 12 بهمن 1389, 11:01 صبح
چی شد پس؟
یکی جواب بده دیگه.
نمیدونم اینقدر بی ذوق هستید یا مسئلهء دیگری در کاره.
این تاپیک خیلی جالب و مفیده. چون میتونیم سوال و جوابهای مهم و مفیدی رو توش مطرح کنیم و چیزهای خوبی یاد بگیریم.
eshpilen
چهارشنبه 13 بهمن 1389, 18:45 عصر
واقعا آدم این موارد رو میتونه بعنوان نشانه ای از چیزی با اهمیت تلقی و بررسی کنه.
آخه چرا باید فعالیتی در این تاپیک نشه؟ علتش چیه؟
از هر جهت نگاه کنی موضوع و فعالیت خوبی هست. بنده که خودم خورهء مطالعهء مقاله در هر زمینه ای هستم، از همین چند سوال و جواب و پستهای دیگران تعدادی چیزهای مفید یاد گرفتم و بعضی چیزها که مهم بودن (مثلا از پست جناب mehdi.mousavi درمورد نگاشت فایلهای اجرایی PE به حافظه). حتی موقعی که آدم خودش به سوال دیگران جواب میده ممکنه چیز مفیدی یاد بگیره. بطور مثال خودم همیشه برام سوال بود که اصطلاح های Little Endian و Big Endian از کجا میان، تا اینکه با پاسخ به این سوال و مطالعهء مقالهء ویکیپدیا این موضوع برام روشن شد (داستان تخم مرغ آب پز کتاب سفرهای گالیور) و این مشکل که همیشه نمیتونستم بین این اصطلاح ها و نمود واقعی اونها ارتباط برقرار کنم و یادم میرفت کدومش برای کدوم حالت فنی هست برام حل شد.
البته من نمیگم بیایم مدام وقت و انرژیمون رو در این تاپیک بذاریم، ولی اونقدری جذاب و مفید هست که گهگاهی درش جواب بدیم. خوندنش هم که بنده شخصا همیشه بهش سر میزنم و اگر چیزی که بنظرم مفید بود و اطلاعات کافی درموردش نداشتم و وقت کافی هم برای خوندنش داشتم دیدم مطالعه میکنم.
اینکه اینطور تاپیک ها به این زودی متروک بشه بنظر بنده باید دلیل مهمی داشته باشه، و متاسفانه بنظرم دلیل خوبی نداره.
بطور مثال علتش ممکنه تنبلی و بی ذوقی باشه که البته وقتی در یک سایت تخصصی و معروف و عمدهء برنامه نویسی، چنتا کاربر فعال برای چنین تاپیکی پیدا نشه، واقعا آدم رو از جو علمی ملت خودمون ناامید میکنه. بعد من میگم ما نیروی انسانی قوی نداریم، بهم گیر ندید پس. اوکی؟
علتش اگر توان علمی پایین باشه، بازم بده. درواقع این و علتهای قبلی که ذکر کردم با هم ارتباط دارن. آدم در چیزی که ذوق یا وقت چنین فعالیتهایی رو نداشته باشه، مسلما به ضعیف و محدود موندن در اون منجر میشه و میشه گفت رشد اساسی و قوی ای صورت نمیگیره و کارهای برنامه نویسی ما درحد چند حیطهء محدود بازاری و سطح پایین از نظر علمی و پایه ای باقی میمونن. بخاطر همینه که ما نمیتونیم فناوری تولید کنیم و صرفا مصرف کنندهء اون هستیم. اونم مصرف کننده ای که بیشتر جوگیر و دنبال ظواهر کم ارزش و خیلی وقتها سرکاری هست. بخش اعظم قدرت حقیقی علم در چیزهای دیگریست.
اگر هم واقعا چیزی بلد هستید و وقتش رو دارید اما نمیخواید به دیگران یاد بدید، بازم صفت بدی هست که منجر به نتایج بدی برای جامعه و حتی خود فرد میشه. به این شکل آدم نمیتونه از یک حدی بیشتر آزاد اندیشی و رشد داشته باشه و چنین اجتماعی در زمینهء بهره وری آزاد از نیروی جمعی مشکلات مهمی داره و نمیتونه با سرعت و قدرت بالا پیشرفت کنه. خیلی چیزهایی ارزشمندی که میتونستن برای همگان خیلی ارزان یا حتی رایگان حاصل بشن، حاصل نخواهند شد.
اگر هم کسی از این میترسه که با میزان واقعی سواد و قدرت خودش و یا دیگران و یک مقایسه با همدیگر رودررو بشه، بازم یک ضعف اساسی رو نشون میده و چنین فردی نمیتونه در وادی واقعیت بصورت نامحدود و با حداکثر سرعت و توان رشد کنه. آگاهی از جایگاه خود و پذیرفتن اون، و توان روبرو شدن با حقایق، اولین قدمهای لازم برای برنامه ریزی و رشد واقعی و اصولی هستن. چون این آگاهی و واقعیت گرایی و عمل گرایی لازم هست.
حتی گاهی رقابت هم لازم و مفیده. رقابت که چیز بدی نیست. موقعی که رقابت عادلانه باشه هیچ مشکلی نداره. موقعی که حسادت نشه. اگر جوانمردانه باشه که دیگه عالی هست. آدمهایی که میخوان بهرصورتی از رقابت دوری کنن، خودشون رو از یک ابزار مهم برای پیشرفت محروم میکنن.
البته ببخشید بنده اینا رو رک گفتم! امیدوارم ناراحت نشید. این یک تحلیل کلی و بدون اشاره به هیچ شخص خاصی بود و بنظر بنده کاملا بر اساس منطق و مشروع. شما اگر نظر و دلیل دیگری برای بیان دارید خب بفرمایید. ضمنا نگید این حرفا مهم نیست. پس چی مهمه؟ معیار چیه؟ بالاخره هرچیزی یک معیار و فرمول و نشانه ها و روش اندازه گیری مستقیم یا غیرمستقیمی داره. انسان باید روی هرچیزی تاحد ممکن دقت کنه و کنجکاو باشه تا علتش رو متوجه بشه. هیچ چیزی تصادفی نیست. رفتارها و تفاوت هایی که تاحد زیادی خلاف انتظار ما هستن، اغلب نشانه های واضحی از واقعیات مهمی هستن که باید ریشه یابی بشن. یعنی بهترین نقاط برای روشن شدن سرنخها و شروع تحلیل.
البته سوال دوستمون هم زیاد جالب نبود. چون موردی هست و باید کسی که اطلاعات یا علاقه ای درمورد دو ابزار خاص داره بهشون جواب بده. اما بهرحال بنظرم باید در این تاپیک کاربران بیشتری به میزان بیشتری فعالیت میکردن. درمورد سوالهایی هم که جواب داده نمیشن، میشه فکری کرد. مثلا جوابش رو خود مطرح کننده بعد از یه مدت بده، یا کسی با مقداری تحقیق جواب بده، یا اگر صرف و ربط کافی نداره سوال کلا کنار گذاشته بشه و غیره.
سعی کنید سوالات بیشتر روشها و الگوریتم ها و ساختارهای کلی و پایه ای دنیای علم برنامه نویسی باشن. چیزهای زیادی در این زمینه هست. چیزهایی که فقط به یک ابزار و تخصص بیش از حد محدود و موردی مربوط نمیشن.
راستی سوال درمورد سخت افزار هم بنظر شما مناسب هست؟
حمید محمودی
شنبه 16 بهمن 1389, 02:19 صبح
سلام،
@eshpilen: حرفایی که در پست قبلی گفتین میتونه از جهاتی درست باشه اما به نظر میرسه دوستان بلد اند، اما وقت و حوصله کافی برای پاسخ گویی ندارن. ضمن اینکه اینگونه سوال و جواب ها خوبه اما ما میتونیم با یه سرچ ساده در Search Engine ها در خیلی از موارد جواب سوالمون رو پیدا کنیم و دیگه با این شرایط فکر نکنم خیلی جالب باشه تاپیک/پست بزنیم و توی اون سوالمون رو بپرسیم.
سوال آخر این تاپیک رو همون روز اول دیدم، اما صبر کردم تا دوستان باتجربه تر بیان جواب بدن تا پاسخ فنی تری ارائه بشه؛اما گفتم حالا که پاسخی ارائه نشده بیام جواب بدم. البته اینگونه سوالات که پاسخ مشخصی دارند، با یه جستجوی ساده میشه جواب های قابل قبولی براشون پیدا کرد و خیلی وقت و انرژی لازم نیست.و به نظر من بهتره که سوالاتی مطرح بشه که جواب خیلی واضحی ندارن و نمیشه خیلی مطمئن بود که با یه سرچ کردن ساده و صرف وقت خیلی کم به جواب مورد نظر میرسیم.
مثلا لینک های زیر رو هر کی بخونه فکر کنم یک کمی اطلاعات در این زمینه پیدا میکنه؛ اما به هر حال پاسخ این سوال رو خیلی کوتاه با توجه به منابعی که گفتم میدم :
http://boplo.ir/mootools/what-is-mootools
http://boplo.ir/web-design/jquery-or-mootools
http://fa.wikipedia.org/wiki/%D8%AC%DB%8C%E2%80%8C%DA%A9%D9%88%D8%A6%D8%B1%DB%8 C
سوال: jQuery چیست و فرق آن با Mootools را در چه می بینید؟
جواب :
jQuery یک کتابخانه بازمتن و رایگان جاوا اسکریپت هست که برای ساده تر نوشتن اسکریپت های سمت-کلاینت در HTML طراحی شده و محبوب ترین کتابخانه درحال استفاده هستش. با استفاده از این jQuery کارهای زیادی میشه انجام داد که کلا انجامشون نسبت به زمانی که بخوایم کل سند رو کدنوسی کنیم بسیار ساده تره.مثلا اگه بخوایم برای یه قسمت متن، نمایش fade out بزاریم خب با استفاده از توابعی که وجود داره میشه خیلی راحت اینکار رو انجام داد، اما اگه بخوایم کل کار(نمایش بصورت fade out) رو کد نوسی کنیم خب سختره. mootools هم یک Framework برای زبان JavaScript هست که کار با زبان جاوااسکریپت رو بسیار ساده میکنه و ای جکس رو بصورت ساده و استاندارد درآورده.
از تفاوت هاشونم میشه بطور کلی به موارد زیر اشاره کرد :
jQuery امکانات خیلی خوب و سریعی برای کار با DOM ارائه میده ولی برای توسعه امکانات جالبی نداره و خیلی راحتتره (یادگیریش) و به نظر میرسه دلیل محبوبیتش هم همین باشه.
mootools هم امکانات خوبی برای کار با DOM ارائه میده و هم برای جاوا اسکریپت. ولی یادگیریش به نظر میرسه سختتره.
سوال:
حتما میدونید که نرم افزار های تحت وب رو میشه کاری کرد که تحت دسکتاپ اجرا بشن؛ به عبارت دیگه نرم افزار های تحت وبی که برای اجرا شدن بجای نرم افزارهای تحت دسکتاپ اجرا و/یا طراحی میشن، چقدر میتونن بجای اون نرم افزار تحت دسکتاپ مفیدتر باشن؟ چه مزایایی دارن؟ اصلا اصولی هست که یه همچین کاری انجام بشه؟ نمونه ای هم سراغ دارین؟ مثلا فرض کنید یه نرم افزار مدیریت فروشگاه غذایی رو میشه هم با بصورت تحت وب نوشت و هم تحت دسکتاپ. اما سوالم اینجاست که کدوم حالت بهتره و در در چه مواقعی. و در آخر هم اینکه به نظر شما بطور کلی چه مواردی رو باید رعایت کرد که اگه میخوایم یه همچین کاری انجام بدیم کار خراب از آب در نیاد؟
eshpilen
شنبه 16 بهمن 1389, 10:30 صبح
سلام،
@eshpilen: حرفایی که در پست قبلی گفتین میتونه از جهاتی درست باشه اما به نظر میرسه دوستان بلد اند، اما وقت و حوصله کافی برای پاسخ گویی ندارن.
خب منم اینو بعنوان احتمالی درمورد بعضی افراد ذکر کردم. اما گفتم که اینم یه اشکال بزرگه. در این رشته بدون داشتن این دوتا، یعنی وقت و حوصله، نمیشه پیشرفت زیادی در تمام سطوح لازم داشت. شاید کسانی استثناء باشن که مثلا کارشون اونقدری متنوع و علمی هست که باوجودی که سرشون شلوغه اما امکان پیشرفت همه جانبه رو داشته باشن، اما تعداد این افراد بنظرم خیلی کمه و معدود کارهایی هستن که اینقدر گسترده و متنوع و علمی باشن. نهایت بیشتر کارها نوشتن دوتا نرم افزار تجاری هست، که درمقابل گستردگی و تنوع این علم که برای پیشرفت واقعی درش لازمه چیز زیادی نیست. کارهای بازاری خیلی محدود و سطحی هستن بنظر بنده. بخاطر همینه که خیلی افراد اصلا حرفهای بی ربطی میزنن و نشون میدن که اصلا نمیدونن این علم یعنی چی و چقدر عمق و گستردگی داره. فکر میکنن دوتا نرم افزار بازاری و دیتابیس خیلی مهمه. درحالیکه بخش بزرگی از قدرت کشورهای پیشرفته بخاطر اون جنبه های متنوع علمی و عمیق و پایه ای هست که دارن. ما باید افرادی داشته باشیم که اینقدر وقت و حوصله و علاقه داشته باشن که روی مسائل دیگر غیر از برنامه های تجاری و اپلیکیشن های استاندارد هم کار کنن. وگرنه واقعیتش این خواهد بود که حتی از نصف گستردگی و قدرت این علم هم بهره ای نمیبریم.
ضمن اینکه اینگونه سوال و جواب ها خوبه اما ما میتونیم با یه سرچ ساده در Search Engine ها در خیلی از موارد جواب سوالمون رو پیدا کنیم و دیگه با این شرایط فکر نکنم خیلی جالب باشه تاپیک/پست بزنیم و توی اون سوالمون رو بپرسیم.
در بعضی موارد شاید اینطور باشه، اما فکر نمیکنم خیلی چیزها به این سادگی هم باشه. فقط سرچ کردن که نیست، خوندن و فهمیدن هم هست. گاهی باید طرف حداقل چند ده صفحه مطلب رو بخونه تا بتونه نظر کامل و دقیق و مطمئنی بده.
بهرحال منظور از این تاپیک اینه که اول افرادی که بلدن و قبلا مطالعه و تجربه ای داشتن جواب بدن. به این روش روند یادگیری و تشخیص نقاط قوت و ضعف و روشهای اصولی یادگیری و سرفصل های لازم برنامه ریزی آینده برای دیگران هم میتونه خیلی تسهیل و راحت بشه. اینجا جای مسابقه یا خودنمایی نیست. هرکس هم این کار رو بکنه کار بی معنایی کرده. خب بعضی افراد این کار رو میکنن چون میخوان مثلا خودنمایی کننِ. ولی بهرصورت کار بی معنا و احمقانه ای هست. ضمنا معمولا کم و بیش میشه حدس زد که چه کسانی تقلب میکنن. آدمی که تقلب میکنه تسلط و اطمینان نداره و اشتباه زیاد میکنه و لحنش مشخص هست که مستقیما و همون موقع از جایی برداشت اکثرا لفظی کرده (بدون درک کامل و عمیق معنا و در نتیجه بدون بینش کافی).
ضمنا علم رایانه خیلی مسائل جالب و علمی و نیازمند تحلیل و تفکر و مطالعه و درک عمیق داره. فقط چنتا چیز بازاری و ترفند و موارد حفظی و کلیشه ای که نیست. منظور بنده هم بیشتر همین چیزهای درکی و عمیق و علمی و پایه ای هست. در این موارد حتی افرادی که دانش و تجربه ای دارن ممکنه دچار نقص و ضعف و یا اشتباه باشن، پس بد نیست اینطوری خودشون رو محک بزنن و دیگران هم همینطور و اگر اشتباه و نقصی بود گوشزد کنن.
ضمنا هدف جانبی یادگیری و سرفصل دادن به مبتدی ها هم هست که گستردگی و علمی بودن واقعی این رشته رو درک کنن و اگر فرد علاقمند و با استعدادی در میون اونها هست راهش رو پیدا کنه.
هدف خود بنده در اینجا این هست که میزان توانایی و سطح خودم و نقاط ضعف و قوتم رو متوجه بشم و ضمنا اینکه دیگران در چه سطحی هستن و چیا میدونن و در چه چیزهایی تجربه دارن و کار کردن. از طرف دیگه توی این سوال و جوابها میتونم سرنخ هایی رو خیلی راحتتر و سریعتر پیدا کنم که مثلا برای مطالعه و کارهای آینده سرفصل قرار بدم. همینطوری آدم منفرد که باشه ممکنه حتی از وجود بعضی مباحث مهم و کاربردی کم و بیش بی خبر باشه یا اهمیت و کاربرد اونا رو دست کم گرفته باشه.
حتما میدونید که نرم افزار های تحت وب رو میشه کاری کرد که تحت دسکتاپ اجرا بشن؛ به عبارت دیگه نرم افزار های تحت وبی که برای اجرا شدن بجای نرم افزارهای تحت دسکتاپ اجرا و/یا طراحی میشن، چقدر میتونن بجای اون نرم افزار تحت دسکتاپ مفیدتر باشن؟ چه مزایایی دارن؟ اصلا اصولی هست که یه همچین کاری انجام بشه؟ نمونه ای هم سراغ دارین؟ مثلا فرض کنید یه نرم افزار مدیریت فروشگاه غذایی رو میشه هم با بصورت تحت وب نوشت و هم تحت دسکتاپ. اما سوالم اینجاست که کدوم حالت بهتره و در در چه مواقعی. و در آخر هم اینکه به نظر شما بطور کلی چه مواردی رو باید رعایت کرد که اگه میخوایم یه همچین کاری انجام بدیم کار خراب از آب در نیاد؟
سوال نسبتا خوبی هست. بحد کافی مفهومی و مقداری هم تجربی هست و برای جواب دادنش باید دانش و تجربهء چند حیطه ای داشت. این از اون سوالایی نیست که بگیم با یه سرچ ساده و دو خط مطالعه کسی میتونه بیان پرمغزی درموردش داشته باشه. البته نه اینکه نشه چیزی سمبل کرد، اما همیشه درمورد اینطور سوالات، چیزها و لحن خلاق و شخصی و جدیدی برای بیان وجود دارن.
بنده جواب نمیدم چون تاحالا زیاد جواب دادم. بعدا اگر کسی جواب نداد بنده هم نظر خودم رو عرض میکنم.
اصلا فکر نکنید که یک نفر باید جواب بده و تموم. درمورد یک سوال و جواب دیگران هم میتونن تکمیل و رفع اشکال کنن. شاید یک نفر به تنهایی همهء دانش و تجربهء لازم رو نداشته باشه. این تاپیک هم که صرف یک چیز کلیشه ای و سوال و جواب های ساده نیست. میخوایم تاحد ممکن مفید باشه. مهم محتوا و کاربردش هست. مباحثی که کمتر در جای دیگری از این سایت مطرح شدن میتونن اینجا مطرح بشن. البته چیزهایی که بشه مختصر بیان کرد ولی جمع بندی و نکات و دانسته های علمی و پایه ای مفیدی باشن برای همگان.
salehbagheri
یک شنبه 17 بهمن 1389, 20:33 عصر
سوال:
حتما میدونید که نرم افزار های تحت وب رو میشه کاری کرد که تحت دسکتاپ اجرا بشن؛ به عبارت دیگه نرم افزار های تحت وبی که برای اجرا شدن بجای نرم افزارهای تحت دسکتاپ اجرا و/یا طراحی میشن، چقدر میتونن بجای اون نرم افزار تحت دسکتاپ مفیدتر باشن؟ چه مزایایی دارن؟ اصلا اصولی هست که یه همچین کاری انجام بشه؟ نمونه ای هم سراغ دارین؟ مثلا فرض کنید یه نرم افزار مدیریت فروشگاه غذایی رو میشه هم با بصورت تحت وب نوشت و هم تحت دسکتاپ. اما سوالم اینجاست که کدوم حالت بهتره و در در چه مواقعی. و در آخر هم اینکه به نظر شما بطور کلی چه مواردی رو باید رعایت کرد که اگه میخوایم یه همچین کاری انجام بدیم کار خراب از آب در نیاد؟
سلام
معمولاً قبل از ساخت یک نرم افزار استاندارد، همه این موارد باید بررسی بشه که در کدوم حالت برنامه بازدهی بهتری داره!
مخاطبین نرم افزار، نحوه ارتباط آنها با نرم افزار، محل ارتباط آنها با نرم افزار، لزوم ارتباط مخاطبین توسط نرم افزار و ... باید کاملاً مشخص بشه و سپس Platform اون!
شما یک نرم افزار خصوصی مختص حساب کتاب مال و اموال یک مغازه می نویسید، به نظر شما لزومی داره این محاسبات بر روی وب انجام بگیره؟
یا اینکه یک نرم افزار برای شرکتی می نویسید که تصمیم به بررسی وضعیت نمایندگی های خود در سایر شهرها دارد، راحت ترین راه ارتباط، به غیر از وب چیست؟
پس نتیجه میگیریم که با یک بررسی ساده بر روی موارد نام برده شده و موارد تأثیر گذار دیگر میشه به راحتی نوع برنامه رو مشخص کرد! البته این کار ساده رو باید بر عهده متخصص روانشناس، جامعه شناس و ... بگذارید...
البته می بخشید که جواب بسیار کوتاه بود، اگر کسی جواب کامل تری دارد بفرماید.
سوال:
MVC چیست و چرا به وجود آمد؟
eshpilen
شنبه 07 اسفند 1389, 09:17 صبح
شما یک نرم افزار خصوصی مختص حساب کتاب مال و اموال یک مغازه می نویسید، به نظر شما لزومی داره این محاسبات بر روی وب انجام بگیره؟ضرورتي نداره، اما در عين حال ميشه برنامه رو با فناوري وب نوشت و روي لوكال اجرا كرد (اصلا نيازي نيست حتما روي يك سايت در وب باشه). به اين شكل انتقال برنامه در آينده به وب (درصورت نياز) و يا استفاده از اون از طريق يك LAN و بنظرم حتي با چند كاربر همزمان، خيلي آسان تر و سريعتر خواهد بود. درواقع يك مزيت برنامه هايي كه با فناوري وب نوشته شدن همينه كه از نظر فناوري هم روي دسكتاپ و هم روي وب و شبكه قابل استفاده هستن و بيشتر امكانات لازم براي انتقال به شبكه و وب رو از قبل بصورت دروني و استاندارد دارا هستن.
البته بهرحال بخاطر نيازهاي جانبي و محدوديت هاي امكانات و سرعت اين برنامه ها، نميشه گفت كه هر برنامه اي رو بصورت وبي بنويسيم. با بقيهء نظرات شما موافقم و فقط خواستم نظر خودم رو هم اضافه كنم. در نهايت انتخاب فناوري وب يا دسكتاپ به شرايط و نوع كاربرد و نيازهاي ما در حال و آينده برميگرده و نميشه حكم كلي در اين مورد داد. البته اگر فناوري وب و دسكتاپ از نظر امكانات و اينترفيس و سرعت شبيه هم بودن، ميتونستيم بگيم كه فناوري وب در همهء شرايط و كاربردها بكار ميرفت! نه؟
MVC چیست و چرا به وجود آمد؟نظر به اينكه كسي تاحالا جوابي نداده و بنده هم تجربهء عملي در اين زمينه ندارم، بهتره خودتون جوابش رو بديد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.