سیستم مدیریت محتوای miacms

CMS مخفف Content Management System می باشد. به نرم افزاری گفته می شود که کار آن ایجاد، نگهداری، ویرایش، مدیریت و نشر محتویاتی از نوع مستندات، فایل ها و انواع دیگر رسانه ها، در بستر اینترنت یا شبکه می باشد. از CMS معمولاً برای ساخت و نشر اخبار یا اعلانات خاص و یا راهنمای کار یک نرم افزار یا یک کالا، استفاده می شود. یا در برخی از شرکت ها برای ایجاد جریان کار (workflow) و مدیریت آن از cms بهره می گیرند.

یکی از پرطرفدار ترین و مطرح ترین نرم افزارهای cms نرم افزاریست به نام miacms که با استفاده از زبان php و تحت لیسانس gpl2 ساخته شده است. این نرم افزار توسط آقای Chad Auld، یکی از مهندسین نرم افزار شرکت یاهو تولید شده است. در حال حاضر او روزها در شرکت مایکروسافت کار می کند و شب ها به هک miaCMS می پردازد. هم اکنون آخرین نسخه miaCMS که توزیع شده است نسخه 4.6.5 آن می باشد. ویزگی های اصلی آن عبارتند از:
  1. نصب آسان
  2. ویرایشگر گرافیکی محتوا
  3. سیستم مدیریت ماژول های اضافی یکپارچه و قدرتمند
  4. پوشته های زیبا و انعطاف پذیر
  5. رایگان و بازمتن بودن
  6. جستجوی آسان و خوب
  7. مدیریت کاربران
  8. چندزبانی
  9. پایدار، ایمن و بالغ

نرم افزار MiaCMS در واقع با استفاده از پروژه mambo تولید شده است. البته در نسخه 4.6.4 آن بسیاری از نقاط ضعف و کاستی های مامبو محو شده اند و ویژگی های زیر به miaCMS افزوده شد.

  1. سیستم ACL پیشرفته (Access Control List)
  2. قابلیت حما پایگاه داده
  3. پشتیبانی از LDAP
  4. OPEN ID
  5. Dublin Core
  6. OAuth
  7. N-Level Content
  8. Content Versioning
  9. Multilingual Content Management
  10. Writeable REST Interface
  11. Multi-Site Management
  12. Better File/Image Manager
  13. Akismet

نصب و راه اندازی

برای نصب ابتدا آرشیو مربوطه را از آدرس زیر دریافت کنید:

www.miacms.org

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

سرویس دهنده وب را راه اندازه کنید. اگر از wamp استفاده می کنید که این کار بسیار ساده می باشد.

مرورگر اینترنت خود را اجرا کرده و مسیر مربوط به فولدر miacms را وارد کنید. مثلاً اگر فایل فشرده شده را در دایرکتوری به اسم miaCMS باز کرده اید و آن را در شاخه www کپی کرده اید. کافیست در خط آدرس مرورگر خود آدرس زیر را تایپ کنید:

http://localhost/miacms

اگر نرم افزار قبلاً نصب شده باشد صفحه index به شکل زیر نمایان خواهد شد. البته به جای miaCMS test نامی که شما در نظر گرفته اید نشان داده می شود.


اما اگر قبلاً نصب نشده باشد شما به طور اتوماتیک به دایرکتوری installation هدایت خواهید شد و جادوگر نصب اجرا می شود.

همانطور که در شکل زیر می بینید قسمت اول صفحه نصب اطلاعات لازم در مورد سیستم مقصد را به ما می دهد. توجه داشته باشید که اگر هر یک از پیغام ها قرمز باشد عملیات نصب موفقیت آمیز نخواهد بود. البته همیشه یک پیغام با عنوان MySQL strict mode is not supported قرمز است که اهمیتی ندارد و به خاطر bug داخل برنامه است. می توانید از آن صرف نظر کنید.


اگر هیچ مشکلی وجود نداشت وهیچ پیغام خطایی در یافت نکردید می توانید نصب برنامه را آغز کنید. برای این کار در نوار آدرس مرورگر خود آدرس زیر را تایپ کنید:

http://localhost/miacms/installation/install1.php

به این ترتیب اولین مرحله نصب نرم افزار اجرا خواهد شد. همانطور که در شکل می بینید اولین چیزی که از شما درخواست می شود آدرس سرور می باشد و از آنجا که ما قصد داریم نرم افزار را بر روی سیستم محلی نصب کنیم از کلمه localhost یا آدرس IP 127.0.0.1 استفاده می کنیم.

