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

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

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

Знакомство с АОП

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

Парадигмы программирования


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

У каждой парадигмы есть свои особенности, однако, главным фактором, различающим их, является понятие основной единицы программы. Вот самые популярные из них:
  • инструкция (императивное программирование, FORTRAN/C/PHP),
  • функция (функциональное программирование, Haskell/Lisp/F#/Scala),
  • прототип (прототипное программирование, JavaScript),
  • объект (объектно-ориентированное программирование, С++/Java),
  • факт (логическое программирование, PROLOG).

Стоит заметить, что в общем случае язык программирования однозначно не определяет используемую парадигму: на том же PHP можно писать как императивные, так и объектно-ориентированные программы.

В этой статье я хочу рассказать о сравнительно молодой, но крайне, на мой взгляд, полезной парадигме программирования – аспектно-ориентированном программировании.

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

OpenGL — это просто!

Время на прочтение2 мин
Количество просмотров18K
В рамках «Недели разработки для Андроид» решил поделиться кое-чем из своего опыта.
Итак, за что мы любим эти маленькие шустрые гаджеты, живущие в наших карманах и сумках? Не ошибусь, если поставлю на первое место красивую разноцветную графику. В этом нет ничего постыдного — ведь даже мудрые вожди индейских племен готовы были на что угодно ради красивых стекляшек для своей скво.
Итак, нам просто до дрожи в руках хочется написать свою прекрасную шедевральную игру, готовую произвести революцию в умах геймеров. Вот только маленькая неприятность — попытка напрямую воспользоваться drawRGB() и иже с ними сразу обламывает все мечты, ибо подобным образом написанная игра сможет получить признание разве что в Эстонии, да и то если раунд закончится раньше, чем сядет батарейка.
Читать дальше →

«Как доводить начатое до конца, если я …» или GTD и DISC для «нечайников»

Время на прочтение8 мин
Количество просмотров5.8K
image
В одном из предыдущих своих постов я пообещал продолжить тему о теории DISC для «нечайников». Сегодня очередной пост в эту сторону.
Наверное одним из ключевых моментов работы программиста, прожект-менеджера, да и вообще любого человека, как связанного с IT так и не связанного – это привычка, навык или умение доводить до конца начатые дела.
В этом посте мы разберёмся с этим вопросом.
Читать дальше →

Пишем первое приложение для Android

Время на прочтение8 мин
Количество просмотров558K
В любом деле самое сложное — это начало. Часто бывает тяжело войти в контекст, с чем столкнулся и я, решив разработать свое первое Android-приложение. Настоящая статья для тех, кто хочет начать, но не знает с чего.

Статья затронет весь цикл разработки приложения. Вместе мы напишем простенькую игру “Крестики-Нолики” с одним экраном (в ОС Android это называется Activity).

Отсутствие опыта разработки на языке Java не должно стать препятствием в освоении Android. Так, в примерах не будут использоваться специфичные для Java конструкции (или они будет минимизированы на столько, на сколько это возможно). Если Вы пишете, например, на PHP и знакомы с основополагающими принципами в разработке ПО, эта статья будет вам наиболее полезна. В свою очередь так как, я не являюсь экспертом по разработке на Java, можно предположить, что исходный код не претендует на лейбл “лучшие практики разработки на Java”.

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

Простой щелчок кнопки

Время на прочтение4 мин
Количество просмотров83K
Совсем недавно я написал пост, в котором выражал свое желание перейти от разработки для Windows Phone 7 к программированию под Android. К сожалению, некие внешние обстоятельства затормозили этот процесс и изучение идет не такими быстрыми темпами как хотелось бы. Но тем не менее желания не убавилось и скоро смогу уделить больше времени для Android.
А сегодня хочу рассказать о такой заурядной вещи, как обработка щелчка кнопки. Статья предназначена для новичков и будет говорить об очевидных вещах, но мне она стоила одной ночи.
Читать дальше →

Простое использование AsyncTask и ProgressDialog в Android

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

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

Android содержит массу способов для организации данного подхода, но одним из самых удобных можно признать использование AsyncTask и ProgressDialog.

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

Интегрируем Twitter в ваше Android приложение

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

Интегрируем Twitter в ваше Android приложение


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

Hello World widget для Android

Время на прочтение9 мин
Количество просмотров71K
Как ни странно, но на русском почти нет нормальных статей по виджетам для Android. Да и на англо язычных ресурсах почти нет простых примеров для старта, все примеры почему-то сложные и тяжелые для понимания. Спешу это исправить.
Читать дальше →

Подсвечиваемый виджет в Android

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

Здравствуйте, уважаемые хабражители. В данной статье описывается процесс создания «подсвечиваемого» виджета, то есть виджета, который можно выделить с помощью пятипозиционного манипулятора D-Pad, присутствующего во многих Android-устройствах в виде трекболов или кнопок. Эта статья ориентирована на подготовленного читателя, уже написавшего свой первый «Android hello, world». Думаю, не стоит рассказывать о преимуществах управления аппаратными клавишами на устройствах с ёмкостным экраном в холодное время года, так что сразу приступим к делу.
Читать дальше →

Паттерн проектирования «Команда» / «Command»

Время на прочтение4 мин
Количество просмотров86K
Почитать описание других паттернов.
A

Проблема


Необходимо иметь эффективное представление запросов к некоторой системе, не обладая при этом знаниями ни об их природе ни о способах их обработки.

Описание


Существует по крайней мере три мотивации к использованию шаблона “Команда”:
  • инкапсулирование запроса в виде объекта для последующего протоколирования/логирования и т.п.
  • наделение сущности “вызов метода объекта” свойствами самостоятельного объекта;
  • объектно-ориентированный обратный вызов (callback);

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

Как не надо писать деловые письма

Время на прочтение2 мин
Количество просмотров6.1K
Получил по хабрапочте письмо удивительного содержания, под заголовком «Мы хотим вас нанять». С позволения отправителя, цитирую его ниже.

Привет, к делу

У меня не хватает времени на всё и ищу себе подаванов или партнеров. Если для тебя вопрос о зарплате не стоит на грани жизни и смерти, то примерно через год возможна прибыль с собственных проектов под моим руководством.

Например, сейчас мне нужна помощь в создании контента для проекта типа ***, но только для рунета.

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


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

Как не надо писать деловые письма: дайте два

Время на прочтение2 мин
Количество просмотров10K
Год назад я уже публиковал бестселлер "Как не надо публиковать деловые письма". И вот, очевидно, пришла пора для сиквела: сегодня в моей хабрапочте случился ремейк шоу под названием «Предложение, от которого нельзя отказаться-2».

За прошедшее время подросла новая поросль эффективных менеджеров, предприимчивых стартаперов и прочих халявщиков всех мастей — они освоили новые приёмы, хитрые ходы и совсем растеряли чувство меры.

Эталон деловой переписки - под катом

О структурном программировании

Время на прочтение2 мин
Количество просмотров15K
Многие в комментариях к посту об операторе goto высказывали одно и то же мнение, которое звучит примерно так: «За n лет написания программ мне ни разу не понадобился goto, и использовать его в будущем я тоже не собираюсь». И они абсолютно правы, уже давно доказана теорема о структурировании, в которой говорится, что любая простая программа функционально эквивалентна структурированной программе составленной с использованием функций и предикатов исходной программы, а также с использованием дополнительного счетчика. Доказательством является алгоритм составления той самой структурированной программы:
  1. пронумеровать все узлы схемы, при этом порядок обхода произвольный;
  2. пронумеровать все дуги схемы следующим образом: выходной дуге схемы припишем номер 0, всем остальным дугам присвоим номер вершины, в которую данная дуга входит;
  3. для каждого функционального узла исходной программы, имеющего номер i и выходную дугу j, составить новую простую последовательную программу Gi с номером входной дуги i
  4. для каждого предикатного узла с номером i составить новую простую программу
  5. построить программу типа while do с do-частью в виде структры, проверяющей значения L.

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

NetBeans IDE 7.0 Beta 2

Время на прочтение1 мин
Количество просмотров1.5K
image
На мой взгляд, в этой версии следующие изменения являются основными:
1) Перенос строк. То что долго многие ждали.
2) Поддержка Git 1.7.x
3) Поддержка HTML5
4) Улучшено определение изменений файлов другими программами.
5) PHP рефакторинг.

Полный список новшевств.
Все фичи 7 версии
Скачать NetBeans IDE 7.0 Beta 2

Android nine-patch — растягиваем андроида

Время на прочтение2 мин
Количество просмотров99K
nine-patchРекомендации по созданию UI виджетов и некоторых блоков приложений для ОС Android предписывают нам использовать блоки с закруглёнными углами и/или с эффектом объема, отбрасывающие тени. Какие же инструменты нам дает SDK для реализации таких интерфейсов?
При описании простых векторных форм без дополнительного оформления углов и краев блока рекомендуется использовать shape формы. Если в блоке имеются сложные графические элементы по углам или с краев блока можно использовать Nine-patch изображения, о которых и пойдет речь в этой статье. На случай сложного оформления блока, например в виде единого объекта, остается использовать только фиксированное изображение, что уменьшит рамки масштабирования и не даст изменить соотношение сторон блока.
Читать дальше →

Основы Linux от основателя Gentoo. Часть 1 (1/4): BASH, основы навигации

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

Предисловие


Об этом руководстве


Добро пожаловать в первую из четырех частей обучающего руководства по основам Linux, разработанного чтобы подготовить вас к сдаче экзамена Linux Professional Institute 101. В нем вы познакомитесь с bash (стандартной оболочкой командного интерпретатора в Linux), узнаете о большинстве возможностей таких стандартных команд Linux, как ls, cp и mv, разберетесь в инодах, жестких и символьных ссылках, и многом другом. К концу этого руководства у вас сформируется некий фундамент знаний, и вы будете готовы к изучению основ администрирования Linux. К концу всего курса (8 частей), у вас будет достаточно навыков, чтобы стать системным администратором Linux и пройти сертификацию LPIC Level 1 от Linux Professional Institute, если конечно захотите.



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


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

