Как стать автором
Обновить
11
0
SpiRi7 @SpiRi7

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

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

Многопоточность — как средство повышения эффективности

Время на прочтение10 мин
Количество просмотров9.3K
Хорошей практикой в создании быстро реагирующего приложения является уверенность, что ваш пользовательский интерфейс требует минимального времени для обработки. Каждое потенциально долгое действие, которое может повесить Ваше приложение, нужно вывести в отдельный поток. Типичными примерами таких действий являются сетевые операции, которые несут в себе непредсказуемые задержки. Пользователи могут мириться с небольшими паузами, особенно, если вы информируете их о прогрессе, а вот застывшее на месте приложение не дает им выбора, кроме как закрыть его.

В этом уроке мы создадим загрузчик картинок, который иллюстрирует данную ситуацию. Мы будем заполнять ListView пиктограммами изображений, загруженных из сети. Созданный асинхронный процесс, загружающий изображения в фоновом режиме, будет ускорять наше приложение.
Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии19

Монетизация Android приложения — работа над ошибками

Время на прочтение2 мин
Количество просмотров5.7K
Всем привет!
Видел тут на хабре статейки об успешной монетизации android приложения (через поиск легко найдете). Вот решил поделиться своим опытом, скорее отрицательным, чем успешным.

Идея приложения


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

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

Реализация


На реализацию убил достаточно много времени. Чуть больше 2-х месяцев и это при учете 8 часов в день. Почему так долго? Много ненужной возни было из-за не знания платформы. Много вещей приходилось переделывать, иногда даже больше чем 2 раза. Столкнулся с 2-мя сложными проблемами:

1. Не знал как реализовать показ только месяца и года;
2. Графики (отчеты) в ScrollView не отрисовывались, если графики выходили за границы экрана;

По 1-му пункту пришлось написать свой компонент (см. результат на картинке). Хотя, позже нашел как сделали тоже самое со стандартными компонентами, но я уже не стал узнавать как.

image
Читать дальше →
Всего голосов 46: ↑38 и ↓8+30
Комментарии86

50 цитат о программировании всех времён

Время на прочтение6 мин
Количество просмотров161K
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →
Всего голосов 344: ↑336 и ↓8+328
Комментарии136

Береги глаза

Время на прочтение4 мин
Количество просмотров11K
imageЭта статья про то, насколько безопасно сидеть за компьютером часами, чем это чревато и как этого избежать, но обо всём по порядку.

Наше зрение — совершенный и удивительный механизм. Глаз имеет сложную систему подстройки-аккомодации, которая позволяет быстро и незаметно переходить от дальнего зрения к рассматриванию самых мелких предметов вблизи.
Читать дальше →
Всего голосов 62: ↑46 и ↓16+30
Комментарии43

Организация живой трансляции с ip камеры на сайте

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

Введение

Задача
Рассмотрим задачу по организации на сайте живой видео трансляции с ip камеры. Наш стенд состоит из трёх составных частей:
  • ip камера
  • медиасервер
  • flash плеер в браузере на стороне клиента
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии15

The Dark Heart of the Uukrul — Игры которых больше не будет

Время на прочтение7 мин
Количество просмотров2.7K
В последнее время слишком много стало происходить событий, которые напоминают мне об игре, которая захватила меня более всех остальных игр (честно сознаюсь, но игроманом я никогда не был) — выходит фильм «Принц Персии», мода на 8бит и спектрумовскую графику, гугл подбросил ностальгии по пакману, а тут на днях меня еще и спросили, где это я такой ник себе придумал. Все сложилось в кучу и потому я хочу рассказать об замечательной игре The Dark Heart of the Uukrul от не менее замечательной компании Brøderbund.

image

Читать дальше →
Всего голосов 75: ↑64 и ↓11+53
Комментарии42

Вариант синхронной импульсной нейронной сети с обратными связями

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

Предупреждение


Предупреждаю, рассуждения на данный момент чисто теоретические. Но уж очень красивая теория получается. Или я схожу с ума. Интересно ваше мнение о моих рассуждениях — стоит ли затевать практическую реализацию?
Скажу честно, причина по которой родились все дальнейшие рассуждения в том, что мне не удалась одна моя дурная затея — научить нейронную сеть самостоятельно играть в тетрис. Обучать сеть с учителем нереально долго, т.к. учитель — это я, да и однозначно правильных вариантов движения фигурок в тетрисе нет. Был применён генетический алгоритм обучения сети. Максимум чему обучилась моя популяция за сутки виртуального процесса эволюции и естественного отбора — раскладывать падающие фигурки в три столбика (на самом деле она ещё научилась поворачивать фигурки так, чтоб они были скорее «горизонтальны», чем «вертикальны», но вот научиться делать поворот фигурок так чтоб линии убирались — оказалось не по силам).
Читать дальше →
Всего голосов 63: ↑57 и ↓6+51
Комментарии154

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

