• Управление миграциями БД с Liquibase

    • Перевод
    • Tutorial
    Не так давно мы начали внедрять Liquibase в качестве инструмента миграций схемы данных в большинстве наших проектов, новых и уже существующих. Система миграций схемы базы данных Liquibase хороша тем, что позволяет использовать системы контроля версий, VCS, (например, Git) для управления ревизиями базы данных приложения. Говоря более точно, VCS содержит описание изменений, необходимые для миграции схемы базы данных из одной ревизии в другую.

    Хотя миграция схемы базы данных кажется довольно простой задачей изначально, задача становится сложнее после того, как появляется желание откатывать изменения схемы без ее создания заново.
    Кроме схемы и операций DDL, Liquibase позволяет мигрировать данные приложения, с поддержкой наката изменений данных и их отката.
    Читать дальше →
  • Как я покупал на Amazon на сумму больше чем €200

      В ноябре прошлого года, в черную пятницу сделал заказ на амазоне, купил модную bluetooth колонку Jambox, собственно из-за хорошей скидки. Как новогодний подарок. Плюс себе немного апгрейда для ноута — пару плашек памяти, HDD и SSD. Вышло заметно больше чем €200, я тогда не знал что это важная цифра, а у меня было примерно €400 и был уверен что до €1000 проблем быть не может.

      Кстати на сайте UPS четко указано что они не доставляют посылки на сумму более €200, кроме Москвы, Санкт-Петербурга, Краснодара, Владивостока, Ставрополя, Новороссийска и Нижнего Новгорода. См www.ups.com/content/ru/ru/resources/ship/customs/import_ship.html У меня Омск, сюда они вообще не должны доставлять по идее. Но в случае Амазона у них похоже выбора нет, им пришлось.

      Я не буду рассказывать всю историю подробно, это слишком долго читать, правда. Лишь опишу тезисно основные моменты. Да и история, к слову, все еще не закончена.
      Читать дальше →
    • Сколько налогов вы платите с зарплаты?

        Лично я регулярно сталкивался с тем что нанимаемые сотрудники не понимают или очень плохо понимают сколько налогов они перечисляют государству каждый месяц в той или иной форме.

        На мой взгляд, люди должны знать – сколько и за что конкретно они платят. У нас считается, будто работник платит со своей зарплаты только один налог – НДФЛ, равный 13%.

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

        Давайте посчитаем, сколько в месяц работник заплатит с белой зарплаты 100.000 руб. Мой расчет приведен ниже
        Читать дальше →
      • Виджет для вывода пользовательских данных на Android

        Universal Widget позволяет размещать на рабочем столе Android информацию о любой из ваших систем, описанную в формате JSON. Например, статистику посещений вашего сайта, информацию о заказах в интернет-магазине, загрузку процессора на сервере и т.д.



        Три простых шага для размещения информации на рабочем столе:

        1) Создайте скрипт – провайдер данных в формате JSON
        2) Установите Universal Widget
        3) В настройках виджета задайте адрес скрипта — провайдера данных, а также интервал обновления
        Читать дальше →
      • Работаем с EMS по нарушению сроков доставки посылок — инструкция

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

          Сходу расстрою — посылкой управлять никак нельзя. Если она долго не «прилетает» в Россию (т.е. статус Экспорт стоит, а Импорт — нет) — тут вряд ли что-то поможет. Однако страхуемся, делаем по шагам, описанным ниже.
          Порадовать тоже могу: процентов 95 посылок все-таки доходят. Объем для сравнений — порядка 10 посылок в месяц из США и Европы.
          Обращаю внимание, что многие посылки (процентов 60 всех отправлений) я получаю «от себя», используя сервисе вроде Шипито. В некоторых случаях это означает, что почта не может отказать в претензиях по причине того, что они представляются «не отправителем». Однако во многих случаях рекомендую идти и биться за свою посылку при помощи процессов и документов, представленных ниже.
          Читать дальше →
        • Бесстрашный гений: цифровая революция в силиконовой долине 1985-2000 (1-25)

          Доброго времени суток!

          В этом году у меня появилась возможность сходить на выставки в рамках Фотобиенале-2012, посмотрев афишу моё внимание привлек фотограф Даг Меньюз. Его проект в основном посвящен Стиву Джобсу в период 1986-2000гг., но постепенно работа вышла за рамки одной личности и серия фотографий превратилась в летопись компьютерных технологий.
          Я не планировал писать статью когда шёл на выставку, потому что о ней можно почитать и посмотреть, но после неё мир перевернулся я был поражен историей рассказанной фотографом на столько, что решил пересказать её хабрасообществу. Проект представляет из себя 50 фотографий с аннотациями которые написал сам Даг Меньюз. Трафик ~3Мб и много текста.
          С вашего позволения передаю слово автору
        • Программирование на Android для web разработчика или быстрый старт для самых маленьких. Часть 2

            Приветствую!

            Статья является продолжением начатой мной части 1.

            Предостережение


            Важно: данный урок не является профессиональным. Автор урока не является специалистом в программировании для платформы Android. Я заранее приношу свои извинения, за неоправданные ожидания.

            RegistrationActivity


            В Activity для регистрации нужно проделать следующее:
            Читать дальше →
          • Перехват аккаунтов пользователей в Wi-Fi-сетях с Android

              imageВ сети стала появляться информация о сниффере под любой рутованный смартфон или планшет на Андроиде (от 2.1), позволяющий ходить под чужими аккаунтами многих веб-сайтов, в том числе Facebook и Vkontakte в общественных сетях Wi-Fi.
              Речь идет о программе DroidSheep.
              О механизме ее работы и использовании поговорим подробнее.
              Читать дальше →
            • Какие бывают типы OutOfMemoryError или из каких частей состоит память java процесса

                Если вы словили OutOfMemoryError, то это вовсе не значит, что ваше приложение создает много объектов, которые не могут почиститься сборщиком мусора и заполняют всю память, выделенную вами с помощью параметра -Xmx. Я, как минимум, могу придумать два других случая, когда вы можете увидеть эту ошибку. Дело в том, что память java процесса не ограничивается областью -Xmx, где ваше приложение программно создает объекты.

                image

                Читать дальше →
              • Замена Dropbox на BitTorrent Sync + Raspberry Pi



                  Для Raspberry Pi нашли ещё одно полезное применение. Мини-компьютер отлично справляется с бэкапом и синхронизацией файлов между различными устройствами. К нему можно подключить внешний диск или большую флэшку, и RPi готов работать круглосуточно, синхронизируя файлы с компьютеров, ноутбуков и Android-устройств (скоро выйдет и клиент для iOS). Незачем платить за облачный сервис, если можно сделать такое же удобное «облако» у себя дома, и бесплатно.

                  Американский программист Джек Минарди опубликовал пошаговую инструкцию, как запустить BitTorrent Sync на Raspberry Pi.
                  Читать дальше →
                • Создаем личное облако на 3 Тб

                  • Tutorial
                  Я бы хотел поделиться одним способом создания личного облака на базе трехтеррабайтного WD MyBook Live. Нет, я не буду даже упоминать про wd2go и их «полуоблака», которые по сути являются только доступами к самому NAS через сервисы WD при помощи довольно корявых Java-апплетов. В этой статье речь пойдет о «честном» облаке, работающем на MBL при помощи ownCloud.
                  Это решение подойдет тем, кто мечтает о личном аналоге Dropbox, файлы в котором хранятся не «где-то там», а на конкретном физическом носителе, и ограничены только его объемом, без необходимости платить ежемесячно за этот объем (пренебрегая абонентской платой за интернет и стоимостью электроэнергии).
                  Большинство решений подобной задачи требуют достаточно много покопаться в интернете и опираются на хорошее знание Linux-систем. В данном посте я попытаюсь дать наиболее полный и адекватный HOW-TO на русском, чего сам в интернете не нашел. Так что многое пришлось делать методом проб и ошибок на свой страх и риск. Реализация данного решения не требует каких-либо фундаментальных знаний Linux, и я постараюсь расписать все наиболее доступно, по шагам.

                  Если интересно что из этого вышло — добро пожаловать под кат.
                  Читать дальше →
                • Слой радиоинтерфейса в ОС Android

                  Сегодня я расскажу про то, как устроено взаимодействие с модемом в ОС Android. В данной статье описывается структура компонентов операционной системы Android, ответственных за сетевое взаимодействие по протоколам пакетной передачи данных – GPRS, EDGE, 3G и т.д.
                  Эта статья содержит большое количество теории, практика же будет во второй статье.

                  Описание слоя радиоинтерфейса


                  Рассмотрим, так называемый, слой радиоинтерфейса, от английского – Radio Interface Layer. В ОС Android представляет он представляет собой абстрактный слой между сервисом телефонии (android.telephony) и модемом.


                  Рисунок 1. Слой радиоинтерфейса.
                  Читать дальше →
                • Как хвост виляет собакой. Азбука пропаганды

                    Чем доступнее информация, тем больше её вокруг. Чем быстрее она распространяется, тем меньше остаётся времени на то, чтобы её проверить. Постепенно информационная среда превращается в некое подобие «белого шума». Всё труднее строить внутри себя новые информационные фильтры, чтобы отсеять лишнее: убрать в сторону лозунги, агитацию, пропаганду, а оставить только то, что на самом деле кроется за ними. А манипулировать нашими мыслями пытаются постоянно, и я говорю не о 25-ом кадре (он не работает), а о более земных вещах — приёмах пропаганды, которые так умело (а зачастую — очень топорно) используют политики, рекламщики и вообще, все, кому не лень. Об этих приёмах и пойдёт речь в статье.

                    Хвост виляет собакой. ("Wag the dog") — чтобы избежать большого скандала или «замять», оставить незамеченным какое-нибудь важное, но неприятное событие, часто используется простой, но хитрый и ловкий приём, который англоязычные политтехнологи называют «Wag the dog», а русскоязычные — «Хвост виляет собакой». Он заключается в том, чтобы вовремя поднять волну обсуждения вокруг вопроса второстепенной важности, на фоне которой другое, более важное событие или действие пройдёт незаметно.
                    Примеры таких вопросов: Отмена перехода на зимнее время, российское гражданство Депардье, поездка Путина или Саши Грей на Ладе Калине по России, полёты со стерхами и т.д.
                    Своё название этот приём получил в честь английского выражения tail wagging the dog, который, в свою очередь, появился из следующего народного пассажа:
                    — Почему собака виляет хвостом?
                    — Потому, что собака умнее, чем хвост. Если бы хвост был умнее, он вилял бы собакой.

                    Ещё 7 приёмов - под катом
                  • Как бороться с низкокачественными Android приложениями

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

                    Но каждый день выходят новые приложения с дизайном из iOS, темами из 2.3, не адаптированные для планшетов и с размытыми картинками на HD-экранах. И в этом виноват не Google, а разработчики. Кто-то не пытается спорить, когда заказчик присылает макеты от iOS версии, кто-то пытается, но сдается. Кто-то разрабатывает приложение ради опыта, откладывая «неважное» на потом, и так оно и остается. Стартапы делают приложения «за день», а потом лихорадочно фиксят баги, создавая снежный ком, который уже никто не перепишет с нуля. Крупные социальные сети, имея деньги и время, каким-то образом умудряются выпускать ужасные клиенты…
                    Читать дальше →
                  • Ресурсы, о которых должен знать каждый Android-разработчик

                    • Перевод
                    Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

                    В то время как Android продолжает свой невероятный рост, всё больше и больше программистов начинают разрабатывать приложения на этой платформе. Если ты начинаешь свой путь сегодня, то ты определенно — счастливчик. За последние годы Android значительно повзрослел и избавился от множества детских болезней. Информации по платформе более чем достаточно. Я же расскажу о самых важных ресурсах.

                    Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
                    Читать дальше →
                  • По следам разрушителей мифов или Почему Android тормозит, а %мобильная ОС% нет?

                    • Перевод


                    Добрый день, Хабр!

                    Мой предыдущий перевод статьи про аппаратное ускорение в Android вызвал бурное обсуждение в комментариях, основным мотивом которого был вопрос «так почему же тормозит Android?». Аналогичная ситуация наблюдается по всему интернету, и потому я привожу ниже еще один очень интересный и свежий перевод (снова из Google+), где автор Andrew Munn (о нем ниже) анализирует настоящие причины тормозов Android. С удовольствием прочитал этот пост сам и горд возможностью первым поделится им с хабрасообществом.

                    Читать дальше →
                  • Regexponline – интерактивный анализатор и редактор регулярных выражений

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

                      (<([a-z]+[^>]*)>)(.*)(</\2>)

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

                      image

                      Когда-то и мне пришлось по долгу службы подружиться с регулярными выражениями. Прочитав Фридла и несколько статей на Хабре, я, конечно, начал понимать этот синтетический язык. Тем не менее, каждый раз, когда приходилось написать очередную регулярку, я быстро закапывался в нагромождении скобок, слешей, точек, плюсов, знаков вопроса, и других хорошо вам знакомых конструкциях. Разобраться в этой каше было очень сложно, особенно если возвращаешься к задаче месячной давности. Я мечтал об инструменте, который помог бы мне разобраться в собственном творении. Приблизительно подходящих по смыслу сервисов нагуглилось с десяток, но все они приносили мало пользы. Как раз тогда я и начал разрабатывать этот проект.

                      Итак, regexponline – инструмент, способный наглядно изобразить структуру регулярного выражения, разобрав его по элементарным компонентам; продемонстрировать совпадающие и не совпадающие его части; помочь в написании и отладке выражения, которое почему-то не совпадает с нужной строчкой.
                      Читать дальше →
                    • Bitcoin: Как получить 25+ Mhash/s бесплатно без смс

                      • Tutorial

                      Добрый день, дорогой %username%!
                      Наверняка Вы уже слышали о Биткоинах. Возможно, Вам уже удалось ими попользоваться! Великолепно. Как насчет того, чтобы, не напрягаясь, начать майнить криптовалюту на 25 (50, 75, 100,…, 25n) Мегахешах в секунду? Как, у Вас уже есть суперкомпьютер для генерации блоков? Как насчет того, чтобы добавить 25n Мегахешей к Вашей вычислительной мощности прямо сейчас?

                      Есть отличный сервис Windows Azure от Microsoft. Вкратце, нам дают возможность пользоваться удаленной виртуальной машиной с 20 ядрами для различных серверных решений, вычислений, etc. Но для нас, любителей бесплатного, конечно, важен бесплатный триал на 3 месяца. Естественно, есть определенные ограничения для бесплатной версии, но нас они особо не затронут. Что нам нужно сделать (и что я пошагово опишу в этой статье) это:

                      1. Создать 3 виртуальные машины (8 + 8 + 4 ядер)
                      2. Подключиться к виртуальным машинам при помощи виртуального рабочего стола
                      3. Зарегистрироваться на публичном пуле (в статье я буду использовать Slush's Pool в качестве примера)
                      4. Установить и настроить нужный для майнинга софт
                      5. Запустить этот софт
                      6. Ждать
                      7. Получать биткоины

                      Всех заинтересовавшихся прошу под кат.

                      Update: добавил описание как майнить Litecoin на Windows Azure. Получается гораздо эффективнее майнинга Bitcoin.
                      Читать дальше →
                    • Лень-driven development

                        Человек — ужасно ленивая зараза. Нет, ну я не о вас, конечно! Ну что вы! Я так, о себе. О 99% человечества. Но не о вас, нет. Вы сами за себя решайте. Но вот те 99%, так уж вышло — ужасно ленивы. Кто-то это отрицает, кто-то мирится, кто-то борется. А лично мне кажется, что это такая же неотъемлемая черта нашего вида, как, например, две руки и две ноги. Можно убиваться, что у нас нет крыльев или жабр — а можно научиться хорошо пользоваться тем, что есть. Так же и с ленью. Зачем её отрицать? Надо её использовать по-полной. И вот тут, поскольку мы с вами имеем кое-какое отношение к ИТ, давайте посмотрим, как с этим обстоит дело в нашей профессии.
                        Читать дальше →