Pull to refresh
0
0
Send message

Полезные материалы для мобильного разработчика #48 (7-13 апреля)

Reading time3 min
Views19K
Несколько отличных историй о разработке приложений из «первых рук», юридический ликбез для инди-разработчиков, гранты от Microsoft, рассказ о традиционном боковом меню, которое «унесло» половину пользователей – все это и многое другое в еженедельной подборке новостей из мира мобильной разработки.

Читать дальше →
Total votes 57: ↑52 and ↓5+47
Comments4

Гексапод Б.У.Н.Т

Reading time3 min
Views81K
Насмотревшись на youtube видео про гексаподов (особенно впечатлил PhantomX), решил попробовать свои силы в роботостроении. Забегая вперёд — всё получилось и вот результат:



Всех интересующихся прошу под кат, там вкратце описана история создания и трудности с которыми пришлось столкнуться, а так же видео работы гексапода. Ни каких графиков, схем и кода, только лирика.
Читать дальше →
Total votes 77: ↑75 and ↓2+73
Comments35

10 советов по использованию микроконтроллеров AVR в системах с двигателями

Reading time6 min
Views66K
Среди людей, увлекающихся электроникой, одним из самых популярных этюдов является изготовление гусеничного робота. Этой теме посвящена масса статей, в том числе и на Хабре. Обилие руководств, схем и статей привело меня к мысли, что это будет не так уж трудно, и мне тоже захотелось самому изготовить такую прекрасную самоделку. Можно сказать, что мне не повезло — в процессе работы я столкнулся с массой проблем, связанных с наличием двигателей. В конце концов все эти проблемы мне удалось решить, но это заняло очень много времени. В данной статье я предлагаю несколько советов по проектированию схем, содержащих двигатели, на базе микроконтроллеров AVR. В практической полезности всех этих советов мне пришлось убедиться на собственном опыте. Многие советы, как мне кажется, подойдут и для других микроконтроллеров.

Читать дальше →
Total votes 68: ↑63 and ↓5+58
Comments23

Хороший дизайн интерфейсов. Часть 3

Reading time5 min
Views76K
Это третья часть переведённых заметок «Good User Interface». Первые 16 частей уже ранее перевели наши коллеги из ADV на Хабре, а вторые 11 перевели мы.

Идея 28


Используйте варианты по-умолчанию, не заставляя людей выбирать


Выбор по-умолчанию или самозаполняющиеся поля с обучением сокращают объем работы, которую должен проделать пользователь. Это стандартная техника, помогающая людям продвигаться по формам быстрее, учитывая, что их время ограничено. Одна из наиболее отвратительных вещей с точки зрения дизайна интерфейсов и конверсии посетителей в клиентов — это снова и снова просить пользователей предоставить данные, которые они уже указали ранее. Старайтесь делать поля, которые будут сами заполняться самыми популярными или уже известными значениями, а не просите людей их каждый раз заполнять. Чем меньше работы — тем лучше.

Остальные 10 заметок далее
Total votes 88: ↑81 and ↓7+74
Comments36

Структуры данных в картинках. HashMap

Reading time6 min
Views1.2M
Приветствую вас, хабрачитатели!

Продолжаю попытки визуализировать структуры данных в Java. В предыдущих сериях мы уже ознакомились с ArrayList и LinkedList, сегодня же рассмотрим HashMap.



HashMap — основан на хэш-таблицах, реализует интерфейс Map (что подразумевает хранение данных в виде пар ключ/значение). Ключи и значения могут быть любых типов, в том числе и null. Данная реализация не дает гарантий относительно порядка элементов с течением времени. Разрешение коллизий осуществляется с помощью метода цепочек.

А почему бы и нет?
Total votes 81: ↑75 and ↓6+69
Comments42

Синхронизация в Android приложениях. Часть первая

Reading time6 min
Views63K
image
На дворе 2014 год, доля Android JellyBean перевалила за 60%, появились новые тренды в дизайне. В общем, случилось много всего интересного. Но синхронизация данных с сервером осталось неотъемлемой частью большинства приложений. Существует много способов реализации ее в приложении. Android предоставляет нам SyncAdapter Framework, который позволяет автоматизировать и координировать этот процесс и предоставляет множество плюшек в довесок.

