واحد مشترک کمکی پژوهش و مهندسی «هوش یار-تواندار»     (HT-CSURE)

واحد مشترک کمکی پژوهش و مهندسی «هوش یار-تواندار» (HT-CSURE)

Hooshyar-Tavandar Common Subsidiary Unit for Research & Engineering
واحد مشترک کمکی پژوهش و مهندسی «هوش یار-تواندار»     (HT-CSURE)

واحد مشترک کمکی پژوهش و مهندسی «هوش یار-تواندار» (HT-CSURE)

Hooshyar-Tavandar Common Subsidiary Unit for Research & Engineering

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

رایورز - آنچه دست کم در باره سیستم عامل تازه‌وارد مایکروسافت می‌دانیم، این است که تنها قادر به اجرای اپلیکیشن‌های یونیورسال است که در ویندوز استور قرار دارند.

استراتژی شرکت مایکروسافت تا امروز برای رویارویی با کروم‌بوک‌ها، راهبرد ساده‌ای مبنی بر ساخت لپ‌تاپ‌های ویندوزی مقرون ‌به‌صرفه بوده است، به گونه‌ای که بتوانند مزیت رقابتی کروم‌بوک‌ها را که همان قیمت کم آنهاست، خنثی سازد و دست بالا را در این بازار داشته باشد. به نظر می‌رسد که مایکروسافت به فکر گسترش این راهبرد به بخش سیستم عامل خود نیز افتاده است.

به تازگی وب‌سایت‌های Windows Blog Italia و Thurrott سیستم عامل "ویندوز کلود" را مورد بررسی قرار داده‌اند. به نظر می‌رسد ویندوز کلود را می‌توان چرخشی در ویندوز ۱۰ دانست که با هدف رقابت با کروم او.اس.اس شرکت گوگل ظهور کرده است.

عملکرد این سیستم عامل بسیار شبیه به ویندوز ۱۰ است و شاید برجسته‌ترین ویژگی آن را بتوان این نکته دانست که در واقع تنها اپلیکیشن‌های معمولی ویندوز بر روی آن قابل اجرا هستند.

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

 

 

کارشناسان این سایت‌ها معتقدند ویندوز کلود از لحاظ بصری هیچ گونه تفاوت عمده‌ای با ویندوز ۱۰ ندارد و احتمالاً برای استفاده در مدارس و مؤسساتی مناسب خواهد بود که فقدان اپلیکیشن‌های بومی (Native Apps) در کروم او.اس به دلیل مسائل امنیتی را حس می‌کردند.

از سوی دیگر معلمان احتمالاً بیشتر مایل به استفاده از PC های ویندوزی هستند، چرا که مطمئنند سیستم آنها تحت تأثیر بدافزازها یا برنامه‌ها و بازی‌های تأیید نشده قرار نخواهد گرفت.

گفته می‌شود احتمال دارد شرکت مایکروسافت، فروشگاه نرم‌افزاری جدیدی موسوم به Centennial (که امکان بارگذاری اپلیکیشن‌های ۳۲ بیتی در ویندوز استور را فراهم می‌کند) را نیز در نظر بگیرد. البته هنوز در مورد جزئیات و نیز سازگاری آن به دلیل وجود گزارش‌هایی متناقض، تردیدهایی وجود دارد.

شایان ذکر است با وجود اخباری که به تازگی در باره سیستم عامل جدید غول نرم‌افزاری جهان به رسانه‌ها درز کرده، هنوز اطلاعات دقیقی در خصوص زمان عرضه ویندوز کلود وجود ندارد، اما به احتمال زیاد به زودی (در بهار ۲۰۱۷) شاهد عرضه آن خواهیم بود.

تکنیک‌های کاربردی استخراج داده‌ها با لینک LINQ (بخش اول)

دسترسی به منابع داده‌ای با LINQ
تکنیک‌های کاربردی استخراج داده‌ها با لینک (بخش اول)
لینک LINQ، سرنام Language-Integrated Query، از جمله راهکارهای مؤثر در دسترسی به داده‌ها است. امروزه، رقابت اصلی میان تولیدکنندگان ابزارهای برنامه‌نویسی بر سر دسترسی سریع و آسان به منابع داده‌ای است. لینک چارچوب مستحکمی را به وجود می‌آورد که دسترسی به اطلاعات ذخیره‌شده روی طیف گسترده‌ای از منابع داده‌ای را امکان‌پذیر می‌کند و همانند پلی برای برقراری ارتباط میان اشیا برنامه‌نویسی و داده‌ها استفاده می‌شود.