Время на прочтение2 мин
Количество просмотров48K
Здравствуй хаброчеловек!

Так уж случилось, что с этого семестра в своем вузе я записался на спецкурс по паттернам проектирования. Курс проходит в виде семинаров, на которых ты (студент) должен рассказать чему научился за неделю (имеется ввиду, какие паттерны изучил и применил на практике).
Читать дальше →
Всего голосов 47: ↑37 и ↓10+27
Комментарии29

31 тезис

Время на прочтение3 мин
Количество просмотров1.2K
Иногда, когда у меня случаются моменты не самого лучшего настроения или что-то не получается, вмешивается, происходит или еще каким-то образом отравляет жизнь, я перечитываю эти цитаты, собранные мной несколько лет назад воедино — и силы приходят!

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

Нейронная сеть на спичечных коробках

Время на прочтение1 мин
Количество просмотров58K
Я не помню где брал эту информацию, но она отражает суть нейросетей лучше всего. На пальцах.

Правила игры. НС обучается играть в игру «11 палочек». Можно брать либо 1 палочку, либо 2. Нужно вытянуть последним все палочки.

Берем 10 спичечных коробков и в каждый помещаем пуговки двух цветов. Например, черного и белого. По одной штуке. Номер на коробке будет отвечать за количество палочек в текущий момент.

Например, НС начинает ход.

1. Закрываем глаза и вытаскиваем наугад пуговку из коробки под номером 11. Если черная, то берем одну палочку, если белая — две. (Пусть будет белая — 2 палочки).
2. Ход человека. Например, он взял 2 палочки.
3. Далее, берем коробок под номером 11-2-2 = 7 и вытаскиваем наугад из него пуговку.

Так до тех пор пока игра не закончится.

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

Вот и вся нейросеть из 10 узлов которая, изначально, не зная даже правил, учится играть и начинает обыгрывать человека. Если изменить правила и, например, тот кто последний забирает палочки проигрывает, то НС переучится и опять начнет побеждать.

Тут, конечно, масштаб незначителен, но он хорошо показывает, что НС хороша тем, что есть возможность гибкого обучения и подстраивания под правила игры.
Всего голосов 72: ↑62 и ↓10+52
Комментарии65

Вездесущие коды Рида-Соломона

Время на прочтение6 мин
Количество просмотров28K
Перевод статьи Barry A. Cipra «The Ubiquitous Reed-Solomon Codes» из журнала «SIAM news», подшивка 26-1, январь 1993 года.
*****

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

Однако, многие люди, использующие современные технологии, могут и не догадываться о важности пятистраничной статьи, появившейся в 1960 году в журнале Общества промышленной и прикладной математики. В этой статье
Читать дальше →
Всего голосов 42: ↑37 и ↓5+32
Комментарии22

Обзор методов эволюции нейронных сетей

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


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

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

Естественно, бурное развитие теории и практики использования генетических алгоритмов, заставило исследователей (лень — двигатель прогресса) искать способы применить их к задаче поиска оптимальной структуры ИНС (эволюция нейронных сетей или нейроэволюция), тем более, что, так сказать, proof-of-concept был налицо, или, точнее, в голове — природа наглядно демонстрировала решаемость подобной задачи на примере эволюции нервной системы с последующим образованием и развитием головного мозга.

Обзор и сравнение методов нейроэволюции под катом
Всего голосов 65: ↑60 и ↓5+55
Комментарии32

Об обучении нейросетей

Время на прочтение3 мин
Количество просмотров13K
image
Это статья уровня 2 (см. ниже).
Статья является логическим продолжением моего рассказа про сверточные нейронные сети и их применения для распознавания изображений.
Прежде чем продолжить хочу дать понимание чем же все таки занимаются люди из области Машинного обучения и какова их глобальная цель. Глобальная цель — это порабощение всех людей машинами создание методов и алгоритмов, способных путем обучения выстраивать сложные и нелинейные модели внешнего мира. В качестве пояснения предлагаю взглянуть на картинку, благодарно позаимствованную из [1]. Сейчас человечество уже умеет создавать алгоритмы, способные учится простым операциям, но что насчет такого вот преобразования — у нас есть изображение сидящего человека которое по сути является сырым вектором значений яркости картинки в каждой точке. И нам необходимо постепенно повышая абстрактность этих сырых данных сделать вывод «человек сидит». Отсюда собственно главный вопрос: Как создать систему способную не только понять простые (пусть и нелинейные) зависимости, но также обучиться сложным, многомерным и многоуровневым иерархиям представлений реального мира?
Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии32

