Думаю, большинство джавистов согласится, что java.util.ArrayList — наиболее используемая коллекция в мире Java. Она появилась в версии 1.2 и быстро стала "коллекцией по умолчанию", ведь в большинстве случаев её возможностей вполне достаточно для повседневной работы. В этот класс вносилось множество изменений (см., например, историю изменений в репозитории JDK 8), чтобы сделать его как можно более производительным. В этой заметке я покажу, что даже такой прокачанный компонент, как ArrayList всё ещё хранит в себе возможности для улучшения.
Менеджеры паролей, такие как KeePass, 1Password и множество других, в значительной степени решают эту проблему. С их помощью вы можете генерировать уникальный и безопасный пароль для каждого сайта, который вы посещаете. Но такой менеджер защищен ровно настолько, насколько безопасен главный пароль, который вы используете для доступа к нему. Вы должны быть уверены, что его достаточная случайность и неугадываемость подтверждена количественными измерениями, а не только тем, что вы воспринимаете его случайным по причине наличия нескольких цифр или восклицательных знаков. Если нам требуется истинная случайность, нам понадобится кое-что специальное.
К счастью, есть возможность купить что-то недорогое, с достаточной энтропией набора вероятностей и способное генерировать 3 бита информации за раз. Без электричества и достаточно надежно, позволяя сотням миллионов долларов ежедневно менять владельцев, основываясь на непогрешимости этой случайности. Читать дальше ->
Существует мнение, что использование С++ при разработке программного обеспечения для микроконтроллеров это как стрельба из пушки по воробьям. Мол код получается большого размера и неповоротливый, а мы привыкли бороться за каждый бит в ОЗУ или ПЗУ. И действительно, ведь язык Си был задуман как альтернатива ассемблеру, код должен был быть такой же компактный и быстрый, а читаемость и удобство разработки позволять легко писать довольно большие программы. Но ведь когда-то и разработчики на ассемблере говорили тоже самое про С, с тех пор утекло много воды и программистов, использующих только ассемблер, можно по пальцам пересчитать. Конечно, ассемблер еще играет важную роль в разработке кода для быстрых параллельных вычислений, написании ОСРВ, но это скорее исключение из правил. Так же как когда-то Си пробивал себе дорогу в качестве стандарта для встроенного ПО, так и язык С++ уже вполне может заменить Си в этой области. Современный С++ стандарта С++14 имеет достаточно средств для того, чтобы создавать компактный код, и не уступает по эффективности коду, созданному на Си, а порой, благодаря нововведениям, может быть и рациональнее. Ниже приведен код поиска наименьшего числа в массиве из 5 целых чисел на двух языках Си и С++ на компиляторе IAR for ARM 8.20. Читать дальше ->
Сейчас наверняка все слышали о таком понятии, как криптовалюта или Биткоин. Эта тема является одной из самых популярных и обсуждаемых на сегодняшний день. Про «крипту» говорят везде: в интернете, на телевидении, по радио, в кругу семьи и друзей и т.д. Естественно, злоумышленники также положили глаз на эту область, и вновь приходится говорить о способах атак хакеров. Одним из этих способов является фишинг криптовалют.
Фишинг сам по себе является интернет атакой, сутью которой является обман получателя с целью с целью обретения личных данных, таких как имя пользователя, пароли, банковские данные и т.д. Организатор подобной атаки составляет правдоподобное письмо, которое должно убедить цель, что отправитель является надежной организацией или личностью, и отправляет его с помощью интернет-почты или социальных сетей. Читать дальше →
Пожалуй, непопулярное мнение (и тут немного иронии от меня).
Чтобы быть способным и отличным инженером, вам не нужно писать статьи в блоге, участвовать в проектах open source, выступать с техническими лекциями или делать что-нибудь ещё.
Можете оставить свой код в офисе — и это вполне нормально.
Данная статья является частью моей научной работы в ВУЗе, которая звучала так: «Программный комплекс детектирования лиц в видеопотоке с использованием сверточной нейронной сети». Цель работы была — улучшение скоростных характеристик в процессе детектирования лиц в видеопотоке. В качестве видео потока использовалась камера смартфона, писалось десктопное ПС (язык Kotlin) для создания и обучения сверточной нейросети, а также мобильное приложение под Android (язык Kotlin), которая использовала обученную сеть и «пыталась» распознать лица из видеопотока камеры. Результаты скажу получились так себе, использовать точную копию предложенной мной топологии на свой страх и риск (я бы не рекомендовал). Читать дальше ->
Ознакомившись с рынком первичного жилья в Московской области, мы, конечно же, столкнулись с наличием обманутых дольщиков и проблемных объектов, так называемых «долгостроев». Естественно, встал вопрос, насколько вероятна такая ситуация.
Была поставлена цель выполнить классификацию объектов первичного строительства по всеобъемлющему набору признаков: сведений об объекте, застройщике и т.д. Однако общедоступные данные оказались довольно скудными. Все же некоторую дескриптивную статистику собрать удалось…
В 2013 году два айтишника и музыкант собрались и подумали: давайте разобьем всю Землю на квадраты, а потом пометим каждый квадрат тремя словами. И разбили. И пометили.
Получился бесплатный сервис what3words.com, который замахнулся на революцию в геокодировании. Ребята уверяют, что почтовые адреса и координаты не годятся для в повседневной жизни. Пора от них отказываться там, где возможно.
Казалось бы, таких революционеров пруд пруди, но у what3words.com есть важное отличие: сервис взлетел. Им пользуются автопроизводители вроде Land Rover, правительства африканских стран и даже ООН. Читать дальше ->
Перевод статьи Dr. Philip Hodgson (@bpusability в Twitter), который имеет B.Sc., M.A., и Ph.D. в экспериментальной психологии. Он имеет более чем 20-летний опыт работы в качестве исследователя, консультанта и тренера по юзабилити, пользовательскому опыту, человеческим факторам и экспериментальной психологии. Его работа повлияла на продуктовый и системный дизайн в областях потребления, телекоммуникаций, производства, упаковки, общественной безопасности, веб- и медицинских областей для рынков Северной Америки, Европы и Азии.
Концепция «силы доказательства» играет важную роль во всех областях научных исследований, но редко обсуждается в контексте исследования пользовательского взаимодействия. Мы узнаем то, что это означает в UX-исследовании, и сгруппируем методы исследований на основе силы данных, которые они предоставляют.
До сих пор нам приходилось пользоваться лишь двухмерными текстурами, однако, OpenGL поддерживает гораздо больше типов текстур. И в этом уроке мы рассмотрим тип текстурной карты, на самом деле, представляющий собой комбинацию нескольких отдельных текстур – это кубическая карта (cubemap).
Кубическая карта, по сути, является одним текстурным объектом, содержащим 6 отдельных двухмерных текстур, каждая из которых соотносится со стороной оттекстурированного куба. Зачем может пригодиться такой куб? Зачем сшивать шесть отдельных текстур в одну карту вместо использования отдельных текстурных объектов? Суть в том, что выборки из кубической карты можно совершать используя вектор направления. Читать дальше ->
Недавно наша Виктория провела открытый урок в рамках подготовки к курсу «Digital маркетолог», где на реальном примере разбиралось влияние ТВ-рекламы на спрос в интернете в рамках: нужно ли поддерживать телевизионную активность в сети, правильное планирование и другое. Ну и вообще почему хороший digital-маркетолог — это «универсальный солдат» :)
Про WebAssembly в наше время слышали, я думаю, практически все. Если Вы не слышали, то на Хабре есть замечательный вводный материал об этой технологии.
Другое дело, что очень часто можно встретить комментарии вида “Ура, теперь будем писать фронтенд на C++!”, “Давайте перепишем React на Rust” и прочее, прочее, прочее… Читать дальше ->
Компьютер Apple I в Смитсоновском музее, США. Фото: Ed Uthman, Apple I Computer
На краудфандинговых площадках Kickstarter и Indiegogo появляется всё больше проектов в сфере электроники: в каждом квартале десятки кампаний собирают как минимум по 100 тыс. долларов. Достижение отметки в 100 тыс. зачастую оценивается как успех. Многие считают, что теперь основатели смогут передать эти деньги фабрике и получить готовый продукт. Тот факт, что 4 из 5 «железячных» кампаний не справляются со своевременной доставкой своего продукта, говорит о том, что большинство команд всё ещё недооценивает требования технологичности (DFM, Design For Manufacturing). А с этим связаны следующие сложности… Читать дальше ->
Существует такая категория сайтов, которые мы обычно называем «вау-сайтами». Они не предназначены для непосредственного потребления контента, а скорее производят впечатление на посетителя. Эти сайты обычно уникальны в своем дизайне, содержат экспериментальные решения для взаимодействия с пользователем, ломают стереотипы и изобилуют разными анимациями. Особый интерес представляют различные трюки с SVG и анимации, основанные на большом количестве частиц, о которых и пойдет речь в этой статье.
В целом идея воссоздания различных объектов в виде набора частиц существует уже давно. Но из-за того, что практическое применение этой идеи сильно ограничено, а каждая конкретная реализация завязана на конкретный контент, нет единой структурированной базы знаний, в которой можно было бы быстро ознакомиться со всеми приемами. В результате многие разработчики не понимают, что в основе всего лежат очень простые идеи. Их под силу реализовать каждому, кто более-менее знаком с JS.
9 декабря 2016 года вступили в силу Требования к межсетевым экранам, утвержденные в Информационном сообщении ФСТЭК от 28 апреля 2016 года. Все МЭ – производимые, поставляемые и разрабатываемые – к моменту вступления Требований в силу должны быть сертифицированы.
Прошел год, и что же? Сертификатом могут похвастать всего несколько компаний, среди них и «Смарт-Софт». Сейчас, когда мы прошли через все тернии сертификации, мы совсем не удивлены, почему так мало тех, кто дошел до конца. Мы расскажем, как мимикрировал наш продукт под новые условия, поделимся особенностями проверки со стороны государства и покажем, была ли от доработок польза для конечного пользователя. Впрочем, обо всём по порядку.
В феврале HR-специалисты продолжают встречаться и обсуждать проблемы и вызовы своей индустрии. В Москве состоится вторая конференции DevRelConf, посвященная IT-сообществам, а в Санкт-Петербурге проходит вторая премия IT HR AWARDS — премия дается для HR-проекты, реализованные в IT-компаниях. Cледите за обновлениями поста, анонсы событий на вторую половину февраля будут добавлены позднее. Читать дальше ->
Издание Bloomberg рассказало об интересной истории разбирательств между одной из американских HFT-компаний и ее собственными трейдерами. Они не могут решить, кто должен выплачивать крупный штраф за фиктивные сделки на бирже. Читать дальше ->
SAP Cloud Platform — это облачная платформа, которая работает по модели PaaS или платформа-как-сервис (Platform as a Service). С её помощью компании могут разрабатывать собственные приложения, расширения или дополнения для уже существующих продуктов SAP или же создавать гибридный ИТ-ландшафт в компании при помощи интеграции между облачными или on-premise решениями.
Осенью прошлого года мы перенесли SAP Cloud Platform в российский дата-центр, чтобы облегчить разработку и использование платформы для отечественных клиентов и пользователей.
В этой статье мы расскажем о том, как быстро запустить на SAP Cloud Platform приложение с блокчейн.
В прошлой части я анонсировал серию статей о работах аналитика в предпроекте. Там перечислялись проблемы, решения и некоторые принципы, о которых надо помнить при запуске ИТ-проекта. В новых частях цикла мы разберем все вопросы более подробно.
Сегодня обсудим проблемы предпроекта, которые встречаются очень часто.