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

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

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

Синдром вахтера

Время на прочтение4 мин
Количество просмотров8.9K
Не так давно на Хабре многоуважаемый freetonik опубликовал прекрасный перевод видео с Ричардом Фейнманом. Среди многочисленных поучительных историй в нём меня очень зацепила одна — о том, как 13-летний Ричард пришел в библиотеку за книгой по мат.анализу и на вопрос библиотекаря «Зачем она тебе в твоём возрасте?» был вынужден соврать, что она для его отца. Ему тогда было стыдно и неловко. Нечто похожее было когда-то и в моей жизни.
Читать дальше →
Всего голосов 252: ↑227 и ↓25+202
Комментарии151

Как написать отличную статью и завоевать умы

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

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

В данной статье мне хотелось бы предложить несколько вариантов того, как стоит создавать статьи, как их подавать и как поддерживать жизнь своей статьи.
Читать дальше →
Всего голосов 131: ↑96 и ↓35+61
Комментарии77

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

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

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

Data Mining в футболе: давайте оцифруем матч и всех посчитаем!

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

Тренер следит за вами. Тренер помнит. Тренер не забывает и не прощает.

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

Читать дальше →
Всего голосов 96: ↑94 и ↓2+92
Комментарии30

Собираем показания датчиков с Android смартфона. Работа над ошибками

Время на прочтение5 мин
Количество просмотров26K
В своем предыдущем посте я рассказал, как получить углы наклона аппарата во всех трех плоскостях. Однако, как оказалось, метод, использованный в топике является deprecated начиная с API Level 8 (Android 2.2). Исправлю эту ошибку и расскажу, как правильно получать данные под катом.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии11

Паттерны ООП в метафорах

Время на прочтение17 мин
Количество просмотров558K
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
Читать дальше →
Всего голосов 214: ↑201 и ↓13+188
Комментарии86

Установка приложений Google в эмулятор Android

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


В этой статье описано как установить дополнительные программы (в частности, Google Apps) в эмулятор Android. Это может понадобиться если вы хотите на эмуляторе:
1. Настроить синхронизацию с аккаунтом Google.
2. Установить календарь и календарь провайдер.
3. Установить Android Market.
4. И прочее…

Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии17

Организация памяти

Время на прочтение7 мин
Количество просмотров235K
За последнюю неделю дважды объяснял людям как организована работа с памятью в х86, с целью чтобы не объяснять в третий раз написал эту статью.

И так, чтобы понять организацию памяти от вас потребуется знания некоторых базовых понятий, таких как регистры, стек и тд. Я по ходу попробую объяснить и это на пальцах, но очень кратко потому что это не тема для этой статьи. Итак начнем.
Читать дальше →
Всего голосов 178: ↑145 и ↓33+112
Комментарии141

Дизассемблер своими руками

Время на прочтение4 мин
Количество просмотров49K
     Знание структуры машинных команд уже много лет не является обязательным, для того, чтобы человек мог назвать себя программистом. Естественно так было не всегда. До появления первых ассемблеров программирование осуществлялось непосредственно в машинном коде. Каторжная работа, сопряженная с большим количеством ошибок. Современные ассемблеры позволяют (в разумной степени) абстрагироваться от железа, метода кодирования команд. Что уж говорить о компиляторах высокоуровневых языков. Они поражают сложностью своей реализации и той простотой, с которой программисту позволяется преобразовывать исходный код в последовательность машинных команд (причем преобразовывать, в достаточной степени, оптимально). От программиста требуется лишь знание любимого языка/ IDE. Знание того, во что преобразует компилятор исходный листинг вовсе не обязательно.
Тем же, кому интересно взглянуть на краткое описание структуры кодирования машинных команд, пример реализации и исходный код дизассемблера для x86 архитектуры, добро пожаловать.

Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии46

Создание языка программирования с использованием LLVM. Часть 5: Расширение языка: Поток управления

Время на прочтение29 мин
Количество просмотров7.3K
Добро пожаловать в Главу 5 учебника «Создание языка программирования с LLVM». Предыдущие главы (1-я, 2-я, 3-я и 4-я) описывали реализацию простого языка программирования Kaleidoscope и включение в него поддержки генерации LLVM IR, а также последующей оптимизации и JIT-компиляции. К сожалению, в текущем виде Kaleidoscope почти бесполезен: он не имеет никакого потока управления, за исключением вызовов и возвратов. Это означает, что в коде не может быть условных переходов, что значительно ограничивает язык программирования. В этой главе мы расширим Kaleidoscope, добавив в него выражение if/then/else и простой цикл "for".
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии3

