Архитектурные секции у многих вызывают чувство неопределенности и тревоги: формулировки не изобилуют деталями, как проверить ответ — непонятно. При этом способность пройти архитектурную секцию отличает вчерашнего выпускника от человека, которому можно доверить строить нечто большее, чем обход бинарных деревьев. В определенный момент я решил как следует подготовиться секции по дизайну, потратил на это около пары недель и выработал системный подход, которым хочу с вами поделиться.
Сергей @nekoval
Пользователь
ФИАС или КЛАДР: выбираем справочник адресов
9 min
182K 1 июля 2014 года произошло одно из самых значимых событий в истории государства Российского: с этого момента у нас в стране наконец появилась эталонная база адресов по всем, даже самым малым населённым пунктам! Имя этой базе — ФИАС. Собственно, сам по себе справочник ФИАС появился гораздо раньше, но именно 1 июля вступил в силу ФЗ 443, согласно которому все государственные и муниципальные структуры теперь должны опираться на него как на единственно верную базу адресов. Мы решили исследовать, стоит ли переходить на ФИАС, и с какими подводными камнями столкнутся те, кто решит это делать.
Прочитав статью, вы узнаете:
Прочитав статью, вы узнаете:
- Чем отличается ФИАС от КЛАДР
- Можно ли уже использовать ФИАС вместо КЛАДР
- Стоит ли беспокоиться о переходе на ФИАС тем, кто уже работает с КЛАДР
- Решит ли ФИАС текущие проблемы с адресами
- Что ждёт тех, кто только начинает использовать адресные справочники
- Какие есть самые заметные и важные проблемы при работе с ФИАС и КЛАДР
+61
Опасное видео: как я нашёл уязвимость в видеохостингах и не умер через 7 дней
6 min
103KВсем привет! Я Максим Андреев, программист бэкенда Облака Mail.Ru. В свободное время я люблю искать баги. В сегодняшнем посте я хочу рассказать об одной довольно интересной уязвимости, которую я нашёл и зарепортил в bug bounty нескольких крупных компаний, за что получил солидное вознаграждение. Уязвимость заключается в следующем: если сформировать специальный видеофайл и загрузить его на сервер, то:
- можно получить на нём SSRF;
- можно получить local file read;
- если пользователь скачает этот файл, то автоматически будет подвержен уязвимостям, даже если его не откроет: можно будет получить доступ к данным на компьютере пользователя и узнать его имя.
+245
Соавторство. Стартап как авторский проект
6 min
6.8KУспех стартапа – в прорывной идее, которую нужно реализовать в быстрые сроки с помощью слаженной работы команды специалистов-единомышленников.
В чем проблема?
+12
«Чтобы стать хорошим системщиком, нужно 5–10 лет опыта» — интервью с Алексеем Шипилёвым из Java Performance Team
26 min
28KВ преддверии Java-конференции Joker 2015, которая начнется уже завтра, я публикую большое интервью с Алексеем Шипилёвым, инженером команды Java Performance Team из Oracle, одним из самых крутых и известных во всем мире специалистов по производительности. Ну и конечно, прекрасным спикером.
С Алексеем мы подробно поговорили:
Вот видео нашего разговора. Больше часа длиной, можно слушать в дороге.
Ниже под катом — расшифровка нашей беседы для тех, кто видео не очень.
С Алексеем мы подробно поговорили:
- про грядущие изменения в классе String;
- про то, кто же на самом деле разрабатывает OpenSource;
- про системных разработчиков и их карьеру;
- про обмен технологиями, «научную» и «продуктовую» разработку;
- про сложность низкоуровневых задач;
- про развитие Java-сообщества и бенчмарк-войны;
- про mutable vs immutable;
- про Unsafe;
- про JMH, бенчмарки и узкую специализацию.
Вот видео нашего разговора. Больше часа длиной, можно слушать в дороге.
Ниже под катом — расшифровка нашей беседы для тех, кто видео не очень.
+48
Утилиты командной строки могут быть в 235-раз быстрее вашего Hadoop кластера
7 min
45KTranslation
Примечания tsafin:
Перед публикацией своего цикла статей по MapReduce в Caché, мне показалось важным озвучить данную прошлогоднюю точку зрения из статьи Адама Дрейка «Command-line tools can be 235x faster than your Hadoop cluster». К сожалению оригинальная статья Тома Хайдена, на которую он ссылается стала уже недоступна на сайте Тома, но её, по-прежнему, можно найти в архивах. Для полноты картины предлагаю ознакомиться и с ней тоже.
Посещая в очередной раз свои любимые сайты, я нашел крутую статью Тома Хайдена об использовании Amazon Elastic Map Reduce (EMR) и mrjob для вычисления статистики отношения выигрыш/проигрыш в наборе данных со статистикой по шахматным матчам, которую он скачал с сайта millionbase archive, и c которой он начал играться используя EMR. Так как объем данных был всего 1.75GB, описывающий 2 миллиона шахматных партий, то я скептически отнесся к использованию Hadoop для данной задачи, хотя были и понятны его намерения просто поиграться и изучить плотнее, на реальном примере, утилиту mrjob и инфраструктуру EMR.
Перед публикацией своего цикла статей по MapReduce в Caché, мне показалось важным озвучить данную прошлогоднюю точку зрения из статьи Адама Дрейка «Command-line tools can be 235x faster than your Hadoop cluster». К сожалению оригинальная статья Тома Хайдена, на которую он ссылается стала уже недоступна на сайте Тома, но её, по-прежнему, можно найти в архивах. Для полноты картины предлагаю ознакомиться и с ней тоже.
Введение
Посещая в очередной раз свои любимые сайты, я нашел крутую статью Тома Хайдена об использовании Amazon Elastic Map Reduce (EMR) и mrjob для вычисления статистики отношения выигрыш/проигрыш в наборе данных со статистикой по шахматным матчам, которую он скачал с сайта millionbase archive, и c которой он начал играться используя EMR. Так как объем данных был всего 1.75GB, описывающий 2 миллиона шахматных партий, то я скептически отнесся к использованию Hadoop для данной задачи, хотя были и понятны его намерения просто поиграться и изучить плотнее, на реальном примере, утилиту mrjob и инфраструктуру EMR.
+62
Новые возможности платформы VoxImplant: Instant Messaging и Presence + демо на ReactJS/Flux
3 min
6.5KTutorial
Внимание! Данная статья устарела. Вы можете ознакомиться с более свежими статьями здесь или почитать блог на нашем сайте.
В последнее время мы были заняты работой над большим обновлением VoxImplant, которое должно сделать платформу еще более гибкой и удобной для разработчиков коммуникационных сервисов. Количество новых функций достаточно большое, поэтому будем рассказывать о них по-порядку и начнем с месседжинга и презенса. Так как банальное описание функционала мало кому интересно, то сразу разберем пример создания приложения для внутрикорпоративных коммуникаций с использованием популярного ReactJS и Flux. Это позволяет достаточно оперативно сделать более-менее сложное приложение, ну и заодно показать как использовать VoxImplant при таком подходе. Presence у нас тоже с некоторыми интересными особенностями, про которые мы расскажем более детально и объясним потом зачем это может быть нужно.
+7
Видео всех лекций с «Курсов информационных технологий» от «Яндекса»
1 min
30KДля тех, кто не смог посетить Курсы информационных технологий, видеоролики всех лекций выложены в свободный доступ. Это лекции по полтора-два часа на базовые темы: операционные системы; архитектура ЭВМ; устройство GNU/Linux; системы хранения данных; файловые системы; сети и протоколы; виртуализация; безопасность.
+86
Новая языково-независимая NLP библиотека
7 min
27KВведение
Каждый, кто пришел в этот мир, проходил через путь познания языка. При этом человек обучается языку отнюдь не по правилам или грамматике. Даже, более того, каждый человек, будучи еще ребенком, сначала учит такое странное явление как язык, а уже позднее, с возрастом, начинает учить его правила (в садике и школе). Это объясняет забавный факт, каждый, кто изучает иностранный язык в зрелом возрасте, когда он уже менее склонен к изучению новых языков, знает о предмете своего изучения больше, чем большинство носителей этого языка.
Это простое наблюдение дает возможность предполагать, что для понимания языка вовсе не нужно иметь знания о нем. Достаточно лишь эмпирии (опыта), который можно почерпнуть от окружающих. Но именно об этом забывают практически все современные НЛП библиотеки, пытаясь построить все-обемлящую языковую модель.
Для более четкого понимания представьте себя слепым и глухим. И, даже родись в таком состоянии, вы бы могли взаимодействовать с миром и освоить язык. Само собой, что ваше представление о мире было бы иным, нежели у всех вокруг. Но вы могли бы все таким же образом взаимодействовать с миром. Некому бы было объяснить Вам что происходит и что такое язык ив се же, как то, тактильно анализирую шрифт Брайля Вы бы понемного сдвинулись с мертвой точки.
А это значит, что для понимания сообщения на каком-либо языке нам не нужно ничего, кроме самого сообщения. При условии, что это сообщение достаточно большое. Именно эта идея и положена в основу библиотеки под названием AIF. За деталями прошу пожаловать под кат.
+18
Прекратите скручивать (восклицательный знак)
6 min
1.7MTutorial
+652
Как была взломана Gamma International
12 min
87K3 августа в сабреддите /r/Anarchism некто пользователь PhineasFisher создал тред, в котором сообщил о том, что ему удалось украсть 40 гигабайт различных данных компании Gamma International. Возможно, подобная история могла оказаться не столь громкой, если бы не бизнес, которым занимается эта европейская фирма — создание и продажа программных средств для взлома и скрытой слежки (а иными словами — самой настоящей малвари), заказчиками которых обычно выступали государственные структуры. Через несколько дней после первого сообщения взломщик выложил длинный рассказ о том, как ему удалось проникнуть на сервера Gamma International и что удалось там найти.
+105
jQuery UI как инфраструктура для плагинов
6 min
21KВведение
jQuery UI больше всего известен как набор готовых виджетов. Главное их преимущество, на мой взгляд, — консистентное API: каждый виджет управляется одинаково. Второе их преимущество — они хранят свое состояние: если повторно навесить виджет на элемент, то результатом будет уже существующий инстанс виджета.
Но jQuery UI — это не только набор окошечек и табов (далеко не всеми любимых). Это еще целая инфраструктура для создания своих виджетов: с удобным консистентным API, с хранением состояния и с возможностью наследования. Как ни странно, это для многих новость, в результате чего и появилась эта статья — так же, как это было новостью для меня всего несколько месяцев назад.
+85
Переезд проекта с SVN на Git
8 min
71KМного лет подряд в качестве системы контроля версий для большого количества проектов использовали только SVN. Но наступил момент, когда количество разработчиков на одном из проектов заметно увеличилось, проект уже запущен в работу, и нужно как активно разрабатывать параллельно несколько фич, так и фиксить уже имеющиеся баги в оперативном режиме. Единый trunk в SVN не позволяет этого делать, а организация бранчей в нем же превращает жизнь разработчиков в ад. Поэтому было принято решение о переезде этого проекта с SVN на Git.
+107
DoS-атака на сайты с собственными капчами
3 min
17KМожно найти достаточно много сайтов, которые защищены от разного рода внешней нежелательной автоматической активности (ботов) при помощи капч. Причем во многих случаях генерированием этих самых капч занимается тот же сервер, на котором и расположен сайт. Прикрутить такую капчу на сайт очень просто, да и есть бесплатные капча-генерирующие библиотеки (KCAPTCHA, например).
В чем опасность?
В чем опасность?
+44
Как мы разрабатывали интеграцию интернет-магазина с 1С: Предприятие и почему она стала массовой. Часть 3
8 min
61KВ завершающей части рассказа о нашей реализации интеграции интернет-магазина 1С: Битрикс с системой 1С: Управление торговлей, хотелось бы рассказать о решении бизнес-задачи по обмену данными по заказам покупателей.
+46
Новая технология позволяет быстро встраивать новые объекты в изображения
2 min
3.3KВ принципе, даже для опытного графического дизайнера встраивание какого-либо нового объекта в существующее изображение (фотографию) — довольно сложная задача. Конечно, уровень сложности подобной проблемы варьируется, но все же это не дело пары минут. А вот разработчик Кевин Карч, PhD университета Иллинойса, создал собственный «Photoshop»
+105
Экстремальное тестирование streaming репликации PostgreSQL 9.1
3 min
5.7KВозникла задача внедрения streaming репликации Postgresql 9.1 на продакшене. А т.к. раньше с нею дела не имели, решили провести ее «эстремальное тестирование».
Для этого были запущены две виртуальные машины VMWare Player с Ubuntu Server. Установлена и настроена streaming репликация на Postgresql 9.1.
Для этого были запущены две виртуальные машины VMWare Player с Ubuntu Server. Установлена и настроена streaming репликация на Postgresql 9.1.
+20
Online redo logs или Событие контрольной точки в Oracle
7 min
56KДовольно часто случается такая неприятность, что в alert.log базы одно за другим сыпятся сообщения типа «Checkpoint not complete». Стандартный совет в этом случае: «увеличьте количество и/или размер redo логов». А дальше вопрос, кто такие эти redo логи и с чем их едят.
+5
Лучшая CRM-система для Asterisk
4 min
63KИнтеграция CRM-систем и телефонии не только новая тенденция, но и эффективное решение.
Автоматическое открытие карточки клиента с выводом информации о нем снижает время обработки звонка, звонки кликом в считанные секунды соединят менеджера с клиентом, статистика вызовов и прослушивание записей разговоров прямо из CRM покажут всю картину руководителю.
Open Source телефонная платформа Asterisk – самое популярное решение IP-телефонии в России. Все больше и больше компаний делают выбор в пользу Asterisk. Проект MyAsterisk.ru – один из лидеров рынка, предлагающих собственные решения на базе Asterisk. MyAsterisk Team провели исследование на тему «Интеграция CRM и Asterisk». По итогам все CRM поделились на несколько групп.
Автоматическое открытие карточки клиента с выводом информации о нем снижает время обработки звонка, звонки кликом в считанные секунды соединят менеджера с клиентом, статистика вызовов и прослушивание записей разговоров прямо из CRM покажут всю картину руководителю.
Open Source телефонная платформа Asterisk – самое популярное решение IP-телефонии в России. Все больше и больше компаний делают выбор в пользу Asterisk. Проект MyAsterisk.ru – один из лидеров рынка, предлагающих собственные решения на базе Asterisk. MyAsterisk Team провели исследование на тему «Интеграция CRM и Asterisk». По итогам все CRM поделились на несколько групп.
+5
RedDwarf — cерверная платформа для разработки онлайн-игр на Java
4 min
9.4KДобрый день!
Последние два года я занимаюсь разработкой сервера игр на платформе RedDwarf – свободной (GPLv2) серверной платформе для создания онлайн-игр на Java. На Хабре очень мало информации об этой платформе, поэтому я решил исправить этот недостаток.
Разработка данного движка изначально велась компанией Sun, сама платформа называлась Sun Game Server (аббревиатура sgs до сих пор используется в наименованиях пакетов). В 2005 году сервер был представлен миру под названием Project Darkstar. После того, как Oracle купила Sun, от поддержки проекта сановцы отказались, платформа была переименована в RedDwarf Server и сейчас существует только при поддержке сообщества. Проект развивается сейчас гораздо медленней, но всё же развивается – в прошлом году вышла версия 0.10.2. Всех планируемых фишек (прозрачного масштабирования) в ней ещё нет, но как основа для игрового сервера используется во многих проектах.
Игровой сервер на платформе RedDwarf состоит из следующих частей.
Последние два года я занимаюсь разработкой сервера игр на платформе RedDwarf – свободной (GPLv2) серверной платформе для создания онлайн-игр на Java. На Хабре очень мало информации об этой платформе, поэтому я решил исправить этот недостаток.
История
Разработка данного движка изначально велась компанией Sun, сама платформа называлась Sun Game Server (аббревиатура sgs до сих пор используется в наименованиях пакетов). В 2005 году сервер был представлен миру под названием Project Darkstar. После того, как Oracle купила Sun, от поддержки проекта сановцы отказались, платформа была переименована в RedDwarf Server и сейчас существует только при поддержке сообщества. Проект развивается сейчас гораздо медленней, но всё же развивается – в прошлом году вышла версия 0.10.2. Всех планируемых фишек (прозрачного масштабирования) в ней ещё нет, но как основа для игрового сервера используется во многих проектах.
Основные принципы
Игровой сервер на платформе RedDwarf состоит из следующих частей.
- Игровое приложение
- Расширения
- Ядро
- Внутренняя БД
+44
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity