Как стать автором
Обновить
3
0

Пользователь

Отправить сообщение

Лекции Технопарка. 3 семестр. Проектирование высоконагруженных систем

Время на прочтение3 мин
Количество просмотров73K


И снова в эфире наша постоянная рубрика «Лекции Технопарка». На этот раз предлагаем вам ознакомиться с материалами курса «Проектирование высоконагруженных систем». Цель курса — получение студентами навыков проектирования высокоэффективных программных систем.
Читать дальше →
Всего голосов 56: ↑53 и ↓3+50
Комментарии5

Indoor «GPS» с точностью +-2см

Время на прочтение5 мин
Количество просмотров60K
День добрый, коллеги!

Все началось с того, что мы, как и многие, тоже делали роботов — автономных, мобильных, с кучей сенсоров и огромным потенциалом. Вообще-то, мы все еще продолжаем их делать. Но в очередной раз столкнувшись с одной из ключевых задач роботов — определением своего положения в пространстве и навигацией в помещении — мы решили сфокусироваться на решении этой задачи. Вот, что из этого получилось.
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии65

Защита от прослушивания разговоров — строим безопасную SIP телефонию своими руками

Время на прочтение7 мин
Количество просмотров75K
image
Привет, Хабр!
В этот раз хочу рассказать о технологиях шифрования VoIP звонков, о том какую защиту дают разные подходы и как организовать наиболее защищенную от прослушивания голосовую связь с технологическими гарантиями безопасности.
В статье я постараюсь доступно изложить особенности таких технологий как SIP\TLS, SRTP и ZRTP. И продемонстрирую конкретные схемы использования на примере нашего сервиса ppbbxx.com

Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии9

Программа курса и материалы по Scala

Время на прочтение14 мин
Количество просмотров48K
Добрый день.

Меня зовут Головач Иван, я практикующий Java Tech Lead с опытом в программировании 10+ лет (Java EE, J2ME, C, C++, M-language, Delphi), который перешел на Scala.

Я подготовил и прочитал как обычные курсы по программированию (Java Core + Junior Java Developer), так и спецкурсы (Multicore Programming for JVM (раз и два)).

В данный момент я стартую спецкурс по Scala и в этом топике хочу поделиться материалами, которые я нашел наиболее интересными/информативными (курс готовился более года).
Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии32

Вторая версия перчатки для определения положения руки

Время на прочтение13 мин
Количество просмотров56K
Прошлая статья была неудачной и не содержательной. Изначально я планировал прикрепить платы и код для микроконтроллера, чтобы собрать ее мог любой желающий. Но там было столько костылей, что стало стыдно это прикреплять. Теперь же я опишу вторую перчатку, которую собирал две недели назад, и которая содержит более продвинутые датчики и выдает более точные данные. Хоть и выглядит куда хуже:


Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии24

На пороге дополненной реальности: к чему готовиться разработчикам (часть 2 из 3)

Время на прочтение9 мин
Количество просмотров82K

Это продолжение (см. часть 1) стенограммы одноименного доклада с конференции ADD-2010.

В этой части речь пойдет о том, как обрабатывать данные с сенсоров, а именно: акселерометров, гироскопов и магнитных компасов. И зачем в современных устройствах ставят все три вида датчиков.
Читать дальше →
Всего голосов 64: ↑62 и ↓2+60
Комментарии15

Побеждаем NPE hell в Java 6 и 7, используя Intellij Idea

Время на прочтение6 мин
Количество просмотров36K

Disclaimer


  • Статья не претендует на открытие Америки и носит популяризаторско-реферативный характер. Способы борьбы с NPE в коде далеко не новые, но намного менее известные, чем этого хотелось бы.
  • Разовый NPE — это, наверное, самая простая из все возможных ошибок. Речь идет именно о ситуации, когда из-за отсутствия политики их обработки наступает засилье NPE.
  • В статье не рассматриваются подходы, не применимые для Java 6 и 7 (монада MayBe, JSR-308 и Type Annotations).
  • Повсеместное защитное программирование не рассматривается в качестве метода борьбы, так как сильно замусоривает код, снижает производительность и в итоге все равно не дает нужного эффекта.
  • Возможны некоторые расхождения в используемой терминологии и общепринятой. Так же описание используемых проверок Intellij Idea не претендует на полноту и точность, так как взято из документации и наблюдаемого поведения, а не исходного кода.


