Зачастую, когда говорят о работе в офисных приложениях, подразумевается использование ПК в качестве печатной машинки и, если честно, то это достаточно дорогая замена физическим механизмам, если не пользоваться возможностями который дает нам ПК. Давайте об этом и поговорим.

Читать полностью »
Рубрика «Программирование» - 482
Для тех кто боялся, но все же готов попробовать. (Excel)
2017-12-18 в 11:13, admin, рубрики: Excel, ms office, vba, Алгоритмы, КодоБред, ненормальное программирование, Программирование, программирование для чайников, функциональное программированиеWebRTC: как два браузера договариваются о голосовых и видеозвонках
2017-12-18 в 10:57, admin, рубрики: javascript, voximplant, WebRTC, Блог компании Voximplant, Программирование, Разработка веб-сайтов, разработка мобильных приложений
Спойлер: никак. За них это делает разработчик.
Когда много лет назад начали убивать Flash, пострадали не только браузерные игры. Flash традиционно была сильна в голосовых и видеозвонках: прямой доступ к микрофону, камере, динамикам, возможность работать с UDP-пакетами. В HTML5 заменой стала технология WebRTC. Та самая, которая несколько месяцев назад наконец-то приземлилась в Safari и Edge. Теперь можно звонить с веб-страницы, открытой на iPhone, на другую веб-страницу, например, открытую в Firefox Quantum на линуксе.
Одна из «фишек» WebRTC, которой не было у Flash — это возможность P2P-соединений между браузерами. Но чтобы peer-to-peer работал, программисту придется помучиться. О том, как браузеры договариваются куда слать UDP-пакеты, и что при этом должен сделать разработчик — под катом.
Читать полностью »
Одних тестов недостаточно, нужна хорошая архитектура
2017-12-18 в 7:27, admin, рубрики: .net, C#, Анализ и проектирование систем, архитектура, Блог компании Mindbox, Программирование, Проектирование и рефакторинг, Совершенный код, тестированиеМы все понимаем, что такое автоматические тесты. Мы разрабатываем софт, и хотим, чтобы он решал какие-то проблемы пользователей. Написав тест, мы убеждаемся, что конкретная проблема решается конкретным участком кода. Потом требования изменяются, мы меняем тесты и меняем код соответствующим новым требованиям образом. Но это не всегда спасает. Кроме высокого тестового покрытия наш код должен быть спроектирован таким образом, чтобы защищать разработчика от ошибок ещё при его написании.
В статье я постарался описать одну из проблем, которую может решить хорошая архитектура: связанные участки кода могут разъезжаться между собой, это может приводить к багам, и тесты тут не спасут. А грамотный дизайн может помочь.
Читать полностью »
Защищенность переменных в Kotlin на примере Java
2017-12-16 в 12:19, admin, рубрики: java, kotlin, Программирование, проектирование, Проектирование и рефакторингСовсем недавно у меня состоялся разговор с коллегой по поводу новых языков программирования. После того, как разговор зашел о Kotlin, мой друг обронил фразу «Там нулл нельзя передавать, если не указал, что переменная может быть nullable». Эта фраза сильно озадачила меня — а действительно ли, так важны киллер фичи Котлина в сравнении с уже известными языковыми возможностями Явы? Размышления на этот вопрос вылились в целый комплекс примеров, в рамках которых я хочу показать (в первую очередь самому себе, наверно), зачем же нужны все эти новые языковые возможности.
Самая скучная часть разработки на уже обкатанном языке — рутинные задачи. Например, показ картинок. Абсолютно рядовая задача, которая в любом проекте обрастает рядом условностей.Читать полностью »
Грязные трюки и оперативка
2017-12-16 в 7:42, admin, рубрики: грязные трюки, оперативная память, Программирование, разработка игр
Проблемы с ограничениями памяти давно в прошлом?
Оказывается, нет. Плохо работают с памятью не только некоторые коммерческие движки — у многих платформ достаточно агрессивные требования к ОЗУ. Кроме того, к ним добавляются ещё и ограничения по размерам дисков и картриджей.
Мы собрали примеры из игровой индустрии (разных годов и платформ), о почти незаконных способах ужимания уровней, текстур и целых игр в требуемые объёмы. Может быть, эти способы не очень красивы, но они позволили разработчикам выпустить игры, и никто до сих пор ни о чём не догадался.
Читать полностью »
Мониторинг ошибок на страницах сайта с помощью Яндекс.Метрики
2017-12-15 в 12:26, admin, рубрики: javascript, ПрограммированиеСегодня я наткнулся на интересный пост о мониторинге ошибок на сайте. У описанного метода есть недостаток — он применим только для React.
После прочтения поста я сразу же вспомнил про вебвизор. Если бы мне позвонил человек, который ой, я куда-то нажала, оно выскочило нашел ошибку на сайте, я бы очень обрадовался возможности посмотреть, что он сделал, а не задавать человеку кучу вопросов, тратя его и свое время.
Оказалось, что все настолько просто, что реализация задумки заняла у меня всего минуту.
Читать полностью »
Учим машину разбираться в языках
2017-12-15 в 6:29, admin, рубрики: api, cognitive, languages, LUIS, microsoft, translation, Блог компании Microsoft, боты, машинное обучение, обучение бота, Программирование, распознавание речи, чат-ботМы уже рассказывали вам несколько раз про нашу интеллектуальную службу распознавания речи — LUIS. И в этих историях всегда была одна проблема: LUIS крутой, но не понимает русский язык. Сегодня всё изменится. Под катом вы узнаете о методе добавления поддержки дополнительных языков в LUIS с помощью службы Translation Cognitive API.
Разработчик-детектив: занимательные задачки из реальной жизни
2017-12-14 в 15:02, admin, рубрики: задачки, Занимательные задачки, Одна из черепашек врёт, Программирование
Посреди долгой рутины веб-разработки мне иногда встречаются необычные ошибки. Вот, вроде, всё хорошо — и так работает, и сяк работает. А по-третьему — не работает, хотя на первый взгляд должно. Я просто обожаю процесс поиска причин таких ошибок и хотел бы поделиться некоторыми из таких историй. Ответы (что на самом деле было не так) опубликую через пару дней.
Читать полностью »
Рекомендации по установке СУБД InterSystems Caché в продуктовом режиме
2017-12-14 в 12:21, admin, рубрики: backup, Security database, Администрирование баз данных, Блог компании InterSystems, Программирование, системное администрирование, системное программирование, Стандарт PCI DSS 3.2, субд CachéЭта статья была написана, как попытка поделиться опытом по установке СУБД InterSystems Caché в продуктовом режиме. Все знают, что конфигурация СУБД для разработки сильно отличается от боевых условий. Если разработка, как правило, ведется в тепличных условиях с минимальными настройками безопасности, то когда мы выкладываем свой проект в живой Интернет, то должны максимально озаботиться его надежным и бесперебойным существованием в агрессивной среде.
Читать полностью »
Паттерн передачи scala.concurrent.Promise в актор: особенности использования и альтернативы
2017-12-14 в 12:14, admin, рубрики: actor, akka, akka-http, promise, scala, ПрограммированиеВ процессе поддержки различных проектов я несколько раз попадал в ситуацию, при которой по причине неправильной работы с Promise возникали проблемы на продакшне. Причём паттерн этой самой неправильной работы всегда был один и тот же, но скрывался он в разных обличьях. Более того, ошибочный код был написан различными людьми. К тому же, ни в одной статье по работе с Promise я толком не нашёл упоминание проблемы, которую хочу осветить. Так что предполагаю, что многие забывают про проблему, про которую я расскажу.
Интересно почитать много примеров асинхронного кода на Scala, с промисами, фьючами и акторами? Добро пожаловать под кат!

