سادگی زیباست...

بررسی انواع معماری های سیستم عامل و برنامه های سیستمی و روشهای توسعه آنها

سادگی زیباست...

بررسی انواع معماری های سیستم عامل و برنامه های سیستمی و روشهای توسعه آنها

سادگی زیباست...

سلام

امروز ویندوز 10 رو نصب کردم، دلیل اینکه این دفعه برعکس گذشته، سریع ویندوز جدید رو نصب کردم، یه کامنت تو وبسایت engadget بود:"ویندوز 10، چرخه ویندوز خوب-بد-خوب رو با یک نسخه خیلی خوب کامل کرده" و من هم قبول دارم.

تو یه جمله: ویندوز 10، یک شاهکار هست. نهایت سادگی که میتونین تصور کنین.

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

استارت منو به اندازه ای کامل شده که تقریبا لازم نیست برای انجام کاری بیش از 2 تا کلیک بکنین و همه چیز زیر دستتون قرار گرفته. من خودم شخصا برای محیط کار ویندوز 7 رو ترجیح میدادم، چون استارت منو بهتری داشت. اما استارت ویندوز 10 خیلی کاملتر هست.

از لحاظ هماهنگی با نرمافزارها، تا الان که میکلی پیش نیومده و تو فرایند بروزرسانی همه نرم افزارهای قبلی سرجاشون مونده بودن.

مرورگر اج انقدر خوب هست که هنوز به فکر کروم و موزیلا نیفتادم. :) هی گوگل، کروم دیگه قدیمی شده

مالتی دسکتاپ، واااییی. اگر ترمینال رو هم اضافه کنه عالی میشه :). تجربه چند دسکتاپی برای افرادی مثل من که عادت ندارن پنجره ها رو ببندن، یک نعمت بزرگ محسوب میشه. فقط کاش هات کی رو همون مال اوبونتو قرار میداد :))

در کل به همگی پیشنهاد میکنم که این شاهکار رو نصب کنین

در مورد مباحث فنی انشاا... دفعه بعد مطلب مینویسم

۱ موافقین ۱ مخالفین ۰ ۰۹ مرداد ۹۴ ، ۱۸:۵۱
حامد شیخلو

تو این پست قصد ندارم به فلسفه هک و اینکه فرقش با کرک چیه، کلاهاشون نماد چی هست و این جور مسائل بپردازم. این مسائل تو بلاگها (و متاسفانه سایتهای) زرد داخلی خیلی راحت میشه پیدا میشن.

امروز (20 جولای 2015 مصادف با 29 تیر 94) یه خبر جالب تو دنیای وب دست به دست شد: یه گروه هکری مشخصات بیش از 37 میلیون نفر رو از یه سایت دوست یابی(از نوع دوستیهای خارجی ها که خودشون هم نمیخوان کسی بویی ببره) برداشتن و تهدید کردن که اگر سایت بسته نشه، مشخصات این افراد رو منتشر میکنن. این مشخصات هم به دلیل ماهیت وبسایت شامل نام و مشخصات پرداخت حساب بانکی و آدرس میشه.

حالا این مساله از کجا شروع شد: این وبسایت از افرادی که ثبت نام کردن توش و بعدا به هر دلیل توبه کردن یا نمیخوان کسی بدونه که عضو این وبسایت بودن، 12 پوند میگرفت و اطلاعاتشون رو پاک میکرد. از این طریق هم 1.7 میلیون دلار هم کاسب شده بودن. این گروه هکری علاقه مند به این وبسایت شدن و به هر نیتی (به خودشون مربوط) اومدن و از دیتابیس وبسایت یه دامپ خوشگل گرفتن.

اطلاعات 37 میلیون نفر تو دیتابیس و یه مساله جالب دیدن. برای بعضی از افرادی که درخواست پاک شدن دیتا داده بودن، هنوز داده هاشون با تمام جزئیات (حتی پرداخت برای حذف داده) توش موجود بود. یعنی وبسایت اومده پول رو از افراد گرفته، اما داده ها رو پاک نکرده.

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

به یه ترتیب جالب این وسط توجه کنید:

  • وبسایت با هدف غیر اخلاقی (خودشون میگن سایت cheating)
  • افرادی با هدف نه چندان سالم
  • ترس افراد از وبسایتی که خودشون رفتن توش و هزینه کردن
  • هزینه کردن اعضا برای پاک شدن گذشته خودشون تو وبسایت
  • سوء استفاده سایت و تلاش برای احتمالا سود بیشتر در آینده از داده های اعضا
  • هک سایت توسط هکرها برای هدفی نامعلوم (شاید خوب)
  • ترس اعضا از محشر احتمالی