JSR-305 спешит на помощь


Здесь я хочу поделиться используемой мной практикой, которая помогает мне успешно писать почти полностью NPE-free код. Основная ее идея состоит в использовании аннотаций о необязательности значений из библиотеки, реализующей JSR-305 (com.google.code.findbugs: jsr305: 1.3.9):

  • @Nullable — аннотированное значение является необязательным;
  • @Nonnull — соответственно наоборот.

Естественно обе аннотации применимы к полям объектов и классов, аргументам и возвращаемым значениям методов, локальным переменным. Таким образом эти аннотации дополняют информацию о типе в части обязательности наличия значения.
Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии28

Стриминг аудио в iOS на примере Яндекс.Диск

Время на прочтение12 мин
Количество просмотров14K


Во время работы над проектом по стримингу аудио необходимо было добавить поддержку новых сервисов, таких как Яндекс.Диск. Работа с аудио в приложении реализована через AVPlayer, который проигрывает файлы по url и поддерживает стандартные схемы, такие как file, http, https. Все работает отлично для сервисов, в которых токен авторизации передается в url запроса, среди них DropBox, Box, Google Drive. Для таких сервисов, как Яндекс.Диск, токен авторизации передается в заголовке запроса и к нему AVPlayer доступ не предоставляет.

Поиск решения этой проблемы среди имеющегося API привели к использованию объекта resourceLoader в AVURLAsset. С его помощью мы предоставляем доступ к файлу, размещенному на удаленном ресурсе, для AVPlayer. Работает это по принципу локального HTTP прокси но с максимальным упрощением для использования.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии3

Давайте изобретать велосипеды

Время на прочтение3 мин
Количество просмотров20K
Мотивации пост.



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

И правда, есть же матлаб. Любой может в два движения создать и обучить стандартную сетку одним из готовых стандартных и уже оптимизированных алгоритмов, обучить какой-нибудь страшно стандартной задаче классификации и всё у него будет хорошо. Тем более это актуально, учитывая что с 70-ых годов прошлого века в деле обратного распостранения ошибки не произошло ничего принципиально нового. А новые сетки уже тоже есть в матлабе.

В этом посте я постараюсь показать, почему нужно изобретать велосипед.
Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Комментарии38

Снимаем образы с картриджей для Dendy/Famicom/NES

Время на прочтение7 мин
Количество просмотров132K
Ни для кого не секрет, что сейчас можно легко скачать эмулятор почти любой игровой консоли 80х-90х и поиграть в классические игры на компьютере, телефоне и многих других платформах. В сети легко можно найти и ROM'ы этих самых игр. Зачастую люди качают их и даже не задумываются, каким же образом кто-то однажды прочитал их из картриджа. В этой статье я и постараюсь рассказать, как же это делалось в случае с NES/Famicom, которая у нас была больше известна как «Денди», и покажу, как можно сделать это самостоятельно.

image

Читать дальше →
Всего голосов 185: ↑185 и ↓0+185
Комментарии77

Играем с генетическими алгоритмами

Время на прочтение6 мин
Количество просмотров102K
Одним субботним декабрьским вечером сидел я над книгой The Blind Watchmaker (Слепой Часовщик), как на глаза мне попался невероятно интересный эксперимент: возьмём любое предложение, например Шекспировскую строку: Methinks it is like a weasel и случайную строку такой же длины: wdltmnlt dtjbkwirzrezlmqco p и начнем вносить в неё случайные изменения. Через сколько поколений эта случайная строка превратится в Шекспировскую строку, если выживать будут лишь потомки более похожие на Шекспировскую?

Сегодня мы повторим этот эксперимент, но в уже совершенно другом масштабе.



Структура статьи:
  1. Что такое генетический алгоритм
  2. Почему это работает
  3. Формализуем задачу со случайной строкой
  4. Пример работы алгоритма
  5. Эксперименты с классикой
  6. Код и данные
  7. Выводы

