مقایسه وردپرس ، جوملا و دروپال از لحاظ مختلف

مقایسه وردپرس ، جوملا و دروپال از لحاظ مختلف

:: شما هم دوست دارید سایت راه اندازی کنید ؟ نمی دونید از چه سیستم مدیریت محتوایی استفاده کنید ؟ پس این مطلب و جدول مقایسه ای که براتون قرار دادیم رو از دست ندید . شاید شما هم سایتی رو با یکی از این سه سیستم مدیریت محتوای قدرتمند و محبوب راه اندازی کرده باشید . ولی آیا می دونید که ممکنه CMS دیگه ای برای راه اندازی سایت شما بهتر باشه ؟
در زیر به صورت کلی دلایل استفاده از هر سیستم مدیریت محتوا رو میگیم و خصوصیت برجسته ای که داره رو به صورت خیلی کلی میاریم . و در ذیل اون یک جدول که از لحاظ مختلف wordpress و joomla و Drupal رو مقایسه کرده و برخی آمار رو ارائه داده اوردیم .
:: وردپرس : بهترین دلیل استفاده از وردپرس میتونه ساده بودن کار با اون ، فراوانی پلاگین ها و افزونه ها و تم های موجود برای این سیستم مدیریت محتوای فوق العاده محبوب باشه . وردپرس بیشترین استقاده رو در میون CMS های فوق داره و بیش از 14 درصد سایت های دنیا با این CMS راه اندازی شدن .وردپرس بهترین گزینه برای کسایی هست که دانش کمی از توسعه نرم افزار و طراحی وب دارند و فقط می خوان مطالب و یا تصاویری رو به صورت روزانه منتشر کنند . از معروفترین استفاده کننده های وردپرس میشه یاهو ، eBay ، Mozilla ، Sony ، Samsung و CNN رو نام برد . بقیه رو میتونید از اینجا ببینید .

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

:: دروپال : دروپال هم مثل جوملا یک CMS قوی و بزرگ هست و البته با محیطی پیچیده تر . خصیصه دیگه ای که سیستم مدیریت محتوای Drupal داره امنیت منحصر بفرد اونه . از لحاظ پشتیبانی وردپرس و جوملا از دروپال بهتر هستند . استفاده کننده های از Drupal رو هم می تونید از اینجا ببینید .

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


joomla vs wordpress vs drupal مقایسه وردپرس ، جوملا و دروپال از لحاظ مختلف

منبع ::: http://www.7learn.com/miscellaneous/wordpress-vs-joomla-vs-drupal

هر آنچه که باید درباره WPF بدانید !

در اولین روز هایی که تکنولوژی dot net پدیدار شد، مایکروسافت به طور ناگهانی طیف کاملی از فناوری های جدید را معرفی کرد. یک راه کامل برای نوشتن اپلیکیشن های وب وجود داشت (ASP.NET) ، یک راه کامل برای وصل شدن به انواع دیتابیس ها (ADO.NET)، دوزبان برنامه نویسی جدید(VB.NET & C#) و یک ابزار مدیریتی برای رانتایم. در میان این تکنولوژی ها، هنوز یک فناوری قدیمی وجود داشت و آن چیزی نبود جز Windows Forms که یک ابزار ساخت اینترفیس برای اپلیکیشن های ویندوز است که به عنوان یک فناوری ساخت اینترفیس برای روزگار ما، می توان آن را عقب افتاده دانست! اما با پدید آمدن WPF ورق برگشت و بازی عوض شد.

WPF یک تکنولوژی جدید ساخت و اجرای اینترفیس در برنامه های جدید ویندوز است که اولین بار با .net فریم ورک 3.5 و در ویندوز ویستا ارائه شد. اما حالا با نسخه 4 خود و به کمک ویندوز 7، آمده تا بازی را عوض کند. همين حالا هم نرم افزار هايي نظير فایرفاکس 4، اینترنت اکسپلورر 9 و ... از WPF براي ساخت اينترفيس هایشان استفاده مي نمایند. پس اگر شما هم به عنوان یک "توسعه دهنده" یا یک "کاربر علاقه مند به دانستن مبانی تکنولوژی های مختلف"؛ دوست دارید که به طور کاملی با قابلیت ها و امکانات مختلف WPF آشنا شوید؛ این مطلب مناسب شماست. پس آن را از دست ندهید. البته قبل از شروع به خواندن مطلب، توصیه می کنیم که مطلب بررسی دایرکت ایکس 11 را مطالعه کنید. چرا که به درک هر چه بهتر شما از این مقاله کمک خواهد کرد. البته فراموش نکنید که این یک مقاله تخصصی است.

اگر چه ویندوز فرم یک ابزار بزرگ و پرقابلیت است، تغییرات ضروری ای را که باید در سیستم ارتباط با سخت افزار خود اعمال می کرد؛ اعمال نکرده است و به طور کلی می توان آن را ابزاری دانست که در طی ده سال گذشته، دستخوش تغییر اساسی خاصی نشده. ویندوز فرم برای ساختن یک ظاهر بصری و یا استفاده از عناصر استاندارد رابط کاربری ویندوز – مانند : Button , Textbox , Checkbox – به طور قابل ملاحظه ای، متکی به API های کلاسیک ویندوز است. همین مساله در عمل باعث می شود که سفارشی سازی به طور بسیار ناقصی در اجزای رابط کاربری اعمال گردد. به طور کلی ویندوز فرم نمی تواند قابلیت های ترسیمی مدرن و پیشرفته را در اختیار شما قرار دهد و به محض این که کمی آن را از نظر عناصر گرافیکی غنی کنید؛ آنچنان کند و سنگین می شود که از کارتان منصرف می گردید.

اما حالا WPF یا Windows Presentation Foundation آمده تا همه چیز را عوض کند. مدلی که WPF برای مدیریت منابع سیستم و اجزای رابط کاربری از آن تبعیت می کند؛ کاملا با ویندوز فرم متفاوت است. در همین حال WPF شامل کنترل های استانداردی است که در ویندوز فرم هم دیده می شدند. پس علاوه بر امکانات قبلی، توسعه دهندگان می توانند به قابلیت های ترسیمی کاملا مدرن با استفاده از دایرکت ایکس دست پیدا کنند و به طور کلی یک ظاهر کاملا مدرن را برای برنامه های خود بسازند. نکته دیگر این است که در WPF، زیبایی در عین سرعت به کار برده شده است.


ادامه نوشته

سورس کد جاوا موبایل_j2me

داشتم دنبال سورس کد برنامه جاوا برای موبایل می گشتم سایتی پیدا نمودم که زمینه اکثر زبانهای برنامه نویسی سورس کد کامل دارد از جمله j2me لذا حیفم آمد که دوستان را مطلع نکنم.

آدرس سورس کد نرم افزارهای موبایل در ان سایت:
http://www.garret.ru/En_Map.htm

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


AriadneThread
GPS tracker
MetroNavigator
nearest metro route
MobileMap
vector map viewer (maps of Moscow and other cities)
OnlineMap
raster maps viewer for maps loaded from the net (map of Moscow)
MapBrowser
raster map viewer (map of Cairo)
TripMate
mobile navigator (remember the route)
Calculators
Calculator
scientific calculator
PCalc
programming calculator (for fans of stack-based virtual machines)
Housekeeping
Econometer
controls your expenses
Shopper
shopping list
Dictionaries
Dictionary
dictionaries
OnlineDict
english-russian dictionary loading data from the server
MobiTutor
helps you to remember english words
Games
MammothHunter
mammoth hunting
Wordix
tetris with words
Guess
"Guess an animal"
"Databases"
Moscow-FM
XML browser
Cryptex
program for keeping confidential information
Timers
Counter
counter
Metronome
metronome (also can be used as flash-light or tonometer)
StopWatch
stop watch
Timers
multiple timers
Monitor
Book reader
MobiBook
program for reading books at mobile phone
MobiBrowser
combination of Web browser and book reader

معرفی منابع آموزشی WPF

۱۰ منبع برای شروع یادگیری WPF :

 


هر چند WPF تکنولوژی نسبتاً جدیدی است، اما برای شروع یادگیری آن در اینترنت منابع بسیار زیادی پیدا می شود. این روز ها با وجود منابع آنلاین، برای یادگیری یک تکنولوژی جدید نیازی به خرید کتاب های معمولی ندارید. WPF برای برنامه نویسان دات نت هنوز تازه است. مخصوصاً در ایران خیلی ها خودشان را هنوز درگیر آن نکرده اند و کتاب و مرجع مناسبی به زبان فارسی در مورد WPF وجود ندارد.

برای شروع یادگیری WPF می توانید از منابع زیر شروع کنید :

MSDN : بهترین مکان برای شروع یادگیری تکنولوژی های مربوط به مایکروسافت MSDN بوده و هست. MSDN مرجع خوبی برای تمام برنامه نویسانی است که با تکنولوژی های مایکروسافت کار می کنند. تمام موضوعات مربوط به WPF در MSDN طبقه بندی شده اند و شما به راحتی می توانید مطلب مورد نظر خود را پیدا کنید. اگر سئوالی داشتید می توانید در فاروم WPF مطرح کنید و جواب خود را بگیرید.

WindowsClient : سایت رسمی مایکروسافت و مرجع برنامه نویسان WPF و WinForm یکی از منابع خوب برای شروع یادگیری WPF است. در این سایت علاوه بر مقالات متعدد، ویدئوهای آموزشی مناسبی درباره آموزش WPF پیدا خوهید کرد.

CodeProject : کد پراجکت نامی آشناست که با داشتن مثال ها و مقالات متعدد در زمینه WPF منبع بسیار مناسبی برای یادگیری WPF و حرفه ای شدن در آن است.

WPF Tutorial.net : این سایت آموزش های پایه ای متعددی در دسته بندی های مشخص به شما ارائه می کند که برای شروع WPF گزینه بسیار مناسبی است. مخصوصاً بخش “یادگیری WPF در یک هفته” با فراهم نمودن یک آموزش ساختارمند، از نکات پایه ای WPF تا موضوعات پیشرفته را به شما آموزش می دهد.

LearnWPF.com : یک وبلاگ خوب با دسته بندی های مشخص و مطالب خوب است. مطالب پایه ای WPF را به خوبی توضیح داده و برای شروع می تواند گزینه مناسبی باشد.

Josh Smith on WPF : آقای Josh Smith در این وبلاگ به صورت حرفه ای در مورد WPF و الگوی طراحی MVVM مطلب می نویسد. شما می توانید در این صفحه از وبلاگ آقای اسمیت یادگیری WPF را آغاز کنید.

WPF Training Guide : در این سایت می توانید به صورت قدم به قدم شروع به یادگیری مباحث پایه ای WPF کنید.

وبلاگ های WPF : وبلاگ ها همیشه در آموزش تکنولوژی های جدید پیش قدم هستند. در این صفحه می توانید لیستی از وبلاگ هایی که در زمینه WPF، Silverlight و مباحث مربوط به آن ها می نویسند را مشاهده کنید.

WPFplex.com : این سایت یک دایرکتوری از منابع آموزشی، کتاب ها و ابزارها برای WPF است. این سایت هم برای کسی که می خواهد شروع به یادگیری WPF کند مناسب است و هم به درد حرفه ای های WPF می خورد.

Channel9 : در این سایت می توانید ویدئوهای با کیفیتی در مورد WPF پیدا کنید که توسط کارمندان مایکروسافت ساخته شده اند.
 
مثالهای کاربردی از سایت مایکروسافت:::
http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm#/?sref=DataTemplates

MySQL, MYSQL, mysql این‌ها یکسان نیستند!

  1. MySQL یک پایگاه داده‌ی عمومی است. یعنی کل بسته‌ی نرم‌افزاری ( یعنی وقتی می‌خواهید از کل نرم‌افزار نام ببرید از طرز نوشتن استفاده می‌کنیم )
  2. MYSQL یک ساختار API در C است که برای اداره‌ی یک اتصال به یک پایگاه داده استفاده می‌شود. ( یعنی وقتی که تابع mysql_connect رو فراخوانی می‌کنید از این نوع متغیر در C استفاده می‌کنیم )
  3. mysql یک بسته‌ی سرویس‌گیرنده است. ابزاری که برای برقراری ارتباط با یک سرویس‌دهنده MySQL از طریق خط فرمان بکار می‌برید. mysql همچنین نام پایگاه‌داده‌ای است که اطلاعات سیستم را ذخیره می‌کند ( آنچه در پایگاه داده‌های دیگر sysobject یا systables نامیده می‌شوند )

پس همان‌طور که می‌بینید وقتی که با یک برنامه‌نویس با تجربه از طریق متن حرف می‌زنید ممکنه از حرف شما برداشت کاملا متفاوتی داشته باشد. مثلا mysql server کاملا غلطه ! و بایستی به صورت MySQL Server نوشته بشه تا معنای درست رو منتقل بکنه. یا وقتی که می‌گویید « mysql را راه‌اندازی کرده‌ام » ، ممکن است فردی به اینکه دستور mysql در خط فرمان را اجرا کرده باشید ، متوجه شده باشد ، در حالی که منظور شما راه‌اندازی پایگاه داده‌ی MySQL بوده است.

منبع: انجمن تخصصی دانلودینا

زبانهای برنامه نویسی محبوب در ایران از نگاه گوگل

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


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


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

در تصویر زیر وضعیت جستجوی جاوا اسکریپت را در ایران مشاهده میکنید



در نهایت سرویس گوگل ترندز میتونه در شرایطی که آمار رسمی و درستی از وضعیت زبانهای برنامه نویسی در ایران وجود ندارد مفید باشد.

منبع :cnevis.com

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

۱- هند کشف کرد که هیچ کس نمیتواند پوشه ای به نام CONرا درهیچ قسمتی از کامپیوتر ایجاد کند. این چیزی خیلی عجیب... و باور نکردنی است. در مایکروسافت ، کل تیم نمی توانند پاسخ چنین اتفاقی را بدهند!!همین حالا امتحان کنید،فولدری به نام CON را نمیتوانید ذخیره کنید.


٢- یک فایل تکست خالی باز کنید(کلیک راست،new text document) سپس متن Bush hid the facts را تایپ کرده و آنرا ذخیره کنید. پنجره را بسته و دوباره باز کنید.شکلی عجیب خواهید دید!!:surprised :


٣- موضوعی جالب و باور نکردنی که توسط برزیلیها کشف شد.
مایکروسافت ورد را باز کرده و عبارت زیر را تایپ کرده و دکمه اینتر را بزنید و سپس مشاهده کنید
کد: (rand=(200,99

منبع : omidcloud.persianblog.ir

مشكل كاربران اينترنتي ايران در دسترسي به فايل‌هاي فلش

adobe flash fileايتنا - مدير يكي از شركت‌هاي اينترنتي در گفت‌وگو با ايتنا با تاييد وجود اين اختلال و اظهار بي‌اطلاعي از علت دقيق آن، و با اشاره به مشكلاتي كه اين اختلال بدنبال خواهد داشت، شكايت‌هاي فراوان رسيده از كاربران اينترنتي در باره منشا بروز چنين مشكلي را مورد تاكيد قرار داد.
به تازگي كاربران اينترنت در كشور در دسترسي به فايل‌هاي فلش در سايت‌ها دچار مشكل شده‌اند.
به گزارش ايتنا، در اثر اين اختلال، امكان مشاهده فايل‌هاي فلش براي كاربران بتدريج حذف مي‌گردد، و به جاي اين فايل‌ها، جاي خالي آنها در صفحات سايت‌ها ديده مي‌شود.

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

مدير يكي از شركت‌هاي اينترنتي در گفت‌وگو با ايتنا با تاييد وجود اين اختلال و اظهار بي‌اطلاعي از علت دقيق آن، و با اشاره به مشكلاتي كه اين اختلال بدنبال خواهد داشت، شكايت‌هاي رسيده از كاربران اينترنتي در باره منشا بروز چنين مشكلي را مورد تاكيد قرار داد.

گفتني است فايل‌هاي فلش، نوعي فايل‌هاي گرافيكي متحرك هستند كه عموما براي تبليغات به كار رفته و بسته به نوع خود، حاوي پيام‌هاي تبليغاتي تجاري، فرهنگي، مذهبي و... مي‌باشند.

امروزه استفاده از اين فايل‌ها در سايت‌هاي اينترنتي به امري متداول و اجتناب‌ناپذير بدل شده، كه عدم دسترسي و مشاهده اين نوع فايل‌ها، كاركرد صحيح سايت‌ها را مختل مي‌نمايد.
همچنين برخي سايت‌ها نيز تماما بر مبناي فلش طراحي شده‌اند كه وجود اين اختلال، به طور كلي اين سايت‌ها را غيرقابل دسترس خواهد نمود.

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

هنوز توضيحي از سوي مسئولين در اين زمينه ارائه نشده است.

منبع : ایتنا

الگوریتم تشخیص صحت کد ملی ( کارت ملی شناسایی )

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

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

سازمان ثبت احوال کشور در راستای ارائه کارت ملی روشی را برای تولید کدهای ملی استفاده نموده است که با استفاده از آنها می توانیم کدهایی داشته باشیم که از امنیت بالایی برخوردار باشند و همچنین قابلیت تقلب نداشته باشند.

 همه کدهای ملی ۱۰ رقمی هستند.

کدهای ملی که همه ارقام آنها مثل هم باشند معتبر نیستند مثل :

۰۰۰۰۰۰۰۰۰۰

۱۱۱۱۱۱۱۱۱۱

۲۲۲۲۲۲۲۲۲۲

۳۳۳۳۳۳۳۳۳۳

۴۴۴۴۴۴۴۴۴۴

۵۵۵۵۵۵۵۵۵۵

۶۶۶۶۶۶۶۶۶۶

۷۷۷۷۷۷۷۷۷۷

۸۸۸۸۸۸۸۸۸۸

۹۹۹۹۹۹۹۹۹۹

 

روش اعتبار سنجی کد ملی :

 دهمین رقم شماره ملی را ( از سمت چپ ) به عنوان A  در نظر می گیریم.

یک مقدار B در نظر می گیریم و آن را برابر با :

 (اولین رقم * ۱۰) + ( دومین رقم * ۹ ) + ( سومین رقم * ۸ ) + ( چهارمین رقم * ۷ ) + ( پنجمین رقم * ۶) + ( ششمین رقم * ۵ ) + ( هفتمین رقم * ۴ ) + ( هشتمین رقم * ۳ ) + ( نهمین رقم * ۲ )

قرار می دهیم.

مقدار C را برابر با  B – (B/11)*11 قرار می دهیم.

اگر مقدار C برابر با صفر باشد و مقدار A برابر C باشد کد ملی صحیح است.

اگر مقدار C برابر با ۱ باشد و مقدار A برابر با ۱ باشد کد ملی صحیح است.

اگر مقدار C بزرگتر از ۱ باشد و مقدار A برابر با ۱۱ – C باشد کد ملی صحیح است.

در پایان یک نمونه کد جاوا اسکریپت جهت چک کردن کد ملی تقدیم می گردد :

کد زیر را می توانید از طریق اینجا  در قالب فایل txt  دانلود کنید .

function checkMelliCode(varmellicode)
{
var meli_code;
meli_code=varmellicode.value;
if (meli_code.length == 10)
{
if(meli_code==’1111111111′ ||
meli_code==’0000000000′ ||
meli_code==’2222222222′ ||
meli_code==’3333333333′ ||
meli_code==’4444444444′ ||
meli_code==’5555555555′ ||
meli_code==’6666666666′ ||
meli_code==’7777777777′ ||
meli_code==’8888888888′ ||
meli_code==’9999999999′ )
{
alert(”کد ملی صحیح نمی باشد”);
objcode.focus();
return false;
}
c = parseInt(meli_code.charAt(9));
n = parseInt(meli_code.charAt(0))*10 +
parseInt(meli_code.charAt(1))*9 +
parseInt(meli_code.charAt(2))*8 +
parseInt(meli_code.charAt(3))*7 +
parseInt(meli_code.charAt(4))*6 +
parseInt(meli_code.charAt(5))*5 +
parseInt(meli_code.charAt(6))*4 +
parseInt(meli_code.charAt(7))*3 +
parseInt(meli_code.charAt(8))*2;
r = n - parseInt(n/11)*11;
if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r))
{
return true;
}
else
{
alert(”کد ملی صحیح نمی باشد”);
objcode.focus();
return true;
}
}
else
{
return true;
}

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

مصاحبه با مهندس عین الله جعفرنژاد قمی

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

یک بیوگرافی کلی از خودتان بگویید؟
متولد 1339 در بابل هستم. کارشناس مهندسی نرم افزار از دانشگاه فردوسی مشهد و کارشناس ارشد سیستم های اطلاعات مدیریت (MIS) از دانشگاه آزاد قائم شهر می باشم. عضو هیئت علمی جهاد دانشگاهی مازندران هستم.
در این نهاد مسئولیت اجرایی از معاون آموزشی تا ریاست جهاد دانشگاهی بر عهده داشتم. مدتی هم رئیس مرکز علمی کاربردی در بابل بودم.
اهل قم هستید؟
خیر. در روستای قمی کلای بابل به دنیا آمدم و این پسوند از این جهت است.
از وضعیت آموزش عالی رشته های کامپیوتر در ایران راضی هستید؟
در حال حاضر اوضاع بهتر شده است. رشد خیلی بهتری را شاهدیم گرچه هنوز عقب هستیم.
رشته های خوبی در ایران هستند مثل IT. مسئولین هم به این نتیجه رسیده اند که بدون این علم قادر به انجام کاری نیستیم و پیشرفتی نخواهیم داشت.
کار های خوبی در این زمینه انجام شده است. در دولت قبلی بحثی مطرح شد به عنوان آموزش IT برای تمام کاکنان دولت.
از نظر رشته های ارائه شده اوضاع خوب است اما از لحاظ کمیت چشمگیر نیست.

ادامه نوشته

گونه‌شناسي ويژوال استوديو

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

زبان‌هاي برنامه‌نويسي اکسپرس، تنها به VB، VC#، VC++، و VJ# محدود مي‌شود. در حوزه نرم‌افزارهاي وب هم Visual Web Developer و Visual C# و Visual Basic حضور دارند.

در مورد مستندها، نسخه اکسپرس کتابخانه کامل MSDN را ندارد، و 210 مگابايت کتابخانه‌هاي پايه و تنها خلاصه‌اي از MSDN را دارد. اما مهم نيست؛ MSDN به‌طور آنلاين در اختيار همگان است.

در نرم‌افزار Visual Web Developer، تنها فرق اکسپرس با دو نسخه ديگر اين است که طراحي ويندوز فرم ندارد. و طراح فرم‌هاي تحت وبش  نيز به‌طور برعکس در بخش ويندوزي قابل دسترسي نيست.

براي برنامه‌نويسي با موبايل بايد به‌سراغ نسخه‌هاي استاندارد يا حرفه‌اي برويد. همچنين در نسخه اکسپرس، طراح کلاس، Object Test Bench و کنترل سورس کد وجود ندارد. همچنين نمي‌توانيد نرم‌افزارهاي آفيس را گسترش بدهيد و کامپايلر 64 بيتي هم در آن وجود ندارد. همچنين با SQL Server 2005 به‌طور يک‌پارچه نيست و بايد به آن متصل شويد.

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

منبع : کلیک

پيش بيني وضعيت دنياي برنامه نويسي در 5 سال آينده

در 5 سال آينده مواردي كه در ادمه برشمرده خواهند شد، نقش بسيار مهمي را در دنياي برنامه نويسي و جهت گيري‌هاي آن ايفا خواهند كرد (براي مثال اگر براي شما اين سؤال مطرح است كه هدف از WCF ، REST services ، سيلورلايت 3 و غيره چيست، اين مقاله‌ي كوتاه را مطالعه نمائيد) :

الف) Object Relational Mapping
ORM يكي از بازيگرهاي واضح خواهد بود. خصوصا پروژه‌اي مانند Fluent NHibernate با ويژگي‌هاي زير:

  • سابقه‌اي 10 ساله (قسمت عمده‌اي از اين سابقه به دنياي جاوا بر مي‌گردد)
  • امكان استفاده از انواع و اقسام ديتابيس‌ها توسط آن
  • پشتيباني از Linq
  • و ...


ب) نرم افزار به عنوان سرويس ( Software as a Service يا SaaS )
نرم افزار به عنوان سرويس يك مفهوم تجاري است كه در آن مصرف كننده بر اساس نيازهايش هزينه‌ي يك نرم افزار را خواهد پرداخت. بر اين اساس برنامه نويسي در زمينه‌هاي طراحي و مديريت دست خوش تغييرات عمده‌اي مي‌شود. شايد نيازي به ذكر نباشد كه حتي مايكروسافت نيز در حال برنامه ريزي براي اين نوع از توسعه است.
پرداختن به SaaS نيازمند يك سري از ويژگي‌ها است:

  • سادگي توسعه و دستيابي: در اين مدل تجاري، استفاده و دسترسي به نرم افزار مورد نظر بايد بسيار ساده باشد. بر اين اساس برنامه‌هاي تحت وب، يا برنامه‌هاي هاست شده توسط مرورگرها (مانند سيلورلايت) محبوبيت بيش از پيشي را خواهند يافت.
  • قابليت تنظيم و ماژولار بودن برنامه‌ها: در اين مدل نياز است تا كاربر تنها هزينه‌ي ماژول‌هايي را بپردازد كه به آن‌ها نياز دارد و اين امر سبب بازنگري در طراحي و توسعه‌ي برنامه‌هاي موجود خواهد شد.
  • نياز به زير ساخت بهينه و سريعي خواهد بود: از آنجائيكه كاربران بسيار ساده مي‌توانند از يك برنامه به برنامه و شركتي ديگر رجوع كنند، براي بقا بايد جنگيد! نياز به زير ساخت‌هايي وجود خواهد داشت كه توسط آن‌ها بتوان نيازهاي كاربران را در حداقل زمان ممكن برآورده كرد و اين موارد نياز به آموختن يكي از فريم ورك‌هاي مطرح موجود را خواهد داشت به همراه آموختن مباحث مديريت پروژه، آشنايي با آزمون‌هاي واحد، كنترل كيفيت ، يكپارچگي مداوم و امثال آن.