سپس نام کاربر و کلمه عبورمربوطه را وارد می کنیم. این کاربر باید تمام موجوزهای مورد نیاز برای نصب برنامه را داشته باشد. یعنی باید grant های مربوط به ایجاد پایگاه داده جدید و همچنین ایجاد جداول مربوطه را داشته باشد. بنابراین ما در انجا از همان کاربر root استفاده کرده ایم.


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


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

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

شود.


در صفحه بعدی کلمه عبور کاربر admin را تعیین کرده و عملیات نصب پایان می یابد. بعد از اتمام نصب باید دایرکتوری Installation را به کلی حذف نمایید.

نرم افزار برای گوشی های symbian s60 v3

مجموعه نرم افزار مخصوص سری s60 ورژن 3 برای گوشی های نوکیا. تست این نرم افزارها بر روی N73 کاملاً موفقیت آمیز انجام شده است. لیست نرم افزار ها:
  • Alone MP3 Dictaphone ( پخش موسیقی و ضبط صدای اطراف و مکالمه)
  • Answering Machine (منشی تلفنی)
  • Autopilot (منشی تلفنی)
  • BestCals (ماشین حساب)
  • FarsiSmS (امکان ارسال پیامک های فارسی همراه با حروف گ، چ، پ و ژ)
  • Handyclock (برنامه تنظیم زنگ ساعت. امکان تنظیم چندین زنگ در ساعت های مختلف روز و هفته)
  • Kaspersky mobile Antivirus ( آنتی ویروس همراه با شماره سریال)
  • Xplore (بهترین نرم افزار مدیریت فایل. ابتدا ورژن قدیمی تر را تصب کنید بعد ورژن جدید تر)
  • Accelerometer Plugin
  • CorePlayer ( نرم افزار مالتی مدیای بسیار قوی. پشتیبانی از فرمت های مختلف مانندasf و avi وmpg)
  • cpumonitor (مانند taskmanager ویندوز مقدار حافظه آزاد و درصد به کار گیری cpu گوشی را نشان می دهد)
  • Ebook Sms Java (اس ام اس هاس زیبا و فارسی)
  • facewrap ( عکس های خنده دار از دوستان)
  • Islamic Organizer N73 ( اوقات شرعی بسیار جالب)
  • lcgjukebox ( برنامه برای پخش فایل های صوتی. این برنامه عکس و لیریک های داخل فایل را نشان می دهد)
  • miniexcel (برنامه ای برای انجام کارهای اسپرد شیت ساده)
  • nokia maps
  • PMD ( دیکشنری کامل فارسی)
  • SMS Wizard ( برنامه ای برای ارسال شکلک ها از طریق اس ام اس)
  • Taghvim87
  • Tehran 87
  • upcodebarc ( برنامه ای بسیار جالب برای خواندن بارکد محصولات. با گرفتن یک عکس از بارکد کالای مورد نظر. اصل یا تقلبی بودن آن کالا را هنگام خرید تشخیص دهید. این برنامه بسیار مفید و کاربردی هست)
لینک دانلود تمام برنامه ها در یک فایل در اختیار دوستان قرار دارد. برای دانلود اینجا را کلیک کنید. نظر بدید تا باز هم از این کارها انجام بدم.

آموزش OpenGL قسمت اول

معرفی و آشانایی با نحوه نصب OpenGL

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

واسط OpenGL بر روی سیستم های Linux، Unix، Windows و MacOS قابل پیاده سازی می باشد. هیچ Graphic API دیگری وجود ندارد که به این اندازه Portable باشد. همچنین با اکثر سرویس دهنده های محیطهای گرافیکی از قبیل Win32، MacOS، X-window system سازگار می باشد. توابع OpenGL را می توان در زبان های برنامه نویسی متنوعی از قبیل Ada، c، c++، Fortran، Paython، Java و ... به کار گرفت.

ابتدایی ترین کتابخانه ای که برای OpenGL نوشته شد AUX نام داشت. که در سیستم های Unix مورد استفاده قرار می گرفت اما در محیط ویندوز اصلاً کارایی نداشت و با مشکلات متعددی روبرو می شد. از این جهت هیچ گاه برای نوشتن یک برنامه کاربردی مورد استفاده قرار نگرفت و تنها جنبه آموزشی داشت. اما بعدها توسط آقای Mark Kilgard در شرکت SGI کتابخانه ای به نام GLUT تولید شد که امروزه هم بسیاری از برنامه ها با استفاده از آن تولید می شوند. کتابخانه GLUT را می توان به صورت رایگان تهیه نمود. پس از مدتی تعدادی از توابع مورد نیاز که امکان تبادل با محیط سیستم عامل را فراهم کنند مانند فعال یا غیرفعال کردن یک پنجره، به آن اضافه شد.

پیاده سازی OpenGL

واسط OpenGL را به دو روش می توان به کار برد.

