Pull to refresh
-4
0
Евгений @afanasiy_nikitin

User

Send message

Что нужно знать каждому разработчику о кодировках и наборах символов для работы с текстом, часть 2

Reading time12 min
Views80K
Это вторая часть перевода статьи What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text, первая часть — тут.


Мой документ – полная чушь в любой кодировке!


Если последовательность бит не выглядит разумной(с точки зрения человека), то это случай, когда документ скорее всего был неверно сконвертирован в определенный момент. К примеру мы берем текст ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢ, и, не придумав ничего лучше, сохраняем его в UTF-8. Текстовый редактор предположил, что он правильно прочитал текст с кодировкой Mac Roman и теперь его надо сохранить в другой кодировке. В конце концов, все эти символы валидны в Unicode. В смысле, в Unicode есть пункт для É, для G, и так далее. Так что мы просто сохраняем его в UTF-8:

11000011 10001001 01000111 11000011 10001001 11000011 10101100 11000011 10001001 01010010 11000011 10000101 01011011 11000011 10001001 01100110 11000011 10001001 01000010 11000011 10001001 11000011 10101100 11000011 10001001 01001111 11000011 10000111 11000011 10010101 11000011 10101100 11000011 10010100 11000011 10000111 11000010 10110101 11000011 10000111 11100010 10001001 10100000 11000011 10000111 11000010 10111011 11000011 10000111 11000010 10100010

Читать дальше →
Total votes 76: ↑74 and ↓2+72
Comments21

Перехват HTTPS-траффика между Android-устройством и внешним сервером

Reading time3 min
Views160K

Иногда бывает любопытно подсмотреть, что пересылают туда-сюда разные Android-приложения по HTTP и HTTPS протоколам. Иногда даже при разработке собственного ПО удобно видеть весь трафик в реальном времени. Для реализации этих задач давно придумано много хороших программ, таких, к примеру, как Charles или Fiddler2. На самом деле их намного больше, вот только две вышеуказанные дают возможность нормально просматривать не только HTTP, но и HTTPS.

Трудности начинаются тогда, когда речь заходит о перехвате трафика между Андроид-устройством и внешним сервером. В случае незашифрованного (HTTP-протокол) трафика всё весьма тривиально (вот и инструкция есть) — разрешаем Fiddler2 внешние соединения, в Андроиде устанавливаем прокси сервером адрес нашей машины с Fiddler2 — и вуаля, всё работает. А вот на настройку перехвата HTTPS-трафика у меня ушло чуть больше времени.
Читать дальше →
Total votes 51: ↑42 and ↓9+33
Comments17

Тёмная сторона Силы. Почему в продуктовой команде должен быть руководитель проекта

Reading time3 min
Views74K
Недавно я перечитывал свою старую статью по управлению людьми, написанную около трёх лет назад. В тот момент я был начинающим руководителем проектов и «тёмная сторона силы» в управлении проектами казалась далёкой и нереальной.

Project Manager vs. Product Manager

Тогда в моей ответственности был заказной проект с чёткими требованиями, «моя» команда, которой я ставил задачи, защищал и оберегал от внешнего мира, расписание, которое я составлял и отстаивал в дискуссиях с руководством и заказчиком. С заказчиком, как и с руководством, я общался с позиции команды и отстаивал её интересы: чтобы сроки были достаточны, чтобы новые требования не появлялись «ниоткуда», чтобы претензии к качеству имели под собой реальные основы и так далее. Отношение с командой при этом было, на мой взгляд, близкое к идеалу. Конечно, встречались и конфликты и разногласия, но, в большинстве случаев, они разрешались мгновенно и безболезненно.
Читать про тёмную сторону
Total votes 94: ↑77 and ↓17+60
Comments56

27+ ресурсов для онлайн-обучения

Reading time5 min
Views969K

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

Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.

Читать дальше →
Total votes 174: ↑163 and ↓11+152
Comments68

Тюнингуем eclipse — TOP 7 plugins

