رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

وبلاگ‌ها

ارسالی‌های ویژه

  • الهه انصاری

    ۷ گام برای تبدیل شدن به یک طراح موفق UI/UX

    توسط الهه انصاری

    «بخش اول» در این مطلب از تجربیات طراح موفق خانم Nicole Saidy استفاده خواهیم‌ کرد. ایشان بخاطر سوالات زیادی که از جانب برنامه‌نویسان متعدد، مدیران بازاریابی و افراد مختلف دیگری مطرح شده بود این مقاله را براساس تجربیات شخصی خود تنظیم کردند. ادامه‌ی مطلب را از زبان خودشان می‌شنویم. «چگونه شروع کنم؟» این سوال من را به زمانی می‌برد که برای اولین بار کار خود را آغاز کردم. 7 سال پیش، من در اولین روز اولین کار طراحی‌ام بودم. در مقابل یک فایل فتوشاپ خالی در iMac نشسته ام (در آن زمان یک کاربر ویندوز بودم) و سعی می‌کنم آنچه که مدیرم توضیح داد درک کنم. هیچ نظری ندارم که چگونه شروع کنم. خالی! قبل از رسیدن به این شغل، تازه از دانشگاه با مدرک چندرسانه‌ای فارغ التحصیل شده بودم. پس چرا چیزی در مورد طراحی نفهمیدم؟ خب، در دانشگاهها به ما طراحی عملی یاد نمی‌دهند. اکثر دورههای دانشگاه فقط ما را بصورت تئوری آموزش می‌دهند و گاهی اوقات به ما یاد می‌دهند که چگونه از ابزارهای طراحی مانند Adobe Suite استفاده کنیم. اما این کافی نیست - حتی نزدیک هم نیست. تمرین، یادگیری و خودآموزی تنها چیزی است که می‌تواند شما را به یک طراح بهتر تبدیل کند. 7 سال بعد از خودآموزی، من اکنون یک معلم طراحی و سخنران کنفرانس بین المللی هستم. اولین چیزی که باید بدانید این است: لازم نیست که با این استعداد متولد شوید. ما موجودات خارق العاده‌ای مانند تک‌ شاخ‌ها نیستیم. ما فقط قصد داشتیم طراح باشیم و هنرمندانه به دنیا آمدیم. طراحی، در مورد حل مشکلات است. این یک روند دائمی یافتن مشکلات و ایجاد راه حل برای آنهاست. حوزه‌های مختلفی برای طراحی وجود دارد: رابط کاربری، تجربه‌ی کاربری، طراحان محصول، طراحان گرافیکی، طراحان تعاملی، معمار ساختار اطلاعات و غیره. برای شروع تحقیق کنید که کدام حوزه شما را بیشتر جذب می‌کند. برای حال، روی رایج‌‌ترین حوزه تمرکز می‌کنیم: ترکیبی از رابط و تجربه: طراح رابط کاربری و تجربه‌ی کاربری. 1. خودتان را با اصول رابط کاربری آشنا کنید. قبل از شروع تمرین طراحی، اولین چیزی که نیاز دارید یادگیری برخی اصول طراحی است. در این مرحله، شما به دنیای طراحی قدم خواهید گذاشت و شروع به تفکر «خلاقانه» می‌کنید و جنبه‌های روانشناسی طراحی را خواهید آموخت: چرا این طرح می‌تواند خوب بنظر بیاید و یا شکست بخورد؟ برخی از اصول پایه‌ای که باید بدانید: 1. رنگ (Color) واژگان رنگ‌ها، اصول و روانشناسی رنگ را شامل می‌شود. ۲. تعادل (Balance) اصل تعادل به تقارن و عدم تقارن در مبحث طراحی می‌پردازد. 3. تضاد (Contrast) هدف از بکارگیری تضاد سازماندهی اطلاعات، ایجاد سلسله مراتب و ایجاد تمرکز است. ۴. تایپوگرافی (Typography)  انتخاب فونت مناسب و ایجاد متن قابل خواندن در وب با رعایت این اصل ممکن خواهد بود. ۵. ثبات و انطباق (Consistency) مهمترین اصل، جهت ایجاد طرح های بصری و قابل استفاده از ثبات شروع میشود.   ۲. فرآیند خلاقانه‌ی تجربه‌ی کاربری را فرا بگیرید. مورد بعدی درک فرآیند خلاقانه است. طراحی UI/UX فرآیندی متشکل از فازهای خاصی است که هر فرد خلاق از آن عبور می‌کند. این فرآیند شامل ۴ فاز مختلف کشف (Discover)، تعریف (Define)، توسعه (Develop) و تحویل (Delivery) است. فرآیند خلاقانه فاز کشف فاز کشف همان فاز شروع پروژه است که طراحان به جستجو، الهام گرفتن و جمع‌آوری ایده‌ها می‌پردازند. فاز تعریف در این مرحله، طراحان ایده‌ی حاصل از فاز کشف را تعریف و مشخص می‌کنند. در‌واقع خلاصه‌ای واضح از کاری که قرار است انجام بگیرد مشخص می‌شود. فاز توسعه فاز توسعه مرحله‌ای است که راه‌ حل‌ها یا مفاهیم ایجاد شده، نمونه‌سازی، تست و تکرار می‌شوند. این فرآیند آزمایش و خطا به طراحان کمک می‌کند تا ایده‌های خود را بهبود داده و اصلاح کنند. فاز تحویل فاز آخر فاز تحویل است که در آن پروژه‌ی پایانی، تولید و راه اندازی می‌شود. ۳. چشمان خود را برای طراحی تقویت کنید. دانستن اصول طراحی عالی است، اما گاهی اوقات کافی نیست. شما همچنین باید چشمان خود را آموزش دهید تا طراحی خوب و طراحی بد را ببینید و نقاط قوت و ضعف آن‌ها را مشخص کنید. موثرترین روش جهت آموزش چشم برای طراحی از طریق الهام است. قبل از باز کردن یک بوم خالی و تماشای آن برای نیم ساعت ، بدانید که تنها راه خلاق بودن از طریق تحقیق است. گاهی اوقات ذهن نمی‌تواند ایده‌های خودش را بسازد. ابتدا باید به طرح‌های دیگر نگاه کنید تا طرح خودتان را ایجاد کنید؛ مخصوصا زمانی که فعلا مبتدی هستید. در وب‌سایت‌های نمونه‌کار‌ها قدم بزنید:) بنابراین به آنچه که طراحان دیگر در سایت Dribbble انجام می‌دهند نگاه کنید و هر زمان که طرح‌های زیبا یا چیزی مربوط به پروژه‌ی خود را می‌بینید، آن را در یادداشت‌های خود ذخیره کرده و اشاره کنید که چه چیزی از آن طرح را پسندیده‌اید. همچنین می‌توانید با گرفتن اسکرین‌شات ذخیره‌سازی را دقیق‌تر انجام دهید. به این ترتیب، شما مجموعه‌ای از طرح‌های الهام بخش دارید که می‌توانید برای شروع کار از آن‌ها بهره ببرید. چند مورد از سایت‌های مفید جهت الهام گرفتن در زیر آورده‌شده‌اند:  onepagelove.com awwwards.com dribbble.com pttrns.com uimovement.com ۴. مطالعه‌ی مقالات طراحی را در برنامه‌ی روزانه‌ی خود بگنجانید. برای اینکه خودمان را با طراحی آشنا کنیم، بهترین راه این است که هر روز چند مقاله در این رابطه مطالعه کنیم. خواندن اخبار و وبلاگ‌های طراحی را عادت روزمره کنید. میلیون‌ها مقاله‌ بصورت آنلاین در دسترس ما هستند تا روند‌های جدید دنیا، مورد‌های کاربری (Use Cases) و آموزش‌های مختلف را فرا بگیریم. تمام کاری که باید انجام دهیم، پیدا کردن آنهاست. هیچ چیز بهتر از یادگیری از تجربه‌های دیگران نیست. خواندن مقالات را عادت روزمره کنید بنابراین روز خود را با یک فنجان قهوه و چند مقاله‌ی الهام‌ بخش در مجلات آنلاین Medium یا Smashing شروع کنید. یادگیری چیزهای جدید در صبح، ذهنتان را گسترش داده و در طول روز فرصت خلاقیت را برایتان فراهم میکند. بنابراین، هر چند وقت یکبار در طول روز، چندین بار به خود استراحت بدهید تا بتوانید بیشتر مطالعه کنید. استراحت کردن برای خلاقیت خیلی مهم است، به ویژه هنگامی که ذهن شما گیر کرده و احساس می‌کنید که بازدهی مطلوب را ندارید. از جمله کارهای قابل انجام دیگر می‌توانید وب‌سایتی را که به عنوان صفحه‌ی اصلی مرورگر خود دوست دارید، نشانه‌گذاری کنید و یا از یک خبرنامه‌ی طراحی اشتراک بگیرید. برخی از وبلاگ‌ها و سایت‌های خبری محبوب در زمینه‌ی طراحی عبارتند از: blog.marvelapp.com medium.com/design smashingmagazine.com webdesignernews.com sitepoint.com/design-ux 5. پروژه‌های غیرواقعی طراحی کنید. کار نیکو کردن از پر کردن است و همه می‌دانیم که نمی‌توانیم بدون تجربه، مشتری یا شغلی را بدست آوریم. اما بدون یک کار یا پروژه هم نمی‌توانیم تمرین کنیم و تجربه کسب کنیم، درست است؟ بنابراین می‌توانیم این چرخه را با تمرین کردن و ایجاد پروژه‌های غیر واقعی برای سرگرمی بشکنیم! Dribbble پر از این نمونه کارها است. طراحی فیسبوک توسط Kevin McCarthy زمانی را صرف طراحی مجدد وب‌ سایت یا اپلیکیشنی که قبلا استفاده کرده‌اید کنید. این کار را برای هر چیزی که فکر می‌کنید می‌تواند بهتر شود، انجام دهید. همچنین می‌توانید ایده‌ی برنامه‌ی خود را طراحی کنید. درواقع با طراحی نمونه‌ کارها تمرین کرده و تجربه کسب می‌کنید.   ۶. کار با آخرین ابزار طراحی وب را بیاموزید. هزاران ابزار طراحی وجود دارد، اما شما نیاز ندارید که کار با همه‌ی آنها را یاد بگیرید. بهترین آن‌ها را بیابید، ابزارهای مورد علاقه‌ی خود را انتخاب کنید و با بکار گیری جدیدترین ویژگی‌ها و روندها به‌ روز باشید. جدیدترین ابزارهایی که در فرآیند طراحی خود استفاده می‌کنم در زیر آورده‌ شده‌اند: Sketch برای طراحی رابط کاربری Figma برای طراحی رابط مشترک Balsamiq برای رسم وایرفریم‌های با جزيیات کم و ابتدایی (low fidelity wireframing) Adobe XD برای طراحی رابط کاربری و نمونه‌سازی Marvel App برای ساخت مدل‌های تعاملی Invision App برای نمونه‌سازی و همکاری   7. از مربی (mentor) کمک بگیرید. یکی دیگر از روش‌های عالی برای یادگیری طراحی، یافتن یک مربی طراحی یا دوست طراح است که مایل به کمک است. آنها به شما کمک میکنند که روند یادگیری خود را سرعت بخشید. طراح کار شما را بررسی و نظرات خود را هر زمان که ممکن باشد می‌دهد. این کار مثل یک میانبر عمل می‌کند. آنها همچنین راهنمایی‌ها و ترفندهایی به شما می‌دهند که از تجربیات خود آموخته اند. بنابراین پیش بروید و به یک طراح ایمیل بفرستید، سوالات و نگرانی‌های خود را با وی مطرح کنید. هنگامی که شما آماده‌ی صحبت در مورد طراحی با دیگران هستید، می‌توانید کسی را در مورد طراحی راهنمایی کنید و یا آموزش دهید. همچنین یاد خواهید گرفت که آن را  دیدگاه‌های مختلف ببینید و بازخورد و پاسخ سوالاتی را دریافت کنید که ممکن است هرگز در مورد آن‌ها فکر نکرده باشید. هنگامی‌که در مورد طراحی با افراد دیگری صحبت می‌کنید، ذهن شما همواره در‌حالت "طوفان فکری" قرار می‌گیرد و بیشتر از قبل به طراحی علاقه‌مند خواهید شد. منتظر بخش‌های بعدی با جزییات بیشتر در مورد اصول رابط کاربری باشید.
    • 0 دیدگاه‌ها
    • 118 باز‌دید‌ها