ج) پردازش ابري
پردازش ابري شبيه به آن‌چيزي كه مايكروسافت Azure ارائه مي‌دهد، نيز يكي از نتايج مفهوم تجاري SaaS است. تمركز پردازش ابري بر روي ارائه‌ي وب سرورها، مكان‌هاي ذخيره داده و امثال آن است. به اين صورت شما ديگر درگير تهيه و پرداخت هزينه جهت راه اندازي ديتاسنتر ويژه‌ي خود نخواهيد شد و بسياري از هزينه‌هاي شما كاهش خواهند يافت. بهره برداري تجاري گسترده از اين روش با توجه به توسعه‌ي فريم ورك‌هاي ويژه‌ي اين نوع پردازش‌ها، آموزش و غيره ، بين سال‌هاي 2010 و 2015 شروع خواهد شد.

د) اجراي موازي
پردازش ابري اثرات خاص خودش را بر روي دنياي نرم افزار و برنامه نويسي خواهد گذاشت. اين طبيعت توزيع شده سبب خواهد شد كه در آينده از برنامه نويسي‌هاي چند ريسماني و مسايل همزماني حاصل از آن‌ها بيشتر بشنويد و نهايتا معماري برنامه‌ها به سمت استفاده از روش‌هاي زير سوق خواهند يافت:

REST services;
Message-based distributed architectures, i.e.: see NServiceBus, Mass Transit or Rhino Service Bus




ه) برنامه‌هاي غني وب يا Rich Internet Applications
Rich Internet Applications يا RIA نقش مهمي را در SaaS بازي خواهند كرد و هدفگيري مايكروسافت در اين باره ارائه Silverlight 3.0‌ و Microsoft .NET RIA Services است. هر چند اين موارد راه طولاني (يكي دو ساله) را در پيش خواهند داشت تا به حد استانداردهاي لازم برسند اما حركت‌هاي مهمي در اين زمينه به شمار مي‌روند.

منبع : vahidnasiri.blogspot.com

مقایسه‌ای تطبیقی بین جاوا و دات‌نت

مقایسه‌ای تطبیقی بین جاوا و دات‌نت


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

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

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

تاریخچه

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

پاسخ شرکت سان (Sun Microsystems) به این نیازها ارائه‌ی بسته‌ی توسعه‌ی نرم‌افزار Java 2 Entrrprise Edition (به طور مخفف J2EE، که از نسخه‌ی 5 به بعد به Java EE معروف است) بود. این بسته در واقع مجموعه‌ای از استانداردهای فناوری‌های مبتنی بر وب بود که با استفاده از جاوا، مجموعه امکانات جدیدی را به توسعه‌دهندگان برنامه‌های وب (و فراتر از آن سیستم‌های توزیع‌شده مانند EJBها) ارائه می‌داد. J2EE در واقع مجموعه‌ای از استانداردها به همراه پیاده‌سازی مرجع آن‌ها (عموماً توسط سان) می‌باشد.

سه سال پس از ارائه‌ی J2EE (که اساساً حول محورهای برنامه‌های حجیم، معماری‌های پیچیده و طراحی منسجم قرار دارد)، مایکروسافت در سال 2002 فناوری دات‌نت را ارائه داد. در این بسته‌ی توسعه‌ی نرم‌افزار، مایکروسافت زبان‌های گوناگونی چون VB.Net، J#.Net، C++.Net و زبان جدید C#.Net را ارائه داد. همچنین برای توسعه‌ی سیستم‌های مبتنی بر وب برنامه‌نویسان می‌توانستند از فناوری ASP.Net استفاده نمایند. کتابخانه‌ی کلاس‌های دات‌نت با در نظر گرفتن امکانات موجود جاوا و به منظور رقابت با آن طراحی شده بودند. با اندک نگاهی به آن می‌توان متوجه شد که بر خلاف جاوا که طراحان آن بهترین تمرین‌ها (Best practices) را ملاک طراحی خود قرار داده بودند و به شدت به اصول طراحی پایبندند، پایبندی اصلی طراحان کتابخانه‌ی کلاس‌های دات‌نت، سهولت کاربر و آسانی نوشتن کد (هم از جهت اختصار و هم از جهت ملموس بودن) است.

در ادامه‌ی به بررسی دو فناوری جاوا و دات‌نت از منظر‌های مختلف می‌پردازیم.

ادامه نوشته

نسل جديد ابزارهاي برنامه‌نويسي

در دنياي برنامه‌نويسي تحت وب، بي‌گمان يكي از پركاربردترين، محبوب‌ترين و توانمندترين زبان‌ها php است كه تاكنون توانسته است توجه بسياري از برنامه‌نويسان و توسعه‌دهندگان وب را به خودش جلب كند. پيش از اين php با وجود وسعت كاربردش، يك محيط كار مجتمع و توانمند نداشت و برنامه‌نويسان ناچار بودند برنامه‌هاي خود را در ويراستارهاي معمولي نوشته و در سرورهاي خود آزمايش و اشكال‌زدايي كنند.

 با اين وجود به كارخود با اين زبان ادامه مي‌دادند، اما بسياري از شركت‌ها محصولات متنوعي براي اين زبان به بازار عرضه كردند  تا كار برنامه‌نويسان را با اين زبان راحت‌تر و لذت‌بخش‌تر كنند، اما شركت Zend كه يكي از پيشگامان يا بهتر است بگوييم در صدر توسعه‌دهندگان زبان php بوده است كامل‌ترين و توانمندترين ابزار براي php را كه در حقيقت يك IDE تمام و كمال براي اين زبان به‌شمار مي‌رود يعني Zend Studio را به بازار نرم‌افزار عرضه كرد.

ادامه نوشته

PHP جعبه ابزاري که به يک زبان برنامه‌نويسي تبديل شد

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

تاريخچه

عبارت PHP سرنام عبارت "صفحه خانگي شخصي1" است. پيدايش PHP به سال 1995 بازمي‌گردد، زماني که يک توسعه‌دهنده نرم‌افزار مستقل به نام راسموس لردورف2 يک اسکريپت Perl/CGI نوشت که او را از تعداد بازديدکنندگان وب سايت شخصي‌اش مطلع مي‌ساخت. اسکريپت او انجام دو وظيفه را برعهده داشت: گزارش‌گيري از اطلاعات بازديد‌کننده از سايت و شمارش تعداد کاربران. در آن زمان وب، به فرمي که اکنون ما آن را مي‌شناسيم، هنوز بسيار جوان بود و ابزار‌هايي از اين نوع هنوز پا به‌عرصه وجود نگذاشته بودند. بنابر‌اين اکثر کاربراني که از سايت لردورف بازديد مي‌کردند، با ارسال نامه‌هاي الکترونيکي از وي درخواست مي‌کردند که اسکريپت‌هاي خود را براي آنها بفرستد. به اين ترتيب لردروف شروع به ارسال اين اسکريپت‌ها تحت عنوان صفحه خانگي شخصي  يا PHP كرد.

ادامه نوشته

LINQ : تحولی بزرگ در کار با داده  ( بخش اول )

نرم افزار یکی از ارکان مهم فناوری اطلاعات و ارتباطات در عصر حاضر است . گرچه نرم افزار در گذشته نيز همواره حائز اهمیت بوده است ، ولی در ساليان اخير به دليل گسترش اينترنت و ظهور نسل جديدی از برنامه های کامپيوتری موسوم به برنامه های وب ، نگاه به نرم افزار و انتظار از آن در جهت تامين طيف گسترده ای از خواسته ها تغيير  و رشد چشمگيری يافته است . به همين دليل است که در دنيای نرم افزار هر روز تحولات مهمی اتفاق می افتد و فناوری های جديدی قدم در اين عرصه می گذارند .
ظهور فناوری LINQ ( برگرفته شده از  Language-INtegrated Query   ) تلاشی است در اين راستا که با هدف تحول در نحوه دستیابی به منابع داده ( صرفنظر از نوع منبع داده ) ، مطرح شده است .
پس از مطرح شدن هر گونه فناوری در عرصه نرم افزار ، طراحان و پياده کنندگان با سه پرسش اساسی مواجه می گردند : این فناوری چيست ؟ چه کار می کند ؟ و چرا ما به آن نیاز داريم ؟ در این مقاله و سایر مقالاتی که در ادامه بر روی سایت منتشر خواهد شد ، سعی خواهیم کرد به سه پرسش فوق در ارتباط با فناوری LINQ پاسخ دهيم .

مقدمه
کد و داده دو عنصر اساسی در نرم افزار می باشند  که هر یک دارای جایگاه تعريف شده مختص به خود است . یکی از فعالیت های مهم در زمان پياده سازی نرم افزار ، نوشتن کد مورد نیاز جهت دستيابی به داده است . برای نوشتن کد ، پياده کنندگان می توانند از زبان های برنامه نویسی مختلفی استفاده کنند . انتخاب زبان برنامه نویسی به عوامل متعددی نظیر نوع رفتار برنامه ، پيش زمينه و دانش پياده کنندگان ، مهارت های تیم پياده کننده ، نوع سیستم عامل و سياست های سازمان بستگی دارد . صرفنظر از این که پياده کنندگان چه زبانی را برای نوشتن کد انتخاب می نمایند ، در زمان پياده سازی نرم افزار به دفعات مجبور خواهیم بود که با داده سرو کار داشته باشیم . داده می تواند بر روی ديسک ، جداولی در بانک اطلاعاتی و يا اسناد XML ذخيره شده باشد . در برخی موارد لازم است که با تمامی نوع های اشاره شده در یک برنامه سرو کار داشته باشیم .  فراموش نکنيم که مديريت داده برای هر پروژه نرم افزاری یک باید است .
پياده کنندگان نرم افزار در زمان نوشتن کد و تولید امکانات مورد نياز در هر يک از لایه های متفاوت ( با توجه به  نوع معماری نرم افزار ) ، همواره این پرسش را با خود مطرح می نمایند که محيط پياده سازی و یا فريمورک هائی نظیر دات نت چه امکاناتی را در اختيار آنها خصوصا" در زمان کار با داده قرار می دهند . به عبارت دیگر ، يک سيستم عامل چگونه می تواند نياز پياده کنندگان نرم افزار را پوشش دهد و  چه امکانات و پتانسيل هائی را در اختيار علاقه مندان به طراحی و پياده سازی نرم افزار قرار می دهد . 
دات نت به عنوان یکی از فريمورک های پياده سازی نرم افزار در سالیان اخير ، امکانات متعددی را جهت کار با داده در اختيار پياده کنندگان نرم افزار قرار می دهد . LINQ ، تلاشی است جهت يکپارچگی عميق تر و بیش تر بین زبان های برنامه نویسی و داده .  در واقع LINQ مشتمل بر مجموعه ای از عملگرهای query استاندارد است که  معماری لازم جهت حرکت ، فيلترينگ و اجرای عملیات بر روی تقريبا" هر نوع منبع داده نظیر XML ، بانک های اطلاعاتی رابطه ای و اشياء درون حافظه را فراهم می نماید .
قبل از هر چيز اجازه دهيد ببينيم LINQ چيست ؟

ادامه نوشته

بیل گیتس: چگونه کار می‌کنم؟

مجله فورچون سلسله مصاحبه‌هایی با عنوان "چگونه کار می‌کنم" با افراد مشهور دنیای صنعت و اقتصاد انجام داده است . محور اصلی این مصاحبه‌ها نحوه انجام کارها و مدیریت برنامه‌ها توسط این اشخاص است. در یکی ازتازه‌ترین این سری مصاحبات ، مجله فورچون مصاحبه‌ای با بیل گیتس انجام داده است. به خلاصه‌ای از این مقاله توجه کنید :
اگر به دفتر بیل گیتس نگاه کنید کاغذ زیادی در آن نمی‌بینید.
او میگوید :روی میزم ۳ صفحه نمایش دارم که مجموعه آنها با هم یک دسکتاپ واحد را تشکیل می‌دهند. من می‌توانم چیزها را از یک صفحه به صفحه دیگر بکشم . اگر شما یک بار تجربه کار با یک صفحه نمایش بزرگ را تجربه کنید ، دیگر به گذشته برنمی‌گردید ، چون اثر مستقیمی روی کارآیی شما خواهد گذاشت.
صفحه نمایش چپ لیست ایمیل‌هایم را نشان می‌دهد ، صفحه نمایش وسط ایمیلی را که می‌خوانم و به آن جواب می‌دهم را نمایش می‌دهد و مرورگرم روی صفحه نمایش راست قرار می‌گیرد.
در مایکروسافت ایمیل رسانه انتخابی است و بیشتر از تماسهای تلفنی ، بلاگ ، اسناد و بولتنهای خبری و یا نشستها از آنها استفاده می‌شود. ( میلهای صوتی و فکسها در ایمیلها ادغام شده‌اند.)
بیل گیتس روزانه ۱۰۰ ایمیل دریافت می‌کند ، البته بعد از فیلتر ایمیلهای ناشناس وی چنین تعداد ایمیلی دارد.
بیل گیتس سعی می‌کند ، مطمئن شود وقتش را روی ایمیلهایی که اهمیت بیشتری دارند متمرکز کند .
تنها وسیله‌ای که گیتس در دفترش دارد و تکنولوژی پایینی دارد ، "وایت بوردش" است . وی از ماژیکهای خوشرنگی استفاده می‌کند.
در مایکروسافت ، می‌شود از روی وایت‌بوردها عکس برداشت و به رایانه‌ها ارسال کرد ، به این ترتیب آنها شبیه یک Tablet pc بزرگ می‌شوند .
کاغذ در زندگی روزانه من نقشی ندارد ، من ۹۰ درصد اخبار را آنلاین دریافت می‌کنم ، وقتی برای نشستی می‌روم برای اینکه چیزی را به بقیه نشان دهم از tablet pc استفاده می‌کنم ،
این کامپیوتر با رایانه دفترم کاملا در ارتباط است و من به همه فایلهایی که به آنها نیاز دارم ، دسترسی دارم. یک نرم‌افزار یادداشت‌برداری به نام OneNote هم روی این رایانه دارم ، بنابراین همه نوشته‌هایم به شکل دیجیتال هستند.
گیتس معمولا به جای اینکه برای پیدا کردن فایلی در داخل فولدرها دنبال آنها بگردد ، آنها را جستجو می‌کند ، این کار را پیدا کردن آدرسهای میل و شماره‌های تلفن هم انجام می‌دهد.
ابزار دیجیتالی دیگری که اثر زیادی روی کارآیی من داشته است ، نرم افزار جستجوی دسکتاپ است ، این ایزار دسترسی من را به اطلاعات روی رایانه شخصی ، سرور و اینترنت تغییر داده است ، با هاردهای بزرگتر و افزایش پهنای باند ، من چندین گیگابایت اطلاعات به شکل ایمیل ، اسناد ، فایلهای رسانه‌ای ، دیتابیس تماسها و غیره دارم.
مایکروسافت بیش از ۵۰ هزار کارمند دارد ، بنابراین وقتی به این مطلب فکر می‌کنم که آینده پرداخت آنلاین چگونه خواهد بود و یا چه کار جالبی خواهد بود که خاطرات دوران کودکی را بشود
ذخیره کرد ، یا هر چیز جدید دیگر ، آنها را می‌نویسم ، بعد کارکنان می‌توانند آنها را ببینند و بگویند : نه، تو اشتباه می‌کنی یا اینکه می‌دانی چنین کاری اینجا و اینجا انجام شده است؟
نرم‌افزار SharePoint ، یکی از نرم‌افزارهای محبوب بیل گیتس برای تماس با کارکنان و مدیریت پروژه‌هاست

برنامه نويسي ماوس در Turbo C

با توجه به اين كه برنامه هاي تحت داس رابط ضعيفي نسبت به ويندوز و لينوكس و... دارند ما حداقل بايد برنامه هايمان را به ماوس مجهز كنيم تا اين نقص تا حدودي برطرف شود. مخصوصا اگر بخواهيم يك برنامه گرافيكي بنويسيم برنامه مان بدون ماوس غير قابل استفاده خواهد بود. خب بهتره بريم سر اصل مطلب. در اين مقاله فعال كردن ماوس در زبان C توضيح داده شده. البته ما ماوس را با استفاده از وقفه ها كه در تمام كامپيوترهاي IBM يكي هستند فعال مي كنيم و كدهاي ارائه شده با كمي تغيير در پاسكال و بيسيك نيز كار خواهند كرد. اگر شما با زبان C آشنايي نداريد ممكن است اين كدها برايتان ناآشنا باشند. پس بهتر است از خواندن اين مقاله صرفنظر كنيد. البته ممكن است به زودي آموزش C و ++C را نيز در اين سايت بگذاريم. ابتدا براي اين كه از ماوس استفاده كنيم بايد بفهميم كه درايور ماوس نصب شده يا نه؟ اگر نصب نشده باشد نمي توان ماوس را فعال كرد. براي اين كار از تابع شماره 00hex از وقفه 33hex استفاده مي كنيم. اگر قبلا با وقفه ها كار كرده باشيد حتما مي دانيد كه شماره تابع وقفه در ثبات AH قرار مي گيرد ولي توابع 33hex به جاي AH از AX استفاده مي كنند. يعني براي فراخواني اين وقفه شماره تابع آن را در ثبات AX قرار مي دهيم. پس از فراخواني اين وقفه اگر مقدار ثبات AX برابر 0000hex باشد يعني درايور ماوس نصب نشده و ما نميتوانيم از ماوس استفاده كنيم. پس از اين كار بايد نشانگر ماوس را د ر صفحه ظاهر كنيم. نشانگر ماوس دقيقا در وسط صفحه ظاهر خواهد شد. اگر در حالت متني باشيم اين نشانگر به صورت يك مستطيل و اگر در حالت گرافيكي باشيم نشانگر به صورت يك فلش كوچك نشان داده خواهد شد. براي ظاهر كردن كافي است از تابع شماره 01 وقفه 33h استفاده كنيم. برنامه زير هم درايور ماوس را تشخيص داده و هم آن را در حالت متني نشان ميدهد:

#include
#include
#include
#include
void main()
{ union REGS r;
clrscr();
r.x.ax= 0;
int86(0x33,&r,&r);
if(r.x.ax==0)
{
printf("No Mouse Available.....");
getch();
exit(1);
}
r.x.ax=1;//place 01 in AX register
int86(0x33,&r,&r);//showing the mouse pointer
printf(“press any key to exit…”);
getch();
}

ادامه نوشته

كدام زبان برنامه‌نويسي را انتخاب كنيم؟

اشاره :
كدام زبان برنامه‌نويسي را انتخاب كنم؟ از كدام نوع ديتابيس استفاده كنم؟ اين‌ها سؤالات قديمي و تاحدودي كليشه‌اي هستند. با اين حال خواندن يكي دو مقاله جالب در اينترنت باعث شد، طرح مجدد اين موضوع هميشگي را خالي از فايده ندانم.

ادامه نوشته

آموزش SQL و ORACLE

 

دوستان علاقه مند به برنامه نويسي SQL و ORACLE می تونن به لینکهاي زیر مراجعه کنند . 

آموزش SQL 

آموزش oracle 10g

اصول برنامه نويسي (طراحی الگوریتم)

اصول برنامه نويسي


الگوريتم
مجموعه اي از دستورالعمل ها كه به صورت محدود و پايان پذير است و اگر بصورت متوالي دنبال شود موجب انجام كار خاصي مي گردد.
شرايط و معيارالگورتيم
1. ورودي( مي تواند چند ورودي داشته باشد يا هيچ ورودي را از محيط خارج تامين نكند . )
2. خروجي (حداقل يك كميت به عنوان هدف و نتيجه الگوريتم به خروجي برگزدانده مي شوند . )
3. قطعيت (واضح و بي ابهام باشد . )
4. محدوديت ( بالاخره بايد الگوريتم پايان يابد و براي تمام حالات عملي انجام گيرد و بازتابي داشته باشد . )
5. كارآيي ( هر دستورالعمل بايد انجام پذير باشد . )
نكته : در علم كامپيوتر بايد بين يك الگوريتم و يك برنامه تفاوت قائل شد، بعنوان مثال سيستم عامل برنامه ايست كه هيچ گاه پايان نمي پذيرد در صورتيكه شرط الگوريتم پايان پذيريست .
نكته : يك الگوريتم را به شيوه هاي مختلف مي توان بيان كرد و براي هر مساله مي توان الگوريتم هاي متفاوتي نوشت .
نوع داده مجرد ADT (abstract data type)
يك نوع داده مجرد مفهوم مجرديست كه با مجموعه اي از خواص منطقي تعريف شده است . بعد از تعريف اين نوع داده مجرد، بايد اعمال مربوط به آن را مشخص گردد و مي توان آن نوعِ داده را پياده سازي كرد .
يك پياده سازي نرم افزاري شامل ويژگي هاي چگونگي نمايش يك نوع داده جديد بر اساس داده هاي موجود است، به عبارت ديگر نوع داده مجموعه اي از انواع داده مقصد) ( object وعملكرد هايي است كه بر روي اين نوع داده ها عمل مي كنند .
توابع يك نوع داده مجرد را به چند گروه تقسيم مي كنند :
1. ايجاد كننده يا سازنده ( اين توابع نمونه جديدي از نوع تعيين شده ايجاد مي كند . )
2. تبديل كننده ( اين توابع با استفاده از يك يا چند نمونه ديگر نمونه تعيين شده را ايجاد مي كند . )
3. مشاهده كننده يا گزارش دهنده ( اطلاعاتي را راجع به يك نمونه از نوع داده را ارائه مي دهد . )
بررسي نحوه اجراي يك برنامه
عواملي چون :برآورده شدنِ اهداف اصلي برنامه، صدق كردن تمام مقادير، مستند سازي برنامه، ايجاد واحدهاي منطقي، استفاده موثر از توابع، خوانا بودن كد ها ي برنامه، استفاده موثر برنامه از حافظه ها ي اصلي و كمكي، زمان اجراي برنامه و ... در ارزيابي برنامه موثرند .
تعيين تخمين هاي حافظه و زمان مورد نياز را تحليل نحوه اجراي برنامه مي نامند .
پيچيدگي فضاي لازم
فضاي مورد نياز يك برنامه شامل موارد زير است :
1. نيازمنديهاي فضاي ثابت
2. نيازمنديهاي فضاي متغير
مي توانيم نيازمنديهاي فضاي كل را بصورت مجموع نيازمنديهاي فضاي ثابت و متغير بيان كنيم .
پيچيدگي زمان
ميزان يا پيچيدگي زمان يك برنامه مقدار زماني است كه كامپيوتر براي اجراي كامل برنامه نياز دارد . اين زمان شامل مجموع زمان كامپايل و زمان اجراي برنامه است البته از آنجا كه برنامه بعد از كامپايل اول ديگر نيازي به كامپايل مجدد ندارد و مي توانيم چندين بار بدون كامپايل آنرا اجرا كنيم، زمان مهم براي ما زمان اجراي برنامه است .
چرخه زندگي سيستم ( شيوه توسعه نرم افزار)
اين چرخه شامل موارد زير است :
1. تعين نياز هاي مسئله :
نيازها دو دسته اند : دسته اول نيازمنديهاي عملياتي سيستم كه در واقع كاربر با آن سرو كار دارد و دسته دوم نيازمندي هاي غير عملياتي هستند كه اين نيازمنديها محدوديت ها و استانداردها ي سيستم را مشخص مي كنند .
2. تحليل مساله:
در تحليل دو شيوه موجود است : شيوه از پايين به بالا ((bottom up و شيوه از بالا به پايين ((top down
در شيوه از پايين به بالا ما ابتدا كل برنامه را در نظر گرفته و بعد به ريشه ها و قسمت ها ي مختلف مي پردازيم . اين روش قديمي و غير ساخت يافته است اما در شيوه از بالا به پايين ما برنامه را به قسمت هاي قابل كنترل تقسيم مي كنيم و در نهايت به برنامه اصلي دست پيدا مي كنيم .
3. طراحي الگوريتم براي حل مساله :
در اين مرحله، طراح سيستم را هم از نقطه نظر داده هاي مقصود مورد نياز برنامه و هم از نظراعمالي كه بر روي انها انجام مي گيرد، بررسي مي كند. از آنجايي كه نوع داده مجرد و مشخصات الگوريتم ها مستقل از زبان هستند لذا جزئيات برنامه نويسي را ناديده مي گيريم .
4. پياده سازي الگوريتم :
در اين مرحله الگوريتم توسعه مي يابد و بر طبق زبان انتخاب شده الگوريتم پياده سازي مي شود .
5. بازبيني، بررسي و آزمايش برنامه كامل شده :
در اين مرحله برنامه ها با انواع داده هاي ورودي مختلف آزمايش و خطا هاي مختلف رفع مي شوند، جنبه هاي مختلف در اين زمينه عبارتند از : اثبات درستي، آزمايش درستي و خطا زدايي .
نكته : بايد توجه داشت كه برنامه بدون خطايي كه سرعت پاييني دارد از ارزش كمي برخوردار است .
6. پشتيباني و به روز رساني برنامه :
اين بخش طولاني ترين دوره شيوه توشعه نرم افزار است . دراين مرحله برنامه وابسته به نيازهاي جديد يا تغيير نيازهاي قديم يا بروز اشتباهات مختلف و ... به روز رساني يا اصلاح مي شود .
نكته : سه مرحله اول توسعه نرم افزار يعني نيازمنديها، تحليل مساله و طراحي الگوريتم، به عهده تحليلگران سيستم است و برنامه نويس مرحله چهارم را به عنوان نوعي كتابدار انجام مي دهد . در اصطلاح برنامه نويسي به دو مرحله آغازي تحليل و به مراحل سه و چهار تركيب گفته مي شود .
بعضي از الگو هاي توسعه نرم افزار :
1. روش آبشاري :
در اين روش پس از تعريف هر مرحله توسعه نرم افزار به سمت مرحله بعدي پيش مي رود .
2. برنامه نويسي اكتشافي :
دراين روش در حداقل زمان ممكن سيستمي ايجاد مي شود و سپس اصطلاحات لازم در آن بوجود مي آيد، تا عمل مورد نظر را به درستي انجام دهد . اين روش معمولا در توسعه سيستم هاي هوش مصنوعي كه كاربران نمي توانند نياز هاي مشروح را بطور دقيق بيان كنند و كفايت به جاي صحت هدف اصلي طراحان سيستم است بكار مي رود .
طراحي شئ گرا:
ازآنجا كه پنهان سازي اطلاعات يك استراتژي طراحي است كه در آن اطلاعات تا آنجايي كه ممكن است در داخل قطعات سيستم مخفي مي شوند ، طراحي شئ گرا نيز بر مبناي پنهان سازي اطلاعات است ، در روش شئ گرا سيستم به صورت مجموعه اي از اشيا يا حالت اختصاصي خود در نظر گرفته مي شود .
ويژگي هاي طراحي شي گرا :
1. ناحيه مشترك داده ها حذف مي شوند و اشيا به جاي استفاده از متغير هاي عمومي و مشترك با تبادل پيام ها با يكديگر ارتباط برقرار مي كنند . اين كار هم باعث سهولت در اصلاحات و هم كاهش اتصال كل سيستم مي شود .
2. اشيا نهادهاي مستقلي هستند كه به راحتي قابل تغييرند زيرا تمام حالت ها و اطلاعات در داخل خود شئ پنهان شده است و اشيا ديگر چه از روي عمد و چه تصادفي به اطلاعات يك شي نمي توانند دست يابند و تغيير در يك شي بدون مراجعه به اشياي ديگر صورت مي گيرد .
3. اشيا ممكن است توزيع شده باشند و مي توانند بصورت ترتيبي يا موازي اجرا شوند .
امتيازات روش طراحي شئ گرا :
1. به دليل مستقل بودن اشيا نگهداري سيستم آسانتر است ، مي توان اشيا را جداگانه اصلاح كرد و افزودن يا حذف يك شي تغييري در ساير اشيا سيستم نخواهد داشت .
2. اشيا قطعات مناسبي هستند كه مي توانند مجددا مورد استفاده قرار گيرند .
3. براي دسته اي از سيستم ها نگاشت روشني بين نهاد هاي دنياي واقعي ( مثل قطعات سخت افزاري ) و اشياي كنترل كننده آنها در سيستم وجود دارد اين موضوع درك سيستم را بالا مي برد .
طراحي تابعي :
طراحي تابعي روشي براي انجام طراحي نرم افزار است ، در آن طراحي به مجموعه اي از واحدهاي متاثر به هم تجزيه مي شود كه هر كدام وظيفه خاصي دارند در واقع طراحي تابعي مكمل تكنيك طراحي شي گراست . يك روش طراحي تابعي طراحي ساخت يافته است، اين روش با استفاده از نمودارهاي جريان داده ها پردازش داده اي منطقي را توصيف مي كند .
استراتژي طراحي تابعي بر تجزيه سيستم به مجموعه اي از توابع متاثر به همه تكيه دارد كه حالت متمركز سيستم بين توابع مشترك است . طراحي تابعي جزييات الگوريتم را در يك تابع پنهان مي كند اما اطلاعات حالات سيستم مخفي نيست، اين كار ممكن است موجب مشكلاتي گردد زيرا يك تابع مي تواند اين حالت را طوري تغيير دهد كه ساير توابع انتظارش را ندارند . اين روش زماني موفق است كه ميزان اطلاعاتي حالت سيستم اندك باشد و از اشتراك داده ها جلوگيري گردد . بعضي از سيستم هايي كه واكنش هاي آنها وابسته به يك محرك يا ورودي است و متاثر از ورودي هاي قبلي نيست ، ماهيت تابعي دارند.

ادامه نوشته

Agile Software Development

 اشاره :
در اين مقاله قصد دارم يكي از مباحث جديد در مهندسي نرم‌افزار را به صورت مختصر توضيح دهم. در يادداشت‌هاي بعدي نيز سعي خواهم كرد اصول و روش هاي آن را شرح دهم. اين مدل توليدي نرم‌افزار را بارها در پروژه‌هاي نرم‌افزاري كه مديريت و اجرا كرده‌ام اعمال كردم و تجربه نشان داده است كه خيلي از مواقع اين روش توانسته است گوي سبقت را از روش‌هاي معمول و متداول بربايد.

Agile Software Development
در طراحي يك نرم‌افزار رعايت اصول استاندارد طراحي، استفاده از الگوهاي آماده و بهره‌گيري از روش‌هاي نوين بسيار مهم است، ولي نكته مهم اين است كه در اصل كاربران، باعث مي‌شوند يك پروژه نرم‌افزاري به نتيجه برسد. يعني فناوري و پروسه استفاده شده، در حقيقت در رده دوم اهميت قرار دارند.

بسياري از ما با پروژه‌هاي نرم‌افزاري‌اي كه بدون هيچ‌گونه اصولي تهيه مي‌شوند، مواجه شده‌ايم و ديده‌ايم كه كار با اين گونه پروژه‌ها تا چه اندازه مشكل است. در اين پروژه‌ها مشكلات عمده‌اي كه پيش ميآيند عبارتند از: عدم توانايي توليدكنندگان در تشخيص نيازهاي كاربران، وجود ايرادها و error هاي تكراري، تأخير در ارائه محصول و... . از طرف ديگر، مشتريان اين‌گونه نرم‌افزارها از عدم دقت در ارائه برنامه زمانبندي دقيق از طرف طراحان سيستم، كيفيت كمِ نرم‌افزارهاي توليدي و افزايش هزينه‌ها شكايت دارند.

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

براي اين كار مي‌توانيم به تجربيات كسب شده در پروژه‌هاي گذشته خود مراجعه كنيم و فعاليت‌هاي موفقي كه در آن پروژه‌ها انجام شده است را دوباره انجام دهيم و از كارهايي كه باعث مشكل در آن پروژه‌ها گشته‌اند، پرهيز كنيم.  البته نمي‌توانيم با اين  كار از وجود مشكل در نرم‌افزار خود مطمئن باشيم؛ زيرا مشكلات، چه بخواهيم چه نخواهيم، بروز خواهند كرد و از آن جايي كه در كار رويه‌اي ثابت نداريم و تنها از تجربيات قديمي خود استفاده مي‌كنيم، نمي‌توانيم انتظار داشته باشيم كه نرم‌افزارهاي ما بدون اشكال باشند؛ زيرا ممكن است با مشكلي برخورد كنيم كه تا به حال با آن برنخورده‌ايم و تجربه‌اي در رفع آن نداريم.

اوايل سال 2001 تعدادي از محققان و صاحب‌نظران نرم‌افزار، گروهي به نام  Agile Alliance را تشكيل دادند كه توانست راه‌حلي براي تيم‌هاي نرم‌افزاري پيدا كند تا به سرعت و با كيفيت بالا نرم افزار توليد كنند و بتوانند اگر تغييري در قسمتي از نرم‌افزار به وجود آمد، آن را كنترل كنند و اصلاحات لازم را اعمال نمايند. آن‌ها مدعي هستند كه راه بهتري براي توليد نرم‌افزار پيشنهاد كرده‌اند كه كار ما برنامه‌نويسان را آسان كرده است.

آن‌ها چند اصل مهم را به عنوان مانيفيست يا بيانيه خود در نظر گرفته‌اند. از جمله: اهميت نقش اعضاي تيم در پروژه نرم‌افزاري،  توليد مستندات مناسب براي نرم‌افزار، اهميت نقش كاربران سيستم و استفاده از آن‌ها در مراحل ساخت نرم‌افزار، و توانايي اعمال تغييرات در نرم‌افزار در تمامي مراحل توليدي آن.

منبع : ماهنامه شبکه

ادامه نوشته