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

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

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

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

Hooshyar-Tavandar Common Subsidiary Unit for Research & Engineering

Habits Successful People Avoid

7 Habits Successful People Avoid


We all have bad habits that we struggle with, but are your habits preventing you from being successful? I’m not talking about biting your nails or fidgeting, but rather habits you may not even be aware that you have.

If your goal is to be successful in your endeavors, read this list closely and try to identify if you have any of these bad habits — and then see how you can try to fix them


a1. Perfectionism

It’s almost become a joke that people think perfectionism is a “good” bad habit. But it’s really not. True perfectionism often means fear of doing something badly can prevent us from even beginning or trying anything new.

Successful people understand that success comes with a great deal of failure, false starts, first drafts, and do-overs


a2. Waiting on opportunity

Opportunity doesn’t always knock; and those people who tend to sit around and wait for it for it often miss the opportunities that are waiting if they just put in a little effort. This sometimes also manifests as someone waiting around for the “easy button” scheme that will help them do the thing.

As Thomas Edison said, “Opportunity is missed by most people because it is dressed in overalls and looks like work.” Successful people understand that opportunity is fueled by work and putting oneself out there


a3. Driven to distraction

If you jump (and salivate?) every time your phone dings, and start to feel itchy and unsettled if you’re unable to check it right away, you might have a distraction problem. Social media, texts, emails — all of these tasks pull us away from focusing on what you should be doing.

You’ll find that many successful people turn off notifications on their devices — if they even have those distracting apps at all. Many choose to opt-out from these distractions in order to focus on their more important tasks


a4. Letting others set the agenda

Not having your own priorities, or putting your priorities behind someone else’s is one of the worst habits of the unsuccessful person. Of course, doing the work your boss asks you to do, helping out family and friends, etc. are things that everyone should do — but successful people understand where their priorities fit in

Successful people tend to be the ones with the guts to say no to an invitation or a request to volunteer when they really don’t have time. They also tend to be the ones who write the book, get the promotion, start the business, or go on that trip of a lifetime, because they kept their priorities front and center


a5. Procrastinating

If you tend to put off your most important work until later, spending the first part of your day answering emails, browsing the internet, etc., you’ll have trouble being as successful as you can possibly be. For most people, their most productive time is when they first start working, and so that’s the time you should tackle your most challenging tasks

If you can train yourself to “eat the frog” — that is, do your most challenging work first — you’ll likely produce better work, more efficiently, and in turn be more successful


a6. Resisting change

No matter your age, if you find yourself reluctant to adopt new technology, learn new skills, or try new ideas, you are, unfortunately, doomed to fall behind. Today, the world is moving and changing faster than ever, and those who refuse to change will not have the tools to succeed

In contrast, successful people are open to learning and trying new things. This isn’t to say that they jump on every bandwagon when something new comes along, but rather that they’re open to new possibilities and willing to learn and try — and then make a decision about whether the old way or new way is best


a7. Multitasking

How many tabs do you have open in your internet browser right now? How many apps running in the background on your phone? If you find yourself constantly switching between tasks or jumping at every interruption (see No. 3), you won’t ever be able to do your best work, or truly focus on any one thing

Multitasking often results in errors and time wasted because our brains need at least several seconds to switch contexts, and those seconds add up over time. Focus is critical for producing your best work and, ultimately, succeeding


The great thing about habits is that they are changeable. While it may be challenging to overcome an ingrained habit, it can be changed — which means that your fate is not sealed, and you can increase your own odds of being successful



مرتبط:


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

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

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

به تازگی وب‌سایت‌های 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); }

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

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

فیسبوک به دنبال طراحی رابط مستقیم مغز و کامپیوتر است

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

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

بر همین اساس به دنبال جذب استعدادهای برتر در حوزه‌های مختلف است. افرادی که به فیسبوک کمک کنند تا رابط مغز و کامپیوتر (BCI) سرنام Brain-Computer Interface را طراحی کند. فیسبوک در شرایطی به دنبال دستیابی به این فناوری است که مدیرعامل این شرکت ادعا کرده بود فیسبوک در مقطع کنونی در حال کار روی چنین چیزی نیست. اما آگهی منتشر شده از سوی واحد B8 خلاف این ادعا را نشان می‌دهد.

فیسبوک واحد معروفی به نام واحد Building 8 دارد که عموما از اصطلاح B8 برای توصیف آن استفاده می‌شود. واحدی که هم‌طراز با واحد Google’s X division  و Amazon’s Lab126 است. این واحد در حال استخدام افرادی در حوزه‌های عصب‌شناسی، تصویربرداری عصبی (سلول‌های عصبی)، فناوری همگن‌ساز فراصوتی (Ultrasonic)، پردازش‌گرهای سینگالی، مهندسی پزشکی، مهندسی برق، علوم کامپیوتر و فیزیک است. این گروه تحقیقاتی با هدف تعامل و تبادل اطلاعات با موسسات علمی، دانشگاهی و همچنین استارت‌آپ‌های کوچک و بزرگ کار خود را آغاز خواهند کرد.

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

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


 

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



ابزارهای کار برنامه نویسی بصورت 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 یک رقیب و رفیق دیگر هم دارد که آن را در لینک زیر دنبال کنید. بسیار مفید است.

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

حرف آخر

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

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