پیاده سازی نرم افزاری

در شکل زیر می توانید موقعیت و نحوه اجرای برنامه هایی که از OpenGL به عنوان سرویس دهنده نرم افزاری استفاده می کنند مشاهده فرمایید. همانطور که می بینید برنامه های کاربردی درخواست های خود را برای OpenGL ارسال می کنند و OpenGL درخواست مربوطه را پردازش کرده و توسط Software Rasterizer یک Image از روی مدل سه بعدی برای GDI ارسال می کند. قسمت GDI در واقع واسطی است که سیستم عامل در اختیار برنامه ها قرار می دهد تا از این طریق با سخت افزار گرافیکی ارتباط بر قرار کنند که در ویندوز به راه انداز سخت افزار گرافیکی GDI می گویند.

پیاده سازی سخت افزاری

در این روش ارتباط بین OpenGL و سخت افزار بدون واسطه و مستقیم می باشد.

به این روش پیاده سازی OpenGL، accelerated implementation می گویند و این نام گذاری به علت بهبود سرعت عملکرد آن می باشد.

همانطور که گفته شد OpenGL یک زبان برنامه نویسی نیست بلکه یک API می باشد که توابع گوناگونی را در اختیار برنامه نویس قرار می دهد. در سیتم عامل ویندوز به طور پیش فرض فایل های glu32.dll و opengl32.dll در پوشه system32 قرار دارند و این توابع را در اختیار برنامه هایی که از فن آوری OpenGL استفاده می کنند قرار می دهد.

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

نصب Glut

از آنجا که من از کامپایلر MinGW برای کامپایل برنامه ها استفاده می کنم در این جا هم روش نصب glut برای MinGW را توضیح می دهم. روش کار آنقدر ساده است که تقریباً می توان گفت نیازی به توضیح ندارد. کافیست مراحل زیر را به ترتیب انجام دهید:

  1. Glut را از مسیر زیر دانلود کنید.

http://www.xmission.com/~nate/glut.html

  1. آرشیو دریافتی را باز کرده و فایل های زیر را در مسیرهای گفته شده کپی کنید.
    • فایل glut.h را در دایرکتوری MinGW\include\GL کپی نمایید.
    • فایل glut32.lib را در دایرکتوری که فایل های برنامه شما قرار دارند و برنامه را در آن مسیر کامپایل می کنید قرار دهید.
    • فایل glut32.dll را نیز کنار فایل اجرایی که ایجا خواهید کرد، قرار دهید.
  2. توجه داشته باشید که در ابتدای همه برنامه های خود قبل از هر چیز باید فایل windows.h را include کنید. و بعد از آن فایل glut32.h را.
  3. برای کامپایل کردن برنامه های خود از دستور زیر استفاده کنید.

g++ programname glut32.lib -lopengl32 -lglu32

برای کسب اطلاعات بیشتر در مورد این دستور به مستندات MinGW مراجعه کنید. البته می توان با استفاده از برنامه هایی مانند qmake پروژه ای ایجاد کرده و کتابخانه های مذکور را در makfile فراخوان کنید. تا بتوانید براحتی با اجرای برنامه make فایل ها را کامپایل نمایید.

قسمت اول آموزش Qt

آشنایی با Qt Framework

نرم افزار K Desktop Environment که به طور اختصار KDE نامیده می شود یکی از پرکاربردترین و کامل ترین محیط های گرافیکی برای سیستم های بر پایه لینوکس است. لازم است بدانید که این محیط کاری بر اساس تکنولوژی Qt توسعه داده شده است. بنابراین به نظر می آید، برای برنامه نویسی تحت سیستم عامل لینوکس، استفاده از این محصول شرکت Troll Tech بهترین ایده باشد.

قالب کاری Qt، مجموعه ای از کلاس های ++C­­­ است که کاربرد آن ها ایجاد نرم افزارهای قابل کامپایل در پلت فرم های مختلف از قبیل ویندوز، لینوکس، سولاریس و یا HP-UX می باشد. یعنی یک بار کدنویسی کنید و چندین بار کامپایل کنید. نرم افزارهای تولید شده توسط Qt قابلیت اجرا بر روی اکثر سیستم های لینوکس که دارای سرویس دهنده X11 می باشند را دارا هستند.

شهرت اصلی Qt به علت multi platform بودن آن است. اما به علت قدرت بالایی که API آن دارد، تولیدکنندگان بسیاری، از آن برای توسعه نرم افزارهای Single Platform نیز استفاده کرده اند.