Осторожно трафик!
Читать дальше →
Всего голосов 59: ↑51 и ↓8+43
Комментарии22

Что нужно знать, чтобы хорошо рисовать?

Время на прочтение5 мин
Количество просмотров261K


Давид Ревуа — прекрасный художник, работающий со свободным программным обеспечением, постоянный член сообществ Krita Foundation и Blender Institute, концепт-художник анимационных проектов Gooseberry Open Movie Project, Mango Open Movie Project (Tears of Steel) и Durian Open Movie Project (Sintel). В этой статье он делится с начинающими художниками списком знаний, которые необходимо приобрести, чтобы работы получались реалистичными. Он обращает внимание, что для рисования «в цифре» следует обзавестись теми же навыками, что и в традиционной технике. Итак, приобщимся к его опыту.
Читать дальше →
Всего голосов 134: ↑128 и ↓6+122
Комментарии113

Ёжик во фрактальном тумане

Время на прочтение5 мин
Количество просмотров48K
Эта статья — последняя из серии моих хабрастатей о фракталах. В хабрастатье «Рисуем картинки с помощью кривой Гильберта» рассказывалось о котёнке по имени Гав, в хабрастатье «Кош на комплексной плоскости» — о перетекании фракталами в горизонт, в хабрастатье «Ночь фракталов» — об алгоритме времени убегания. В этой статье пойдёт речь о ёжике в тумане и, конечно же, о коте.



Читать дальше →
Всего голосов 115: ↑112 и ↓3+109
Комментарии17

10 ошибок, мешающих нам измениться

Время на прочтение5 мин
Количество просмотров126K
Примечание переводчика: Некоторое время назад я прочитал замечательную статью на Medium.com. Автор статьи Samuel Thomas Davies взял за основу исследования профессора Стэнфордского университета Би Джей Фогга об изменении поведения. Сегодня я хочу поделиться ее переводом с хабрасообществом.

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

Очевидно, что делать это намного сложнее, когда вы совершаете ошибки, которые достаточно банальны, но при этом часто недооценены или просто-напросто проигнорированы ввиду их неприметности.

Проблема в том, что у нас есть естественная склонность брать на себя вину за то, что новые привычки не приживаются. Мы полагаем, что реальная проблема в нас, тогда как в действительности, она кроется в стратегии, которую мы использовали.
Читать дальше →
Всего голосов 47: ↑39 и ↓8+31
Комментарии15

Как запустить стартап, не имея денег: личный опыт на примере коворкинга в Таиланде

Время на прочтение8 мин
Количество просмотров101K
Москва-Пхукет - почувствуй разницу

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

В статье я поделюсь опытом открытия довольно необычного заведения хостела-коворкинга-антикафе на Пхукете в Таиланде в формате небольшого рассказа, а в комментариях готов ответить на любые вопросы по теме, Таиланду и Пхукету в частности.
Читать дальше →
Всего голосов 75: ↑47 и ↓28+19
Комментарии82

Задачи тысячелетия. Просто о сложном

Время на прочтение5 мин
Количество просмотров165K
image
Привет, хабралюди!

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

После доказательства гипотезы (теперь уже теоремы) Пуанкаре Григорием Перельманом, основным вопросом, который заинтересовал многих, был: «А что же он собственно доказал, объясните на пальцах?» Пользуясь возможностью, попробую объяснить на пальцах и остальные задачи тысячелетия, или по крайней мере подойти в ним с другой более близкой к реальности стороны.
Читать дальше →
Всего голосов 143: ↑115 и ↓28+87
Комментарии65

История xkcd

Время на прочтение5 мин
Количество просмотров21K
25 января 2003 года Рэндел Манро зарегистрировал доменное имя xkcd.com. Позже многие пытались найти смысл этого набора букв, предлагая автору свои версии: duck x назад без гласной, extreme keyboard configuration daemon и тому подобное. Но название самого популярного веб-комикса для гиков ничего не значит.

