Pull to refresh
1
0
Send message

Лекции Технопарка. 1 семестр. Web-технологии

Reading time4 min
Views174K
Сегодня этим постом мы открываем цикл еженедельных публикаций учебных материалов Технопарка. Если кто-то ещё не знает, Технопарк — это совместный образовательный проект Mail.Ru Group и МГТУ им. Н. Э. Баумана. На данный момент здесь проходит обучение по 20 IT-дисциплинам 91 наиболее талантливый студент. Технопарк существует с 18 ноября 2011 года, а первые счастливчики приступили к занятиям в декабре 2011 года.

Обучение в Технопарке совершенно бесплатное, оно проходит после занятий в университете. Стать участниками проекта могут студенты 3-5 курсов. Хотя для 2 и 6 курсов можем сделать исключение. Обучение длится 2 года, оно разбито на 4 семестра, в каждом из которых проходят по 3-4 предмета. Первый блок первого семестра посвящён всему, что связано с web-технологиями, от истории возникновения до программирования и безопасности web-приложений.

Лекция 1. Введение


На вводном занятии вы познакомитесь с краткой историей развития интернета, основными трендами в развитии web-приложений, облачных сервисов и мобильных приложений. Также на лекции разобрано устройство и работа несложного web-приложения, обсуждены такие фундаментальные понятия, как система адресации в интернете, домены, HTML-страницы и протокол HTTP. Напоследок кратко рассказано о CGI-скриптах, их назначении и особенностях работы.


Читать дальше →

Делаем игру 2048 на AngularJS

Reading time32 min
Views50K
Наверное, вам, как и многим коллегам, пришлась по вкусу игра «2048», в которой необходимо достичь плитки с числом 2048, собирая вместе плитки с одинаковыми числами.

В этой статье мы вместе построим клон этой игры при помощи фреймворка AngularJS. По ссылке можно посмотреть демонстрацию конечного результата.
Читать дальше →

Гибкое управление событиями в jQuery — плагин jquery-behavior

Reading time8 min
Views20K
Привет, Хабр!

Меня зовут Вячеслав Гримальский, я работаю над конструктором посадочных страниц, в котором страница собирается перетаскиванием блоков.

Я расскажу об инструменте для работы с событиями, который изначально являлся частью конструктора, но затем был вынесен в отдельный плагин для jQuery — jquery-behavior.

Плагин использует функционал jQuery, дополняя его следующими возможностями:

  • Работа с раздельными группами обработчиков событий. Для этого используются контроллеры событий.
  • Можно отключить все обработчики событий контроллера разом, не перечисляя их.
  • Слежение за срабатываниями обработчиков событий.
  • Можно узнать точное количество вызовов каждого из них.
  • Можно приостанавливать работу отдельных обработчиков событий, или всего контроллера разом.
  • Возможность получить полный перечень обработчиков событий конкретного элемента, обработчиков событий с определенным пространством имен или просто всех обработчиков событий контроллера.
Читать дальше →

Полная кастомизация select без использования JS

Reading time4 min
Views84K
imageСколько я не мучил поисковик, а решения этого вопроса так и не нашлось. Конечно, всегда можно использовать JS и это нормально, но иногда заказчик душа просит изысков.
Читать дальше →

02 Ссылки для UX-специалистов

Reading time3 min
Views33K
В этой подборке продолжаю делиться информационными ресурсами, где можно почерпать новые знания, отследить новые методы, техники и аналитку, а также улучшить свои навыки в области UX. В отдельном абзаце собрал некоторые материалы по UX в области носимых устройств.


Читать дальше →

Пишем быстрый и экономный код на JavaScript

Reading time16 min
Views69K
Такой движок JS, как V8 (Chrome, Node) от Google, заточен для быстрого исполнения больших приложений. Если вы во время разработки заботитесь об эффективном использовании памяти и быстродействии, вам необходимо знать кое-что о процессах, проходящих в движке JS браузера.

Что бы там ни было — V8, SpiderMonkey (Firefox), Carakan (Opera), Chakra (IE) или что-то ещё, знание внутренних процессов поможет вам оптимизировать работу ваших приложений. Но не призываю вас оптимизировать движок для одного браузера или движка – не делайте так.

Задайте себе вопрос:
— можно ли что-то в моём коде сделать более эффективным?
— какую оптимизацию проводят популярные движки JS?
— что движок не может компенсировать, и может ли сборка мусора подчистить всё так, как я от неё ожидаю?



Есть много ловушек, связанных с эффективным использованием памяти и быстродействием, и в статье мы изучим некоторые подходы, которые хорошо показали себя в тестах.
Читать дальше →

Микро-конференция UX-Среда №21 в рамках User Experience Russia 2014

Reading time5 min
Views4.9K
23 октября в рамках конференции User Experience Russia 2014 в офисе Mail.Ru Group прошла двадцать первая микро-конференция UX-Среда. В течение дня специалисты по проектированию и дизайну интерфейсов из разных подразделений компании, а также приглашенные гости выступили с серией презентаций о своем опыте работы и поучаствовали в его обсуждении. В этот раз у нас были Антон Гугля (LinguaLeo), Дмитрий Щеглов (Сбербанк), Ярослав Шуваев (БВШД), Анна Михина и Давид Исаханян (Банк Тинькофф), Ксения Стернина (Mail.Ru Group), Павел Скрипкин (Mail.Ru Group), Юлия Мархадаева (Nimax) и мой рассказ.

Микро-конференция UX-Среда №21 в рамках User Experience Russia 2014
Читать дальше →

Кевин Хейл: тонкости в работе с пользовательским опытом (часть 1)

Reading time13 min
Views18K


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →

Meteor. Как же запилить этот ваш iron:router для CRUD?

Reading time2 min
Views7K
Элементарно! Но если бы мне показали подобную инструкцию раньше…

Задание


По запросу /profile без ключа отдаю шаблон login, если пользователь «не того», иначе отдаю шаблон на добавление newProfile или редактирование profile (editMode) своего профиля. А по запросу /profile/key отдаю шаблон на просмотр profile (not editMode) любого профиля; при этом userId не светится, и неверные ключи отвергаются на invalidProfile.

[исходник]
а дальше расскажу

Приглашаем потестировать обновленный дизайн Альфа-Мобайла

Reading time1 min
Views9.3K
Всем привет.

Мы в очередной раз обновляем Альфа-Мобайл. В этот раз мы решили встретиться с несколькими пользователями до фактического обновления, показать вам макеты и обсудить (нравится/не нравится, что круто сейчас, что хотелось бы увидеть и так далее).

Всех желающих пригласить не сможем, поэтому точно ограничиваемся только постоянными пользователями.

Зовем в наш офис Альфа-Лаборатории.

Желающие принять участие — пожалуйста, регистрируйтесь на специальной странице.

Спасибо!

Работа с клиентом или «почему вы не сделали то, что мы просили?»

Reading time5 min
Views34K

Предисловие


Нельзя сказать, что я очень прямо вообще такой матёрый веб-девелопер, но за свой очень насыщенный год в качестве профессионального разработчика прошёл сквозь огонь, лёд, пламя, медные трубы, и код в базе данных в исполнении индусов. Особенно большие впечатления от индусов. Но всё это меркнет по сравнению с заказчиками. Как выяснилось, самое сложное в разработке — это угодить всем тем людям, которые нанимают тебя и даже платят тебе деньги. Ты можешь до невозможности гордиться своим детищем, но ему то всё равно, чем вы там гордитесь. И за это время я узнал множество лайфхаков и тонкостей. До определенного момента времени думал, что все крутые парни знают все эти фичи, но в последнее время всё чаще убеждаюсь, что некоторые вещи всё же следует донести до масс.
Читать дальше →

Мобильный интерфейс для одной руки

Reading time4 min
Views47K
В своей книге Designing Mobile Interfaces (2011) дизайнер Стивен Хубер ввел понятие The Thumb Zone («зона большого пальца») — область экрана, наиболее удобная при использовании телефона одной рукой. С года издания книги средний размер смартфона заметно увеличился, и «мертвая зона» — область, которую сложно достать пальцем одной руки, — также стала больше.

«Зона большого пальца» для 5–4,7-дюймового экрана, если держать телефон в левой и в правой руке, соответственно. Изображение основано на публикации Скотта Хэрффа.
Изображение. «Зона большого пальца» для 5–4,7-дюймового экрана, если держать телефон в левой и в правой руке, соответственно. Изображение основано на публикации Скотта Хэрффа.

Читать дальше →

Практический семинар Intel RealSense Hands-On Lab. От идеи до проекта — за 6 часов

Reading time2 min
Views7.2K


Вам тоже, как и актеру Джиму Парсонсу, хочется узнать, что делается за дверями секретных лабораторий Intel RealSense? Уже буквально через неделю у вас будет возможность не только узнать это, но и изучить эти технологии на собственном опыте.

Компания Intel приглашает на практический однодневный семинар Intel RealSense Hands-On Lab, который состоится 23 января в Москве.
Читать дальше →

Как мы научили Почту Mail.Ru склеивать письма в треды

Reading time8 min
Views30K
Треды, или цепочки писем, всегда были одной из самых желаемых фич в Почте Mail.Ru, при условии, что опрос «Какого функционала вам не хватает?» проводился среди продвинутой аудитории (например, среди программистов или хабраюзеров). Вторая по популярности фича среди гиков — это, пожалуй, двухфакторная аутентификация, но о ней в отдельном посте.

Однако все наши юзабилити-тестирования показывали, что для менее продвинутой аудитории треды — фича довольно сложная и не всегда удобная. Многие приходили в ужас, «потеряв» свои письма во Входящих, не могли понять, как ответить на конкретное сообщение в цепочке, и многое другое.

Тем не менее, нам самим (команде Почты Mail.Ru), как людям, относящимся к первой группе (гики, любители продуктивити и программисты), идея тредов была близка и понятна. Поэтому мы решили пойти навстречу пожеланиям продвинутого сообщества и реализовать треды в опциональном режиме (включить их можно в меню «Вид» в правом верхнем углу над списком писем).



Однако легко решить, но не так легко сделать. На этапе продумывания логики обнаружилась масса нюансов. Хотя треды уже были реализованы в других почтовых службах, нам все равно пришлось разрабатывать собственный алгоритм. Во-первых, какие-то чужие решения нам казались ошибочными, и мы решили их исправить, во-вторых, логика работы некоторого базового функционала нашей почты отличается от работы похожего функционала у других, поэтому просто «перенять опыт» as is невозможно.

В этом посте мы хотим рассказать о том, какие трудности нас ждали и как нам удалось их преодолеть.
Читать дальше →

Список YouTube-каналов для обучения веб-разработке

Reading time2 min
Views218K
image


Привет, хабражители!

Представляю вам список YouTube-каналов для обучения веб-разработке. Список доступен на гитхабе, там он будет пополняться и редактироваться. В планах — создание отдельной странички для фильтрации каналов по тегам и рубрикам.

Также хочу попросить вас о небольшой услуге: если вы знаете канал, не вошедший в список — опубликуйте ссылку на него в комментариях или отправьте pull request. Сообщество будет благодарно вам.

Под катом — текущая версия списка.
Читать дальше →

Все способы перебора массива в JavaScript

Reading time7 min
Views552K

Содержание:


  • I. Перебор настоящих массивов
    1. Метод forEach и родственные методы
    2. Цикл for
    3. Правильное использование цикла for...in
    4. Цикл for...of (неявное использование итератора)
    5. Явное использование итератора

  • II. Перебор массивоподобных объектов
    1. Использование способов перебора настоящих массивов
    2. Преобразование в настоящий массив
    3. Замечание по объектам среды исполнения


Читать дальше →

Основы масштабирования

Reading time10 min
Views64K
Прочитав в этом блоге о балансировке на стороне клиента, решил опубликовать свою статью, в которой описаны основные принципы масштабирования для web-проектов. Надеюсь, хабралюдям будет интересно почитать.

Основы масштабирования



Масштабируемость — способность устройства увеличивать свои
возможности
путем наращивания числа функциональных блоков,
выполняющих одни и
те же задачи.
Глоссарий.ru

Обычно о масштабировании начинают думать тогда, когда один
сервер не справляется с возложенной на него работой. С чем именно он не
справляется? Работа любого web-сервера по большому счету сводится к основному
занятию компьютеров — обработке данных. Ответ на HTTP (или любой другой) запрос
подразумевает проведение некоторых операций над некими данными. Соответственно,
у нас есть две основные сущности — это данные (характеризуемые своим объемом) и
вычисления (характеризуемые сложностью). Сервер может не справляться со своей
работой по причине большого объема данных (они могут физически не помещаться на
сервере), либо по причине большой вычислительной нагрузки. Речь здесь идет,
конечно, о суммарной нагрузке — сложность обработки одного запроса может быть
невелика, но большое их количество может «завалить» сервер.

Читать дальше →

iPhone разработка: Интегрируем In-App Purchases

Reading time8 min
Views88K
In-App Purchases — это простой и удобный механизм для организации продаж своих приложений или дополнительных фич непосредственно из своего приложения. In-App Purchases легко встраивается и открывает для Вас новый канал продаж. Взаимодействие с App Store осуществляется с помощью StoreKit.framework, который поставляется вместе с SDK, начиная с версии 3.0.
Читать дальше →

Налить пива силой мысли

Reading time2 min
Views43K


Это «НейроКран»: при помощи нейроинтерфейса ты силой мысли управляешь процессом розлива напитков.

Чтобы получить напиток – надо сконцентрировать свое внимание. При превышении концентрации выше запрограммированного уровня – кран открывается.



А это сейф, открываемый силой мысли в квесте в реальности «Киберпанк». Здесь четыре задвижки, каждая со своим уровнем сложности. Первую можно открыть, почти не концентрируясь, а последняя — это уже вызов для навыка сосредоточения.
Читать дальше →

Мобильный банк «Открытие»: разработка от обратного

Reading time11 min
Views35K
«Сначала был придуман удобный механизм регистрации, а потом — средства его защиты»
Кейс по разработке мобильного банка для iOS-смартфонов




Читать дальше →

Information

Rating
Does not participate
Registered
Activity