۰ موافقین ۰ مخالفین ۰ ۳۰ تیر ۹۴ ، ۰۲:۲۷
حامد شیخلو

سلام

بلاخره بعد از مدتی کار، نسخه دوم برنامه جدول کلمات رو آماده کردم. برای دانلود رایگان به مایکت یا بازار برین.

دانلود از مایکت


۰ موافقین ۱ مخالفین ۰ ۱۳ خرداد ۹۴ ، ۱۷:۵۶
حامد شیخلو

سلام

برای کار با یک سروری نیازمند نصب زبان برنامه نویسی ruby و یه ماژول روی اون بودم. نصب ماژول روی ویندوز راحت هست، باید بریم به وبسایت روبی و rubyinstaller رو دانلود کنیم. اینم لینک دانلود:

http://rubyinstaller.org/downloads/

توجه: موقع نصب، تیک زیر رو بزنین که بتونین راحت از کامند لاین بتونین اجرا کنین.

بعد از نصب، با اجرای دستور زیر میتونین جم های جدید نصب کنین:

gem install "package"

تو سیستم من این خطا رو داد، که ظاهرا زیاد هم به وجود میاد:

روش حل این خطا، دستور زیر هست:

chcp 1252

این دستور کد پیچ کیبورد رو میتونه عوض بکنه. تو پست بعدی انشاا... تجربه خودم رو از openShift مینویسم.

خطای دوم:

اگر با خطای مشابه زیر زمان فرمان پیکربندی rhc مواجه شدین

C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- dl/import (LoadError)
        from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'

بسته زیر رو نصب کنید:

gem install net-ssh -v 2.9.3.beta1
۰ موافقین ۰ مخالفین ۰ ۰۵ خرداد ۹۴ ، ۲۰:۱۲
حامد شیخلو

اینکه برنامه نویسی اندروید خوب هست یا نه (منظور از لحاظ ساختار مهندسی نرم افزاری)، به نظر من این زبان برای این طراحی نشده که ساختار رو رعایت بکنه، برای این طراحی شده که سریع بشه یه برنامه رو پیاده سازی کرد. حالا اینکه این توسعه سریع باعث راحت بودن توسعه برنامه در برنامه های با اندازه بزرگ هم میتونه باشه، باید گفت بله. چون اصلا هدف یه چیز دیگه هست. هدف توسعه برنامه های کوچیک هست که حالا میتونه به یک ساختار به هم پیوسته مرکزی متصل باشه. بعدا در مورد ساختار این زبان بیشتر صحبت میکنیم.

در این دوره آموزشی، با مقدمات برنامه نویسی اندروید آشنا میشین. یکی از ویژگیهای دوره های آموزشی وبسایت linux academy این هست که مطلب رو بدون حاشیه میگه و زیاد رو مقدمات بحث نمیکنه.

تو این دوره، سرفصل های زیر بررسی میشه:

  • مقدمات برنامه نویسی اندروید
  • نصب و آماده سازی محیط
    • نصب sdk و eclipse
    • بروز رسانی sdk
    • استفاده از google API
    • استفاده از بسته های توسعه دهنده های ثانویه
  • بررسی SDK و شبیه ساز
    • ساخت و مدیریت شبیه ساز
    • بحث در مورد اندازه صفحه نمایش ابزارهای نهایی
    • تولید کلاس R
    • بررسی android manifest
    • فایل منابع
    • عناوین و آیکون ها
  • ساخت اولین برنامه
    • آماده سازی اولیه و ساخت فایل پروژه
    • بررسی فرمت xml اندروید
    • طراحی یک فرم
    • افزودن کنترل ها
    • افزودن منو
    • پنجره پیغام ها
    • اشاره گر به شی
    • اکتیویتی ها و intent ها
  • مدیریت لایه و اتصال فرم ها
    • مدیریت لایه ها
    • خواندن و نوشتن در فایل ها
    • استفاده از فرم های جدید
    • مدیریت تصاویر و ویدئو
    • فیلد کنترل داده
    • استفاده از دکمه ها
    • استفده از فیلد وضعیت
    • استفاده از لیست باز شدنی (drop down list box)
  • رخدادها و مدیریت خطا
    • مدیریت رخداد
    • مدیریت خطا
  • کنترل های رابط کاربر پیشرفته
    • مرورگر وب توکار
    • استفاده از دوربین
    • تبادل داده
    • نخ پردازشی
    • دسترسی به منبع ذخیره سازی خارجی
    • استفاده از دکمه radio
    • استفاده از دکمه تصویری 
    • استفاده از لیست انتخابی
    • استفاده از لیست انتخاب عددی
  • توزیع برنامه
لینک دانلود دوره با حجم 1.17 گیگا بایت
http://uploaded.net/file/ccwnx17y/from/hkf5pu
http://uploaded.net/file/wlov0jqi/from/hkf5pu
http://uploaded.net/file/8fh1cr1x/from/hkf5pu
http://uploaded.net/file/04ni3yjp/from/hkf5pu
http://uploaded.net/file/048y1fer/from/hkf5pu
http://uploaded.net/file/qdbeh0n2/from/hkf5pu
http://uploaded.net/file/708pgbf7/from/hkf5pu
۰ موافقین ۰ مخالفین ۰ ۲۲ ارديبهشت ۹۴ ، ۰۹:۰۸
حامد شیخلو
سلام
تصمیم گرفتم ویدئو های آموزشی مناسب رو که بهنظرم دیدن اونها برای دانشجوها و دیگر افراد خوب هست رو تو وبلاگم بزارم و معرفی کنم.
اولین ویدئو آموزشی، ویدئو آشنایی با مفاهیم و راه اندازی اولیه OpenStack هست. این سری ویدئو از وبسایت LinuxAcademy.com عرضه شده و دربردارنده سرفصل های زیر هست:
  • مقدمه برای openstack
    • مقدمه و آشنایی
    • نسل جدید دیتاسنترها بر مبنای openstack
  • اجزای معماری openstack
    • تاریخچه
    • روند داده معماری
    • محاسبات (nova)
    • ذخیره سازی داده (Swift)
    • سرویس ایمیج سیستم عاملها (Glance)
    • سرویس ذخیره سازی مبتنی بر بلاک (Cinder)
    • شبکه (Neutron)
    • داشبورد کنترلی (Horizon)
    • سرویس تعیین اعتبار (Keystone)
  • نمایش کارکرد
    • openstack Hypervisor
    • انتخاب سکوی مناسب
    • ساخت یک سکوی مناسب openstack با استفاده از DevStack
لینک دانلود این سری آموزشی
(حجم 558 مگابایت، زبان انگلیسی، فرمت ویدئو ها flv)
http://uploaded.net/file/ofexegub/from/wfqkan
http://uploaded.net/file/0du6m9fd/from/wfqkan
http://uploaded.net/file/3rwiiolg/from/wfqkan
http://uploaded.net/file/8andl8mf/from/wfqkan
http://uploaded.net/file/i0n3m0ss/from/wfqkan
۱ موافقین ۰ مخالفین ۰ ۲۱ ارديبهشت ۹۴ ، ۱۳:۰۳
حامد شیخلو

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

اولین مرحله برای انجام یک کار، انتخاب روش کار مناسب از بین روشهای متفاوت هست. برای هر کاری که میخواین انجام بدین، اولش باید نیازمندی های خودتون رو مشخص بکنین. نیازمندی های مساله من موارد زیر هست:

  1. بار کاری بسیار کم سیستم عامل مهمان
  2. میزان حافظه رم مورد نیاز برای ماشین ها کم باشه
  3. سیستم عامل مهمان تفاوتی نمیکنه چی باشه
  4. رابط های شبکه به صورت کامل در کنترل ماشین مجازی باشه
  5. امکان باشه که با رابط دستوری ماشین های مجازی رو کنترل کرد
من بر اساس نیازمندی خودم باید یک روش مجازی سازی استفاده میکردم. پس فاز اول تحقیقات هست. تو این پست اطلاعات کلی از مجازی سازی و روشهای اون رو بررسی میکنیم.

مجازی سازی

یه سوال، مجازی سازی همون تجرید (abstraction) هست؟ چه فرقهایی با همدیگه دارن؟
تجرید به صورت کلی اگر تعریف کنیم، یه ساده سازی از رابط برای سیستم هست. تو طراحی سیستم (همون طور که قبلا گفته بودم) از تجرید برای ساده سازی طراحی خیلی استفاده میشه. برای مثال یک فایل، تجریدی از محل خاصی از فضای ذخیره سازی است.
مجازی سازی در عوض، یک رابط جداگانه برای سیستم عرضه میکند. رابط عرضه شده توسط مجازی سازی الزاما ساده تر نیست. این رابط جدید هم برای cpu و دیسک و یا شبکه میتونه عرضه بشه. پس میتونیم بگیم که مجازی سازی برای مجموعه منابع مشخصی از سیستم، میتونه یک عده رابط های جدید تعریف بکنه و با استفاده از اون رابط ها وظایف خاصی برای سیستم مشخص کرد. مثلا برای پردازنده x86 یک رابط جدید تعریف میکنین که بتونه دستورات powerPC رو هم اجرا بکنه.