В начале нулевых Манро устал от смысловых никнеймов (Skywalker4, Animorph7 и так далее). Хотелось какое-нибудь слово, которое не надоест, которое будет принадлежать только его создателю. То было время, когда некоторые четырёхбуквенные адреса в зоне .com были свободны в отличие от сегодняшних дней тотального киберсквоттинга. Поэтому Рэндел подобрал четыре буквы, которые никто до него не использовал, которые ничего не значили и которые никак не произносились и не являлись каким-нибудь акронимом.

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

Тогда Манро ещё работал в НАСА, но занимался достаточно мелкими проектами, чтобы иметь возможность отвлечься на какую-нибудь ерунду. К примеру, однажды во время работы над алгоритмами навигации он запрограммировал робота, который возил его по офисам космического агентства на офисном стуле с колёсиками.
Читать дальше →
Всего голосов 66: ↑65 и ↓1+64
Комментарии18

«Математика – один из видов искусства»: пост к столетию со дня рождения Мартина Гарднера

Время на прочтение3 мин
Количество просмотров59K

Перевод поста Эда Пегга Младшего (Ed Pegg Jr) "Martin Gardner’s 100th Birthday"

Я думаю, содержание этого поста будет интересно всем, кто любит математику и ее красоту, всем, кто знаком с замечательными книгами и задачами Мартина Гарднера, а также будет полезно учителям, школьникам и студентам. Все ссылки в данном посте ведут на сайты Wolfram Demonstrations Project (коллекция бесплатных интерактивных демонстраций, созданных пользователями системы Mathematica на языке Wolfram Language с помощью технологии Computable Document Format (CDF), при этом для вас доступны исходные коды всех демонстраций, а значит, вы можете каждую из них скачать, изучить и изменить под себя) и Wolfram MathWorld (крупнейшая и самая авторитетная онлайн-энциклопедия по математике).

Gardner100_1.gif

Читать далее...
Всего голосов 78: ↑75 и ↓3+72
Комментарии18

Диссертационный проект или строим Hexapod своми руками

Время на прочтение2 мин
Количество просмотров66K
На третьем курсе бакалавра электронной инженерии мне требовалось выбрать диссертационный проект. Он мог быть чисто теоретическим, либо практическим, что включает в себя производство на свет демонстрационного продукта. Сердце легло ко второму варианту, ведь практические задания куда интересней скучной писанины.

В то время я увлекался робототехникой. Имел опыт строительства дронов и роботов поменьше, которые то следовали за линией по полу, то решали лабиринт за короткий промежуток времени. К тому же, мотивация была приподнята недавней поездкой в Лос-Анджелес на ежегодный VEX Robotics World Championship, где, к слову, не удалось занять призового места, но удалось зарядиться позитивной энергией на весь последующий год. В общем, решил я построить Hexapod своими руками, включая механику, электронику и код.

image
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии59

Mini-Desktop своими руками

Время на прочтение5 мин
Количество просмотров279K
Update: Версия 2.0 здесь.

Немного лирики:


Лет пять назад у меня появилась мечта самому сделать домашний мини сервер. Изучив существующие на то время железки, я остановил свой выбор на материнской плате Intel D945GSEJT с процессором Atom N270. Корпуса, которые были в продаже для этой материнской платы мне совершенно не понравились, по этому я привинтил все это дело к картонке вместе с жестким диском, поставил Хакинтош и повесил за шкаф. Все это дело провисело пару лет, интенсивно качая и раздавая файлы и интернет по всей квартире.
Все бы хорошо, но быстродействия этого агрегата хватало только на дать и взять, никакой речи о проигрывании, или конвертировании HD видео, или помощи при тонировании 3D графики речи быть не могло. А хотелось бы.
Мысль сделать домашний мощный-мини-сервер заела меня окончательно в начале этого года. Просто спать по ночам не мог. И что бы избавиться от этой навязчивой идеи было решено:
1. Сделать не так как у всех
2. Сделать самый маленький Desktop из ныне существующих
3. Сделать проект не индивидуальным, а с учетом промышленных стандартов, а так же с обоснованием адекватной стоимости дальнейшего серийного производства.
Читать дальше →
Всего голосов 156: ↑149 и ↓7+142
Комментарии163

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность