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

Почему не работает Tree Shaking и как с этим жить - 1

В нашей предыдущей статье про голосовых ботов для Рокетбанка читатели возмутились, что в 2017 году примеры JavaScript для облака Voximplant написаны на ES5. У нас в облаке сильно модифицированный SpiderMonkey, специально обученный не течь и не падать. Тысячи одновременных звонков с параллельно выполняемым JavaScript как бы намекают, что нода – для нас не вариант. Тем не менее, никто не мешает использовать транспайлеры, компилировать ES2017/TypeScript/Elm/Whatever в старый добрый JavaScript и загружать результаты компиляции с помощью Continuous Integration. При таком раскладе возникает соблазн использовать все последние достижения из npmjs, собирая весь код в один ES5 бандл. И вот тут нас ждет засада: даже один метод из lodash дает на выходе бандл размером в полмегабайта. И не похоже, чтобы рекламируемый последние пару лет tree shaking работал.

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

6 июня, 10:00
Сегодня второй день! Мы добавили мощностей и немного изменили дизайн, теперь вы можете видеть топ-5 голосующих.

Сломай голосовалку на РИТ++ за 50 наклеек. День два. Восстание - 1

Приходите на наш стенд рядом с конгресс-холлом.

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

Преамбула

Есть своя «внешняя» библиотека и есть своё приложение, использующее эту библиотеку (подгружается через внешний репозитарий). Требуется внести изменение и в библиотеку и в приложение.

Казалось бы, собери библиотеку и выложи её в локальный maven-репозитарий, а потом уже собирай приложение. Но хочется, чтобы можно было поправив код в библиотеке сразу попробовать изменения в приложении и при этом сохранить раздельное хранение кода библиотеки и приложения, включая настройки IDE и прочее.

С помощью gradle и и символических связей в файловой системе такое можно легко устроить.
Читать полностью »

Сегодня в этом посте весь день будет вестись текстовая трансляция фестиваля РИТ++ 2017, проходящей в Сколково 5 и 6 июня. РИТ++ — это целый ряд профессиональных узкотематических конференций: системное администрирование и эксплуатация, высоконагруженные системы и базы данных, серверное программирование, управление проектами и предпринимательство, enterprise-конференция, а также фронтенд и мобильная разработка.

Если вы хотите смотреть видео из главного зала и включения из мобильной студии Хабрахабра, то вам на страницу видео трансляции. Если почитать онлайн и поообщаться в кооментариях — под кат.

Текстовый онлайн с фестиваля РИТ++ 2017. День первый - 1
Читать полностью »

image Всем привет! Это уже десятый выпуск дайджеста на Хабрахабр о новостях из мира Python.

В сегодняшнем выпуске вы найдёте интересные материалы, касающиеся Python 3 и его внутреннего устройства, Django, производительности и многого другого. Присылайте свои актуальные материалы, а также любые замечания и предложения, которые будут добавлены в ближайший дайджест.

А теперь к делу!
Читать полностью »

Во время отдыха от отладки JavaScript, я читал статью про особенности PHP и неожиданно задумался каковы же будут результаты сравнения 2 + 2 = «4» для разных языков программирования. И вот что из этого получилось.

Итоговая таблица для тех кто не хочет много читать
Результат Ошибка компиляции False True
Языки C++
Pascal
FORTRAN-95
Java
C#
Go
Rust
Haskel
C
Lisp
Python
Lua
Ruby
JavaScript
PHP
Perl

Компилятор C выдаёт предупреждение, компилятор C++ ошибку которая превращается в предупреждение если указать флаг -fpermissive.

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

Бонусом — функции вывода на консоль для этих языков.
Читать полностью »

Single Responsibility Principe достаточно прост для понимания и его не сложно придерживаться.
Но в работе я достаточно часто сталкиваюсь нарушением этого принципа. В этой статье я собрал самые больные из способов нарушить SPR из тех, что я встречал.
Читать полностью »

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

Чаще всего используется простой подход — создание набора SQL-скриптов для модификации структуры БД от версии к версии. Конечно, есть такой мощный инструмент, как Red gate, но он во-первых небесплатный, во-вторых не решает проблему полной автоматизации обновления.

Технология migrations, впервые появившаяся в ОРМ Hibernate и реализованная в Linq, очень хороша и удобна, но подразумевает стратегию разработки структуры БД code first, что весьма трудоемко для уже существующих проектов, а использование в БД триггеров, хранимых процедур и функций делает задачу перехода на code first практически невыполнимой.

В данной статье предлагается альтернативный подход к решению этой задачи, использующий хранение эталонной структуры БД в XML-файле и автоматическую генерацию SQL-скрипта на основе сравнения эталонной и существующей структуры. Итак, начнем...

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

Как обучать вычислительному мышлению? - 1

Перевод поста Стивена Вольфрама (Stephen Wolfram) "How to Teach Computational Thinking".
Выражаю огромную благодарность Полине Сологуб за помощь в переводе и подготовке публикации


Содержание

— Вычислительное будущее
— Что такое вычислительное мышление?
— Знакомство с Wolfram Language
— А что насчет…
— Основы
— Куда может вписаться вычислительное мышление?
— Что дети могут делать?
— Во главе с детьми
— Что такое вычисления и программирование?
— Как все это будет происходить?


Вычислительное будущее

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

Так вышло, что для получение автомата по программированию бедным первокурам задали одну интересную задачу: написать программу, которая ищет по дереву методом Монте-Карло.

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


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