انواع متفاوت مجازی سازی

به صورت کلی میتونیم مجازی سازی رو تو سه نوع تعریف کنیم. 
  • مجازی سازی سطح سیستم -system-level virtualization
تو این روش مجازی سازی رفتار یک سیستم کامپیوتری مثل یه سیستم حقیقی تقلید(Emulate) میشه. برای مثال رفتار یه پردازنده powerPC و یا یه دونه PLC به صورت کامل تقلید میشه. تو این شرایط سیستم عاملی که تو سیستم مجازی سازی شده اجرا میشه یه سیستم عامل کامل و بدون تغییر هست. این نوع مجازی سازی خودش به دو زیر دسته تقسیم میشه:
    • Full Virtualization: در این روش مجازی سازی، سیستم مهمان اطلاعی از اینکه بر روی بستر مجازی اجرا میشود نداره.
    • Paravirtulization: در این حالت مجازی سازی، سیستم عاملی که به صورت مهمان بر روی سیستم هست، از اینکه بر روی یک بستر مجازی اجرا میشود اطلاع دارد. در این سیستم ها فرمان های ابزارهای سیستم مجازی به سیستم میزبان ارسال میشه.
    • Hardware assisted virtualization: این روش یه نوع full virtualization هست، که پردازنده اصلی دستورات خاصی برای مجازی سازی سخت افزار رو تو خودش داره. برای مثال تو پردازنده های اینتل فناوری vtx وجود داره تا بشه با استفاده از اون مجای سازی کارایی بهتری پیدا بکنه. روش این کار هم مثل همون بیت وضعیت هسته و کاربر هست. یه وضعیت اضافه میشه به اسم vritual. تو این وضعیت فرمان ارسالی مشخص میشه که از سمت سیستم مجازی داره ارسال میشه. با این روش میشه بدون کاهش سرعت سیستم جدیدی بوجود آورد.
    • Hybrid virtualization: یه روش ترکیبی بین paravirtualizatio و full virtualization هست.
برای این نوع سیستم ها میشه VMware،Xen و KVM رو مثال زد.
  • مجازی سازی سطح پردازش- Process-level virtualization
تو این شرایط ماشین مجازی یک کاربرد (پردازش) رو اجرا میکنه. کاربرد باید برای اون ماشین مجازی نوشته بشه و این ماشین مجازی روی سیستم عامل اجرا میشه. برای مثال ماشین مجازی java از این نوع مجازی سازی هست. این روش خوبی هایی هم داره، مثلا اینکه باعث میشه برنامه نوشته شده بتونه راحت روی چندین سیستم اجرا بشه. 
  • مجازی سازی سطح سیستم عامل-OS  virtualization
توی این روش، عملا ماشین مجازی خودش میشه یه پردازش لایه کاربر. به این معنی که در عوض شبیه سازی سخت افزار، لایه هسته برای چند برنامه سطح کاربر مثل یه هسته جداگانه سرویس میده. تو این روش بین چند سیستم عامل مهمان یک هسته مشترک وجود داره و برنامه های اون سیستم عامل مهمان مستقیما روی اون هسته اجرا میشه. برای این روش از OpenVZ و jails میشه استفاده کرد.
تو بخش بعدی در مورد انواع روشهای مجازی سازی سطح سیستم صحبت میکنیم.
۰ موافقین ۰ مخالفین ۰ ۲۳ اسفند ۹۳ ، ۱۵:۱۷
حامد شیخلو

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

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

در شب 25 ماه فوریه سال 1991، یه سیستم پاتریوت تو عربسات سعودی نتونست یه موشک اسکات رو ردیابی بکنه و موشک بعد از اصابت باعث کشته شدن 28 نظامی آمریکایی و زخمی شدن 98 نفر شد.

با بررسی که انجام شد، مشخص شد که مشکل از سیستم رادار پاتریوت بود.

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

