Грокаем DLR

Автор: admin от 4-10-2019, 23:20, посмотрело: 33

Предисловие переводчика



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




Многие .NET разработчики слышали про Dynamic Language Runtime (DLR), но почти ничего о нем не знают. Разработчики, пишущие на языках типа C# или Visual Basic, избегают языков с динамической типизацией из-за боязни исторически связанных с ними проблем с масштабируемостью. Также их беспокоит тот факт, что языки типа Python или Ruby не выполняют проверку типов во время компиляции, что может привести к сложным для поиска и исправления ошибкам в рантайме. Это обоснованные опасения, которые могут объяснить, почему DLR не пользуется популярностью среди основной массы .NET разработчиков даже спустя два года после официального релиза [статья довольно старая, но с тех пор ничего не изменилось]. В конце концов, любой .NET Runtime, содержащий в себе слова Dynamic и Language в своем названии, должен предназначаться строго для поддержки таких языков, как Python, правильно?



Притормозите. В то время как DLR действительно была задумана для поддержки «Iron» реализации Python и Ruby в .NET Framework, её архитектура предоставляет гораздо более глубокие абстракции.



Грокаем DLR

Категория: Программирование

 

Serverless Telegram бот в Яндекс.облаке, или 4.6 копейки за 1000 сообщений

Автор: admin от 4-10-2019, 21:05, посмотрело: 26

Serverless Telegram бот в Яндекс.облаке, или 4.6 копейки за 1000 сообщений


"Whenever you receive a webhook update, you have two options"

Из Telegram Bot Api Faq



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



Долгое время концепция serverless (а если говорить точнее — её реализация в виде сервиса AWS Lambda) была для меня относительно понятной, но очень абстрактной идеей. Она часто звучала в Radio-T, обсуждениях на реддите, но никак не входила в мою жизнь. Рабочие проекты живут не в облаке, а домашние — зачем? Виртуалки дешевеют, Docker освоен, и всё отлично работает.



Но презентация Yandex Cloud Functions, и в особенности озвученные цены на этот сервис, дали новую пищу для размышлений.



TL;DR — дождливым пятничным вечером мы напишем простенького Telegram бота на javascript, который сможет отвечать на запросы простыми сообщениями. Если это ваш домашний проект — его использование почти наверняка обойдётся вам значительно дешевле самых бюджетных VPS.



Поехали.

Категория: Яндекс

 

Неизменяемых коллекций в Java не будет – ни сейчас, ни когда-либо

Автор: admin от 4-10-2019, 20:15, посмотрело: 58

Всем привет!



Сегодня вашему вниманию предлагается перевод вдумчиво написанной статьи об одной из базовых проблем Java — изменяемости, и о том, как она сказывается на устройстве структур данных и на работе с ними. Материал взят из блога Николая Парлога (Nicolai Parlog), чей блестящий литературный стиль мы очень постарались сохранить в переводе. Самого Николая замечательно характеризует отрывок из блога компании JUG.ru на Хабре; позволим себе привести здесь этот отрывок целиком:



Неизменяемых коллекций в Java не будет – ни сейчас, ни когда-либо


Николай Парлог — такой масс-медиа чувак, который делает обзоры на фичи Java. Но он при этом не из Oracle, поэтому обзоры получаются удивительно откровенными и понятными. Иногда после них кого-то увольняют, но редко. Николай будет рассказывать про будущее Java, что будет в новой версии. У него хорошо получается рассказывать про тренды и вообще про большой мир. Он очень начитанный и эрудированный товарищ. Даже простые доклады приятно слушать, всё время узнаёшь что-то новое. При этом Николай знает за пределами того, что рассказывает. То есть можно приходить на любой доклад и просто наслаждаться, даже если это вообще не ваша тема. Он преподаёт. Написал «The Java Module System» для издательства Manning, ведёт блоги о разработке ПО на codefx.org, давно участвует в нескольких опенсорсных проектах. Прямо на конференции его можно нанять, он фрилансер. Правда, очень дорогой фрилансер. Вот доклад.




Читаем и голосуем. Кому пост особенно понравится — рекомендуем также посмотреть комментарии читателей к оригиналу поста.

Категория: Программирование

 

Финансовая ловушка в Яндекс.Деньги

Автор: admin от 4-10-2019, 14:00, посмотрело: 63

Привет, Хабр! Хотел бы поделиться с вами одной особенностью Яндекс.Денег, которая выглядит, как ловушка для ваших денег и, на мой взгляд, является хорошим примером непродуманного UX. Хочется верить, что это было сделано не нарочно, а эта небольшая статья или как-то оградит часть аудитории хабра (из ближнего зарубежья) от этой ловушки или же как-то сподвигнет Яндекс на улучшение этого момента.



Итак, по существу. Вчера впервые зарегистрировался на Яндекс.Деньгах, тут же перевел туда деньги со своей карты, для этого почему-то (!!!) не потребовалось указывать своих данных. Далее я попробовал совершить перевод денег и тут я понял, что сделать этого не могу, так как нужно было уже указать паспортные данные. Проблема заключалась в том, что я не являюсь гражданином РФ и проживаю в Литве, методы прохождения идентификации не предполагают быстрого и относительно недорогого решения проблемы, потому что ближайший город, где это можно сделать — это Рига (Латвия). И, наконец, окончательная засада заключается в том, что вернуть деньги на свою же карту (с которой было осуществлено пополнение) я тоже не могу, так как нужно пройти идентификацию. Замкнутый круг.

Категория: Яндекс

 

Инициализация в современном C++

Автор: admin от 4-10-2019, 13:20, посмотрело: 72

Инициализация в современном C++

Общеизвестно, что семантика инициализации — одна из наиболее сложных частей C++. Существует множество видов инициализации, описываемых разным синтаксисом, и все они взаимодействуют сложным и вызывающим вопросы способом. C++11 принес концепцию «универсальной инициализации». К сожалению, она привнесла еще более сложные правила, и в свою очередь, их перекрыли в C++14, C++17 и снова поменяют в C++20.



Под катом — видео и перевод доклада Тимура Домлера (Timur Doumler) с конференции C++ Russia. Тимур вначале подводит исторические итоги эволюции инициализации в С++, дает системный обзор текущего варианта правила инициализации, типичных проблем и сюрпризов, объясняет, как использовать все эти правила эффективно, и, наконец, рассказывает о свежих предложениях в стандарт, которые могут сделать семантику инициализации C++20 немного более удобной. Далее повествование — от его лица.

Категория: Android

 

Школы программирования при компаниях или как войти в IT

Автор: admin от 4-10-2019, 13:20, посмотрело: 72

Школы программирования при компаниях или как войти в IT


Наверняка, кто-то из вас натыкался на вакансии компаний под хитрым названием Java/javascript/Android/C# School. Вроде и не позиция в штате, с другой стороны, неплохая возможность, а иногда и единственная, данную позицию получить. К сожалению, на просторах интернета данный вид “образования” несколько недооценен. Что же это за зверь такой, и кому он необходим? Давайте разбираться!

Категория: Android

 

Создание простой кликер-игры с нуля

Автор: admin от 4-10-2019, 12:10, посмотрело: 20

В последние несколько лет набирают большую популярность игры такого жанра, как «кликеры». Мне самому очень интересно играть в них, но не менее интересно создавать игру — кликер самому. Благодаря такому движку как Unity, создать свой шедевр не составит труда даже простому новичку. Давайте перейдем к делу.



Что нужно сделать?




  • Подумать, почему и на что мы должны кликать?

  • Что должно произойти, когда мы кликнем?

  • Что должно произойти, если не кликнем?



  • Как ответил я на эти вопросы:




  • Мы должны кликать в любое место на экране.

  • При клике должен смениться объект.

  • При игнорировании — проигрыш.



  • О чем будет игра?



    Игроку нужно вовремя выбрать либо меч, либо щит, в зависимости от того, что будет падать сверху. То есть, падает меч — выбираем меч, падает щит — выбираем щит. При неправильном выборе игрок просто проиграет. На словах всё довольно просто, а в реализации еще проще.

    Категория: Android

     

    Уменьшение размеров бандлов с помощью Webpack Analyzer и React Lazy/Suspense

    Автор: admin от 4-10-2019, 11:40, посмотрело: 17

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



    Уменьшение размеров бандлов с помощью Webpack Analyzer и React Lazy/Suspense



    Автор статьи, перевод которой мы сегодня публикуем, работает в Wix. Он хочет рассказать о том, как смог уменьшить размер одного бандла примерно на 80%, используя Webpack Analyzer и React Lazy/Suspense.

    Категория: Веб-разработка

     

    Только не говорите, что вы таким не были или мой взгляд на обучение

    Автор: admin от 4-10-2019, 11:10, посмотрело: 19

    Всем привет. Я хотел бы рассказать свое мнение по поводу современного обучения программированию. В статье речь пойдет про PHP, немного про фреймворки и немного про велосипеды. Но я думаю, что к любому языку программирования это применимо. Начнем.



    Помните свой первый код на PHP?



    Нет, не этот:



    <?
        echo "Hello world"; // и в браузере у нас скачивается index.php :)
    ?>

    А вот этот:


    <?
        include "db.php";
        if ($_GET['id'] > 0){
            mysql_query("SELECT * FROM `posts` WHERE id = {$_GET['id']}");
        }else{
            mysql_query("SELECT * FROM `posts` ORDER BY `id` DESC");
        }
    ?>

    Категория: Программирование

     

    Новый курс по Python от Microsoft [на английском]

    Автор: admin от 4-10-2019, 03:00, посмотрело: 25

    Вероятно, самое большое препятствие при изучении любого нового языка программирования — просто знать, с чего начать. Что важно? Что нужно знать, чтобы стать профи? Трудно исследовать документы, когда даже нет уверенности, что читаешь то, что нужно.



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



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



    К счастью, концепции обычно не меняются при переходе с одного языка программирования на другой. Конечно, синтаксис может быть другим, но оператор if все еще является оператором if, даже если он написан с использованием { } или End If. Поэтому не нужно учиться тому, как программировать, нужно учиться программировать на новом языке.



    Наши коллеги Сюзан и Крис создали серию обучающих видео по Python для начинающих! Вы можете знать, как писать код, например, на javascript, Java или C# (или на COBOL, или на Bash, или… на самом деле это не имеет значения). Возможно, вы учились в колледже, онлайн или читали книгу, и вам не нужно учить, что такое выражение if. Вам скорее нужно понять, как выглядит выражение if в Python.



    Новый курс по Python от Microsoft [на английском]

    Категория: Microsoft

     
    Назад Вперед