Несмотря на тотальную «мобилизацию» среднестатистического пользователя, большинство инженеров продолжают работать на стационарных ПК. Крупных инженерных программ, в первую очередь САПР, для мобильных ОС крайне мало. Несколько лет назад у компании АСКОН появилось бесплатное приложение КОМПАС:24 для просмотра документов КОМПАС-3D (деталей, сборок, чертежей, спецификаций и др.) на Android-устройствах.
Модель «КАМАЗ Будущего», автор Дмитрий Котляр.
О том, как было реализовано портирование большого Windows-приложения на Android, рассказывает один из разработчиков КОМПАС:24 Александр Полуэктов. Читать дальше ->
Прошло четыре с половиной года с тех пор, как я, пользуясь свежеполученным инвайтом, написал предыдущий хабрапост с подобным заголовком. Большой срок для игровой индустрии. Успело появиться много новых хороших игр, и недавно я ощутил настоятельную необходимость поделиться знанием о них с широкой общественностью.
Несмотря на опасность, что вновь возникнет спор относительно названия, я решил оставить его прежним, дабы сохранить преемственность. Можно воспринимать его как «игры для тех, кто имеет способность к программированию», или ещё как-нибудь в этом духе. Однако я полагаю, что вы читаете этот пост не ради рассуждений о семантике, потому перейдём к сути.
В лондонском подразделении банка установили приборы, которые фиксируют время пребывания персонала на рабочих местах. Как сообщает агентство Bloomberg, сотрудники Barclays Plc на протяжении последних месяцев находили неизвестные черные коробки, прикрепленные к рабочим столам. За разъяснением они обратились к руководству. Выяснилось, что это — приборы слежения OccupEye, которые фиксируют, как долго сотрудник пробыл на своем месте. Для получения информации используются датчики тепла и движения людей. Читать дальше ->
В этой статье речь пойдёт об отсутствии потокового выполнения (threading) и инструментов синхронизации потоков в Swift. Мы обсудим предложение о внедрении «многопоточности» (concurrency) в Swift и то, как до появления этой возможности потоковое выполнение в Swift будет подразумевать использование традиционных мьютексов и общего изменяемого состояния (shared mutable state).
Использовать мьютекс в Swift не особенно сложно, но на этом фоне хотелось бы выделить тонкие нюансы производительности в Swift — динамическое выделение памяти во время захвата замыканиями. Мы хотим, чтобы наш мьютекс был быстрым, но передача замыкания для исполнения внутри мьютекса может снизить производительность в 10 раз из-за дополнительных расходов памяти. Давайте рассмотрим несколько способов решения данной проблемы. Читать дальше ->
На днях, по мотивам очередной статьи, посвященной проблеме расизма в распознавании речи, я участвовала в большом споре о том, кто в этом виноват. Часть людей была уверена, что это заговор программистов. На самом деле, правда кроется в данных, которые ИИ использует для своего обучения. Я решила провести эксперимент, чтобы наглядно доказать это. Оказалось, что Роб Спир (Rob Speer) уже все сделал за меня.
Хочу поделиться с вами переводом его материала, который наглядно показывает, что даже самый дефолтный вариант ИИ будет насквозь пропитан расизмом. В первой статье мы проведем эксперимент, во второй попытаемся разобраться, как побороть то чудовище, которое мы породили.
В нашей предыдущей статье были описаны основные механизмы проверки статуса сертификатов (проверки, является ли сертификат отозванным). В этой статье мы ответим на следующие вопросы:
1. Как механизмы проверки статуса сертификатов реализованы в современных Веб-браузерах?
2. Кто виноват? Почему они реализованы именно так?
3. Что делать? Какие есть перспективы?
Эта статья будет полезна тем, кому интересно разобраться в применяющихся на практике механизмах проверки статуса сертификатов.
На Хабре уже писали на данную тему (например, тут и тут), мы же в этой статье решили привести ещё более подробное описание проверок, выполняемых современными браузерами, более актуальную информацию об их настройках, и, наконец, описание того, как можно исправить сложившуюся ситуацию в будущем. Читать дальше ->
Привет друзья, хочу поведать вам, одну очень выдающуюся историю о том как я делал онлайн рулетку для одного западного заказчика. И конкретно в этой статье я по большей части коснусь разработки фронтенда.
Использование npm — пакетного менеджера NodeJS — сопряжено с проблемами безопасности. Штатными средствами невозможно контролировать права доступа, предоставляемые библиотекам. Вкупе с обилием микромодулей это может привести к непредсказуемым последствиям, часть из уже случившегося описана здесь, и в лучших традициях экосистемы npm я на неё сошлюсь.
Под катом описывается proof-of-concept библиотеки, реализующей механизм загрузки npm-модулей с возможностью установить права подобно тому, как на Android можно выдавать приложению конкретные разрешения.
Вместо
var lib = require('untrusted-lib');
предлагается писать где-нибудь
var paraquire = require('paraquire')(module);
и затем
var lib = paraquire('untrusted-lib');
или же
var lib = paraquire('untrusted-lib', {builtin:{https:true}});
Если в России принят закон, это ещё не значит, что он работает. Если же закон вроде как работает, это ещё не значит, что всё будет так же через полгода. Поэтому к каждому закону лучше готовиться чисто по-студенчески или по-русски — в самый последний момент или даже чуть позже. Давно известно: поспешишь — людей насмешишь. Но в случае с 54-м законом поспешили не те, кому нужно, а посмеялись не люди, а государство и особенно кассовые олигархи. К слову, некоторых из этих представителей людьми можно назвать действительно с натяжкой.
Речь пойдёт об одной интернет-компании. Персонифицировать её не будем, условно назвав как-нибудь по-залихватски — “Эх-растянись-душа-в-гармошку-компэни”, например. Это собирательный образ. Подобных компаний и предпринимателей в России тысячи. У всех первое полугодие-2017 было одинаковым. Читать дальше ->
Представьте себе, что, при локализации вашего приложения, вы имели бы возможность быстро прикинуть варианты текста на самом приложении, а не «прикладывая к макету». Звучит круто? Вот и мы так подумали. Поэтому мы и представляем сегодня наш новый Lokalise SDK Live Edit Module для iOS-приложений, позволяющий в режиме реального времени наблюдать за вносимыми изменениями при локализации любого проекта под iOS.
Насколько это удобно и как много времени может сэкономить небольшой команде, которая не может позволить себе растягивать процесс локализации на недели и месяцы, постоянно дергая разработчика, расскажем ниже. Читать дальше ->
Нам часто задают вопросы по технологиям в письмах и сообщениях — мы с удовольствием отвечаем. Но в таком случае ответ получает один человек, а он мог бы пригодиться многим.
Поэтому мы решили еженедельно разбирать по одному вопросу, буквально за пять минут.
Сегодня вопрос про разработку от Сергея, отвечает наш преподаватель Игорь Алексеенко:
Манкипатчинг — почему это так плохо или не так уж и плохо?
Давным-давно, когда я еще учился в университете, я услышал что на математическом факультете в нашем вузе программистам задают интересную задачу: смоделировать так называемый «волчий остров». Суть ее примерно в следующем.
Что на картинке
Stop/Start — Запустить мир Turn — Остановить мир Restart — Пересоздать мир Зеленые клетки — Клетки с травой. Чем зеленее, тем больше травы. Маленькие зайцы и волки — щенки Большие зайцы и волки — взрослые особи Красные и синие полоски на пиктограммой зверей — текущая сытость. Красные — самцы, синие — самки. Число в левом нижнем углу каждой клетки — количество существ на данной клетке Внизу общее количество зайцев и волков, а также время, занявшее обработку последнего ход
Параметризованные типы в Java традиционно считаются лишь пародией на шаблоны C++ (несмотря на то, что их даже сравнивать как-то некорректно), и причины этого несложно понять. Тем не менее не всё так плохо, и компилятор Java можно заставить производить во время проверки типов любые вычисления, лишь бы хватило оперативной памяти. Конкретный способ это сделать был описан в ноябре 2016-го года в этой прекрасной публикации. Его я и хотел бы объяснить.
Для затравки приведу следующий код. Корректен ли он? Предлагаю скомпилировать и проверить, угадали ли вы результат.
class Sample {
interface BadList extends List>> {}
public static void main(String[] args) {
BadList
Вы идете в банк за кредитом на развитие бизнеса, на покупку авто или на другие цели. Давать или не давать – в каждом случае специалисты банка решают этот вопрос индивидуально, принимая во внимание кредитную историю клиента, размер его дохода и другие факторы. Казалось бы, система кредитования давно настроена и исправно работает. Можно ли придумать что-то новое в этом отношении? Мы в рознице ВТБ отвечаем на этот вопрос утвердительно. Исследования подтверждают: данные о клиентском поведении, которые имеются в распоряжении банка, задействованы далеко не полностью, и в этом направлении использование IT дают очень хороший эффект!
Как мы интегрируем IT в бизнес и какие преимущества получают клиенты – читайте под катом. Читать дальше ->
С помощью этой тематической подборки вы сможете познакомиться с Университетом ИТМО на практике. Здесь мы пишем о том, как проходит учеба и отдых наших студентов, рассказываем о спортивном программировании, научной работе и других сферах деятельности, на которые мы обращаем свое внимание.
Комплексная автоматизация – это оптимизация всех областей деятельности компании.
Для малых производственных и складских предприятий, предприятий розничной торговли автоматизация работы – это главное условие полноценного роста и развития бизнеса.
Сегодня невозможно вручную контролировать весь документооборот: поставки и отгрузки товаров, инвентаризацию склада и т. п. Автоматизация бизнеса – это возможность держать руку на пульсе событий, в любой момент получать необходимые отчеты и избегать ошибок и затрат, связанных с человеческим фактором.
Но когда речь идет о малом бизнесе, есть одна проблема – небольшое предприятие не всегда имеет достаточно ресурсов для проведения комплексной автоматизации. Отсутствие собственного штата ИТ-специалистов и понимания главных задач процесса не позволяет самостоятельно решить эту задачу.
Добрый день!
Пару недель назад почитал форумы и подготовил универсальную обработку на встроенном языке 1С анализирующую исходный код любых отчетов и обработок «1С: Предприятие 8». Вызван анализ исходного кода был появлением продаж на моей домашней страничке. Попытки написать в ручную документации для нескольких тысяч файлов успеха не имели. Читать дальше →