Создание языка программирования с использованием LLVM. Часть 4: Добавление JIT и поддержки оптимизатора

Время на прочтение20 мин
Количество просмотров10K
Добро пожаловать в Главу 4 учебника «Создание языка программирования с LLVM». Предыдущие главы (1-я, 2-я и 3-я) описывали реализацию простейшего языка программирования и добавление в него ​​поддержки генерации LLVM IR. В этой главе описаны две новых техники: добавление поддержки оптимизатора и добавление поддержки JIT-компилятора. Эти дополнения продемонстрируют как получить хороший, эффективный код для нашего языка программирования Kaleidoscope.
Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии4

Создание языка программирования с использованием LLVM. Часть 3: Генерация кода LLVM IR

Время на прочтение22 мин
Количество просмотров15K
Добро пожаловать в Главу 3 учебника «Создание языка программирования с LLVM». В этой главе мы рассмотрим, как преобразовать AST (Абстрактное Синтаксическое дерево), построенное в Главе 2, в LLVM IR. Она расскажет вам о некоторых аспектах работы LLVM, а также продемонстрирует, насколько он прост в использовании. Вы увидите, что гораздо больше труда потребовалось на лексический и синтаксический анализ, чем на непосредственное создание кода LLVM IR.

Обратите внимание: код из этой главы требует наличия LLVM 2.2 или более поздней версии. С версиями по LLVM 2.1 включительно этот код работать не будет. Также стоит отметить, что вам стоит использовать версию этого учебника, которая соответствует вашему релизу LLVM: вы можете использовать документацию, которая прилагается к официальным выпускам или посетить страницу с релизами на llvm.org.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии11

Создание языка программирования с использованием LLVM. Часть 2: Реализация парсера и AST

Время на прочтение20 мин
Количество просмотров35K
Добро пожаловать в Главу 2 учебника «Создание языка программирования с LLVM». В этой главе мы увидим, как использовать лексический анализатор, созданный в Главе 1, чтобы построить полный синтаксический анализатор для нашего языка Kaleidoscope. После того, как у нас будет готов парсер, мы будем строить Abstract Syntax Tree (AST) (Абстрактное синтаксическое дерево).
Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии6

Создание языка программирования с использованием LLVM. Часть 1: Введение и лексический анализ

Время на прочтение7 мин
Количество просмотров58K
Добро пожаловать в учебник «Создание языка программирования с LLVM». Этот учебник знакомит вас с созданием простейшего языка программирования, и при этом показывает, каким оно может быть легким и интересным, а также даёт вам начальные знания, которые вы затем сможете применить на других языках программирования. Код в этом учебнике также может быть использован в качестве стартовой площадки для ваших творений с помощью LLVM.

Целью данного учебника является постепенное представление нашего языка, описание его пошагового создания. Это позволит нам охватить достаточно широкий спектр вопросов проектирования языков и использования LLVM, попутно показывая и объясняя код без огромного количества ненужных деталей.
Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии28

Читаем QR код

Время на прочтение5 мин
Количество просмотров1.1M
Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.
Читать дальше →
Всего голосов 621: ↑612 и ↓9+603
Комментарии109

Правильная работа с БД в Android

Время на прочтение7 мин
Количество просмотров153K
Приветствую всех дроидеров в эти непростые для нас времена.
Честно говоря, заколебала эта шумиха о патентах, войнах и т.д., но в данной статье речь пойдет не об этом.
Я не собирался писать статью на данную тему, так как везде всего полно о работе с базой данных в Android и вроде бы все просто, но уж очень надоело получать репорты об ошибках, ошибках специфичных и связанных с БД.
Поэтому, я рассматрю пару моментов с которыми я столкнулся на практике, чтобы предостеречь людей, которым только предстоит с этим разбираться, а дальше жду ваших комментариев на тему решения указанных проблем после чего внесу изменения в пост и мы сделаем отличный туториал, который будет образцом работы с SQLite в Android не только для начинающих, но и для тех, кто уже знаком с основами и написал простые приложения.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии31

Разработка производительных приложений

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

Производительные приложения



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

Несмотря на то, что здесь будут описаны микрооптимизации, они практически никогда не смогут повредить вашему приложению. Выбор правильных алгоритмов и структур данных всегда должны быть первыми приоритетами, но этот аспект рассматриваться не будет.
Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Воронеж, Воронежская обл., Россия
Дата рождения
Зарегистрирован
Активность