توی عملیات حفاظ صحرا، چند تا از این سکوهای پرتاپ پاتریوت توی نقاط حساس عربستان و اسرائیل کار کذاشته شده بود تا در مقابل موشک های اسکات عراق بتونه مقابله بکنه.

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

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

مشکل نرم افزاری

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

الگوریتم محاسبه مکان فرود موشک نیازمند سرعت موشک و زمان ها به صورت اعداد حقیقی هست. کامپیوتر سیستم پاتریوت به صورت رجیسترهای 24 بیتی بود. تو این سیستم زمان به صورت یک دهم ثانیه حساب میشه (deci=1/10). تو باینری 1/10 یه عدد اعشاری نامتناهی هست. برای حالت دابل عدد زیر میشه


0x3FB999999999999A = 00111111 10111001 10011001 10011001
10011001 10011001 10011001 10011010

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

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

کشف مشکل

اولین بار نیروهای اسراءیلی مشکل رو پیدا کرن و گزارش دادن. بر اساس گزارش اونها سیستم پاتریوت بعد از 8 ساعت کار، تقریبا 20 درصد خطا تو محاسبه پیدا میکنه (که البته تدریجی اضافه میشه).

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

بروز مشکل

تو 25 فوریه 1991 سیستم پاتریوت موشک اسکاتی که عراق شلیک کرده بود رو ردیابی کرد اما محاسبه کرد که به خارج از نواحی حساس برخورد میکنه و به همین خاطر برای مقابله موشکی رو شلیک نکرد. اما موشک اسکات به داخل شهر ظهران برخورد کرد.

سایت اصلی تو زمان حادثه 100 ساعت بود که کار میکرد و میزان خطای زمانی محاسبه 0.34 ثانیه شده بود. این اختلاف زمانی باعث میشد تا محاسبه سرعت موشک با اشتباه 1.7 کیلومتر بر ثانیه انجام بشه. همین اشتباه محاسباتی باعث میشه نقطه برخورد هم اشتباه محاسبه بشه.


بعدا در مورد مشکلات مشابه و نتیجه که میخوام بگیرم بیشتر صحبت میکنیم

۰ موافقین ۱ مخالفین ۰ ۳۰ بهمن ۹۳ ، ۰۱:۰۳
حامد شیخلو

سلام

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

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

تا همین چند وقت پیش از texMaker استفاده میکردم. ابزار خیلی خوبی بود، اما زیاد با یه ادیتور ساده فرق نداشت. چند تا امکانات اولیه داشت که کار رو ساده تر میکرد. بعدش با texStudio آشنا شدم. اولش به خاطر شلوغ بودنش زیاد به دلم نچسبید، اما بعدش که تو لینوکس نصبش کردم و باهاش کار کردم، واقعا از کارش لذت بردم. خیلی از کارای روتین اما سخت رو مثل ساختن جداول رو آسون کرده. منابع رو هر جایی میخواین اضافه کنید به صورت پاپ آپ توضیحاتش رو میاره. و یه امکان خیلی خوب، کامپایل کامل چند بخشی داره. تو لاتک مثلا اگر بخواین مراجع رو هم داشته باشین، باید ۳ بار کامپایل انجام بدین. یه بار خود ساختار مستند، بعدش مراجع رو با بیبتک و یه بار کل مستند. این کار زمان بر هست. اما texStudio یه امکان خوب داره که همه قسمتهایی که تفییر پیدا کرده رو دوباره کامپایت میکنه.

یه امکان خوب دیگه، هایلایت کردن مکانی از پی دی اف هست که متنش کدش رو مشخص کردین. مثلا اگر روی کد جدول باشین، نتیجه خروجی همون جدول رو نشونتون میده.

یه امکان خیلی خوب هم برای فرمول نویسی داره (علاوه بر امکان انتخاب همه علایم ریاضی)، میتونین با ماوس فرمول خودتون رو رسم کنین و نتیجه رو به صورت کد لاتک قرار بدین :).

۱ موافقین ۰ مخالفین ۰ ۲۵ بهمن ۹۳ ، ۱۱:۰۵
حامد شیخلو

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

این هم از پست ایشون:

My calculator battery is discharged after 25 years. Thanks to its producer: TOSHIBA. It was working from 1989 until 2014, i.e. one quarter of a century :)

۲۵ سال، یه فکر بکنین، خیلی هست ا.

http://profs.hsu.ac.ir/mamintoosi/en

۰ موافقین ۰ مخالفین ۰ ۲۵ بهمن ۹۳ ، ۰۱:۰۵
حامد شیخلو