پیش از ظهور لینک، محاوره‌ها با رشته‌های ساده‌ای که در یک برنامه کاربردی ساخته می‌شدند و حتی فاقد ویژگی IntelliSense بودند، استفاده می‌شدند. اما با ظهور لینک، این شکل دسترسی به داده‌ها کاملاً متحول شد و برنامه‌نویسان توانستند با حداقل کدنویسی محاوره‌ها را از یک رشته ساده خارج کرده و به محاوره‌‌هایی تبدیل کنند که مدیریت بیشتر روی آن‌ها امکان‌پذیر باشد. منعطف بودن لینک باعث محبوبیت آن شد. کدنویسان بدون اینکه درگیر قواعد بسیار پیچیده دسترسی به منابع داده‌ای مختلف شوند، موفق شدند به‌راحتی برای دسترسی به داده‌هایی که روی منابع مختلفی همچون بانک‌های اطلاعاتی رابطه‌ای، اسناد xml و... قرار دارند، از لینک استفاده کنند. با این مقدمه، به سراغ معرفی تعدادی از تکنیک‌های پرکاربرد در لینک خواهیم رفت که برای دسترسی به داده‌هایی که روی منابع مختلف قرار دارند، استفاده می‌شود. اما ابتدا باید با ساختمان درونی محاوره‌ها در لینک آشنا شویم.

محاوره چیست؟
پرس‌وجو (Query) که به نام محاوره نیز شناخته می‌شود، رشته‌ای متنی است که به‌منظور بازیابی داده‌ها از یک منبع داده‌ای، به‌روزرسانی، اضافه کردن و حذف داده‌ها، از آن استفاده می‌شود. لینک با هدف ارائه یک مدل ساده از محاوره‌ها در اختیار برنامه‌نویسان قرار گرفت؛ مدلی که قادر است به منابع داده‌ای مختلف به شیوه کدنویسی یا ویزاردی متصل شود. برای این منظور مجموعه‌ای از متدهای اصلی که عملگرهای استاندارد محاوره (SQO) نام دارند، لینک را یاری می‌کنند. طیف گسترده‌ای از این متدها به شکل ترتیبی کار می‌کنند؛ به این معنی که شی مورد محاوره از نوع یکی از رابط‌های <IEnumerable<T یا <IQueryable<T  خواهد بود. شایان ذکر است IQueryable که برای محاوره‌های LINQ TO SQL استفاده می‌شود، در نهایت به IEnumerable تبدیل می‌شود. در نتیجه یک محاوره لینک همواره با اشیا سروکار دارد.

نکته بارز و شاخص این مدل به ویژگی یکدست بودن آن بازمی‌گردد؛ به طوری که برنامه‌نویسان در اکثر مواقع از الگوی ثابتی به‌منظور بازیابی داده‌ها از منابع داده‌ای استفاده می‌کنند. محاوره‌های ساخته‌شده توسط لینک، عبارات باقاعده‌ای هستند که همراه با فیلترهای مختلفی همچون مرتب‌سازی، تجمع و... قابل بهره‌برداری هستند. استخراج ساختمند داده‌ها در عمل به طراحان و به‌ویژه طراحان وب کمک فراوانی می‌کند. روش‌های SQO روش‌های توسعه‌یافته‌ای هستند که از کلاس‌های Enumerable و Queryable تعریف می‌شوند. بعضی منابع این روش‌ها را عملگرهای پرس‌وجو نام‌گذاری کرده‌اند. همگی این روش‌ها در فضایی به نام System.Linq قرار دارند. به‌طور کلی محاوره‌ها در لینک، در پنج گروهی که در جدول شماره یک مشاهده می‌کنید، قرار می‌گیرند. 


جدول شماره 1: پنج گروهی که نقش تدارک‌بیننده‌ها را برای لینک بازی می‌کنند.