وبلاگ‌های جامعه‌ما

  1. lightSNA.jpg

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

    • ابزارهای مربوط به تحلیل شبکه‌های اجتماعی
    • ابزارهای مربوط به جمع آوری داده از شبکه‌های اجتماعی

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

     

    جهت اطلاعات بیشتر و دانلود نسخه سبک و کامل توزیع SoNebuntu می‌توانید به سایت رسمی توزیع مراجعه نمایید https://sonebuntu.com

    برای ارتباط در مورد پروژه، همکاری، حمایت و یا ارسال نظرات می‌توانید با آدرس پست الکترونیکی زیر در ارتباط باشید sonebuntu@mstajbakhsh.ir

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

    d1c9f6e8-d576-4f6b-805c-54f19bad9d8c.png

  3. الهه انصاری
    آخرین مطلب

    توسط الهه انصاری،

    «بخش دوم»

    در پست ۷ گام برای تبدیل شدن به یک طراح موفق UI/UX به طور خلاصه به اصول طراحی رابطه‌ی کاربری اشاره کردیم. در این بخش قصد داریم در مورد اصل تعادل (Balance) صحبت کنیم.

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

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

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

    Balance.gif.dc3e8506ea620430b94303fb1a5f7b86.gif

    خط سفید در جعبه‌ی 1 و 2 به طور متقارن متعادل است در حالی که در جعبه‌ی 3 و 4 خط به طور نامتقارن متعادل است.

    تقارن

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

    monarchbutterfly.jpg.28679a2e4afcbb2287f362da90482cf6.jpg

    تقارن در طبیعت

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

    برای مثال در وب سایت Mobile Web Book تصویر تلفن همراه این صفحه به دو بخش تقسیم می‌شود که با بلوکهای متن در هر طرف به صورت متعادل در مقابل هم قرار گرفته اند.

    MobileWebBook.png.7a1ff7d722536809bed69cefb32f0e9c.png

    در پوستر فیلم «The Day I Became A Woman»، بلوک متن سفید بزرگ در گوشه‌ی سمت راست بالا در گوشه‌ی پایین سمت چپ هم از لحاظ رنگ و هم از نظر شکل متقارن هستند.

    day_i_became_a_woman_ver1.jpg.75f8ca266b2ddf8dd1e6510e632ef015.jpg

    سایت پر طرفدار Florida Flourish تقریبا میتواند به نصف مرکز برسد که یک حس بسیار قوی از تعادلِ متقارن دارد.

    FloridaFlourish.png.00d2226e3e2e02adaa7702b238fe3d5d.png

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

    havoc.thumb.jpg.f71e5ac32ffc6c72dc0f4a2f9360e63e.jpg

    عدم تقارن

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

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

    MattWebb.png.af0dcfedd4a0ec94fb10d0693d05cc8b.png

    سایت Dann Whitaker دارای چندین عنصر است که به صورت متقارن نیستند، اما از نظر رنگ، بافت و محتوا یکدیگر را متعادل میکنند. 

    MobileWebBook.png.7a1ff7d722536809bed69cefb32f0e9c.png

    عدم تعادل (Off-Balance)

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

    KrugB.gif.1b5ef962291d375c046734a4376942b0.gif

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

  4. ششمین ماراتون برنامه‌نویسی تلفن همراه کشور در تاریخ ۱۵ تا ۱۷ شهریورماه سال جاری در محل دانشگاه صنعتی شریف برگزار می‌شود.

    68be53ba-b660-4673-99ea-58afd932b353-cb.Jpeg

    این رویداد باهدف « شناسایی تیم‌های برنامه‌نویسی برجسته کشور، شناسایی ایده‌های بکر و خلاقانه و ورود این تیم‌ها به بازار کار» برگزار می‌شود . مهلت ثبت‌نام در این رویداد تا  ۳۱ مردادماه ۱۳۹۷ است.

    این رویداد از معتبرترین مسابقات برنامه‌نویسی تلفن همراه کشور است و از سال ۱۳۹۲ تاکنون ۵ دوره این مسابقات در سطح کشور برگزارشده و تیم‌های برنامه‌نویسی متعددی را وارد بازار کار کرده است. در این مسابقات، تیم‌های برنامه‌نویسی ۴۸ ساعت فرصت دارند تا نسخه اولیه یک برنامه تلفن همراه در حوزه‌های مشخص‌شده توسط کمیته ارتباط با صنعت مسابقه را به تیم داوری تحویل دهند. در کل این مدت، تیم‌ها در محل برگزاری رویداد قرنطینه هستند و تیم‌های داوری و مشاور به‌صورت کامل بر نحوه عملکرد تیم‌ها نظارت می‌کنند. در انتها، تیم‌های برتر با نظر داورها به مرحله نهایی راه پیدا می‌کنند و فرصت دارند تا مجددا برنامه خود را برای داوران ارایه دهند.

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

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

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

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

     
  5. کامبیز اسدزاده
    آخرین مطلب

    توسط کامبیز اسدزاده،

    یادگیری ماشین یک استراتژی برای تحقیق و بررسی به صورت خودکار جهت ساختن مُدل‌های توصیفی (نمایشی) می‌باشد.

    deep-learning-quora.png

    یادگیری ماشین چیست؟ چرا یادگیری ماشین مهم است؟

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

    چرا یادگیری ماشین ضروری است؟

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

    چه کسانی این فناوری را مورد استفاده قرار می‌دهند؟

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

    ادارات و بودجه

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

    دولت

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

    خدمات انسانی

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

    نمایشگاه‌ها و معاملات

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

    نفت و گاز

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

    حمل و نقل

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

  6. آیا فایل‌های شما نیاز قابل توجهی به صرفه‌جویی در حافظه‌ی سرور دارند؟ در این مقاله ما به شما خواهیم گفت که چگونه توسط چه الگوریتم‌هایی می‌توانید اطلاعات خود را تا ۹۰٪ فشرده سازی کنید.

    الگوریتم‌های فشرده سازی داده‌ها (دو نوع اصلی فشرده‌سازی داده وجود دارد)

    1. فشرده‌سازی بی‌اتلاف اطلاعات (کاملاً برگشت پذیر)
    2. فشرده‌سازی با اتلاف (بخش کوچکی از داده‌ها از دست می‌روند و بازسازی کامل آنها امکان پذیر نیست)

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

    اجازه دهید بعضی از رایج‌ترین الگوریتم‌های فشرده‌سازی از نوع فشرده‌سازی بی‌اتلاف یا همان (lossless)  را در نظر بگیریم:

    1. تکنیک کُدگذاری هافمَن (Huffman) — این امر مستلزم جایگزینی کد یکسانی برای نمادهایی با کدهای نامحدود است، بسته به تکرار وقوع یک نماد در متن هستند می‌باشد. در کد گذاری استاندارد هافمن، فرض شده‌است که هر نماد در مجموعه‌ای که کدها از آن استخراج می‌شوند، ارزشی یکسان با بقیه دارد: کد کلمه‌ای که طول آن N است ارزشی برابر N خواهد داشت، مهم نیست که چند رقم آن ۱ و چند رقم آن ۰ است. وقتی با این فرض کار می کنیم، کم کردن هزینهٔ کلی پیام، با کم کردن تعداد رقم‌های کل ۲ چیز یکسانند. کد هافمن با ارزش حرفی متفاوت به نحوی عمومیت یافته که این فرض دیگر صحیح نیست: حروف الفبای کدگذاری ممکن است طول‌های غیر همسانی داشته باشند، به خاطر خصوصیت‌های واسطهٔ انتقال. مثالی بر این ادعا، الفبای کد گذاری کد مورس است، که در آن فرستادن یک 'خط تیره' بیشتر از فرستادن یک 'نقطه' طول می‌کشد، پس ارزش خط تیره در زمان انتقال بالاتر است. درست است که هدف هنوز کم کردن میانگین طول وزنی کد است اما دیگر کم کردن تعداد نمادهای بکار برده شده در پیام، به تنهایی کافی نیست. هیچ الگوریتمی شناخته نشده است که این را به همان روش و همان کارآیی کد قراردادی هافمن انجام دهد.
    2. تکنیک رمزگذاری شانون-فانو (Shannon–Fano) — این یک پیشوند است، که به عنوان یک الگوریتم کُد گذاری یکتواخت است. این تکنیک فشرده‌سازی را بر اساس احتمالات نشان می‌دهد. مانند الگوریتم هافمَن، این تکنیک بر روی افزونگی پیام است. در رمزگذاری شانون-فانو، نمادها به ترتیب احتمال از زیاد به کم مرتب شده‌اند و پس از آن به دو مجموعه که احتمال کلشان تا حد ممکن به هم نزدیک است تقسیم می‌شوند. سپس اولین رقم رمز همهٔ نمادها به آن‌ها اختصاص داده می‌شود؛ نمادها در مجموعهٔ اول "۰" و در مجموعهٔ دوم "۱" می‌گیرند. تا زمانی که مجموعه‌ای با بیش از یک عضو باقی بماند، همین فرایند برای تعیین ارقام متوالی رمزهایشان، روی آن‌ها تکرار می‌شود. وقتی یک مجموعه به یک نماد کاهش پیدا کند بدان معناست که رمز آن نماد کامل است و پیشوند هیچ رمزِ نماد دیگری را تشکیل نمی‌دهد. این الگوریتم کدگذاری‌های با طول متغیر نسبتاً کارامدی تولید می‌کند.
    3. تکنیک طول اجرا (Run-length) — این تکنیک به جای مجموعه‌ای از نماد‌های مکرر با کد نماد و تعداد تکرار اشاره داد. یک شکل ساده از فشرده‌سازی داده‌ها است که در آن داده‌های یکسان پشت سر هم به صورت مقادیر تکی و تعداد تکرارشان ذخیره می‌شوند. اگرچه آسان است و می‌توان به راحتی آن را درک کرد اما هنوز کارآیی چندانی ندارد.
    4. تکنیک ال زد دابلیو (Lempel–Ziv–Welch) — الگوریتم‌های فشرده‌سازی این گروه (LZ78، LZ77، و LZW) در ایده‌ی جستجو برای متن مشترک هستند. الگوریتم کاراکترها را متراکم کرده و در واژه نامه به جای کاراکتر، رشته‌های متراکم شده را قرار می‌دهد تا اینکه به رشته‌ای برسد که در واژه نامه قرار دارد.

    الگوریتم ساخت کدهای نابرابر که توسط هافمَن پیشنهاد شده است یکی از مهم‌ترین دستاوردهای تئوری اطلاعات از دیدگاه‌های نظری و کاربردی است. بهتر است کدهای باینری C = {c1, ..., cm} با با طول های {l1,.. ,IM} برای پیام‌های مورد نظر بهینه باشد.

    1. در صورتی که شرط به این گونه باشد pi < pj, then li > lj
    2. طول مقدار در قالب lM = maxm1m از نظر کُد‌نویسی بهینه شده است
    3. دو کُد lM = maxmlm که طول آن است در سمبُل آخر متفاوت خواهد بود.
    4. اگر کد C دارای شرایط مطلوبی باشد، آنگاه C به عنوان کُد X مطلوب خواهد بود.
    • ورودی: اندازه‌ی الفبای M
    • خروجی: درخت دودوییِ کد هافمَن
    • مقداردهی اولیه: تعداد گِره‌ (نود‌های) پردازش شده  M0=M می‌باشد.
    • با اجرای شرط While M0>1 do مراحل بعدی به صورت زیر باید انجام شوند:
      1. یافتن دو گِره (نود) با کمترین احتمال در صف از نودهای پردازش شده
      2. حذف نودها را از صف پردازش
      3. تولید یک نود جدید با دو گرده انتخاب شده به عنوان فرزند. به این ترتیب که، وزن نودها برابر است با مجموع نودهای فرزند.
      4. افزودن گِره (نود) جدید به صف. لینک کردن نودهای جدید با لبه‌های نودهای حذف شده
      5. М0 <– М <– 1.
      6. اگر بیشتر از یک نود در صف وجود داشته باشد، مراحل ۲  تا ۵ را تکرار کنید.
  7. کامبیز اسدزاده
    آخرین مطلب

    توسط کامبیز اسدزاده،

    کامپایلر Cling یک مترجم تعاملی برای سی‌پلاس‌پلاس است، این مترجم تحت بالاترین کتابخانه‌های Clang و LLVM ساخته شده است. در واقع از آن‌جایی که کامپایلر Clang از آخرین ویژگی‌ها و استاندارد‌های زبان سی‌پلاس‌پلاس پشتیبانی می‌کند، Cling اجازه می‌دهد تا توسعه‌دهندگان اسکریپت‌های خود را با استفاده از C و C++ بنویسند. اگر شما به طور مستقیم مترجم را اجرا کنید، یک محیط زنده برای آغاز برنامه نویسی با سی‌پلاس‌پلاس را خواهید داشت که به عنوان بخشی از استاندارد نحو سی و سی‌پلاس‌پلاس به شمار می‌آید. همچنین می‌توانید دیگر دستورات را با نقطه‌ی "." آغاز در اختیار داشته باشید.

    وقتی از مترجم تعاملی استفاده می‌کنید، می‌توانید کد زیر را بنویسید:

    #include <stdio.h>
    printf("hello world\n");

    همانطور که می‌بینید نیازی نیست تا در مورد حوزه‌ی دامنه‌ها نگران باشید؛ کافی است شما تابع مورد نظر خود را صدا بزنید.

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

    #include <stdio.h>                                                                               
                                                                                                            
    void _01_hello_world() {                                                                               
        printf("foo\n");                                                                                   
    }

    یک نسخه‌ی دیگر در قالب سی‌پلاس‌پلاس

    #include <iostream>                                                                               
     
    void _02_hello_world()
    {
        std::cout << "Hello world" << std::endl;
    }

    مثال‌ها کاملاً ساده هستند، اما آن‌ها به شما نشان می‌دهند که چگونه باید شروع کنید.

    در مورد کیوت چطور؟

    #include <QtWidgets/qapplication.h>                                                                    
    #include <QtWidgets/qpushbutton.h>                                                                     
                                                                                                            
    void _03_basic_qt()                                                                                    
    {                                                                                                      
        int argc = 0;                                                                                      
        QApplication app(argc, nullptr);                                                                   
                                                                                                            
        QPushButton button("Hello world");                                                                 
        QObject::connect(&button, &QPushButton::pressed, &app, &QApplication::quit);                       
        button.show();                                                                                     
                                                                                                            
        app.exec();                                                                                        
    }

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

    cling -I/usr/include/x86_64-linux-gnu/qt5 -fPIC -lQt5Widgets 03_basic_qt.cpp

    شما می‌توانید Cling را برای خودتان بر اساس آن چیزی که برای اسکریپت خود نیاز دارید سفارشی سازی کنید. همچنین شما می‌توانید Cling را به عنوان یک کتابخانه در اپلیکیشن‌های خود آورده و از سی‌پلاس‌پلاس به عنوان زبان برنامه‌نویسی استفاده کنید. این پُست در آینده ادامه خواهد داشت. 🙂

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

    intel-z390.jpg

    زمانی که اینتل در ماه اوکتبر (آبان) از پردازنده‌های نسل هشتم خود رونمایی کرد، تنها یک نمونه مادربورد هماهنگ و پشتیبان کننده از آن در دسترس وجود داشت و آن هم مادربورد‌های گران‌ قیمت سری Z370 بود. این مادربورد‌ها در کنار پردازند‌های قدرتمندی همچون Core i7-8700K می‌توانستند پیروز میدان باشند اما در صورتی که شما قصد تهیه یک پردازنده‌ Core i5 و Core i3 را داشتید، خرید این چنین مادربورد گران‌قیمی به هیچ وجه قابل قبول نبود. در ماه آپریل (فروردین) بالاخره اینتل از یک خط تولید کامل از محصولات سری ۳۰۰ رونمایی کرد اما مادربورد‌های H370، B360 و H310 دارای ویژگی‌هایی بودند که در پرچمدار این سری یعنی Z370 وجود نداشت. به عنوان مثال پشتیبانی از پورت‌های USB 3.1 Gen 2 با سرعت 10Gbps و وجود سخت‌افزار ارائه دهنده‌ی ارتباط وایرلس از مواردی بودند که در Z370 به دلیل عرضه‌ی زودهنگام وجود نداشت و باعث می‌شد خرید مادربورد‌های رده میانی و ارزان قیمت از هر لحاظ عاقلانه‌تر محسوب شود.

     

    حال Intel با عرضه‌ی Z390 اعلام کرده است که در این محصول تمامی ویژگی‌های اساسی Z370 به همراه ویژگی‌های عرضه‌ شده در مادربورد‌های ارزان‌تر یکجا عرضه خواهد شد. طبق گفته‌های این شرکت مادربورد‌های Z390 دارای حداقل ۶ پورت USB 3.1 Gen2 خواهند بود، همچنین این مادربورد‌های می‌توانند به صورت پیش‌فرض از سوی تولید کنندگان مادربورد به سخت‌افزار ارائه دهنده‌ی اتصال وایرلس 802.11ac مجهز شوند. علاوه‌ بر این موارد، مادربورد‌های Z390 همانند مادربورد‌های Z370 از اورکلاک پردازنده‌های سری K پشتیبانی می‌کنند. همچنین اعلام شده که این سری از مادربورد‌ها قادر به پشتیبانی از حافظه‌های Intel Optane نیز هستند. 

     

    نکته‌ی جالب این است که احتمالا در نمایشگاه PC-centric که اوایل ماه ژوئن (تیر) برگزار خواهد شد، اینتل جزئیات بیشتری در رابطه با چیپست‌های Z390 منتشر کند، دقیقا زمانی که طبق اعلام خبرگزاری Bluechip شرکت AMD اعلام کرده است که از مادربورد‌های X490 برای پردازنده‌های نسل دوم Ryzen رونمای خواهد کرد.

  9. نرم‌افزار و اپلیکیشن

    • 2
      مطالب
    • 0
      دیدگاه‌ها
    • 652
      باز‌دید‌ها

    مطالب اخیر

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

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

    این نسخه از مرورگر تحت موتور v8 و همچنین به‌روز‌رسانی‌های اخیر تحت C++17 توسعه داده شده است که از بالاترین ویژگی‌های مدرن زبان برنامه نویسی بهره برده و تحت نسخه‌های Clang نیز کامپایل شده است تا به سریعترین کارآیی ممکن در بین مرورگر‌ها برسد.

    فعلاً به‌روزرسانی جدید کروم برای نسخه‌ی Canary منتشر شده است، این نسخه از مرورگر کروم، تنها برای توسعه‌دهندگان در نظر گرفته شده تا پیش از عرضه‌ی عمومی با ویژگی‌های جدید و آخرین دستاوردهای تکنولوژی در حوزه‌ی وب، آشنا شوند؛ اما اگر قصد تجربه‌ی تغییرات جدید را دارید، می‌توانید از طریق این لینک اقدام به دانلود این نسخه کنید. طبق گفته‌ی منبعی معتبر، از ویژگی‌های جدیدِ نسخه‌ی جدید کروم می‌توان به تغییر در شکل زبانه‌ها، حالت تک‌زبانه (Single Tab Mode)، اضافه‌شدنِ آیکون به جعبه‌ی پیشنهاد وب‌سایت‌ها در نوار آدرس، رنگ‌بندی‌ زبانه، زبانه‌های پین‌شده و شاخص‌های هشدار اشاره کرد.

    google-canry-01.jpg

    به‌روزرسانی جدید کروم اکنون به‌صورت پیش‌فرض در دسترس کاربران ویندوز، لینوکس و کروم‌او‌اس قرار دارد؛ اما اگر از رایانه‌ی مک استفاده می‌کنید، برای مشاهده این تغییرات، باید دو دستور زیر را به‌ترتیب در نوار آدرس وارد کنید و سپس کلید اینتر را فشار دهید.

    chrome://flags/#top-chrome-md
    chrome://flags/#views-browser-windows

     

×