Account


Для начала нам потребуется собственный аккаунт на устройстве. Сначала, я думаю, стоит ответить на вопрос, зачем? Действительно, зачем?

Краткое резюме преимуществ:
  • Поддержка фоновых механизмов вроде SyncAdapter
  • Стандартизация способа авторизации
  • Поддержка различных токенов (прав доступа)
  • Шаринг аккаунта с разграничением привилегий (возможность использовать один аккаунт для различных приложений, как это делает Google)

Шаги для получения плюшек:
1) Создание Authenticator'а
2) Создание Activity для логина
3) Создание сервиса для общения с нашим аккаунтом

Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments12

Образовательные и обучающие ресурсы для веб-разработчиков и веб-дизайнеров

Reading time15 min
Views143K
Данным постом мы открываем рубрику «Переводы» в нашем блоге. Почему мы решили открыть такую рубрику? Дело в том, что сотни специалистов, работающих в Mail.Ru Group, для решения стоящих перед ними задач ежедневно прочитывают множество интересных статей и постов на форумах. Некоторые из них кажутся нам интересными, и мы считаем своим долгом перевести их на русский и поделиться этими ценными знаниями с Хабражителями.

Пользуясь случаем, хотим сообщить новость: сегодня состоялось открытие Технопарка — нашего образовательного проекта, о котором мы уже не раз писали на Хабре (например, тут, тут и тут). Теперь у технопарковцев есть свое собственное помещение. Изначально Технопарк задуман как место, где талантливые студенты МГТУ им. Баумана могут получить дополнительное образование в сфере веб-разработки, дизайна и программирования, а также окунуться в работу над реальными проектами высокой сложности. В общем, у Технопарка сегодня знаменательный день, и поэтому первый выпуск в рубрике «Переводы» мы решили посвятить образовательным ресурсам для веб-разработчиков и веб-дизайнеров. Ведь пока такие Технопарки не распространились по всей стране, разработчикам зачастую приходится заниматься исключительно самообразованием.

Читать дальше →
Total votes 91: ↑83 and ↓8+75
Comments18

Как сделать что-либо, когда не хочется — а надо

Reading time4 min
Views203K
Ужасно не люблю выражение «заставить себя». По моему убеждению, нельзя заставить себя — с собой можно только договориться. Ну, или обмануть — но это не лучший выход.
Итак, как договориться с собой сделать что-то, что совершенно явно не хочется делать? И настолько же явно необходимо.
Некоторое время назад я прочёл в блоге психолога Хайди Халворсон о трёх простых причинах, которые мешают нам что-то делать, и таких же (ну, почти) простых решениях этих проблем. И поскольку время показало, что решения (по крайней мере, мне) подходят — спешу поделиться ими.

Итак, почему же дедлайн близится, а решения всё нет?
Читать дальше →
Total votes 71: ↑53 and ↓18+35
Comments27

Пять способов выгореть для программиста

Reading time4 min
Views113K
imageОт переводчика
Выгорание в жизни программиста может случиться по самым разнообразным причинам; если задаться целью перечислить все пути, которыми оно подкрадывается к нам, то одно лишь это перечисление займет немало времени. Это еще один повод, по которому не стоит недооценивать процесс выгорания — иначе однажды вам придется искать дорогу обратно, и стоить это может очень дорого. Последняя строка вовсе не голословна — мне самому однажды смогла помочь лишь любовь к коду — когда уже, казалось бы, все осточертело и ничего не хотелось, чтение подвернувшегося Макконнелла навеяло воспоминания о том, как же когда-то мне нравилось программировать. И сегодня мне нравится делать это снова.
А теперь — слово автору.