در کنار این پنج گروه اصلی، کتابخانه‌های جانبی دیگری نیز وجود دارند که برای مقاصد خاص استفاده می‌شوند.
LINQ to Active Directory از جمله این موارد است. در میان گروه‌های جدول شماره یک، دو گروه LINQ to Objects و LINQ to SQL پرکاربردترین گروه‌هایی هستند که برنامه‌نویسان استفاده می‌کنند. در بسیاری از موارد، برنامه‌نویسان ترجیح می‌دهند به جای استفاده از محاوره‌های SQL، از محاوره‌هایی که LINQ to SQL در اختیار آن‌ها قرار می‌دهد، استفاده کنند. به دلیل اینکه در عمل، مکانیزم ساده‌تری را برای دسترسی به داده‌ها در اختیار آن‌ها قرار می‌‌دهد. در کنار این تدارک‌بیننده‌ها، عملگرهای محاوره‌ای دیگری نیز وجود دارد که در یک عبارت محاوره از آن‌ها استفاده می‌شود. پرکاربردترین این عملگرها در جدول شماره دو آمده است. 


جدول شماره 2: پرکاربردترین عملگرهایی که در محاوره‌ها‌ی لینک استفاده می‌شوند.

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

static void Main(string[] args)
        {

         int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };
        var myQuery =
            from num in numbers
            where (num % 2) == 0
            select num;
        foreach (int num in myQuery)
        {
            Console.Write(“{0,1} “, num);
        }
       }

فهرست شماره یک

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


شکل 1: نحوه اجرای یک محاوره در لینک

منبع داده‌ای چیست؟
در فهرست شماره یک، منبع داده‌ای یک آرایه بود که به‌طور صریح از رابط <IEnumerable<T پشتیبانی می‌کرد. این بدان معنا است که محاوره‌های لینک روی اشیایی که از رابط IEnumerable ارث‌بری داشته باشند، به‌راحتی پیاده‌سازی می‌شوند. حلقه foreach برای اجرای محاوره‌ها به IEnumebrale یا <IEnumerable<T نیاز دارد. نوع‌هایی که از رابط <IEnumerable<T یا رابط‌هایی همچون <IQueryable<T مشتق می‌شوند، نوع‌های قابل پرس‌وجو هستند. لینک می‌تواند از یک نوع قابل پرس‌و‌جو به شکل یک منبع داده مستقیم، استفاده کند. اما یک منبع داده، همیشه یک آرایه ساده نیست. اگر منبع مورد تقاضا یک بانک اطلاعاتی از نوع SQL Server باشد، تدارک‌بیننده LINQ to SQL استفاده خواهد شد. در حالی که اگر منبع داده شما بانک اطلاعاتی دیگری باشد، باید از LINQ to Dataset استفاده کنید. اگر منبع داده‌ای درخواستی شما یک فایل XML باشد، تدارک‌بیننده LINQ to XML  برای ساخت و اجرای محاوره‌ها استفاده می‌شود. 
هدف از ارائه لینک کار با داده‌ها به شیوه ساده و مستقیم است. لینک یک لایه برنامه‌نویسی انتزاعی میان زبان‌های تحت دات‌نت و منابع داده‌ای فراهم می‌آورد. شاید این سؤال پیش آید که چه لزومی دارد برای دسترسی به منابع داده‌ای از محاوره‌ها استفاده کنیم؟ در پاسخ باید گفت که هر کدام از رابط‌هایی که برای دسترسی به داده‌ها از آن‌ها استفاده می‌شود، ترکیب نحوی خاص خود یا زبانی را که از آن استفاده می‌کنید، در اختیار دارند؛ در نتیجه همواره باید با قواعد و ترکیبات نحوی هر منبع داده‌ای و زبان برنامه‌نویسی هدف آشنایی داشته باشید. در مقابل لینک این قابلیت را در اختیار شما قرار می‌دهد تا از چارچوب استانداردی برای دسترسی به داده‌های قرارگرفته در منابع داده‌ای مختلف استفاده کنید.

محاوره شماره یک؛ دسترسی به منابع داده‌ای ساده همچون آرایه‌ها 
آرایه‌ها ساده‌ترین منبع داده‌ای هستند که می‌توانید داده‌های مدنظر را از آن‌ها استخراج کنید. در حالی که عناصر درون آرایه‌ها را می‌توان با استفاده از حلقه‌هایی همچون foreach یا for استخراج کرد، لینک نیز می‌تواند همین کار را به شکل ساخت‌یافته‌ای انجام دهد. فهرست شماره دو نحوه پیاده‌سازی یک محاوره لینک روی یک آرایه را نشان می‌دهد. 

  static void Main(string[] args) { String[] myArray = { “One”, “Two”, “Three”, “Four”, “Five” };
            var MyQuery =
                from mystring
                    in myArray
                select mystring;
            foreach(var str in MyQuery)
            Console.WriteLine(str); }

فهرست شماره دو

محاوره شماره دو؛ محدود کردن داده‌های دریافتی از یک منبع داده 
محاوره شماره یک، همه داده‌های درون یک آرایه را بازمی‌گرداند؛ اما اگر در نظر داشته باشیم تنها داده‌های خاص خود را استخراج کنیم، باید از کلمه کلیدی where استفاده کنیم. این کلمه کلیدی به شما اجازه می‌دهد تا شرطی را روی یک محاوره پیاده‌سازی کنید. در اغلب موارد، محاوره‌ها به فیلتر نیاز دارند؛ به دلیل اینکه در بیشتر زمان‌ها نیازی نداریم کل مجموعه داده‌ها را از درون یک منبع داده‌ای استخراج کنیم؛ به‌ویژه زمانی که منبع داده هدف ما یک بانک اطلاعاتی مشتمل بر ده‌ها هزار رکورد باشد. مکان قرارگیری کلمه where در یک محاوره، بعد از کلمه from و قبل از کلمه کلیدی select است. در فهرست شماره سه از ترکیب نحوی where به‌منظور محدودکردن خروجی داده‌هایی که اندازه آن‌ها از سه کاراکتر بیشتر است، استفاده کرده‌ایم. 

        static void Main(string[] args)
        {

          String[] myArray = { “One”, “Two”, “Three”, “Four”, “Five” };
            var MyQuery =
 from mystring
 in myArray
 where mystring.Length > 3
 select mystring;

            foreach(var str in MyQuery)
            Console.WriteLine(str);
       
        }

فهرست شماره سه

محاوره شماره سه؛ مرتب‌سازی و گروه‌بندی داده‌های بازیافت‌شده در یک محاوره
برای چینش داده‌های بازیافتی در یک محاوره از کلمه کلیدی orderby استفاده می‌شود. با استفاده از این کلمه کلیدی نحوه مرتب‌سازی داده‌ها، مطابق با نیاز کاری شما خواهند بود. در کنار عملگر orderby روش‌ها و عملگرهای دیگری نیز برای مرتب‌سازی داده‌ها در اختیار شما قرار دارند. فهرست شماره چهار نحوه مرتب‌سازی داده‌ها با عملگر orderby را نشان می‌دهد. 

    class Program
    {
        public class myclass
        { 
        public string Name { get; set; }
        public int Age { get; set; }
    }
        static void Main(string[] args)
        {

            myclass[] mystrings = { new myclass { Name=”Barley”, Age=8 },
                   new myclass { Name=”Boots”, Age=4 },
                   new myclass { Name=”Whiskers”, Age=1 } };

            IEnumerable<myclass> query = mystrings.OrderBy(Program => Program.Age);

            foreach (myclass mystr in query)
            {
                Console.WriteLine(“{0} - {1}”, mystr.Name, mystr.Age);
            }
       
        }
    }

 فهرست شماره چهار

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

    static void Main(string[] args)
        {

            Int32[] FirstArray= {1,2,3,4,5};
            Int32[] SecondArray = { 6,7,8,5,4};

            var MyQuery = from QueryA in FirstArray
                          from QueryB in SecondArray
                           where QueryA == QueryB
                           select new { QueryA, QueryB };

            foreach(var str in MyQuery)
            Console.WriteLine(str);
       } 

فهرست شماره پنج

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


شکل 2: نحوه پیاده‌سازی یک شرط روی محاوره

   static void Main(string[] args)
        {

           Int32[] ArrayA = {1,2,3,4};
            Int32[] ArrayB = { 1,2,3,4};
            var MyQuery =
   from QueryA in ArrayA
   from QueryB in ArrayB
   let TheSquare = QueryA * QueryB
   where TheSquare > 4
   select new { QueryA, QueryB, TheSquare };
            foreach(var str in MyQuery)
            Console.WriteLine(str); }

فهرست شماره پنج

در شماره آینده به بررسی تکنیک‌های دیگر مربوط به لینک خواهیم پرداخت.

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



ابزارهای کار برنامه نویسی بصورت Remote

ابزارهای کار برنامه نویسی بصورت Remote

امروزه بسیاری از پروژه های برنامه نویسی با منطق open source تولید می شوند. یکی از ویژگی های open source بودن این است که برنامه نویس ها از نقاط مختلف جغرافیایی روی پروژه کار می کنند.

یکی از مسائلی که در کار تیمی از راه دور و یا همان دورکاری پیش می آید، هماهنگی سخت بین برنامه نویسان است. فرض کنید که مدیر پروژه چگونه باید سیاست ها را تدوین و به برنامه نویسان ابلاغ کند؟ مدیر فنی چگونه Task ها را به برنامه نویسان Assign کند؟ اگر برنامه نویسی قسمت مورد نظر را نوشت چگونه در هسته ی اصلی کد بنویسد؟ و مسائل دیگری از این دست که یک تیم برنامه نویسی را با چالش های جدی روبه رو می کند.

به همین جهت می خواهیم به بررسی هفت تا از بهترین ابزارهای مشارکت جمعی در پروژه های برنامه نویسی را بررسی و خصوصیات هر کدام را ذکر کنیم:

الف) اپلیکیشن Agreedo

اپلیکیشن agreedo

اپلیکیشن agreedo

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

اپلیکیشن Agreedo این مشکلات را حل می کند. با این ابزار ایده ها تبدیل به دستورالعمل می شوند و وارد روال پروژه می شوند. همچنین هر تصمیمی که در حین پروژه گرفته شود، به فرد مورد نظر Assign می شود. تمام این task ها هم مانند task های عادی پروژه قابل پیگیری توسط مدیر پروژه هستند.

این ابزار برای سیستم عامل های Windows, Mac, iOS و Android موجود است و برای تیم های Remote یا همان تیم هایی که در آن دورکاری می کنند بسیار مفید است.

ب) Wunderlist یک اپلیکیشن حرفه ای برای مدیریت Task ها

مدیریت تسک ها با wunderlist

مدیریت تسک ها با wunderlist

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

در زیر با تعدادی از این قوانین آشنا شوید:

  • Task های ستاره دار، task هایی هستند که  برای شما چالش برانگیزند.
  • قابلیت مرتب سازی task ها بر اساس اولویت و درجه اهمیت آنها.
  • قابلیت شکستن یک task به چند subtask.
  • قابلیت assign کردن یک task به فردی خاص در پروژه.
  • قابلیت فیلتر کردن لیست task های assign شده به من بر اساس فاکتور های “task های امروز” و “task های کلی من”.
  • قابلیت هماهنگی با نرم افزار Slack جهت بهبود چت و تماس با افراد تیم.

ج) اپلیکیشن Skitch جهت یادداشت گذاری حرفه ای

ارتباطات تیمی با استفاده از Skitch

ارتباطات تیمی با استفاده از Skitch

خیلی سخته که مطلبی را بخواهید به کسی بفهمانید و آن فرد در مقابل شما نباشد. Skitch به شما کمک می کند که این کار را به ساده ترین شکل ممکنه انجام دهید. با کمک این ابزار می توانید یک متن کاملا نشانه گذاری شده را برای یکی دیگر از اعضای تیم بفرستید. مثلا یک متنی بنویسید که در آن از علامت های جهت، اشکال مختلف، ابزار هایلایت و … استفاده کنید.

جدا از اینکه استفاده از این ابزار بسیار ساده است، مطلب دوست داشتنی دیگر در موردش این است که به راحتی می توان اسکرین شات گرفت(command+shift+6)، متن را به سرعت ایمیل کرد (command+shift+m) و یا اینکه آن را تبدیل به فایل عکس نمود (command+e).

د) اپلیکیشن Draft جهت کار تیمی روی اسناد حقوقی و داکیومنت ها

نرم افزار Draft دقیقا مانند github عمل می کند، اما با کمی پیچیدگی کمتر. این ابزار به شما کمک می کند که روی فایل های Markdown با افراد مختلف به طور همزمان کار کنید و در نهایت به سادگی از آن خروجی بگیرید به فرمت های PDF، HTML، DOCX و Markdown.

این ابزار بسیار مناسب است برای کار روی اسناد حقوقی و یا مقالاتی که چند نفر همزمان روی آن مشغول کار هستند. غیر از اینکه برنامه نویسان از این ابزار می توانند استفاده های زیادی بکنند، در اصل این ابزار برای استفاده های نویسندگان ابدا شده است.

ه) اپلیکیشن Dropbox برای اشتراک گذاری فایل ها

اپلیکیشن dropbox

اپلیکیشن dropbox

Dropbox یک سیستم مجازی ذخیره و نگه داری اطلاعات است که تقریبا همه ی ما اسم آن را شنیده ایم و با آن کار می کنیم. نکته ای که در مورد Dropbox شنیدنی است این است که اپلیکیشن های زیادی با استفاده از API می توانند به دراپ باکس متصل شوند و از امکانات آن استفاده کنند. به طور پیش فرض تا ۲ گیگابایت به صورت رایگان می توانید از فضای dropbox استفاده کنید که به ازای دعوت هر یک از دوستانتان به دراپ باکس تا ۲۵۰ مگابایت می توانید فضای رایگان خود را افزایش دهید. البته بیشتر از ۸ گیگابایت نمی توانید به این روش بدست آورید. برای داشتن فضای اضافی تر می بایست پلن های غیر رایگان را انتخاب کنید.

شایان ذکر است که Google Drive تا ۱۵ گیگابایت فضای رایگان را در اختیار کاربران قرار می دهد. البته قابلیت های این دو سیستم با یکدیگر متفاوت است و هر کدام توانایی های خاص خود را دارند.

و ) اپلیکیشن slack جهت ارتباطات تیمی

اپلیکیشن پیام رسان حرفه ای slack

اپلیکیشن پیام رسان حرفه ای slack

اپلیکیشن پیام رسانی Slack برای استفاده در ارتباطات تیمی فوق العادست. در واقع این نرم افزار آنقدر جنبه ی fun دارد که همه آن را دوست دارند. بسیاری از تیم های برنامه نویسی که Remote کار می کنند از این اپلیکیشن برای پیام رسانی و ارتباطشان استفاده می کنند. البته بعضی اوقات مدیر پروژه ها به این نتیجه می رسند که این ابزار بیشتر ضرر میرساند تا استفاده. من معتقدم این طرز تفکر از آنجا ناشی می شود که هر ابزاری را می توان درست یا غلط مورد استفاده قرار داد.

قابلیت فوق العاده ی Slack این است که از طریق آن می توانید سایر ابزارهای مورد استفاده در پروژه اتان را نیز کنترل کنید.

اپلیکیشن های زیر می توانند از طریق Slack کنترل شوند:

  • مدیریت task های اپلیکیشن های Wunderlist، Trello، Asana و یا JIRA
  • سیستم پاداش و تشویق کارمندان با استفاده از اپلیکیشن Bonusly و یا Leo Slackbot
  • کنترل به اشتراک گذاری صفحه نمایش با استفاده از Screenhero
  • همکاری روی طراحی ها در نرم افزار های InVision،  Zeplin، UXPin
  • مدیریت طوفان فکری در اپلیکیشن Sketchboard
  • و بسیاری موارد دیگر

ز) اپلیکیشن خیلی کاربردی Zapier برای اتومات سازی و هماهنگی با اپ های دیگر تیم

اپلیکیشن Zapier

اپلیکیشن Zapier

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

zapier می تواند اپلیکیشن های مورد استفاده در یک پروژه را بهم وصل کند. به عنوان مثال فرض کنید که بخشی از تیم شما از Google Drive و بخشی دیگر از Dropbox استفاده می کند. در zapier شما می توانید برای هر کاری یک zap (یک کار خاص) تعریف کنید. در این مثال شما یک zap تعریف می کنید که فایل های ذخیره شده در Google Drive را به Dropbox انتقال دهد و هر زمان هم که این کار را انجام داد، اعضای تیم را از این قضیه مطلع سازد.

بسیاری Zap (دستوالعمل) های دیگر به ذهنتان می رسد که می توانید در zapier مورد استفاده در پروژه اتان تعریف کنید و بهره ی کافی را ببرید. اپلیکیشن Zapier یک رقیب و رفیق دیگر هم دارد که آن را در لینک زیر دنبال کنید. بسیار مفید است.

با این وبسایت عجیب دنیا را بهم بچسبانید!!!

حرف آخر

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

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



ابزار های front-end جالب در سال ۲۰۱۶ – قسمت اول

انتشار :۱۶ دی ۱۳۹۵


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

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

قسمت های دوم و سوم را می توانید از طریق لینک های زیر مطالعه کنید:

ابزار های front-end جالب در سال ۲۰۱۶ – قسمت دوم

ابزار های front-end جالب در سال ۲۰۱۶ – قسمت سوم

 

طبق معمول، آپدیت هایی را در ابزار های محبوب مانند React و  Angular JS مشاهده کردیم، در حالی که ابزار های جدید مانند فریم ورک Vue.js پا به صحنه گذاشته و خیلی زود طیف زیادی از توجهات را به خود جلب کرد.

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

Modaal

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

پلاگین Modaal

پلاگین Modaal

