Апрель 14

N причин, чтобы использовать Create React App

Create React App — отличный инструмент для быстрого старта React-приложений. Вы не тратите время на настройку Webpack, Babel и других привычных инструментов. Они заранее настроены и спрятаны, так что разработчики могут сфокусироваться на коде и бизнес-логике приложения.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи N причин, чтобы использовать Create React App отключены
Апрель 14

Шаг за шагом: собираем и тестируем Интернет вещей на базе платформы SAP Cloud Platform


Эта статья может помочь участникам конкурса SAP Кодер 2017 решить одну из задач


Интернет вещей – захватывающая тема, которая уже завтра изменит мир. Существующие IoT-платформы позволяют протестировать технологию, чем мы и займемся.

Перед вами пошаговый пример создания и настройки системы сбора данных с устройств на базе Arduino и ее подключение к SAP Cloud Platform.


Читать дальше →

Раздел: Без рубрики | Комментарии к записи Шаг за шагом: собираем и тестируем Интернет вещей на базе платформы SAP Cloud Platform отключены
Апрель 14

Статический анализ -> уязвимость -> профит

В статьях про PVS-Studio всё чаще говорят об уязвимостях и дефектах безопасности, которые можно найти с помощью статического анализа. Авторов этих статей критикуют (и я в том числе), что не каждая ошибка является дефектом безопасности. Возникает однако интересный вопрос, можно ли пройти весь путь от сообщения статического анализатора до эксплуатации найденной проблемы и получения какой-то выгоды. В моём случае выгода всё же осталась теоретической, но эксплуатировать ошибку удалось, не особо вникая в код проекта.

Читать дальше →

Раздел: Без рубрики | Комментарии к записи Статический анализ -> уязвимость -> профит отключены
Апрель 14

Суперсилы WinDbg для .NET-разработчиков

Продолжая серию публикаций по докладам на конференциях, мы остановились на лучшем докладе DotNext 2016 Moscow, в которой Саша goldshtn Гольдштейн рассказывает о возможностях WinDbg для отладки .NET приложений. Этот действительно мощный инструмент позволяет решать задачи, с которыми не справляется встроенный отладчик Visual Studio.

Особенно этот материал будет полезен тем, кому сложно смотреть доклады на английском языке, так как расшифровка переведена на великий и могучий!

Читать дальше →

Раздел: Без рубрики | Комментарии к записи Суперсилы WinDbg для .NET-разработчиков отключены
Апрель 14

Третий сервис лишний: Telegram и сам дружит с телефонией

Я всегда восхищался силой коллективного разума. И укреплению моей убежденности в ней послужила недавняя история: я рассказал, как можно интегрировать телефонию с Telegram с помощью сервиса IFTTT, на что коллеги из Voximplant ответили, как это можно сделать проще, а потом господин recompileme в своем комментарии обратил внимание на то, что удобный API телеграма решает задачу без участия каких-либо третьих сервисов.

С его прямо-таки директивного позволения, раскрою всю схему по шагам, потому что действительно быстро, удобно и полезно.

Читать дальше →

Раздел: Без рубрики | Комментарии к записи Третий сервис лишний: Telegram и сам дружит с телефонией отключены
Апрель 13

Работа из дома — один из главных бонусов, который требуют программисты

Работа из дома несколько дней в неделю — давняя привилегия избранных программистов. Но если 20 лет назад такая опция была скорее исключением из правил, то сейчас разработчики требуют её от работодателя. Её ценят настолько же высоко, как наличие отпусков и отгулов, расширенной медицинской страховки и соблюдения нормального рабочего графика без овертаймов. На это указывают результаты многочисленных исследований, в том числе результаты опроса разработчиков на Stack Overflow Developer Survey Results 2017.

В конце концов, сейчас так много инструментов для организации удалённой работы: Slack, Skype, Google Hangouts, Basecamp, BlueJeans. Групповые часты, видеоконференции, совместная работа и управление проектами. Зачем вообще программисту ходить в офис каждый день?
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Работа из дома — один из главных бонусов, который требуют программисты отключены
Апрель 13

[Перевод] Зачем использовать статические типы в JavaScript? (Преимущества и недостатки)

Мы о многом рассказали в первой части. Теперь с синтаксисом покончено, давайте наконец перейдём к самому интересному: изучению преимуществ и недостатков использования статических типов.

Преимущество № 1: Вы можете заблаговременно находить баги и ошибки

Статическая проверка типов позволяет проверять, что определённый нами инвариант принимает значение true, даже не запуская программу. И если имеется какое-то нарушение этих инвариантов, оно будет обнаружено перед запуском программы, а не во время её работы.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи [Перевод] Зачем использовать статические типы в JavaScript? (Преимущества и недостатки) отключены
Апрель 13

Стэнфордские курсы CS193P Зима 2017: Разработка iOS 10 приложений с помощью Swift

Стэнфордский университет, США — один из лучших в мире в области информатики (Computer Science). Он щедро делится своими курсами, и одним из самых популярных и успешных курсов является курс CS193P по разработке приложений на iOS, который читает профессор Пол Хэгерти. Это курс читается ежегодно, начиная с 2010 года. На данный момент актуальным является курс CS193P «Developing iOS 10 Apps with Swift», Зима 2017 года — «Разработка iOS 10 приложений с использованием Swift», и на момент написания статьи уже выложены почти все Лекции (15 из 18) и почти все Задания (5 из 6) на iTunes U (но можно смотреть и на Youtube).
В новом курсе отчетливо видно, что профессор сделал небольшой разворот всего курса от ОБЪЕКТНО-ОРИЕНТИРОВАННОГО программирования, к ФУНКЦИОНАЛЬНОМУ программированию с множеством неизменяемых объектов с APIs похожими на математические функции.
Конечно, iOS вовсе не была сконструирована на основе идеи функционального программирования. Но люди, которые изобретали Swift, держали “в голове” идею о функциональном программировании. Так что при разработке вашего iOS приложения (по крайней мере в части Модели) вы можете использовать множество элементов функционального программирования.

Это новый рубеж в iOS программировании, потому что в течение 10 лет люди, в основном, использовали в iOS программировании только reference type объекты, имея в виду концепцию объектно-ориентированного программирования. Но когда вы программируете на Swift с помощью структур structs и перечислений enums, и особенно если вы подключаете механизмы протоколов protocols и Generics, то вы можете реально сделать прекрасную работу, имеющую дело с реальным функциональным программированием.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Стэнфордские курсы CS193P Зима 2017: Разработка iOS 10 приложений с помощью Swift отключены
Апрель 12

Логика сознания. Часть 12. Поиск закономерностей. Комбинаторное пространство

imageПоэзия — та же добыча радия.
В грамм добыча, в годы труды.
Изводишь единого слова ради
Тысячи тонн словесной руды.
Но как испепеляюще слов этих жжение
Рядом с тлением слова-сырца.
Эти слова приводят в движение
Тысячи лет миллионов сердца.

Владимир Маяковский

Напомню, что наша ближайшая задача — показать алгоритм универсального обобщения. Такое обобщение должно удовлетворять всем требованиям, сформулированным ранее в десятой части. Кроме того, оно должно быть свободно от традиционных для многих методов машинного обучения недостатков (комбинаторный взрыв, переобучение, схождение к локальному минимуму, дилемма стабильности-пластичности и тому подобное). При этом механизм такого обобщения должен не противоречить нашим знаниям о работе реальных нейронов живого мозга.

Сделаем еще один шаг в сторону универсального обобщения. Опишем идею комбинаторного пространства и то, как это пространство помогает искать закономерности и тем самым решать задачу обучения с учителем.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Логика сознания. Часть 12. Поиск закономерностей. Комбинаторное пространство отключены
Апрель 12

Немного о строках в Си, или несколько вариантов оптимизировать неоптимизируемое

Хабра, привет!

Не так давно у со мной произошел довольно-таки интересный инцидент, в котором был замешан один из преподавателей одного колледжа информатики.

Разговор о программировании под Linux медленно перешел к тому, что этот человек стал утверждать, что сложность системного программирования на самом деле сильно преувеличена. Что язык Си прост как спичка, собственно как и ядро Linux (с его слов).

У меня был с собой ноутбук с Linux, на котором присутствовал джентльменский набор утилит для разработки на языке Си (gcc, vim, make, valgrind, gdb). Я уже не помню, какую цель мы тогда перед собой поставили, но через пару минут мой оппонент оказался за этим ноутбуком, полностью готовый решать задачу.

И буквально на первых же строках он допустил серьезную ошибку при аллоцировании памяти под… строку.

char *str = (char *)malloc(sizeof(char) * strlen(buffer));

buffer — стековая переменная, в которую заносились данные с клавиатуры.

Я думаю, определенно найдутся люди, которые спросят: «Разве что-то тут может быть не так?».
Поверьте, может.

А что именно — читайте по катом.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Немного о строках в Си, или несколько вариантов оптимизировать неоптимизируемое отключены