Краткий обзор популярных нейронных сетей

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

Я хочу рассмотреть несколько известных архитектур ИНС, привести наиболее общие (в следствие чего не всегда абсолютно точные) сведения об их устройстве, описать их сильные и слабые стороны, а также обрисовать перспективы.

Начну с классики.

Читать дальше →
Всего голосов 83: ↑78 и ↓5+73
Комментарии45

Заметки об NLP (часть 6)

Время на прочтение6 мин
Количество просмотров3.6K
(Первые части: 1 2 3 4 5). Надеюсь, разговор о естественном языке читателей ещё не утомил! По-моему, тематика действительно интересная (хотя популярность топиков явно идёт на убыль :) ). Что ж, посмотрим, на сколько частей меня ещё хватит. Думаю, экватор мы уже прошли, но три-четыре темы затронуть ещё можно.

На сей раз заметка полностью посвящена проекту XDG/XDK, который я пытаюсь изучать на досуге. Назвать себя специалистом по XDG пока ещё не могу. Но потихоньку двигаюсь.
Читать дальше →
Всего голосов 68: ↑53 и ↓15+38
Комментарии24

Работа с данными — ExtJS и Zend Framework, часть 1

Время на прочтение3 мин
Количество просмотров1.1K
В этом топике рассказываю как можно работать с компонентами javascript фреймворка ExtJS и php Zend Framework на примере редактирования некоторого контента в таблице БД.
Для редактирования списка элементов контента будем использовать компонент ExtJS GridPanel, для отдельного экземпляра — FormPanel.
Обзор расчитан на людей, которые знают основы роботы с указанными фреймворками, я не буду останавливаться на некоторых подробностях, как, например, создание соединения с БД, написание загрузчика.
Для разработки использовал ExtJS 3.0, Zend Framework 1.8.1.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии4

Удержание баланса между функциональностью и совместимостью при разработке приложения

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

Разработчики приложений для Android, ориентирующиеся при разработке на все вышедшие устройства, наверняка знакомы с этой схемой:

image

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

Опытные разработчики уже удостоверились, что эти два варианта являются взаимоисключающими, и сохранение баланса между ними может быть болезненным. В этой статье я покажу вам, что это не так.
Читать дальше →
Всего голосов 75: ↑66 и ↓9+57
Комментарии15

Основы программирования под Android на примере игры Судоку

Время на прочтение6 мин
Количество просмотров375K
В статье описаны основные трудности создания приложений под Android.
Рассматриваются базовые понятия программирования Android.
Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette.
Осторожно много скриншотов.

Читать дальше →
Всего голосов 137: ↑131 и ↓6+125
Комментарии48

Главные секреты Стива Джобса

Время на прочтение5 мин
Количество просмотров20K
imageКармин Галло (Carmine Gallo) является специалистом по коммуникативным тренингам. Для подготовки своей новой книги он провел много часов над изучением докладов и презентаций Стива Джобса. И теперь он поделится со всеми нами секретами успеха настоящего мастера публичных выступлений, а по совместительству – исполнительного директора Apple.

Пять элементов, присутствующие во всех презентациях Apple.


Прежде всего, стоит понять, что Стив Джобс не продает компьютеры. Он продает впечатления. То же самое можно сказать о его презентациях, которые призваны информировать, обучать и развлекать. Презентации Apple очень схожи с театральными постановками: отличный сюжет, герои и противники, необходимый сценический реквизит, захватывающие визуальные эффекты и то, что сполна оправдывает цену за входной билет.

Вот они – 5 элементов каждой презентации Стива Джобса.
Попробуйте включить их в свою речь, когда будете представлять свой продукт или идею – так, как это делает Джобс.
Читать дальше →
Всего голосов 115: ↑95 и ↓20+75
Комментарии34

Обновление панели веб-мастера

Время на прочтение1 мин
Количество просмотров642
Новая панель веб-мастера от Яндекса
Сегодня был обновлен сервис для веб-мастеров от Яндекса. Первое, что становится заметно глазу — пользовательский интерфейс стал более дружелюбным. Взаимодействовать с сервисом стало приятнее и проще.
Скриншоты, трафик
Всего голосов 40: ↑31 и ↓9+22
Комментарии39

Информация

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