یافتن پلاگین پنجره ی مودال کار سختی نیست اما به ندرت میتوان پلاگینی یافت که تقریبا تمام باکس ها را بر حسب کارایی و مشخصات بررسی کند. این پنجره ی مودال دقیقا همانطور که پیش بینی میشود رفتار می کند- responsive است و عملکرد های آن دقیقا بر اساس تعامل کاربری می باشد (مثلا وقتی دکمه ی ESC را بزنید، برنامه بسته می شود)، تقریبا تمام انواع محتوا را می پذیرد، دارای پشتیبانی تمام صفحه است، رویداد های callback را برای قبل و بعد باز و بسته شدن ارائه می دهد و کلی ویژگی های دیگر.

تنها مشکل Modaal این است که این ابزار در حال حاضر از jQuery به عنوان dependency استفاده می کند که با jQuery slim build به خوبی کار نمی کند. در نسخه ی ۲٫۰ نیز تست شده و انتظار می رود که با jQuery 1.11.2 وبالاتر نیز کار کند.

Jam API

این وب سرویس برای موارد مختلفی به کار آید و لزوما تنها به برنامه نویسی front-end مرتبط نیست. آن را می توان اینگونه توصیف کرد: “سرویسی که به شما این امکان را می دهد که هر سایتی را به یک API با دسترسی به JSON تبدیل کنید که از سلکتور های CSS استفاده می کند”. پس Jam API ابزاری است که به شما امکان جمع کردن محتوا از وب سایت های دیگر و انتشار آن در وبسایت خودتان را می دهد (content scrape) – اما بخش CSS در واقع این ابزار را برای برنامه نویسان front end جالب توجه می سازد.

ابزار فوق العاده ی JAM API

ابزار فوق العاده ی JAM API

برای استفاده از این API، باید یک درخواست POST به وبسایت Jam API ارسال کنید که حاوی URL وبسایتی باشد که می خواهید کار content scrape را بر روی آن اجرا کنید. این کد بر اساس اینکه از Node، Ruby و غیره استفاده می کنید متفاوت خواهد بود. ما مثال JavaScript را توسعه دادیم که آنها در منبع GitHub خود قرار داده اند. با استفاده از آن مثال توانستیم یک ابزار ساده برای امکان نمایش مقادیر ممکن برای هر یک از خصوصیات CSS بسازیم که از وبسایت CSS Values برداشته شده است.

البته این مثال هدف خاصی را دنبال نمی کند زیرا وبسایت CSS Values دیگر این مثال را ندارد اما این راهی ساده برای نشان دادن نحوه ی کار Jam API می باشد. بخش کلیدی JavaScript این است:


body: JSON.stringify({

url: 'http://cssvalues.com',

json_data: '{"values": "#' + prop + ' ul"}'

})

در اینجا من URL وبسایتی که می خواهم محتوای آن را scrape کنم وارد می کنم سپس از یک سلکتور CSS برای تعیین بخشی از صفحه که می خواهیم محتوا از آن برداشته شود استفاده می کنم. بنابراین اگر کاربر خصوصیت  displayرا وارد کند، جاوا اسکریپت به صورت زیر محاسبه می کند:


body: JSON.stringify({  url: 'http://cssvalues.com',  json_data: '{"values": "#display ul"}'})

با ایجاد سایت توسط خودم، میدانم که هر یک از بخش های خصوصیت CSS دارای یک ID می باشد که با نام آن خصوصیت منطبق است. و همچنین می دانم که هر خصوصیت، مقادیر خود را در تگ UL فهرست می کند. بنابراین اگر با ساختار HTML آشنایی داشته باشید، به دست آوردن آن مقادیر با استفاده از سرویس مفیدی مانند این، کاری ساده و پیش پا افتاده است.

 

قسمت های دوم و سوم را می توانید از طریق لینک های زیر مطالعه کنید:

ابزار های front-end جالب در سال ۲۰۱۶ – قسمت دوم

ابزار های front-end جالب در سال ۲۰۱۶ – قسمت سوم

Ajax DevTools Timeline Viewer jQuery Postcss-grid-kiss آژاکس آموزش فریم ورک جاوااسکریپت ابزار Notification Logger اپلیکیشن ایمیل ساز MJML پلاگین Modaal جاوااسکریپت طراحی responsive فریم ورک jquery فریم ورک جاوا اسکریپت فریم ورک چیست کتابخانه ی Intercooler.js
مطالب مرتبط

Postcss-grid-kiss وقتی برای اولین بار با این مورد مواجه شدم، فکر کردم فقط یک شوخی است. اما همانطور که واضح است یک پلاگین واقعی PostCSS می باشد و هدف آن ساده سازی سینتکس Grid جدید W3C می باشد. طبیعتا وقتی از آرایش شبکه ای (Grid Layout) استفاده می کنید، CSS شما ظاهری شبیه به این را […]

DevTools Timeline Viewer این یک ابزار رسمی از تیم ChromeDev Tools می باشد که به شما این امکان را می دهد تا URL ها را به راحتی برای رهگیری تایم لاین DevTool های خود نمایش داده و به اشتراک گذاری کنید. تب تایم لاین در بخش DevTools مرورگر کروم به شما این امکان را می […]

از کدام مرورگر برای کارهای روزانه ی برنامه نویسی اتان استفاده می کنید؟ قطعا یا Chrome و یا Firefox و می دانم که عده ی زیادی از مرورگر کروم استفاده می کنید. البته این سوال بیشتر، از برنامه نویسان کلاینت (جاوااسکریپت) پرسیده می شود. خود من از کروم استفاده می کنم. چرا که استانداردهای وب […]

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


با بزرگ‌ترین مخزن رابط‌های برنامه‌نویسی جهان آشنا شویم

RapidAPI؛ توابع برنامه‌نویسی در اختیار توسعه‌دهندگان
با بزرگ‌ترین مخزن رابط‌های برنامه‌نویسی جهان آشنا شوید
RapidAPI استارت‌آپی است که در سان فرانسیسکو قرار دارد و تنها دو سال از عمر آن می‌گذرد. این استارت‌آپ به طراحان اجازه می‌دهد تا واسط‌های برنامه‌نویسی (API) خود را پیدا کرده، آزمایش کرده و توابعی که به آن‌ها نیاز دارند را در برنامه‌های خود ادغام کنند. استارت‌آپ RapidAPI اکنون به عنوان یک منبع غنی نزد طراحان شناخته می‌شود.

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



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

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




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



مطلب پیشنهادی

دانلود کنید: صفر تا صد برنامه‌نویسی را با یک اپلیکیشن بیاموزید!
منبعی مناسب برای علاقمندان به دانش برنامه‌نویسی

به طور مثال یک تیم در یک شرکت ممکن است در حال کار روی یک سرویس چت باشد، در حالی که تیم دیگری در زمینه آپلود تصاویر و برش دادن تصاویر کار می‌کند و تیم سومی در ارتباط با سرویس‌های مدیریتی به فعالیت اشتغال دارند، اما هیچ‌کدام از رابط‌های برنامه‌نویسی که آن‌ها طراحی کرده‌اند به طور ویژه این پتانسیل را ندارد تا به شکل حرفه‌ای از سوی تیم‌های دیگر مورد استفاده قرار گیرد. به طور مثال، ایبای را تصور کنید: ایبای صدها رابط برنامه‌نویسی بر مبنای استانداردها و پروتکل‌های مختلف طراحی کرده است و هر کدام از این رابط‌ها بر مبنای زبان‌های پیچیده و سختی ساخته شده‌اند که همین موضوع به کارگیری آن‌ها را با دشواری روبرو می‌کند. rapidAPI برای حل این مشکل یک وفق دهنده منبع‌باز را برای اتصال به این رابط‌های برنامه‌نویسی ارائه کرده است.


اما در مقابل برنامه‌ریزی کرده است تا از این ادغام‌ساز سرویس‌ها نیز کسب درآمد داشته باشد. این ادغام‌ساز به شرکت‌ها کمک کند تا نه تنها به شکلی داخلی رابط‌های برنامه‌نویسی بیشتری را مورد استفاده قرار داده، بلکه به آن‌ها اجازه می‌دهد به شکل کارآمدی آن‌ها را مدیریت کنند. جینو گفته است: «شرکت ما در حال حاضر از 200 رابط برنامه‌نویسی پشتیبانی می‌کند. در حال حاضر 16 کارمند در اختیار داریم اما در نظر داریم ظرف مدت یکسال این رقم را ده برابر کنیم.» در میان رابط‌های برنامه‌نویسی متنوعی که روی این سرویس میزبانی می‌شوند،  Spotify API و Google Search API جزء پر استفاده‌ترین رابط‌هایی هستند که توسعه‌دهندگان از آن‌ها استفاده می‌کنند. این سایت به نشانی https://rapidapi.com در اختیار شما قرار دارد.