Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.
Исходная информация - http://habrahabr.ru/. Данный дневник сформирован из открытого RSS-источника по адресу http://habrahabr.ru/rss/, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты. По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.[Обновить трансляцию]
Способность качественно оценивать временные затраты на разработку — один из ключевых навыков хорошего управляющего процессом разработки. Ошибочные прогнозы сроков завершения задач, как свидетельствует мой личный опыт, является одним из если не основных источников боли для руководителей, то весьма масштабным.
Практики, позволяющие не полагаться в этом вопросе на удачу и попытки угадать время, требуемое для реализации той или иной идеи в коде просты и доступны всем. Планирование — это вполне себе обычная работа, и для ее выполнения требуются вполне определенные действия.
Продолжаю, как я считаю, хорошую привычку делиться конспектами прочитанных книг.
Букв будет много, но оно того стоит. Сократить старалась максимально, оставив полезное и не потеряв суть, но получилось все равно много.
Немного о книге: написана легко и интересно, мало воды и много полезных примеров. В конце каждой главы даются практические советы (в статье они есть тоже).
Заголовок книги говорит уже сам за себя и подробного описания не требует, поэтому сразу переходим под кат! Читать дальше ->
Как то мне посчастливилось выбирать тему дипломной работы по специальности программная инженерия, и я выбрал написание экспертной системы, причем именно на языке Пролог. Хоть в промышленном программировании он почти не используется, он интересен в теоретическом плане позволяет самым быстрым способом прикоснуться к интеллектуальным системам(ИС). Также сам язык интересен в спортивном плане, так как заставляет мыслить в непривычной манере, отличной от мышления процедурного программирования и ООП, что является хорошой тренировкой для мозгов.
Использовалась реализация Prolog — Visual Prolog, с встроенными библиотеками GUI. Но если
вы хотите написать GUI на Qt/C++, то в документации есть инструкция, как импортировать программу в DLL, и скомпилировать ее вместе с C/C++ проектом. Отсюда следует, что совместить можно и с другими языками.
Вообще когда я работал над этим проектом, я не нашел примеров достаточно не примитивных, но в то же время и не настолько больших, как наворочен Читать дальше →
У меня есть нож, есть арбалет,
Они служат мне уже тысячу лет.
(с) КиШ
Предположим, вам надо проверить насколько новая фича будет востребована клиентами. Зачастую, это решается с помощью интервьюирования, опросов, и т.д. У этих замечательных подходов есть свои плюсы/минусы, поэтому рассмотрим альтернативный вариант и в каких случаях оправдано его применение.
Вот уже пару лет я живу в США, развиваю два собственных проекта и сегодня решил поделиться опытом. Мне на глаза часто попадаются статьи с рассказами о том, как классно делать бизнес в США, авторы которых не рассказывают о возможных сложностях на этом пути. В итоге у многих может сложиться чересчур идеализированное представление о том, как они приедут в Кремниевую Долину со своим стартапом менять мить.
Так было и со мной, что неоднократно приводило к фрустрациям при столкновении с реальности. Поэтому сегодня я расскажу о сложностях в ведении бизнеса в Америке, к которым следует морально подготовиться еще до переезда. Читать дальше ->
В жизни каждого разработчика наступает момент, когда он задумывается над созданием тестовой составляющей для своего детища. Поправлюсь — в жизни каждого хорошего разработчика. Когда ты джуниор и не несешь особой ответственности, имеешь право на уйму ошибок и можешь их исправить в любой момент. Ты не отвечаешь за тот продукт, что создаешь и не имеешь мотивации тратить лишнюю минуту на перепроверку созданного кода. «Да ничего, этот косяк не воспроизведется», «кажется, эта штука работает», «ну как минимум, она делает то что нужно» — если вы желаете перерасти уровень программерских яслей, то придётся свести на нет каждую из этих мыслей.
С развитием собственного опыта программирования, у вас появляются новые всё более и более крутые/крупные клиенты. От некоторых вы даже будете в восторге (от всех, если вы прям везунчик) — и люди хорошие, и оплачивают щедро, и не придирчивы к возникающим проблемам. Давайте рассмотрим один такой простой случай (очень простой, но главное то, что за этим стоит) создания обработчика формы от программиста, не знающего хлопот. Читать дальше →
Если обратиться к википедии в поисках определения для термина “интернет вещей”, можно увидеть следущее:
Интернет вещей (англ. Internet of Things, IoT) — концепция вычислительной сети физических предметов («вещей»), оснащённых встроенными технологиями для взаимодействия друг с другом или с внешней средой, рассматривающая организацию таких сетей как явление, способное перестроить экономические и общественные процессы, исключающее из части действий и операций необходимость участия человека.
В данной статье мне хотелось бы рассмотреть то, посредством каких именно “вещей” может быть реализована в нашем мире эта идея и то, какими способами они могут взаимодействовать друг с другом или со внешней средой. Читать дальше →
В 2017 году у многих интеграторов возникали вопросы о замене торгового оборудования при переходе на новые условия работы, соответствующие требованиям Закона 54-ФЗ «О применении контрольно-кассовой техники». Поскольку клиенты, которым требовалась замена или дооснащение торговых мест новым оборудованием, понимали его принцип действия и необходимую функциональность, необходимые работы прошли без накладок.
Но 2018 год принес нам большое количество клиентов, ранее не использовавших в своей деятельности контрольно-кассовую технику. Поэтому многие возникающие у них вопросы приходится решать оперативно.
Мы как один из ведущих технических центров города работаем со всеми производителями торгово-кассового оборудования и предлагаем нашим клиентам самую широкую линейку моделей. На данный момент работа только с одним или парой производителей не дает возможность полностью закрыть потребности наших контрагентов. В то же время большой ассортимент моделей обслуживаемого оборудования требует существенных затрат как временных (на обучение пользователей), так и финансовых на необходимый резерв запасных частей. Читать дальше →
Очередная статья, которая, возможно, так и останется в черновиках, но если вы это читаете, то все-таки это свершилось.
К написанию статьи послужил опыт с Redux, который показал, что в нашем проекте он оказался лишним. Благо, архитектура проекта позволяет производить манипуляции по внедрению и извлечению архитектурных подходов.
Долгое время и огромное количество человек я расспрашивал про то, как они используют Redux и всегда удивлялся. Почему-то эта опьяняющая очевидность ко мне пришла далеко спустя время, хотя я имею опыт в написании приложений под Android, где никакого Redux нет.
Вся проблема в том, что никто не объясняет зачем нужен и когда нужен Redux, пока ты не наступил на эти грабли спустя время. К примеру, в нашем проекте Redux оправдывает себя только в нескольких местах, остальное можно реализовать тупо на Dumb & Smart Components. И в тех самых местах, где он оправдан, я бы также его убрал и использовал события. Если в приложении мало сепаратных частей, которые друг на друге могли бы быть зависимы, то это маловыгодная вещь. И сейчас я вам поведаю сказ о том, какие еще есть варианты помимо Redux.
Злые языки утверждают, что функциональные языки программирования — «языки для написания факториалов». Чаще всего так определяют язык Haskell, мы же начнем с того функционального языка, который сильно повлиял и на Haskell, и на подмножество средств для функционального программирования многих других языков — язык Scheme. По-крайней мере, map и for-each, filter и reduce, а так же apply и eval пришли в наши любимые языки программирования если не именно из Scheme, то в том числе и оттуда.
Рассмотрим некоторые возможные способы записи вычисления факториала. Заодно получится своеобразная ода языку программирования Scheme. Думаю, этот замечательный язык того вполне заслуживает.
У меня получилось 10 вариантов записи определений функций, которые можно свести к 3 основным способам вычисления: традиционному линейно-рекурсивному вычислительному процессу, итерации, генерации последовательности чисел с последующей сверткой умножением. Предлагаю рассмотреть эти варианты подробнее. Попутно мы рассмотрим: оптимизацию хвостовой рекурсии, функции высших порядков и метапрограммирование, отложенные вычисления, бесконечные списки, мемоизацию, способ создать статическую переменную в Scheme и гигиенические макросы.
В этой статье попробую обобщить информацию о существующих методах liveness detection, которые применяются для защиты от взлома систем распознавания лиц.
От чего защищаем?
С развитием облачных технологий и веб-сервисов все больше транзакций перемещается в онлайн-среду. При этом более 50% онлайн транзакций (ритейл) совершаются с мобильных устройств.
Рост популярности мобильных транзакций не может не сопровождаться активным ростом киберпреступности.
Случаи онлайн-мошенничества на 81% вероятнее, чем мошенничество в точках продаж.
16,7 млн. личных данных американцев были украдены только за 2017 год (Javelin Strategy and Research). Ущерб от мошенничества с захватом аккаунтов составил $5,1 млрд.
В России, по данным Group-IB, за 2017 год хакеры украли у владельцев Android-смартфонов более миллиарда рублей, что на 136% больше, чем годом ранее.
Специалисты из Техасского университета в Остине (UT Austin) разработали нейросеть, которая обрабатывает моноканальную аудиозапись на видео и воссоздает её «объемное» звучание.
Несколько лет назад я написал компилятор Паскаля. Мотивация была простой: в юности я узнал из своих первых книжек по программированию, что компилятор — вещь чрезвычайно сложная. Это утверждение засело занозой в мозгу и в конце концов потребовало проверки на опыте.
ha.art.pl
Сперва родился простейший компилятор PL/0, а из него постепенно вырос почти полнофункциональный компилятор Паскаля для MS-DOS. Вдохновением мне служила книга Compiler Construction, написанная создателем языка Паскаль Никлаусом Виртом. И пусть взгляды Вирта уже устарели и утратили всякую связь с реалиями ИТ, а компиляторы делают совсем не так, как учил Вирт. Однако его методы по-прежнему просты, изящны, а главное — приносят радость, ведь самостоятельно разобрать текст программы рекурсивным спуском и сгенерировать машинный код намного заманчивее, чем призывать на помощь яков, бизонов и всех их преемников.
Судьба моего компилятора оказалась не самой тривиальной. Он прожил две жизни: первую — в моих руках, вторую — в руках польских ценителей компьютерных древностей. Читать дальше →
Десять лет назад заряжаемый гибридный автомобиль Chevrolet Volt сообщил США и всему миру, что, хотя у General Motors и закончились деньги, у неё всё ещё остались идеи и талантливые инженеры
Chevrolet Volt умер тихо. Это случилось в начале декабря, на фоне новостей о том, что General Motors сокращает 14 000 рабочих мест, закрывает три сборочных фабрики и прекращает производство таких моделей, как Chevy Cruze и Impala, Buick LaCrosse и Cadillac CT6. Это можно было понять: продажи замедлялись, американцы не покупали микролитражки или седаны, а GM перестраивалась для будущего, в котором фигурируют машины большего размера и гораздо больше электрики.
Десять лет назад заряжаемый гибридный автомобиль Chevrolet Volt сообщил США и всему миру, что хотя у General Motors и закончились деньги, у неё всё ещё остались идеи и талантливые инженеры. Но в итоге его затмил успешный запуск модели Bolt EV – полностью электрической машины стоимостью $37 500, опередившей выход на рынок Tesla Model 3. Читать дальше ->
Последний ARM-чип компании Qualcomm для дата-центров — Centriq, вышел чуть более года назад и собрал на старте множество положительных отзывов. Но в середине декабря ИТ-гигант объявил, что закрывает направление, занимающееся производством процессоров для ЦОД.
Рассказываем, с чем связано такое решение и как оно отразится на отрасли в целом.
Хорошо то, что мы можем войти в локальную сеть, подделав DNS. А как насчёт социальной инженерии, учитывающей предпочтения и склонности пользователей? Пентестеры знают, что в IE можно поместить теги файлов-изображений, например, формата .jpg, для сетевого пути UNC, и тогда IE будет передавать это обратно Windows и автоматически подключатся к сетевой папке, пытаясь получить запрашиваемое изображение или что-то еще, например, JavaScript, iFrame и т.д. Так что на сегодня в IE имеется автоматическая аутентификация.
То же самое можно проделать в Firefox и Chrome, хотя люди считают, что эти браузеры более защищены. На этом скриншоте приведена консоль ошибок Firefox, в которой сообщается, что браузер не может загрузить этот файл картинки из общей сети, так как политика безопасности предотвращает загрузку файлов, которых нет в контексте безопасности браузера. Интересной особенностью нашего инструмента является то, что браузеры Firefox и Chrome можно заставить загружать файлы, просто посылая HTTP заголовки для принудительной загрузки Content-Type: application/force-download и затем открывать эти файлы из папки Temp или прямо с рабочего стола. Таким образом, мы выставили контекст безопасности файлов и активировали автоматическую аутентификацию в общем SMB, так что теперь можете заставить пользователей аутентифицироваться на вашем мошенническом сервере. Читать дальше ->
Это пост в формате «фуршета», где вам предлагается задавать вопросы по законодательству в IP и IT. Отвечает патентный поверенный РФ и международный юрист — при поддержке команды.
По каким темам имеет смысл задавать вопросы:
Товарные знаки (они же торговые марки) в России и за рубежом — от регистрации до судов
Патенты в россии и за рубежом — а именно, патенты в области IT (электроника и софт)
Копирайт (авторское право) — в частности, охрана и защита программ и баз данных
Законы о персональных и прочих данных (в том числе великий и ужасный GDPR)
На этот эффект меня вдохновил эпизод Powerpuff Girls. Я хотела создать эффект распространения цвета в чёрно-белом мире, но реализовать его в координатах мирового пространства, чтобы видеть, как цвет закрашивает объекты, а не просто плоско распределяется по экрану, как в мультике.
Эффект я создала в новом Lightweight Rendering Pipeline движка Unity, встроенном примере конвейера Scriptable Rendering Pipeline. Все концепции применимы и к другим конвейерам, но некоторые встроенные функции или матрицы могут иметь другие названия. Также я воспользовалась новым стеком постобработки, но в туториале опущу подробное описание его настройки, потому что о ней достаточно хорошо рассказывается в других руководствах, например в этом видео. Читать дальше ->