نرم افزارAdobe Photoshop Album یک نمونه از نرم افزار هایی است که با استفاده از Qt برای پلت فرم ویندوز ایجاد شده است. همچنین تعداد زیادی از نرم افزارها، با کاربردهای ویژه که پیچیدگی های بسیار زیادی دارند، از قبیل برنامه های پویا نمایی سه بعدی، پردازش دیجیتال فیلم و اکتشاف گاز و نفت با استفاده از Qt ساخته شده اند. اگر شما با استفاده از Qt نرم افزاری را تحت سیستم عامل ویندوز ایجاد کرده باشید به راحتی می توانید آن را در دنیای لینوکس و مکینتاش هم به فروش برسانید، برای این کار تنها به کامپایل مجدد و کمی کار با کتابخانه مورد استفاده آن نیاز دارید.

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

علاوه بر صدها کلاس و تابعی که خود Qt در اختیار شما قرار می دهد، پروژه های متن باز (open source) زیادی هم وجود دارد که قابلیت های جدیدی را به آن اضافه می کنند. برای آشنایی با این ماژول ها به اینجا مراجعه کنید.

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

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

در این جا تعریف علمی تری از Widget بیان می کنیم. به هر کلاسی که از کلاس QWidget ارث بری داشته باشد Widget گفته می شود. اگر با Java آشنایی داشته باشید یقیناً با مفهوم Widget مشکلی نخواهید داشت. در واقع همان طور که از معنای تحت الفظی این کلمه بر می آید، هر چیزی که در صفحه نمایش داده می شود یک Widget (چیز) است. کلاس QWidget شامل پنجره های قابل نمایش می باشد. با استفاده از متد های درون این کلاس می توان پنجره ها را مدیریت کرد و عملکرد های متناسب با وظایف برنامه را در رابطه با رویداد های موشواره و صفحه کلید تعیین کرد. به عنوان مثال می توان خواص خود Widgwet ها را با توجه به رویداد های رخ داده تغییر داد. مثلاً رنگ زمینه یک پنجره یا موقعیت آن در صفحه نمایش و یا اندازه آن را تغییر داد. شما می توانید در برنامه خود از Widget های موجود در Qt یا KDE استفاده نمایید ویا حتی با استفاده از کلاس QWidget چیزهای جدیدی متناسب با نیاز های خود ایجاد کنید و به کار برید. به خاطر داشته باشید که هر گاه نام یک کلاس با حرف Q شروع شده باشد، می تواند نشان دهنده این مطلب باشد که این کلاس مطعلق به قالب کاری Qt است و اگر با حرف K شروع شده باشد به احتمال زیاد مربوط به کلاس های KDE می شود.

در شکل زیر ساختار یک برنامه ایجاد شده در محیط KDE را مشاهده می کنید:


در برنامه نویسی برای محیط گرافیکی KDE، بیشتر با لایه های دوم و سوم سرو کار داریم. در واقع کار Qt هم، همین است. یعنی Qt ما را قادر می سازد بدون نیاز به پرداختن به لایه های پایین تر و با استفاده از توابعی که در لایه های بالایی در اختیار ما هست به برنامه نویسی بپردازیم. برنامه های تولید شده توسط ما در واقع همان بالاترین لایه، یعنی Application را تشکیل می دهند.

در این جا با سلسله مراتب این لایه ها آشنایی پیدا می کنیم و روابط بین آن ها را بررسی می کنیم

  1. لایه System:

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

  1. لایه glib:

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

  1. لایه X11:

این لایه شامل توابع سطح پایین برای مدیریت رویداد های گرافیکی مربوط به موشواره و صفحه کلید می باشد. تمام توابع مورد نیاز برای مدیریت پنجره ها و پاسخ به رویداد های ماوس و صفحه کلید توسط X11 سرویس دهی می شوند.X11 سرویس دهنده گرافیکی پایداری است که گاهی با نام X یا X11R6 هم از آن یاد می شود.

  1. لایه C++ API:

از آن جا که لایه های بالاتر توسط C++ ایجاد شده اند، این API برای پیاده سازی اشیائی که در لایه های بالایی ایجاد می شوند در این جا قرار می گیرد.

  1. لایه Qt Classes:

این لایه هم شامل توابع Qt هست که به زبان C++ نوشته شده اند.

  1. لایه KDE Classes:

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

  1. لایه Application:

در این جا با دو اصطلاح جدید آشنا می شویم، که عبارتند از Qt Application و KDE Application.

Qt Application آن دسته از نرم افزارها هستند که شیئ QApplication را برای مقدار دهی اولیه خود به وجود می آورند، در حالی که دسته دوم (یعنی KDE Application ها) شیئ KApplication را ایجاد می کنند.در سلسله مراتب وراثت، کلاس KApplication از کلاس QApplication وراثت گرفته است و علاوه بر این، استاندارد های مربوط به محیط گرافیکی KDE را شامل می شود.