Я отошел от своего выгорания только недавно — несмотря на то, что случилось оно несколько лет назад. Да, мне было непросто… очень непросто. Когда я думаю о произошедшем, на ум приходит немало причин тому, что случилось со мной — но самое интересное заключается в том, что каждой из них я никогда раньше не придавал значения. Хотите повторить мой путь и выгореть? Пожалуйста, у меня готов целый список, как следует поступать в таком случае:

1. Думать о проекте и только о нем


Признайтесь себе: бизнес хочет, чтобы вы создавали наилучший продукт «для наших клиентов». Вы откладываете в долгий ящик какой-либо функционал из-за того, что не успеваете к дедлайну. Вы планируете проект и анализируете его со всех сторон для того, чтобы разбить на несколько «перевариваемых» частей, которые затем должны быть воплощены одним из кодеров (в роли обезьянки, или code monkey, кстати говоря, можете быть и вы один). Вы создаете рабочий прототип, затем получаете обратную связь и делаете еще одну итерацию. И все это — без единой мысли о себе любимом.
Читать дальше →
Total votes 170: ↑150 and ↓20+130
Comments149

Через звезды к терниям, или Как мечта о работе гейм-дизайнером превращается в суровые рабочие будни

Reading time6 min
Views38K
Привет, это снова я – Мария Наместникова, гейм-дизайнер проекта Skyforge в Allods Team. Сегодня я решила красочно описать, чем на рабочем месте занимаются гейм-дизайнеры в крупных студиях.

На просторах интернета можно найти множество статей на тему того, как стать гейм-дизайнером. Для кого их пишут? Для игроков, чьей мечтой с самого нежного возраста был и остается сказочный мир геймдева, где можно воплотить в реальность свои самые смелые фантазии. Это не одна из таких статей. Эта статья немного о другом. Она о том, что на самом деле происходит с отчаянным мечтателем, когда он становится полноправным демиургом игровой вселенной.

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


Читать дальше →
Total votes 73: ↑51 and ↓22+29
Comments26

Сетевое программирование для разработчиков игр. Часть 2: прием и передача пакетов данных

Reading time9 min
Views106K
От переводчика: Это перевод второй статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.
Первая статья — http://habrahabr.ru/post/209144/



Прием и передача пакетов данных


Введение

Привет, меня зовут Гленн Фидлер и я приветствую вас в своей второй статье из цикла “Сетевое программирование для разработчиков игр”.


В предыдущей статье мы обсудили различные способы передачи данных между компьютерами по сети, и в конце решили использовать протокол UDP, а не TCP. UDP мы решили использовать для того, чтобы иметь возможность пересылать данные без задержек, связанных с ожиданием повторной пересылки пакетов.

А сейчас я собираюсь рассказать вам, как на практике использовать UDP для отправки и приема пакетов.

BSD сокеты

В большинстве современных ОС имеется какая-нибудь реализация сокетов, основанная на BSD сокетах (сокетах Беркли).

Сокеты BSD оперируют простыми функциями, такими, как “socket”, “bind”, “sendto” и “recvfrom”. Конечно, вы можете обращаться к этим функциями напрямую, но в таком случае ваш код будет зависим от платформы, так как их реализации в разных ОС могут немного отличаться.

Поэтому, хоть я далее и приведу первый простой пример взаимодействия с BSD сокетами, в дальнейшем мы не будем использовать их напрямую. Вместо этого, после освоения базового функционала, мы напишем несколько классов, которые абстрагируют всю работу с сокетами, чтобы в дальнейшем наш код был платформонезависимым.
Читать дальше →
Total votes 42: ↑40 and ↓2+38
Comments20

Сетевое программирование для разработчиков игр. Часть 1: UDP vs. TCP

Reading time9 min
Views173K
От переводчика: Это перевод первой статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.


Привет, меня зовут Гленн Фидлер и я приветствую вас в первой статье из моей онлайн-книги “Сетевое программирование для разрабочиков игр”.

image

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

Вы, скорее всего, уже что-нибудь слышали о сокетах, и, возможно, знаете, что они делятся на два основных типа — TCP и UDP. Первое, что нужно решить при разработке многопользовательской игры — это какой тип сокетов использовать — TCP, UDP, или оба?
Читать дальше →
Total votes 86: ↑75 and ↓11+64
Comments53

