Как стать автором
Обновить
0
0
Eugene Zadyra @unkind

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

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

Практический опыт подачи электронной отчетности в Украине

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

Вводная


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

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

Исходные данные


Имеем небольшую фирму или оформились частным предпринимателем – добро пожаловать в налоговую, пенсионный, статистику и другие службы по роду деятельности. Опишу процедуру подачи отчетности от и до на примере юридического лица.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии44

«Хакинтош» – стоит ли игра свеч?

Время на прочтение4 мин
Количество просмотров351K
imageХочу поделиться своим мнением и опытом относительно работы Mac OS X на обычном PC компьютере. Может кому-то этот топик будет интересен или полезен.

Я разработчик ПО для Mac OS X и iOS. И я обожаю технику и ПО от Apple (но я не являюсь ярым фанатом). За свою жизнь у меня побывало много гаджетов от Apple: PowerBook G4, MacBook, iMac, MacBook Pro, iPhone, iPad и пр.

Техника для меня лишь инструмент достижения целей. В данный момент времени на работе я использую iMac (Core i5), в личных целях: обычный стационарный PC, ноутбук Lenovo, телефон на Android и iPad.

Недавно мне для работы дома понадобился очень мощный компьютер с Mac OS X. По характеристикам из техники Apple подходили лишь топовый iMac (с Core i7-2600 3,4 ГГц) и Mac Pro. Оба стоят просто запредельные деньги — более 100 тыс. рублей. Я психологически не был готов потратить такие деньги на компьютер. Ограничил бюджет суммой 55 тыс. рублей и решил собрать «Хакинтош». Я немного слежу за тематикой «Хакинтош» и имею четкое представление, что «там и как».

Читать дальше →
Всего голосов 330: ↑239 и ↓91+148
Комментарии331

Миграция с Ruby

Время на прочтение5 мин
Количество просмотров8K
imageУверен, что на Хабре обитает огромное число юзеров, облизывающихся при чтении описаний технологий и архитектур, используемых в молодых, динамичных и, что наиболее важно, быстрорастущих в своей пользовательской базе, компаний. К сожалению, относительно небольшое количество наших соотечественников работает в таких компаниях по всему миру, а те, кто все-таки трудится во внутренней кухне, связаны различными условиями трудовых договоров или банальным NDA, запрещающим сливать публике самые интересные подробности. Тем не менее, я лично знаю большое количество специалистов, особенно заинтересованных в высоких нагрузках и не знающих, где получить эту информацию из первых рук.

Эту проблему можно решить единственным способом — предоставить слово кому-то из менеджеров отдела разработки или любому другому человеку, занимающему адекватно высокий пост и разбирающемуся в разработке, а после — тянуть, тянуть из него все подробности. Примерно так поступили в Information Queue, опросив одного из инженеров Twitter'а — Эвана Уивера (Evan Weaver) о том, почему компания так долго развивавшаяся на «рельсах», решила переключиться на использование других технологий и какие это имело последствия.

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

Итак, история начинается в прошлом году, когда Twitter анонсировал изменения в архитектуре бэкэнда (message queue), а так же заявил о намерении переписать Twitter Storage на Scala, а весной началась работа по переписыванию всего поискового движка. Как часть этих изменений, БД MySQL (лежавшая в основе поиска) была заменена Lucene. И, наконец, совсем недавно команда разработчиков заявила о замене Ruby on Rails в области поиска — на его место встал Java-сервер, который они сами называют Blender. Результатом этой замены стало трехкратное снижение задержки при выполнении поискового запроса.
Читать дальше →
Всего голосов 72: ↑65 и ↓7+58
Комментарии82

Основы фотографии: выдержка, диафрагма, ГРИП, светочувствительность

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

Введение


Часто люди приобретают цифровые зеркальные камеры в погоне за качеством снимков, но при этом не имеют представления о технических моментах съемки. В основном это касается тех, кто до зеркалки держал в руках исключительно компактные фотоаппараты и пользовался автоматическими режимами (которые, к слову, весьма продвинутые в современных камерах).

В результате у кого-то возникает разочарование в камере и фотографии в целом, а другие проявляют терпение и пытаются освоить премудрости фотографии, чтобы раскрыть весь потенциал камеры с полноценным (или почти полноценным) сенсором.

Изначально я планировал написать одну статью, но по ходу дела понял, что объем получается слишком большой и решил разбить ее на несколько частей. В этой главе рассмотрю такие понятия как выдержка, диафрагма, ГРИП и светочувствительность, как эти параметры влияют на результат съемки. На очереди статья про типы и параметры объективов, работу со вспышками и советы по съемке в различных условиях.
Читать дальше →
Всего голосов 272: ↑232 и ↓40+192
Комментарии378

Кафе для IT-шников

Время на прочтение3 мин
Количество просмотров2.5K
Я люблю вкусно поесть, но зачастую приходится (или просто хочется) помимо еды еще и поработать, посёрфить по сети или пообщаться с кем-то в каком-либо из мессенджеров.
В последнее время WiFi в общепите перестаёт быть экзотикой и становится нормальным атрибутом, но для комфортного времяпрепровождения в кафе без отрыва от компьютера нужно чуть больше чем просто WiFi.
Собственно об этом и хотелось бы рассказать, поделиться своими соображениями и выслушать ваши, ну и самое главное — список кафе в разных городах и странах где можно с комфортом и полезно провести время.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии47

GRUB всемогущий, или Делаем загрузочную флешку

Время на прочтение8 мин
Количество просмотров557K
Про сам grub, загрузочные флешки и особенно специальные утилиты для создания дисков написано уже не мало, но выглядят они узко направленными. Например только для создания флешки Windows 7, различные PEtoUSB, есть более универсальные как в этом топике. Куча утилит по сути устанавливают загрузчик grub, isolinux (реже BCDW или lilo, еще реже свой как Win7), и затем раскладывают предложенные ему файлы (Windows7,WindowsXP, Ubuntu и т.д.) по папкам. От сюда и требовательность к образам (как писали в комментариях к этому топику).

А между тем абсолютное большинство выложенных в интернете дисков (особенно USB) как раз и используют isolinux и grub, что мешает их просто объединять? да ничего!

Я постараюсь с примерами рассказать, как сделать загрузочную, установочную и просто Live флешку, причем все в одном без заточенных под конкретный дистрибутив утилит. И иметь возможность, при необходимости, легко добавить на флешку еще что-то, без очередного ее переформатирования.
image
(С) Картинка оттуда
Читать дальше →
Всего голосов 122: ↑113 и ↓9+104
Комментарии62

Делаем загрузочно-установочную флешку

Время на прочтение2 мин
Количество просмотров774K
После поста о восстановлении флешек, оказалось, что у многих теперь есть рабочие, бесхозные флешки, которые обязательно нужно задействовать. Почему бы не сделать из них загрузочные флешки с дистрибутивами необходимых ОС? Это может здорово пригодиться при установке/переустановке операционных систем на нетбуки, где отсутствуют приводы оптических носителей. А иногда может даже ускорить процесс установки и сделать его намного тише на компьютере, где привод есть.
Хотя на Хабре уже описывались варианты создания загрузочных флешек, но вариант, который предлагаю я — слишком прост и по своему универсален, чтобы обойти его стороной.

image
Читать дальше →
Всего голосов 161: ↑142 и ↓19+123
Комментарии54

Ebay. Украина. О таможне и пересылках

Время на прочтение5 мин
Количество просмотров65K
О работе с Ebay написано много. Зачастую русскоязычные ресурсы описывают российские реалии и большая часть написанного применима к Украине, однако есть нюансы, на которые стоит обратить внимание.
Читать дальше →
Всего голосов 126: ↑119 и ↓7+112
Комментарии135

Мобильное солнечное зарядное устройство

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

Листая в очередной раз статьи хабра, нашел топик об автономном зарядном устройстве для телефона habrahabr.ru/blogs/DIY/94121, и сразу подумал о том, что на последний день рождения друзьями был презентован отличный девайс: Solar Mobile Charger P1100F для мобильного телефона, цифрого фотоаппарата или mp3-плеера. Обзоры устройств делать не приходилось, но это очень понравилось, поэтому решил поведать о нем общественности.
Оно предназначено для преобразования солнечной энергии в электрическую, которая накапливается во встроенном литий-ионном аккумуляторе емкостью 1500-2600mA/h.
P1100F требует только наличие солнечного света, а для пасмурных дней в комплекте предусмотрен сетевой адаптер, который позволяет зарядить встроенный аккумулятор от сети электропитания в любое время суток.

Под катом описание, фоточки, опыт использования
Всего голосов 42: ↑38 и ↓4+34
Комментарии65

Теория покупки из-за рубежа

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

Преамбула


Примерно месяц назад решил наконец купить себе нетбук, через интернет. Почему именно через интернет? Да просто решил получить опыт покупки, на будущее, плюс немного сэкономить. Информацию о покупках из-за рубежа собирал в своем личном блоге (ссылку по понятным причинам не даю) как с Хабра, так и с других ресурсов. Преимущественно она касается покупки через eBay, но в целом верна для любого онлайн-магазина.
Читать дальше →
Всего голосов 130: ↑125 и ↓5+120
Комментарии168

Ускорение загрузки Windows for fun and profit

Время на прочтение4 мин
Количество просмотров806K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Всего голосов 533: ↑517 и ↓16+501
Комментарии365

Две раскладки в одном флаконе

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

Первая — английская, рабочая. Вторая — украинская, родная, основная для общения. Третья — русская, в общем обычно не используемая, разве иногда — погуглить что-нибудь, вот, на Хабре комент или топик написать. При этом третья раскладка висела в списке активных, но при работе и постоянном переключении украинская-английская-украинская постоянно приходилось нажимать лишний раз Alt+Shift или Ctrl+Shift. Кроме того, часто случалось, что начал печатать, вроде как все хорошо, ан нет — раскладка русская, вместо 'і' пошли 'ы', вместо 'є' — 'э', и тому подобное. Мучился я так, мучился, и вот в один прекрасный день решил это дело как-то
оптимизировать
Всего голосов 80: ↑61 и ↓19+42
Комментарии137

Простой Тайм Менеджер для Android. Часть 2

Время на прочтение12 мин
Количество просмотров9.8K
В этой части мы будем доделывать приложение «Менеджер Времени» из первой части.

Сразу выражаю огромную благодарность Belkin и всем тем, кто плюсанул первую часть, вы помогли мне с инвайтом)

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

План действий:
  • Багфиксы предыдущей версии.
  • Модификация кода, для постоянной работы приложения, а не только для запущенного Activity
  • Уведомления
  • Закинем все это дело на маркет


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

Итак, поехали!
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии23

Простенький Time Manager для Android

Время на прочтение13 мин
Количество просмотров35K
Решил тут на досуге написать статейку о том, как писать приложения для Android'а. Писать будет простенький тайм менеджер. В этой части я напишу саму программу, приделаю к ней интерфейс с анимацией, а в следующей, если будет интересно, напишу к ней сервис, чтоб программа работала еще и в фоновом режиме.

Что будет рассмотрено:
  • RelativeLayout для реализации интерфейса программы с наложением изображений друг на друга.
  • Timer для реализации алгоритма подсчета времени.
  • Animation для свистоперделок красивого интерфейса апплета.


Для наглядности добавил скринкаст как все это добро работает.

Итак, пишем простенький тайм менеджер для Android'а.
Читать дальше →
Всего голосов 59: ↑56 и ↓3+53
Комментарии31

Обзор Samsung GT-i5700 Galaxy Spica

Время на прочтение8 мин
Количество просмотров12K
В конце ноября на Российский рынок (похоже только на Российский) вышел смартфон Samsung GT-i5700 Galaxy Spica. На сегодняшний день — это один из самых доступных Android аппаратов в мире и тем более у нас. Я приобрел его в Связном за без малого 14 т.р. За месяц практической эксплуатации у меня сложилось определенное мнение, которым я с вами поделюсь. Это чисто субъективный обзор. Как бывший владелец Nokia 5800 и имеющий шапочное знакомство с HTC HERO и iPhone 3G, невольно буду сравнивать i5700 с этими аппаратами, хотя по цене он соответствует только Nokia 5800.

image

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

Оптимизируем, оптимизируем и еще раз оптимизируем

Время на прочтение5 мин
Количество просмотров24K
По долгу службы мне периодически приходится пользоваться профайлером, так как требования к производительности серверов задокументированы и не могут опускаться ниже определенного уровня. Помимо некоторых очевидных архитектурных изменений и решений частенько находятся повторяющиеся места от модуля к модулю, от одного проекта к другому, которые создают дополнительную нагрузку на виртуальную машину, которыми и хочу поделиться.
Так уж случилось, что на глаза чаще всего попадался код работы с Date потому с него и начнем:

Date

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

    public boolean isValid(Date start, Date end) {
        Date now = new Date();
        return start.before(now) && end.after(now); 
    }

Казалось бы — вполне очевидное и правильное решение. В принципе, да, за исключением двух моментов:
  • Использовать Date сегодня в java — уже, пожалуй, моветон, учитывая тот факт, что почти все методы в нем уже Deprecated.
  • Нету смысла создавать новый объект даты, если вполне можно обойтись примитивом long:

    public boolean isValid(Date start, Date end) {
        long now = System.currentTimeMillis();
        return start.getTime() < now && now < end.getTIme(); 
    }


SimpleDateFormat

Очень часто в веб проектах возникает задача перевести строку в дату или наоборот дату в строку. Задача довольно типичная и чаще всего выглядит так:

    return new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z").parse(dateString);

Это правильное и быстрое решение, но если серверу приходится парсить строку на каждый пользовательский реквест в каждом из сотен потоков — это может ощутимо бить по производительности сервера в виду довольно тяжеловесного конструктора SimpleDateFormat, да и помимо самого форматера создается множество других объектов в том числе и не легкий Calendar (размер которого > 400 байт).

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

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

Но решения есть и их как минимум 2:
  • Старый, добрый ThreadLocal — cоздаем SimpleDateFormat для каждого потока 1 раз и переиспользуем для каждого последующего запроса. Данный подход поможет ускорить парсинг даты в 2-4 раза за счет избежания создания объектов SimpleDateFormat на каждый запрос.
  • Joda и ее потокобезопасный аналог SimpleDateFormat — DateTimeFormat. Хоть йода в целом и медленнее дефолтного Java Date API в парсинге дат они идут наравне. Несколько тестов можно глянуть тут.

Читать дальше →
Всего голосов 50: ↑38 и ↓12+26
Комментарии34

Организуем выделение текста в textarea

Время на прочтение4 мин
Количество просмотров24K
Добрый день.

В разработке интерфейсов иногда можно встретиться с задачей выделения вводимого пользователем текста в зависимости от определенных условий. (Например, была реализована серверная проверка грамматики, либо необходимо выделять определенным цветом те или иные слова\участки и т.д.)
Однако, элемент textarea не поддерживает html\bb теги. Как один из способов решения — использование contenteditable в элементах div.
В данной небольшой статье я предлагаю более-менее подробно рассмотреть способ выделения текста, используя textarea.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии14

Дистанционное обучение с помощью мобильных устройств

Время на прочтение4 мин
Количество просмотров104K
Еще 10—20 лет назад полноценное дистанционное обучение было практически невозможным. Необходимость переезда в другой город или даже страну являлась, наверное, одной из наиболее частых причин, почему предпочтение отдавалось местным вузам, вместо того чтобы поступать в университеты своей мечты. Да, существует заочное образование, но мы прекрасно понимаем, что в большинстве случаев данная форма образования — всего лишь для галочки. К счастью, в настоящее время есть возможность учиться, было бы желание. Для тех, у кого с желанием все в порядке, прошу под кат.

image
Читать дальше →
Всего голосов 63: ↑59 и ↓4+55
Комментарии18

Публикация артефакта в Maven Central через Sonatype OSS Repository Hosting Service

Время на прочтение23 мин
Количество просмотров23K
На написание этой статьи меня сподвигла некоторая разрозненность источников информации по такой
важной, на мой взгляд, теме, как публикация своих артефактов в Maven Central. Конечно, следует
отдать должное сотрудникам Sonatype: их официальный гайд (ссылка в конце статьи) достаточно полно
описывает весь процесс. Но в нём нет некоторых неочевидных тонкостей (вроде проблемы хранения
паролей), и он сам выглядит немного неряшливо. На русском же языке на эту тему ресурсов я не нашёл в
принципе. Лично для меня это не страшно, но многих это может остановить.

Внимание, много текста
Всего голосов 5: ↑5 и ↓0+5
Комментарии12

Информация

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