Search
Write a publication
Pull to refresh
87
0.5
Даниил Бакалин @Quiensabe

Программист

Send message

Samsung Mobile SDK и Samsung Smart App Challenge 2013 для GALAXY Note

Reading time2 min
Views3.9K
Привет, Хабр!

Увидел свет первый релиз-кандидат Samsung Mobile SDK для Android, который включает в себя 10 независимых пакетов. Эти инструменты можно использовать совместно или отдельно. Они позволяют ускорить и облегчить разработку Android приложений. Используйте их бесплатно, а также участвуйте во второй части конкурса Samsung Smart App Challenge 2013 для новых устройств GALAXY Note.

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

Unity3D + Kinect, или анимации на коленке

Reading time5 min
Views28K
Вступление

Здравствуй, уважаемый читатель. Прежде чем начать, мне хотелось бы немного рассказать о цели и формате моей статьи. Обычно с такими заголовками статьи носят обозревательный характер, в них описываются технические стороны реализации того или иного решения или приводится инструкция по эксплуатации и т.д. Выводы же читатель делает самостоятельно. Прежде чем написать эту статью, я провел небольшую исследовательскую работу на предмет аналогов. И нашел несколько статей как на самом хабре, так и массу видео материалов на ютубе. Поэтому я решил не писать очередной обзор технологии, а поделиться впечатлениями, рассказать о граблях, на которые мы наступили, и привести немного “кухонной” аналитики.
Цель этой статьи – помочь вам определиться, использовать или нет данный метод. В первую очередь она рассчитана на технических специалистов, хотя и не пестрит техническими деталями. Но так же будет полезна и всем остальным – арт-специалистам, менеджерам проектов да и просто всем, кто, так или иначе, связан с разработкой игр. Возможно, ссылка на данную статью поможет выбить бюджет у начальства и ускорить разработку/повысить качество вашей будущей игры. Итак, приступим.
Читать дальше →

RosSpam.org или как пожаловаться на SMS-спам в пару кликов

Reading time2 min
Views29K

С каждым днем мы получаем все больше и больше рекламных SMS. Такой вид рекламы очень хорош для рекламодателя — получателю сообщения всегда проще его удалить, чем пожаловаться. Ну, кто пойдет на сайт какого-нибудь сервиса, введет кучу данных об полученной SMS, чтоб, может быть, отписаться от данного отправителя, а на следующий день получить SMS-спам от нового?
Есть идея!

HTML5 и drag & drop нескольких объектов

Reading time4 min
Views44K
Перетаскиванием объектов на HTML5 никого уже не удивишь, но все же попробую рассказать кое о чем интересном, а именно, как сделать красивое перетаскивание нескольких объектов, используя только HTML5.

На странице есть набор элементов типа А, которые можно по одному или группой перетащить в элемент типа Б. Пользователь должен видеть, перетаскивает он один элемент или несколько. Перетаскивать один элемент просто, достаточно присвоить свойству draggable значение true, наверняка, все это делали.
Как перетаскивать несколько?

Разбор адресов «нечёткими регулярными выражениями»

Reading time7 min
Views32K
Краткое содержание: о библиотеке написанной мною для сопоставления с заданным словарём выражений на естественном языке — в частности, городских адресов.

На деревню дедушке


Сколько существует способов написать адрес — в смысле, географический?

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

Возьмём простой пример:
улица Цветочная — может быть обозначена с сокращением, как «ул. Цветочная» и «Цветочная ул.» — кроме того «ул.» можно пропустить (если Цветочной площади в городе нет), а «Цветочная» можно написать с ошибками «Цвяточная» или «Цвиточная», равно как и «Цветошная» — всё это будет выглядеть недурно!

Пример посложнее:
2-я Конно-армейская улица — здесь душе поэта есть где разгуляться. Номер можно выразить как «2-ая» или просто «2», а можно даже прописью «Вторая» или с сокращением «Втор.» — дефис же между «конной» и «армейской» будет встречаться примерно у 50% опрошенных. До кучи выяснится что «конно-армейская» кому-то показалась длинной и сократилась до «2 Конноарм. ул.»

Другие интересные примеры связаны с именами «ул. Матроса Железняка» (или просто «Железняка»?), «пр. Мориса Тореза» (или «Мариса Тереза»?) а также совсем эпические случаи «ул. 3-я линия второй половины», «дорога на деревню Рыбацкое», «ул. Левый берег реки Ижоры» — прошу простить если и сам я их не осилил написать правильно по памяти.
Читать дальше →

Nymi: аутентификация по биению сердца

Reading time1 min
Views20K


Сейчас в мире предлагается много новых способов аутентификации без паролей и логинов. Вот еще один интересный способ, который, судя по всему, уже не является концептом. Браслет Nymi — продвинутый кардиомонитор, который, снимая показания работы сердца своего пользователя, одновременно формирует уникальный ID, на основе которого и проводится аутентификация для всех совместимых устройств.

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

Прототип корпуса для электроники: вырастить или фрезеровать?

Reading time5 min
Views35K


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

Как всегда, уделим внимание самым актуальным вопросам и дадим полезные советы, исходя из нашей практики:
  1. Из каких материалов делается прототип корпус для электронных устройств?
  2. Обзор современных технологий прототипирования: что выбрать? Тут мы рассмотрим разные 3D-принтеры и сравним их с технологией фрезеровки на станках с ЧПУ.
  3. Как выбрать изготовителя прототипа, какие документы предоставить подрядчику?

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

Пример разработки блога на Zend Framework 2. Часть 1. ZendSkeletonApplication

Reading time10 min
Views68K
В последние несколько лет моя работа связана с использованием CMS Drupal, но на досуге я изучал и just for fun запускал проекты на питоновских фреймворках Django, Flask и Twisted. Сейчас я решил освоить основы двух-трех популярных PHP-фреймфорков и первыми я решил изучить Zend Framework 2 и Yii.

В процессе ознакомления с Zend Framework 2 я изучил туториал с официального сайта (http://framework.zend.com/manual/2.2/en/user-guide/overview.html), просмотрел документацию фреймворка (http://framework.zend.com/manual/2.2/en/index.html), прочитал книгу Michael Romer “Web development with Zend Framework 2” и собрал собственное тестовое приложение.

Переварив всю эту информацию, я пришел к мысли, что официальный туториал к фреймворку суховат:
  • в нем не рассказывается о работе с пользователями, сессиями и правами доступа,
  • лишь вскользь рассматривается такая основополагающая часть фреймворка как ServiceManager,
  • в качестве интерфейса с базой данных безальтернативно используется паттерн Table Gateway (и соответствующая его реализация в фреймворке),
  • используется встроенный в фреймворк шаблонизатор, который после питоновского Jinja 2 кажется совершенно неудобным и примитивным,
  • и т.д.

В итоге, более-менее удовлетворительное по функционалу приложение я смог создать после прочтения книги.

В этой статье я хочу привести пример разработки простого блога, в ней будет несколько отличий от официального туториала. В первую очередь я постараюсь заострить внимание на тех вопросах, которые во время изучения показались мне недостаточно раскрытыми в официальном туториале. Кроме того я буду использовать некоторые технологии, альтернативные тем, что используются в Zend фреймворке по умолчанию:
  • в качестве шаблонизатора будет использоваться Twig,
  • для работы с БД — Doctrine ORM,
  • для авторизации/аутентификации и распределения прав доступа я буду использовать существующие модули ZfcUser и BjyAuthorize,
  • также я рассмотрю вопросы разработки собственных валидаторов форм, View плагинов и другие.

За деталями добро пожаловать под кат

Hello, Russia!

Reading time4 min
Views19K
В компьютерном мире начинать принято с мантры «Hello, world!», но мы на свой страх и риск решили нарушить этот акт инициации ввиду уважительных причин. На этот самый world и так пишется много всякого маркетингового материала, а тут мы решили рассказать исключительно русскоязычной аудитории о накипевшем наборе технологий, из которых мы собираем наши продукты и сервисы.
Подробнее...

Оптимизация скорости [поиска] приложений

Reading time11 min
Views7.3K
В данной статье последовательно рассматриваются различные аспекты улучшения производительности приложений на примере мной разработанного поисковика приложений для мобильной операционной системы Андроид. Если сам поисковик может пригодиться различным пользователям с большим количеством программ, то статья будет интересна в первую очередь разработчикам (не только андроид-разработчикам). И для всех читателей, независимо от платформы, в конце прикреплён опрос "Что для меня в первую очередь важно в мобильном приложении?"


Приветствую Вас, читатели хабра,

начну с небольшой предыстории — с описания проблемы, а далее продолжу тем, как я проблему решал.

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

С чувством, что чем больше коров приложений, тем больше молока пользы от моего телефона, я заметил, что кучу времени я провожу в листаниях от экрана к экрану в поисках иконки нужного приложения. Когда коров программ мало, тогда их легче найти. Их можно поставить на домашний экран или разнести по папочкам. Всё это хорошо и удобно, если используются 20-30 приложений.
Но раз уж я отношусь к категории хэви-юзеров, то начал искать быстрый метод поиска приложений.

Требования к решению проблемы довольно просты:
поиск должен быть быстрым и ресурсосберегающим (процессор, батарея), а также всё должно происходить автоматически — я не хочу ничего сам устанавливать, сортировать или распихивать по папкам.

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

В какой-то момент после апдейта на андроид 4.1 на смену поиску пришёл Google Now, который вдруг перестал работать без соединения с интернетом (возможно только у меня?), жутко начал грызть батарею и предлагать мне поездки, куда я вовсе ехать и не хочу. Только вот искать программы совсем перестал.

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

Ну раз ничего нет, что же делать, я и сам копать траншею по клавишам в IDE бить умею, думаю, там делов-то на день, сделаю сам себе удобную прогу — как говорится: «Лучше день потерять, а потом за час долететь».

Главное условие: нахождение результата должно происходить быстро.

Вот об этом и поговорю в этой статье (чтоб не скучно было, текст будет периодически сопровождаться кодом)
Всё, что написано не ново, а скорее является подборкой того, на что нужно обращать внимание для улучшения быстродействия программ.
В качестве наглядного примера приведена конкретная программа, написанная в Java для ОС Андроид, но приведённые аспекты распространяются и на другие среды.

Дальше про оптимизацию скорости

Разработка ПО: факты против мифов

Reading time3 min
Views69K
Мифы – это попытки осмысления картины окружающего мира, присущие первобытной культуре.

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

То, что производят программисты, нематериально – это brainware, результат коллективного мыслительного процесса проектной команды, материализованный на одном из языков программирования. Программной инженерии чуть больше полувека. Если сравнивать с материальным производством, то необходимо констатировать, что разработка ПО пребывает еще в первобытном состоянии.

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

Вот наиболее распространенные мифы и факты, которые их опровергают.
Читать дальше →

Hyperboria: Интернет 2.0

Reading time3 min
Views118K


Hyperboria — это Open Source реализация проекта Mesh сетей, аналог всем известного и желанного проекта Netsukuku, который, к сожалению, умер.

Другими словами, Hyperboria это самоорганизующаяся децентрализованная сеть, которая сама строит маршруты между узлами.
Или проще говоря — это то, чем интернет должен был стать, свободным, не цензурируемым, быстрым и автоматически масштабируемым.
Читать дальше →

.NET и паттерны проектирования

Reading time8 min
Views164K
Шаблон проектирования или паттерн — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.

Кажется, это определение мы слышали тысячу раз… Помимо знания терминов и паттернов интересно знать, как они применяются в реальных проектах.

В статье я рассмотрю несколько наиболее популярных паттернов используемых в .NET. Некоторые из них глубоко интегрированы в инфраструктуру .NET, в то время как другие просто применяются при проектировании базовых классов в BCL.

Паттернам проектирования посвящен не один десяток книг, но одна книга стоит особняком и это знаменитая книга «Банды четырех». Поэтому для большего понимания ситуации я буду приводить небольшое описание из этой книги.
Читать дальше →

«МегаФон» запускает всероссийскую систему учёта в ЖКХ

Reading time6 min
Views72K


Тема ЖКХ общепризнанно считается одной из самых сложных для реформирования и далёкой от инноваций. Однако «МегаФон» решил изменить это. Центр инновационных разработок «МегаФона» компания Megalabs запускает абсолютно уникальный для России сервис в области ЖКХ: «Ресурс под контролем». Проект уже запущен в Москве и Московской области, а с сентября будет расширен на всю территорию России.

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

Поддержка мультиязычности в веб-проектах — базовые варианты реализации

Reading time4 min
Views55K

Занимаясь проектами связанными с веб-разработкой я сталкивался с различными вариантами реализации подержки нескольких языков для сайтов, порталов и веб приложений. Здесь я описал базовые варианты реализации архитектуры БД, которые мне встречались чаще всего.
Думаю для новыичков в веб-разработке эта статья окажется полезной, а тех кто уже имет опыт построения мультиязычных систем приглашаю для обсуждения тех вариантов, которые вы предпочитаете.
Читать дальше →

Строковая интерполяция. Сказка-быль

Reading time2 min
Views30K

Постановка задачи


Совершенно случайно я превратился из питониста в JS-разработчика, и на мою хрупкую детскую психику обрушился непосильный груз вещей, которых в JS нет. Например, нет удобного форматирования строк. На питоне можно написать:
'hello, %(thing)s' % {'thing': 'world'}

Или вот так:
'hello, {thing}'.format(**{'thing': 'world'})


Читать дальше, там интересно

Axure 7 вышла в открытую beta

Reading time2 min
Views19K
imageНе многие знают, что такой известный инструмент прототипирования как Axure обзавелся новой версией, Axure 7 beta. И бета эта открытая, каждый может скачать и попробовать все новинки программы.
Нововведений действительно много, начиная от внешнего оформления, и заканчивая наконец появившимися тенями для элементов!
Еще немного новых функций

Mailpile собрал $120K на разработку open source криптопочты

Reading time1 min
Views20K
За две недели до окончания срока cбора средств на краудфандинговом сайте Indiegogo разработчики почтового веб-сервера Mailpile собрали необходимые $100 тыс. на его создание, и даже больше: на данный момент собрано $120 631.

Суть проекта заключается в создании почтового open source веб-сервера, которое работает на личных компьютерах пользователей и абсолютно защищено от внешней прослушки с помощью стойкой криптографии c поддержкой OpenPGP. Оно создано для пользователей, которые хотят избавиться от проблем, связанных с использованием Gmail, Hotmail и прочих прослушиваемых сервисов. Людям нужно встроенное шифрование, отсутствие рекламы, скорость работы, собственный хостинг, но при этом они хотят сохранить удобство интерфейса, полнотекстовый поиск, теги, аттачменты и другие привычные функции.

Такая простая концепция вызвала живой отклик у сообщества, и оно довольно быстро профинансировало разработку проекта. Теперь дело за реализацией.
Читать дальше →

Беспроводной Arduino c радиусом действия более километра

Reading time2 min
Views50K
image Кикстартер продолжает радовать нас интересными проектами.

На этот раз это Flutter.

Что это



Платформа разработки, основанная на Arduino, изначально поддерживающая беспроводную связь с шифрованием. Из коробки устройства умеют соединяться в сеть между собой.
Читать дальше →

Поставлен успешный опыт организации нейрокомпьютерного интерфейса между людьми

Reading time2 min
Views53K


Двое сотрудников университета Вашингтона, специализирующихся на вычислительной неврологии (computational neuroscience), опубликовали свои результаты эксперимента, который они поставили сами над собой и которому до сей поры подвергались только лабораторные крысы.

Раджеш Рао (Rajesh Rao) и Андреа Стакко (Andrea Stucco) собрали установку, состоящую из двух специальных шапочек, первая из которых со вшитыми электродами, подсоединёнными к электроэнцефалографу (electroencephalography (EEG) machine), умеет общаться через Skype-соединение со второй шапочкой, подключённой к машине транскраниальной магнитной стимуляции (transcranial magnetic stimulation (TMS) machine). TMS способна путём генерации магнитных полей через специальный сердечник, укреплённый на голове испытуемого (технология неинвазивная), оказывать влияние на его мозг.
Узнать подробности

Information

Rating
3,794-th
Location
Петрозаводск, Карелия, Россия
Date of birth
Registered
Activity