Проектирование графического интерфейса пользователя

Reading time6 min
Views182K


Введение


В современном мире миллиарды вычислительных устройств. Еще больше программ для них. И у каждой свой интерфейс, являющийся «рычагами» взаимодействия между пользователем и машинным кодом. Не удивительно, что чем лучше интерфейс, тем эффективнее взаимодействие.

Однако далеко не все разработчики и даже дизайнеры, задумываются о создании удобного и понятного графического интерфейса пользователя.

Для себя я начал с постановки вопросов: общие принципы, какие элементы интерфейса(ЭИ) создать, какой у них должен быть дизайн, где их правильно размещать и как они должны себя вести.
Ниже я постараюсь ответить на эти вопросы.
Читать дальше →
Total votes 66: ↑55 and ↓11+44
Comments90

Девушкам: пять причин выйти замуж за айтишника и пять причин как следует подумать перед этим

Reading time6 min
Views73K

Disclaimer: все описанное ниже — плод личного опыта, а так же результаты наблюдения за друзьями и знакомыми. Ну и не принимайте все чересчур серьезно.

Несмотря на календарный понедельник, близкий новый год вселяет пятничное настроение, которое, в свою очередь, побуждает поговорить о чем-нибудь жизненном. Этот пост адресован девушкам, которым довелось встречаться или даже выйти замуж за айтишника, и рассказывает кое-что о сильных и слабых сторонах ваших избранцев. Кроме того, думаю, не помешает его прочесть и парням: быть может, он поможет понять причину негодования вашей любимой.

Пять причин выйти замуж за айтишника


1. Надежность и ответственность

Большинство моих знакомых коллег обладают высоким чувством ответственности — оно, видимо, волей-неволей вырабатывается в ходе профессиональной деятельности. Женясь на вас, айтишник возьмет на себя ответственность за ваш комфорт и достаток, и, будьте уверены, сделает все, чтобы их обеспечить. Здесь же стоит упомянуть и о способности фокусироваться на цели и достигать ее: обычно тихий и неподвижно медитирующий у монитора, ваш избранник может проявить бешенную активность и за невероятно короткие сроки свернуть горы. К примеру, если в какой-то момент он поймет, что негоже второй месяц сидеть в наполовину ободранном жилище, к концу следующей недели вы можете обнаружить себя в чистенькой и отремонтированной квартире. Так же на личном опыте проверенно, что один программист может за два-три часа привести в идеальный порядок двухкомнатную квартиру, которая общими усилиями замусоривалась в течение предыдущего месяца.

2. Интересный собеседник

Вопреки расхожему стереотипу, у большинства айтишников есть увлечение за рамками их основной специальности, и почти все из их них могут на эту тему много, понятно и интересно рассказывать. Повинуясь привычке, полученной в основной профессии, ваш парень вникает во все тонкости своего хобби, и если вам удастся нащупать эту тему, вы можете узнать много нового как о теме, так и о нем. Среди моих коллег есть много музыкантов, кое-кто здорово рисует, третьи увлекаются боевыми искусствами (и не только их теоретической стороной), четвертые — заядлые коллекционеры. Кстати, геймеров среди них почти нет.

Если так получится, что у вас хобби общее — вам можно будет только позавидовать. А если же нет — в тот момент, когда ваш любимый поймет, чем увлекаетесь вы, он наверняка предпримет небольшое исследование, просто чтобы иметь возможность по-настоящему оценить ваши достижения, ну и разговор поддержать. Впрочем, увы, новейшие веяния моды и новый альбом поп-звезды он вряд ли будет обсуждать…
Читать дальше →
Total votes 290: ↑227 and ↓63+164
Comments287

Пусть компьютер сам принимает решение или пишем ИИ для игры вместе

Reading time7 min
Views63K
Вы когда-нибудь задумывались о том, насколько просто написать свой искусственный интеллект, который сам будет принимать решения в игре? А ведь это действительно просто. Пусть для начала он принимает случайные решение, но позже вы можете его воспитать, научить анализировать ситуацию, и тогда он станет принимать осознанные решения. В этой статье я расскажу, как я писал своего бота, а также покажу, как вы за несколько минут можете написать своего. Наш компьютер будет играть в клон игры Трон, а точнее в ту часть, где нужно на мотоцикле победить врагов.

image
Под катом gif-файлов мегабайт на 10.
Начать побеждать
Total votes 70: ↑68 and ↓2+66
Comments36

Dive into Litecoin, или как начать майнить scrypt валюту

Reading time7 min
Views137K
image

Предисловие

Ни для кого уже не секрет, что криптовалюта набирает силу, становясь все ближе к мировому признанию. В свое время я занимался майнингом Bitcoin на видеокартах, но вот уже больше года как я остался «не при делах» с появлением ASIC майнеров. Я всегда был против ASIC — ферм, а потому решил для себя не присоединятся к их владельцам. Пару слов о причинах — ASIC фермы дорого стоят, мало распространены и весьма специфичны, это очень сильно увеличивает порог вхождения в майнинг и в криптовалюту как таковую, а выборочное распределение этих устройств способствует падению энтропии. Кому-то эти причины могут показаться недостаточно весомыми, но для меня они стали решающими. Не так давно я понял, что один из форков Bitcoin начинает набирать силу, и он защищен от ASIC-ферм, что вызвало мой серьезный интерес. Тем не менее большинство информации в интернете устарело, и мне пришлось пройти тернистым путем чтобы заставить свою первую ферму работать, потому я решил поделится с вами опытом.
Читать дальше →
Total votes 100: ↑66 and ↓34+32
Comments144

Применение процедурных генераторов в создании контента для real-time 3D приложений: Часть 1. Oil Rush

Reading time18 min
Views108K
Игра Oil Rush


В данной статье, состоящей из двух частей, речь пойдёт об использовании возможностей процедурных генераторов при создании контента для компьютерной игры Oil Rush и бенчмарка Valley (выйдет в феврале), разработанных на нашем собственном движке Unigine.
Читать дальше →
Total votes 239: ↑238 and ↓1+237
Comments41

Применение процедурных генераторов в создании контента для real-time 3D приложений: Часть 2. Valley Benchmark

Reading time13 min
Views76K
Бенчмарк Valley


Это вторая и заключительная часть статьи, посвященной процедурным методам производства контента для 3D приложений. Первую часть Вы можете найти здесь.

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

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

В этот раз речь пойдёт о том, какими средствами и приёмами мы пользовались при создании бенчмарка Valley, чтобы в максимально сжатые сроки произвести большое количество фотореалистичного контента.
Читать дальше →
Total votes 133: ↑133 and ↓0+133
Comments53

OpenCourseWare

Reading time4 min
Views31K
Недавно нам на глаза попался список ссылок на бесплатные онлайн-курсы от различных учебных заведений США. Список показался интересным, его запокетили, чтобы когда-нибудь посмотреть, что эти курсы из себя представляют. Вот, наконец-то, руки дошли.

Я просмотрела каждую линку из этого самого списка, просмотрела все курсы и собрала информацию, которая станет вам полезной, когда вы захотите повысить свой уровень знаний в той или иной области.

Интересный факт: Оказывается существует целое движение — OpenCourseWare, которое началось в 1999 году в Германии, когда один из университетов разместил видео своих лекций онлайн. Вскоре и други университеты подхватили инциативу и сейчас OpenCourseWare — это достаточно популярная штука, которая представляет из себя курсы и бесплатные учебные материалы, созданные в университетах и распространяющиеся через интернет.
Как правило ресурсы OCW не требуют регистрации и не предлагают никаких сертификатов о прохождении. Все обучение — в качестве self-improvement.

Под катом список бесплатных онлайн-курсов и уроков от лучших учебных заведений
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments5

Information

Rating
Does not participate
Location
Мытищи, Москва и Московская обл., Россия
Date of birth
Registered
Activity