Рубрика «Программирование» - 554

Задача

Обойти роутер noolite и управлять освещением noolite быстро, качественно и без использования домашнего сервера. Глобальная децентрализация и тотальное использование облачных решение в домашних устройствах и интернет вещах. Что?..

Всем привет!

Снова я со своим лаптем и сказом о том, как побороть дорогой роутер noolite, начать управлять освещением и не заморачиваться на пайке плат, контроллеров и вообще — хочу так, что бы включил установил приложение и оно работало без дополнительных танцев.
Да… об этом пишут все, но мало кто делает, так как зачастую все решения упираются в сложные инструкции. А я Вам покажу, сейчас :) — ну вперед друзья!
Читать полностью »

Kotlin, компиляция в байткод и производительность (часть 2) - 1

Это продолжение публикации. Первую часть можно посмотреть тут

Содержание:

Циклы
When
Делегаты
Object и companion object
lateinit свойства
coroutines
Выводы
Читать полностью »

Kotlin, компиляция в байткод и производительность (часть 1) - 1

О Kotlin последнее время уже очень много сказано (особенно в совокупности с последними новостями c Google IO 17), но в то же время не очень много такой нужной информации, во что же компилируется Kotlin.
Давайте подробнее рассмотрим на примере компиляции в байткод JVM.

Это первая часть публикации. Вторую можно посмотреть тут

Процесс компиляции это довольно обширная тема и чтобы лучше раскрыть все ее нюансы я взял большую часть примеров компиляции из выступления Дмитрия Жемерова: Caught in the Act: Kotlin Bytecode Generation and Runtime Performance. Из этого же выступления взяты все бенчмарки. Помимо ознакомления с публикацией, настоятельно рекомендую вам еще и посмотреть его выступление. Некоторые вещи там рассказаны более подробно. Я же больше внимания акцентирую именно на компиляции языка.

Содержание:

Функции на уровне файла
Primary конструкторы
data классы
Свойства в теле класса
Not-null типы в публичных и приватных методах
Функции расширения (extension functions)
Тела методов в интерфейсах
Аргументы по умолчанию
Лямбды

Но прежде чем рассмотрим основные конструкции языка и то, в какой байткод они компилируются, нужно упомянуть о том, как непосредственно происходит сама компиляция языка:
Читать полностью »

Мы продолжаем делиться открытыми трансляциями для желающих принять субботний поток силы! Ранее мы уже открывали трансляции с конференций DotNext 2017 Piter, Mobius 2017 Piter и JPoint 2017 (сейчас доступ к ней закрыт). В этот раз источник силы будет подпитывать JavaScript-разработчиков.

3 июня 2017 в 10 утра (по московскому времени) начнется бесплатная онлайн-трансляция из главного зала HolyJS 2017 Piter!

Открытая трансляция из главного зала конференции HolyJS 2017 Piter: Douglas Crockford, Lea Verou и еще кое-кто - 1

Первый трек (проходит в главном зале) – самый большой и популярный среди наших участников. Во второй день конференции в первом треке выступят:

  • Алексей Золотых — ES2017 vs Typescript vs Dart. Сравниваем без эмоций
  • Douglas Crockford — Goto There and Back Again
  • Anjana Vakil — Functional Programming in JS: What? Why? How?
  • Алексей Иванов — Внутреннее устройство бандла webpack
  • Владимир Гриненко — Зависимости в компонентном вебе, сделанные правильно
  • Lea Verou — JS UX: Writing code for humans

Помимо этого, с 10 утра и в перерывах между докладами вы сможете посмотреть live-интервью со спикерами и участниками конференции. Не переключайтесь!

Ссылка на трансляцию и подробную программу – под катом.
Читать полностью »

Разговоры о снижении производительности ради продуктивности.

Да, Python медленный, но меня это не волнует - 1

Я беру паузу в моём обсуждении asyncio в Python, чтобы поговорить о скорости Python. Позвольте представиться, я — ярый поклонник Python, и использую его везде, где только удаётся. Одна из причин, почему люди выступают против этого языка, — то, что он медленный. Некоторые отказываются даже попробовать на нём поработать лишь из-за того, что «X быстрее». Вот мои мысли на этот счёт.
Читать полностью »

В стандартной библиотеке питона содержится специализированный тип "namedtuple", который, кажется, не получает того внимания, которое он заслуживает. Это одна из прекрасных фич в питоне, которая скрыта с первого взгляда.

Именованные кортежи. Пишем код на Python чище - 1

Именованные кортежи могут быть отличной альтернативой определению классов и они имеют некоторые другие интересные особенности, которые я хочу показать вам в этой статье.Читать полностью »

У меня были проблемы с пониманием reduce( ) и рекурсии в JavaScript, так что я написал эту статью чтобы объяснить их в первую очередь себе (эй, смотрите, это же рекурсия!). Эти концепции имеют некоторые сходства с приготовление яблочного пирога. Я очень надеюсь вы сочтёте мои примеры как полезными так и аппетитными.

image

Читать полностью »

Новые «плюшки» компилятора – безопасней, быстрее, совершеннее - 1
Как говорилось во всеми нами любимом фильме: «Налетай, торопись, покупай живопись». Последняя, конечно, тут ни при чем, а вот «налетать» на новую Бета версию компилятора уже пора. Сегодня я расскажу о том, что нового появилось в пакете Intel Parallel Studio XE 2018 Beta, и в частности, в компиляторной её составляющей. А там действительно много что добавилось, ведь стандарты не стоят на месте — C++14, C++17, Fortran 2008, 2015, OpenMP 4.5 и 5.0, а компилятор должен не только их поддерживать, но и генерировать совершенный, производительный и безопасный код. Кроме этого, новые наборы инструкций AVX512, позволяющие «снимать сливки» с последних процессоров Skylake и KNL, всё больше входят в арсенал современных компиляторов. Но а самое вкусное — новые ключи, которые позволяют получить ещё больше производительности «не напрягаясь». Итак, поехали!
Читать полностью »

В настоящее время интерес к софтверным движкам, как из игр Quake, DOOM или Duke Nukem 3D практически нулевой. Однако, эти движки имели своё очарование и мне, например, очень нравится графика именно таких вот движков с нереалистичными текстурами на стенах. Конечно, такие текстуры можно накладывать без фильтрации и в OpenGL, получая такой же уровень графики, но всё же, написать собственный софтверный движок было весьма интересно. Движок уровня Quake я написать в своё время не смог, так как не удалось создать редактор 3D карты – я просто не представлял, как вообще рисовать в 3D карту. Да и с большой вероятность текстурирование в произвольном случае в моём исполнении (без ассемблера) было бы очень медленно. Но движок уровня DOOM мне покорился. Основу такого движка я написал в 2002 году, пользуясь книжкой Шикина и Борескова “Компьютерная графика. Полигональные модели”. На базе того движка используя графику из Doom я написал некое подобие игры под MS-DOS на Watcom C. Несколько лет назад я решил вынуть из той игры код движка и переработать его под мои текущие знания языка Си++ и представления о том, как стоило бы устроить этот движок. Ну и заодно перенести этот движок под Windows и дополнить наклонами головы, как в Blood или Duke Nukem. О том, что в результате получилось, я и написал в этой статье.
Читать полностью »

Как поменьше беспокоиться о собственной бездарности - 1

Только что я столкнулся с еще одним проявлением синдрома самозванца: «Я правда разработчик — или просто хорошо гуглю?»

Далее следовал ответ, в котором я, однако, не увидел главного — поэтому ответить придется мне: слишком уж многие боятся без каких-либо оснований.

Переведено в Alconost

Если информацию легко найти, это не делает человека глупым

Частенько мне доводится слышать одну историю — полагаю, подлинность ее сомнительна, но, как бы там ни было, суть такова. Когда у Эйнштейна попросили номер телефона, он полез его искать и сказал: «Зачем запоминать то, что можно найти менее чем за две минуты?»

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js