Reading time2 min
Views56K
Уже довольно много времени я работаю в популярной и на мой взгляд лучшей IDE Eclipse. Всегда любил затачивать инструменты под себя, чтобы достичь максимальной производительности, в связи с этим хочу поделится опытом, а именно списком плагинов к eclipse которые использую в повседневной работе.



Под катом будем тюнинговать Eclipse for Java EE
Total votes 77: ↑64 and ↓13+51
Comments45

Мой велосипед для сниппетов

Reading time1 min
Views23K
Сниппет — это небольшой кусок кода, который программист многократно использует в своей практике.
Сам я сниппетами пользуюсь не так давно, но на практике оценил их пользу. Бывали ситуации, когда нужен был фрагмент кода который я писал недавно, но вспомнить где он находится я не мог. Выручал Интернет, но у меня же должны быть собственные наработки. Да и не зря же я так долго их собирал. После недолгих поисков нашлось несколько интересных специализированных сервисов как раз для сниппетов. И так эти сайты мне понравились, что я решил сделать что-то похожее или даже лучше :)
Читать дальше →
Total votes 62: ↑46 and ↓16+30
Comments95

Я не знаю ООП

Reading time12 min
Views548K
Я не умею программировать на объектно-ориентированных языках. Не научился. После 5 лет промышленного программирования на Java я всё ещё не знаю, как создать хорошую систему в объектно-ориентированном стиле. Просто не понимаю.

Я пытался научиться, честно. Я изучал паттерны, читал код open source проектов, пытался строить в голове стройные концепции, но так и не понял принципы создания качественных объектно-ориентированных программ. Возможно кто-то другой их понял, но не я.

И вот несколько вещей, которые вызывают у меня непонимание.
Читать дальше →
Total votes 412: ↑309 and ↓103+206
Comments870

Еще один способ отладки Android приложений на виртуальном устройстве

Reading time2 min
Views44K
Дожил я до такой жизни, что мне понадобилось написать программку для android с поддержкой bluetooth. Все время мучать планшет ради отладки не хотелось, поэтому самый естественный путь — воспользоваться эмулятором. И вот, когда я установил Adk и idea, на лбу образовались 3 шишки от граблей:
  • Основной эмулятор ADK жутко медленный
  • Интеловский нативный эмулятор не работает на компьютере с процессором AMD
  • ADK вообще не поддерживает эмуляцию bluetooth


Мы живем не в самом худшем из миров, и поэтому мне удалось довольно быстро найти приемлемое решение.
Мало букв, много картинок
Total votes 37: ↑29 and ↓8+21
Comments27

Checkstyle и Java. Поможет ли автоматическая инспекция кодa?

Reading time10 min
Views11K


В последнее время на Хабре заметно участились статьи об автоматизации и оптимизации код-ревью, инспекциях кода и других способах поддержания кода крупных проектов в достойном виде (например, статья 1, статья 2, статья 3).

Думаю, постоянные читатели уже встречали предыдущие посты (первый, второй), где мои коллеги рассказывали об использовании Java-библиотеки Checkstyle и делились нашим совместным опытом по ее расширению.

Последние труды нашей команды по написанию дополнительных чеков (проверок) для Checkstyle вошли в новую сборку нашего дополнения для Eclipse Checkstyle-плагина Eclipse-cs (sevntu-checkstyle 1.5.3, 4.09.2012).

Мы продолжаем эксперименты по автоматизации поиска ошибок на этапе написания Java — кода. Мы убедились в том, что писать свои проверки для Checkstyle несложно — точнее совсем просто! Сложнее написать чек, действительно уникальный и полезный в разработке (а еще сложнее — позже договориться со всеми членами команды разработчиков о совместном использовании нового чека). В этом посте я постараюсь описать последние достижения нашей команды в направлении разработки новых чеков для Checkstyle. Также ниже я хотел бы немного осветить принцип действия, полезность и ограничения библиотеки Checkstyle, Eclipse Checkstyle-плагина и нашего к нему дополнения.

Читать далее...
Total votes 25: ↑25 and ↓0+25
Comments18

Игра «Жизнь»: моделируем эволюцию

Reading time3 min
Views54K
В комментариях к моему предыдущему посту «Игра «Жизнь» и моделирование естественного отбора» первое же, что предложили, — добавить скрещивание, чтобы новая клетка получала не копию генома одного родителя, а смесь от нескольких. Я подозревал, что итог это не изменит. Но, покрутив в голове идею, заинтересовался: ведь так можно получить модель не просто естественного отбора, а уже полноценной эволюции. Благо, реализовать это было не сложно. Так что встречайте: «Жизнь», теперь со скрещиванием и мутациями.

Ну да, ещё и с мутациями. Моделировать, так моделировать.

Подробности, как водится, под катом.
Читать дальше →
Total votes 73: ↑72 and ↓1+71
Comments70

Обзор зарплат Системных администраторов ч.2 (Windows & *nix)

Reading time3 min
Views78K
Спустя ровно год мы выполняем свое обещание и публикуем 2-ю часть нашего поста про зарплаты системных администраторов (см. часть первую). Более того, в этот раз мы решили объединить в один пост данные о зарплатах администраторов windows и *nix.
Для тех кто читает наш блог впервые, уточню, мы — это рекрутинговая компания IT-Доминанта.



В этом Обзоре рассмотрены следующие должности:
  • Младший системный администратор (Windows or *nix)
  • Системный администратор ОС Windows
  • Ведущий системный администратор ОС Windows
  • Системный администратор ОС *nix
  • Ведущий системный администратор ОС *nix
Читать дальше →
Total votes 52: ↑43 and ↓9+34
Comments137

Обзор зарплат «мобильных» разработчиков

Reading time4 min
Views88K
Наша компания занимается подбором IT-персонала во многих крупных городах России и Европы. Два раза в год мы проводим исследования зарплат сотрудников IT компаний, чтобы быть в курсе малейших изменений рынка.

image

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

Сказано — сделано! Первый пост посвящен детальному разбору зарплат специалистов в сфере мобильных разработок. Руководствоваться будем данными, полученными в ходе исследования в Москве, Санкт-Петербурге и Нижнем Новгороде.
Читать дальше →
Total votes 86: ↑79 and ↓7+72
Comments56

Обзор зарплат программистов Java/C++/C#/Delphi

Reading time2 min
Views263K
Мы (мы — это рекрутинговая компания IT-Доминанта), продолжаем публиковать результаты нашего исследования рынка заработных плат в IT индустрии.
Очередной пост мы решили посвятить:
  • Java программистам
  • С++ программистам
  • C# программист
  • Delphi программистам


Читать дальше →
Total votes 87: ↑68 and ↓19+49
Comments119

Обзор зарплат Системных администраторов ч.1 (Windows)

Reading time5 min
Views98K
Обсудив зарплаты Дизайнеров и «Мобильных» программистов, пришло время поговорить о дорогих и всеми любимых бородатых любителях башорга — Системных администраторах.

image

На всякий случай, мы по по-прежнему зовёмся IT-Доминанта и, помимо рекрутинга, занимаемся исследованием зарплат сотрудников IT-компаний, чтобы быть в курсе малейших изменений рынка.

В обзоре будут рассмотрены следующие должности:
  • Младший системный администратор
  • Системный администратор Windows
  • Ведущий системный администратор Windows
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments23

Немного о хаосе и о том, как его сотворить

Reading time9 min
Views94K

Говоря «хаос», мы, обычно, подразумеваем полное отсутствие порядка, абсолютную неупорядоченность и случайность. С математической точки зрения, хаос и порядок – понятия не взаимоисключающие. Теория хаоса (есть что-то завораживающие в названиях математических теорий) – достаточно молодая математическая область, создание которой приравнивают по значимости открытий ХХ века к созданию квантовой механики. Хаос случается в нелинейных динамических системах. Иначе говоря, любой процесс, который протекает со временем, может быть хаотичным (например, высота дерева, температура тела или популяция мадагаскарских тараканов).
Читать дальше →
Total votes 73: ↑71 and ↓2+69
Comments65

Необходимые ресурсы для геймдизайнеров

Reading time3 min
Views82K
В данном топике я хочу представить подборку ресурсов, имеющих непосредственное отношение к дизайну и разработке игр. В первую очередь, эта информация будет полезна начинающим или будущим геймдизайнерам, которые только задумываются о выборе профессии, но, возможно, и профессионалы своего дела найдут что-то полезное или интересное для себя. Кроме того, я предполагаю, что читатели хорошо владеют английским языком, что в наше время для айтишников, настоящих или будущих, подразумевается практически по умолчанию.
Итак, поехали.
Читать дальше →
Total votes 60: ↑57 and ↓3+54
Comments25

Я СисАдмин — или личный опыт работы и внедрения СПО в корпоративную среду

Reading time6 min
Views30K
За 10 лет системного администрирования работаю с linux всего 4 года — работаю по-настоящему и в полной мере, хотя стремился к этому практически с самого начала. Ранее все мои предложения о внедрении или замене любого из сервисов на СПО не были подкреплены ни практикой, ни аргументами. Было только желание экспериментов и консолей. Естественно все эти предложения разбивались об стену негодования «Зачем менять, если работает» и «Linux? Я как то пробовал — мне не понравилось».
Читать дальше →
Total votes 59: ↑46 and ↓13+33
Comments53

JavaScript — это Бейсик сего дня! (В хорошем смысле.)

Reading time2 min
Views18K
С каждым днём во мне крепнет осознание того, что JavaScript стремится играть ту же роль (занять ту же нишу), которая была свойственна Бейсику лет тридцать или даже пятнадцать тому назад.

Иными словами, JavaScript становится простым и распространённым языком, далеко переросшим своё первоначальное предназначение, и на нём теперь можно сочинить почти какое угодно приложение (и клиентское, и серверное, и консольное… и даже с GUI, как я недавно убедился).

Создаются целые операционные системы (Firefox OS, Google Chrome OS, Open webOS), для которых JavaScript является не менее «родным», чем Си для UNIX в своё время.

Появляются языки, транслируемые в JavaScript (можно вспомнить CoffeeScript, Dart, новорождённый TypeScript, и так далее).

Заметив это, уместно тотчас же порадоваться тому, что к джаваскрипту предъявляют, по крайней мере, меньше серьёзных претензий, чем некогда к Бейсику, который по справедливости невзлюбили за его GOTO и поощрение «макаронного кода». Притом джаваскрипт гораздо лучше переносится и с платформы на платформу, и из браузера во браузер.

Кроме того, многие существующие проблемы джаваскрипта не имеют особенного значения, потому что устраняются широко распространёнными средствами с открытым исходным кодом. Так, нестрогость синтаксиса устраняется строгою проверкою исходного кода (JSLint, например). Нехватка средств обработки данных (массивов, объектов) и функций устраняется подключением Underscore, а строки помогает обработать Underscore.string, а даты — moment.js, например. Сложность употребления методов DOM (в которой, впрочем, повинен не язык JavaScript, а браузеры и их разнобой) преодолевается с помощью jQuery. И так далее. Это входит в привычку у программистов.

Читать дальше →
Total votes 82: ↑57 and ↓25+32
Comments46

Какой Java поток нагружает мой процессор

Reading time3 min
Views27K
Что Вы делаете, когда Ваше Java приложение потребляет 100% ЦП? Оказывается Вы легко можете найти проблемные потоки, используя встроенные Unix и JDK утилиты. Никакие инструменты профилирования не потребуются.
С целью тестирования мы будем использовать простую программу:
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments13

Настоящая проблема Android

Reading time9 min
Views14K
… не пиратство. Даже близко не пиратство.

Мне сложно рассуждать, используя неточные термины, такие как «большая», «сильная» или как в данном случае: «невероятно высокая». Если вы утверждаете, что проблема Android — это большая доля пиратства на основе субъективного высказывания одного разработчика или на основе общего мнения, то это не аргумент.
Читать дальше →
Total votes 92: ↑61 and ↓31+30
Comments78

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity