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

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

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

Как работают полумошеннические конторы по ремонту компьютеров: немного инсайда и советов

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров103K

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

Читать далее
Всего голосов 243: ↑239 и ↓4+235
Комментарии430

Создание архитектуры программы или как проектировать табуретку

Время на прочтение25 мин
Количество просмотров681K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →
Всего голосов 88: ↑85 и ↓3+82
Комментарии45

Среднее арифметическое: физический смысл и визуализация

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

Переменная величина – атрибут (свойство) системы, меняющий свое числовое значение. Множество значений переменой величины может иметь вид:


Ряд чисел


Человек анализирует числовые данные такого рода и принимает решения. Знание температуры воздуха помогает правильно одеться. Курс валюты говорит покупать ее или продавать.


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


Одна из интегральных характеристик множества значений переменной величины – среднее арифметическое. Посмотрим на него с точки зрения статистики, физики (механики) и эстетики.


Три точки зрения на числовые данные


Читать дальше →
Всего голосов 31: ↑19 и ↓12+7
Комментарии20

Получение пути к карте памяти SD Card на Android

Время на прочтение5 мин
Количество просмотров268K
Разрабатывая приложение для проведения соревнований, я столкнулся с проблемой хранения базы данных. Проблема состояла в том, как мне определить внешнюю карту памяти. В целом поиск в сети точного ответа не дал. Поэтому, объединив все найденные результаты, я собрал свой класс. Если кому интересно, смотрим под катом.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии16

2 мощных психологических приема для существенного увеличения конверсии

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

Конверсия тесно связана с психологией. В процесс осуществления покупки нас втягивает сложный спектр эмоций. На некоторых людей влияют цена, полезные свойства или качество товара. С другой стороны, существуют факторы психологического воздействия, которые переубеждают покупателя и оказывают на него давление, что существенно отличается от распродажи или скидки. К сожалению, многие сайты не придают должного значения данным факторам. И такие сайты либо закрываются, либо так и не достигают своего максимального потенциала. Еще есть время все исправить!
Читать дальше →
Всего голосов 25: ↑16 и ↓9+7
Комментарии7

Как я документирую процесс разработки

Время на прочтение4 мин
Количество просмотров18K
Вы пишете лишнюю документацию для вашего проекта? Нет? Тогда вам ее, скорее всего, недостаточно.

Угадать для каждого конкретного проекта необходимый объем технической документации крайне сложно и важно. Важно — потому, что от этого зависит скорость процесса, качество и стоимость. Сложно — потому что сам процесс может меняться со временем, могут меняться исполнители, да и для заданного состояния процесса не так просто подобрать нужный набор и объем документации.

Здесь хотел бы рассказать о своем подходе к документированию работ по небольшим проектам. Небольшой проект это: руководитель-аналитик, 1-3 разработчика, тестировщик. Или какой-либо подобный состав. Под документацией я понимаю какие-либо артефакты, создаваемые для поддержки следующих процессов: обсуждения, управление требованиями, управление изменениями, управление версиями. Другие процессы я не документирую.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии6

Человеческий фактор в разработке программного обеспечения: психологические и математические аспекты

Время на прочтение8 мин
Количество просмотров27K
Разработка программного продукта — это процесс, в котором человеческий фактор играет очень важную роль. В статье поговорим о различных психологических и математических законах и принципах. Некоторые из этих принципов и законов вам хорошо известны, некоторые — не очень, а некоторые помогут объяснить ваше поведение или поведение ваших сотрудников и коллег.

Разработка ПО – нелинейный процесс

Разработка программного обеспечения — нелинейный процесс. Если на проект выделено 5 разработчиков, которые за 5 месяцев должны разработать продукт (25 чел./мес.), то 25 разработчиков не смогут сделать эту же работу за 1 месяц (те же 25 чел./мес.).


image
Читать дальше →
Всего голосов 51: ↑39 и ↓12+27
Комментарии14

Android AutoCompleteTextView с подсказками из веб-сервиса

Время на прочтение7 мин
Количество просмотров35K
Для одного из своих Android-приложений Book Tracker я реализовал кастомный AutoCompleteTextView с подсказками для названий книг, которые динамически подгружаются с Google Books по мере ввода названия книги.

Задача перед компонентом стояла следующая:
  • Загрузка данных должна осуществляться в отдельном потоке, чтобы не блокировать UI-поток;
  • Загрузка подсказок должна начинаться только, если пользователь приостанавливает набор (чтобы предотвратить отправку множества запросов к серверу после каждого введенного символа);
  • Подсказки должны загружаться, если пользователь ввел строку некоторой минимальной длины (нет смысла начинать загрузку данных для строки из двух или трех символов);
  • При запросе к серверу в правой части поля должен быть показан анимированный прогресс, чтобы информировать пользователя о загрузке.

Финальный результат:



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

Изначально ущербная система подготовки к переговорам

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


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

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

Давайте ещё раз. Бывают хорошие условия, бывают нормальные, бывают плохие. Одни можно превратить в другие. Но если вы понимаете, что из плохих условий не сделать нормальные, то единственный логичный выход – остановить переговоры как можно быстрее. Вам не нужны компромиссы, странные пути решения и долгие разговоры. Вам нужно встать и уйти.
Читать дальше →
Всего голосов 187: ↑179 и ↓8+171
Комментарии146

Быстрый старт в разработке дополнений Firefox

Время на прочтение5 мин
Количество просмотров1.3K
Про создание дополнений Firefox я знаю мало, но для того чтобы узнать это немногое мне потребовалось несколько дней. Эти знания мне не довелось пока применить для реальной задачи, и кто знает когда придётся. По теме есть много информации на английском языке, но в силу скудности моего английского эта информация была для меня трудновоспринимаема. Статьи, что я видел на русском, это в основном переводы, в которых много внимания уделяется деталям, но после их прочтения не возникает целостной картины. Моя статья — это попытка создать маленькое, но целостное знание: с чего начать и как с этим можно работать.
Читать дальше →
Всего голосов 34: ↑29 и ↓5+24
Комментарии5

Дарим роботов на Новый год

Время на прочтение5 мин
Количество просмотров15K
Новый год осталось ждать уже недолго и многие уже распланировали свои отпуска. С другой стороны о подарках мы начинаем задумываться зачастую только в последние предновогодние дни. Для тех, кто покупает подарки заранее или просто хочет подготовить необычный подарок, подготовлена данная обзорная статья. Всем остальным рекомендую сохранить статью в закладках, чтобы числа 28го внезапно вспомнить о ней, открыть, и, не ломая голову, бегом в магазин. Как вы уже поняли из заголовка, выбирать мы будем исключительно из роботов, ну и, возможно, пару радиоуправляемых моделей.

image

Читать дальше →
Всего голосов 110: ↑106 и ↓4+102
Комментарии58

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

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

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

Тестирование поведения приложения в условиях нехватки памяти

Время на прочтение2 мин
Количество просмотров7.2K
В android мы можем перехватить событие low memory для нашего приложения или активити, путем установки им через registerComponentCallbacks в качестве обрабочика наследника от интерфейса ComponentCallbacks переопределив ему метод onLowMemory.

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

Так же система гарантирует что после вызова onLowMemory будет вызвана системная сборка мусора (garbage collector)

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

И есть и второй способ — изменить данный лимит, о чем собственно и речь пойдет ниже.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии12

Устранение проблем с автоматической синхронизацией времени в Android

Время на прочтение4 мин
Количество просмотров204K
Прочитав статью «Переезд временной зоны MSD в MSK — новый Y2K локального масштаба» — вспомнил, что вместе с коллегой по работе уже давно решил эту проблему на Android (HTC Hero) и хотел написать в песочницу, но все откладывал на потом. А сегодня появилась очередная статья «Обновление временных зон на Android» практически похоронившая идею написания и, подтвердившая идею, что не надо откладывать важные вещи на потом. Но… немного повспоминав, я всё-таки решился, потому что в данных статьях рассматривалась проблемы связанные с переходом на зимнее/летнее время и совсем не затрагивался момент касающийся работы виджета часов с погодой и автоматического определения времени через оператора сотовой связи.

Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии22

Прошивка Cyanogenmod 7.1 на HTC Desire S

Время на прочтение4 мин
Количество просмотров25K
Ура, это свершилось. HTC Desire S попал в список поддерживаемых устройств для прошивки Cyanogenmod, произошло это с выходом релиза 7.1 Ранее возможность прошивки тоже была, но приходилось использовать сборки с XDA, хотя и они работали. Кому интересно как – добро пожаловать под кат.
Читать дальше →
Всего голосов 35: ↑20 и ↓15+5
Комментарии23

Как выкачать исходники Android под Windows

Время на прочтение3 мин
Количество просмотров13K
В недавнем посте о восстановлении работы git-репозитория Android многие жаловались, что пока нет веб-интерфейса доступа к исходникам из Windows тоже нет. Это не так, git под Windows есть и их можно легко забрать. Единственное что не работает без пинка — это repo, который весьма удобен для выкачивания сырцов. Однако пинок требуется минимальный, имя пинку — Cygwin. Этот пост о том, как поставить Cygwin с нуля, какие пакеты выбрать для работоспособности repo и как всё выкачать пользователям Windows. Для понимания поста требуется умение работать с консолью на базовом уровне, понимать что такое приглашение, уметь печатать текст и жать Enter.

Читать дальше →
Всего голосов 27: ↑18 и ↓9+9
Комментарии14

Обновление временных зон на Android

Время на прочтение3 мин
Количество просмотров49K
Прочитав статью «Переезд временной зоны MSD в MSK — новый Y2K локального масштаба» — был, мягко говоря, озадачен. Неужели никто до сих пор не сделал какого-либо патча для Android? Вдумчивое гугление привело к подтверждению информации: да, патчей нет. Обновлений тоже нет. Что хотите — то и делайте.
Ну вот, собственно — и начал делать…
Читать дальше →
Всего голосов 70: ↑68 и ↓2+66
Комментарии85

Ура! Исходники Андроида опять доступны

Время на прочтение2 мин
Количество просмотров4.7K
Буквально пару минут назад в гуглогруппе android-building появилось сообщение о переезде репозитория c kernel.org новый сервер. Исходники android 4.0 обещают выложить чуть позже.

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

Жизнь разработчика (в картинках)

Время на прочтение1 мин
Количество просмотров65K
Взято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.

Когда я показываю босу, что окончательно пофиксил баг



Когда проджект-менеджер входит в офис



Читать дальше →
Всего голосов 884: ↑700 и ↓184+516
Комментарии132

Опыт заказа в китайских интернет-магазинах

Время на прочтение5 мин
Количество просмотров578K
В данной статье хотелось бы поделиться с читателями своим личным опытом о китайских интернет-магазинах, в которых мне (или моим друзьям) приходилось делать покупки. Речь пойдет именно про электронный сегмент товаров. Сразу перейду к сути, и приведу обзоры этих самых магазинов с заключительной оценкой:
Читать дальше →
Всего голосов 169: ↑155 и ↓14+141
Комментарии106
1
23 ...

Информация

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