Еще раз про изучение языков

Время на прочтение1 мин
Количество просмотров980
Приветствую сообщество. Все как обычно — сделал сервис и спешу поделиться ))
Без долгих раскачек о сути: все мы любим посмотреть фильмы на английском с субтитрами. Это один из способов фонового обучения, дающийся легко и не воспринимающийся как занятия. Есть только один минус — системно учить язык так довольно сложно.
Я подумал, что было бы неплохо взять лучшее и привнести немного системы. В итоге, за несколько выходных родилось вот что: fridgevideocards.com — сервис изучения новых слов. Слова отсортированы по частоте употребления (частотные словари), для каждого слова есть перевод, видео кусочек и субтитры, как пример его использования. Для некоторых языков есть еще звучание слова отдельно от видео.
Сделать сервис получилось быстро — используется youtube и его ролики с субтитрами, для перевода используется google dictionary. Я планирую неким образом зарабатывать на сервисе, но пока до конца не определился как, и будет ли вообще модель платных подписок востребована.
image
Прошу попинать.
PS: всем разом не ходить, хостинг хилый )
PPS: у меня сейчас совершенно не будет времени на маркетинг этого сервиса. Если здесь есть люди которым идея нравится и они знаю как на ней заработать — welcome: 50/50.
PPPS: кому нужны PRO акки — пишите на адрес внизу сайта с указанием логина.

Двадцать вопросов, которые помогают разработать алгоритм

Время на прочтение5 мин
Количество просмотров8.3K
Как разработать алгоритм, решающий сложную задачу? Многие считают, что для этого нужно «испытать озарение», что процесс этот не вполне рационален и зависит от творческой силы или таланта.

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

Если вы хотите решить сложную задачу, собирайте информацию в самых разных направлениях. Ответив на следующие 20 вопросов, вы легко выстроите план работы над задачей.
Читать дальше →

Тестирование Android приложений

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

Введение


image
Я уверен, что современных программистов не нужно убеждать использовать юнит тесты. И если при разработке приложений под android, модули не связанные с ним, мы можем протестировать с помощью знакомого всем JUnit'а (не всегда без костылей правда), то как тестировать user interface и использующие его классы? В этом нам помогут инструменты фреймворка android.test.

В данной статье мы напишем небольшое android приложение и протестируем его. Для работы нам будут нужны установленные jdk, android sdk, Eclipse и ADT плагин.
Читать дальше →

Работа с камерой в Android: снимаем видео

Время на прочтение2 мин
Количество просмотров24K
В комментариях к статье Работа с камерой в Android был задан вопрос о том, как сделать видеозапись. Оказывается, все это делается довольно просто.
здесь подробности

Информация

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