Pull to refresh
0
0
alexcrown @alexcrown

User

Send message

13 подвохов мобильного приложения, о которых лучше знать до старта разработки

Reading time13 min
Views35K

Главная сложность в разработке приложения – накодить его функционал. Например, сделать редактирование текста для приложения-блокнота. Так я полагал, когда был моложе и наивнее.

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

Хочу поделиться краткой выжимкой из своего опыта: какие неожиданные сложности вас ждут, если вы делаете мобильное приложение впервые.

Читать далее
Total votes 58: ↑57 and ↓1+56
Comments20

Тонкая настройка балансировки нагрузки

Reading time22 min
Views46K
В этой статье речь пойдет о балансировке нагрузки в веб-проектах. Многие считают, что решение этой задачи в распределении нагрузки между серверами — чем точнее, тем лучше. Но мы же знаем, что это не совсем так. Стабильность работы системы куда важнее с точки зрения бизнеса.



Маленький минутрый пик в 84 RPS «пятисоток» — это пять тысяч ошибок, которые получили реальные пользователи. Это много и это очень важно. Необходимо искать причины, проводить работу над ошибками и стараться впредь не допускать подобных ситуаций.

Николай Сивко (NikolaySivko) в своем докладе на RootConf 2018 рассказал о тонких и пока не очень популярных аспектах балансировки нагрузки:

  • когда повторять запрос (retries);
  • как выбрать значения для таймаутов;
  • как не убить нижележащие серверы в момент аварии/перегрузки;
  • нужны ли health checks;
  • как обрабатывать «мерцающие» проблемы.

Под катом расшифровка этого доклада.

Total votes 51: ↑49 and ↓2+47
Comments17

АВЛ-деревья

Reading time9 min
Views401K
Если в одном из моих прошлых постов речь шла о довольно современном подходе к построению сбалансированных деревьев поиска, то этот пост посвящен реализации АВЛ-деревьев — наверное, самого первого вида сбалансированных двоичных деревьев поиска, придуманных еще в 1962 году нашими (тогда советскими) учеными Адельсон-Вельским и Ландисом. В сети можно найти много реализаций АВЛ-деревьев (например, тут), но все, что лично я видел, не внушает особенного оптимизма, особенно, если пытаешься разобраться во всем с нуля. Везде утверждается, что АВЛ-деревья проще красно-черных деревьев, но глядя на прилагаемый к этому код, начинаешь сомневаться в данном утверждении. Собственно, желание объяснить на пальцах, как устроены АВЛ-деревья, и послужило мотивацией к написанию данного поста. Изложение иллюстрируется кодом на С++.

Читать дальше →
Total votes 69: ↑62 and ↓7+55
Comments50

Монорепозитории: пожалуйста не надо

Reading time10 min
Views55K
От переводчика: Привет, Хабр! Да, это очередная статья о преимуществах и недостатках монорепозиториев. Собирался написать свою статью о том, как мы используем монорепозиторий, как мы переходили с maven на bazel и что из этого получилось. Но пока собирался с мыслями, вышла отличная статья от разработчика из Lyft, которую я и решил для вас перевести. Обещаю опубликовать свои дополнения к статье, а также опыт с bazel в виде продолжения.
Мы в Новом 2019 году, и я настроен на еще одну дискуссию о преимуществах (или отсутствии таковых) в хранении всего исходного кода организации в «Монорепозитории». Для тех из вас, кто не знаком с этим подходом, идея состоит в том, чтобы хранить весь исходный код в едином репозитории системы контроля версий. Альтернатива, конечно, заключается в том, чтобы хранить исходный код в нескольких независимых репозиториях, разделяя их обычно по границе сервисов/приложений/библиотек.

В данном посте я буду называть такой подход «полирепозиторий».
Total votes 57: ↑52 and ↓5+47
Comments85

Экзорцизм программистскими методами

Reading time14 min
Views14K
Есть много материалов о том, как внедрение информационных систем помогло компаниям избавиться от потерь, сократить затраты, вырубить на корню воровство. Это прекрасно, когда получается избавляться от зла в таком большом объеме.

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

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

Просто опыт применения некоторых инструментов и примеры того, как они меня выручали.
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments19

Software AG: не только ARIS

Reading time5 min
Views4.6K

Здравствуй, Хабр. Меня зовут Олег Порецкий. Я вице-президент по продажам Software AG в России и СНГ. Мы работаем в России еще с 80-х годов, и нам есть что о себе рассказать.


В англоязычном сегменте мы поддерживаем собственное сообщество ИТ-специалистов (TECH Community). Теперь настало время присоединиться и к русскоязычному сообществу. Будем считать этот пост нашим знакомством.



Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments9

Собираем полную колоду

Reading time12 min
Views15K
Колодой, если верить писателям, раньше называлась «команда», которую набирал себе вор. У каждого человека в команде была своя «масть» — специализация и назначение. Вот что пишет об этом Борис Акунин в книге «Любовник смерти»:

«Пацаны рассказывали, что у настоящих деловых, кто по законам живет, шайка „колодой“ называется, и в каждой колоде свой кумплект. Кумплект — это восемь фартовых, каждый при своем положении. Главный — »король"; при нем маруха, по-деловому «дама»; потом «валет» — вроде как главный помощник; ну и прочие бойцы, от десятки до шестерки. А больше восьми человек в шайке не держат, так уж исстари заведено."

Меньше восьми людей брать смысла нет, будут пробелы в «компетенциях». Больше — нельзя, будет дублирование и потеря управляемости.



Как ни странно, тот же Джефф Сазерленд, один из авторов скрама, называл похожие цифры — от 5 до 9 человек. Хотя и не уточнял специализацию.

Ну да ладно. А мы продолжаем тему построения команд по ролям, на основе тестов Белбина.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments18

Электронный микроскоп в гараже

Reading time5 min
Views72K
image

Позвонил мне как-то друг и говорит: нашёл интересную штуку, нужно привезти к тебе, весит полтонны. Так у меня появилась колонна от сканирующего электронного микроскопа JEOL JSM-50A. Её давно списали из какого-то НИИ и вывезли в металлолом. Электронику потеряли, а вот электронно-оптическую колонну вместе с вакуумной частью удалось спасти.

До этого момента я не имел дела с подобным научным оборудованием, не говоря уже о том, чтобы уметь им пользоваться и представлять, как оно работает. Чтобы восстановить этот микроскоп хотя бы до состояния «рисуем электронным лучом на люминесцентном экране» потребуется:

  • Понять основы работы электронных микроскопов
  • Разобраться в том, что такое вакуум, какой он бывает
  • Как измеряют вакуум, как его получают
  • Как работают высоковакуумные насосы
  • Минимально разобраться в химии (какие растворители использовать для очистки вакуумной камеры, какое масло использовать для смазки вакуумных деталей)
  • Освоить металлообработку (токарные и фрезерные работы) для изготовления всевозможных переходников и инструментов
  • Разобраться с микроконтроллерами, схемотехникой их подключения

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

Восстановление микроскопа после как минимум десятка лет — под катом.
Подробности с фото и видео
Total votes 155: ↑152 and ↓3+149
Comments95

Аутентификация и авторизация в микросервисных приложениях

Reading time11 min
Views213K

Автор: Вячеслав Михайлов, Solutions Architect

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

Мы разберемся с процессом аутентификации пользователя, работой технологии единого входа (Single sign-on/SSO), дадим общее представлении о технологии OAuth2 и принципах ее работы, не углубляясь в особенности конкретной технической реализации. В следующей статье в качестве примера удачной реализации мы рассмотрим библиотеку Thinktecture Identity Server v3, подробнее остановимся на ее функциональных возможностях, поговорим, как собрать минимальный набор компонент, необходимый для работы в микросервисной архитектуре и достойный использования в боевой системе. В третьей части мы покажем, как расширять эту библиотеку, подстраиваясь под нужды вашей системы, а завершит цикл статей разбор различных сценариев, встречавшихся в жизни многих разработчиков с рекомендациями для каждого случая.
Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments15

Почему умные лампочки != умный дом, или немного о хабах и системах

Reading time12 min
Views21K
Я хочу поговорить с вами о наболевшем. О теме, которая очень популярна в последнее время и стала отчасти предметом для спекуляций, недомолвок и зачастую откровенного обмана. Я хочу поговорить о умных домах.


Что такое «умный дом»? Вопреки уверениям некоторых производителей, это вовсе не «возможность выключать свет с телефона». Умный дом — это нечто, что снимает головную боль с тех, кто живет в нем. Какая умность заключается в возможности выключать свет со смартфона? Для пользователя это всего лишь еще один выключатель, такой же, как настенный, только, сенсорный и лежит обычно в кармане. Если для включения света в комнате пользователю все равно надо осознать факт «надо включить свет», понять-найти, где выключатель, и лишь после этого в него ткнуть — то умности в доме тут ни на грош. И тут уже нет разницы, где именно находится включатель, который надо ткнуть — на стене, висит на ключах в виде брелка, или лежит в качестве смартфона в кармане.
Нет. «Умность» дома, это когда человеку не надо даже думать о том, что надо включить свет, а он включается сам.
Когда не надо помнить, что уходя из дома, надо снизить температуру отопления и выключить весь свет. Когда кондиционер летом и обогреватель зимой сам включается незадолго до возвращения домой. Когда ночью по дороге в туалет свет сам включается с малой яркостью, чтобы не бил по глазам. Когда все это управляется с единого интерфейса… стоп. Кажется, я забежал немного вперед. Давайте пока поговорим немного о том, как можно примерно определить, насколько ваш дом умный.
Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments115

Независимое воспроизведение реактора холодного синтеза Андреа Росси в России

Reading time5 min
Views106K
image

Возможно, вы уже читали о реакторе холодного синтеза Андреа Росси. Этот реактор вызывает крайне противоречивые мнения, и очень многие относятся к нему как к мошенничеству, которое не заслуживает серьезного рассмотрения и вообще противоречит основным законам ядерной физики. Тем не менее, появляются все новые свидетельства, что данный реактор действительно работает. И вот теперь работающий реактор из России…
Читать дальше →
Total votes 53: ↑33 and ↓20+13
Comments287

Необычные материалы в DIY. Стоматология + электроника =? Часть 1

Reading time8 min
Views202K
Нет ничего прекраснее, чем сидеть в лаборатории и гладить толстую плешивую крысу в поисках вдохновения.



Итак, сегодня у нас будет немного необычный DIY-пост. Делать руками мы ничего не будем. Arduino и прошивок в 30 строк на Brainfuck тоже не будет. Мы попробуем взглянуть на привычные вещи под необычным углом.
Все мы привыкли к классическим для этой области материалам вроде текстолита, оловянного припоя и прочих радостей любителей повыпиливать лобзиком потравить платы. В этой статье мы попробуем найти интересные альтернативы привычным техпроцессам в несколько непривычной области — стоматологии. Зубные техники и стоматологи работают с целой кучей полимеров, композитов и много с чем еще. Я не буду давать конкретных рецептов применения, а просто дам общее направление для самостоятельных экспериментов.

В сегодняшней программе:
Материалы
  • Силиконы. Как кремний, только интереснее.
  • Супергипс. Гипсее всех гипсов.
  • Пластмассы. Отличный розовый цвет.


В следующей части:
Материалы
  • Фотокомпозиты. Сам себе 3D принтер.
  • Ортофосфорная кислота для травления

Оборудование и инструменты
  • Алмазные и твердосплавные боры
  • Портативные микромоторы. Замена дремеля
  • Обратные пинцеты, зонды и другая мелочь

Читать дальше →
Total votes 197: ↑191 and ↓6+185
Comments171

Ремонтируем монитор содой!

Reading time2 min
Views150K
В последнее время, как мне кажется, пластиковые рудники на грани истощения. Чем больше и тяжелее монитор, тем меньше и тоньше подставка. Так 23'' монитор Samsung постигла участь одуванчика. Случайно наткнулся, в одной из местных news групп, на способ восстановления пластика при помощи пищевой соды. Под катом ремонт стойки монитора.
Далее...
Total votes 195: ↑192 and ↓3+189
Comments104

DevOps: отправляем метрики и спим спокойно

Reading time9 min
Views19K


Внезапно, ночью раздается звонок и мы узнаем что наше приложение не работает. Есть 2 часа на его реанимацию…
Где же наш мониторинг и логи программы!?
Total votes 14: ↑13 and ↓1+12
Comments2

Как работает реляционная БД

Reading time51 min
Views534K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Total votes 232: ↑229 and ↓3+226
Comments134

ЭКГ на дому, или сделано в России: отечественные разработчики представили кардиофлешку

Reading time1 min
Views24K
В конце прошлого года нам на тест попал прототип «кардиофлешки», которую представили отечественные разработчики. Адресована она широкому кругу лиц, а потому главное, что хотели решить наши партнеры, — это изыскать возможность сделать ее доступной. В итоге розничная цена остановилась на уровне 3 500 рублей.



О том, как это работает — под катом.

Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments104

Обработка запросов в Oracle и PostgreSQL: следствия одного решения

Reading time21 min
Views33K
Обработка запросов SQL и  в Оракле, и в Постгресе имеет много общего. Так или иначе, надо выполнить синтаксический разбор, проверить семантику (для чего потребуется метаинформация, и не важно, называется ли это «словарь данных» или «системный каталог»), выполнить какие-то преобразования, построить оптимальный план выполнения (в обеих системах основанный на стоимости, а следовательно требующий заранее собранной статистики).

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

В статье мы попытаемся проследить, как из-за разницы в одном архитектурном решении логически следует совершенно разная идеология работы в запросами в двух СУБД.

Приведенные примеры (которые выполнялись на версиях Oracle 11.2 XE и PostgreSQL 9.4) содержат время выполнения запросов. Нас интересуют только относительные величины: во сколько раз изменилось время выполнения после внесения в запрос тех или иных изменений. При этом абсолютные цифры могут отличаться на порядки в зависимости от аппаратуры, нагрузки и настроек. Чтобы не давать повод для бессмысленных выводов на их основании, все абсолютные значения в статье отмасштабированы так, чтобы один из запросов составлял в обеих системах 10 секунд.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments12

Если бы повара ходили на собеседования, как программисты

Reading time4 min
Views35K
Недавно мне попалась на глаза старая публикация и как-то случайно родился ответ.

Интервьюер: Мы ищем шеф-повара во французский ресторан. Расскажите о своем опыте работы.

Соискатель: Можно сказать, что у меня уже 20 лет профессионального опыта. Я занимаюсь готовкой с 7 лет. Когда мама уходила на работу — я сам разогревал себе пиццу в микроволновке.
Читать дальше →
Total votes 32: ↑23 and ↓9+14
Comments31

Простой интерфейс к умному дому с nooLite

Reading time10 min
Views16K
Сколько-то месяцев тому назад я поставил у себя дома «умный дом» на базе компонентов белорусской «Ноотехники», о которых на Хабре и Гиктаймсе писали много-много раз. Строго говоря, я не рассматривал его именно как умный дом — а в первую очередь как удобный: начинался он с желания получить управление лампами из разных мест квартиры без капремонта проводки, а заодно сделать посекционное включение для тех ламп, к которым сейчас проведена одна пара проводов.

Если полистать публикации по данной теме, они в основном сводятся к трём вещам: «как я установил первый выключатель», «как я пишу супернавороченный интерфейс с плагинами и собственным скриптовым языком» и «как я настраиваю полную автоматизацию, чтобы вообще больше выключателей не видеть».

Увы, ни одна из них ничего практически ценного мне не давала: помимо того, что последние две категории обычно находятся в вечном состоянии work-in-progress, я не верю в осмысленную автоматизацию света в городской квартире (больше тут автоматизировать особо нечего), а также не хочу собственный скриптовый язык. Я хочу систему, которая, будучи однажды установленной, позволяла бы и мне, и другим людям удобно управляться со светом в квартире, по возможности не поднимая задницу с кресла и не требуя никаких специальных знаний. И не только включать и выключать, но и, например, поменять функцию конкретной кнопки.



В общем, я её сделал.

Но обо всём по порядку.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments13
1

Information

Rating
Does not participate
Registered
Activity