[Из песочницы] Байт-машина для форта (и не только) по-индейски

image

Да-да, именно «байт» и именно по индейски (не по индийски). Начну по порядку. В последнее время тут, на Хабре, стали появляться статьи о байт-коде. А когда-то давным-давно я развлекался тем, что писал форт-системы. Конечно, на ассемблере. Они были 16-ти разрядными. На x86-64 никогда не программировал. Даже с 32 поиграться не удалось. Вот и пришла такая мысль — а почему бы нет? Почему бы не замутить 64х разрядный форт, да ещё с байт-кодом? Да еще и на Linux, где я тоже ничего системного не писал.

У меня есть домашний сервер с Linux. В общем, я немного погуглил и узнал, что ассемблер на Linux называется GAS, а команда as. Подключаюсь по SSH к серверу, набираю as — есть! Он у меня уже установлен. Ещё нужен компоновщик, набираю ld — есть! Вот так, и попробуем написать что-нибудь интересное на ассемблере. Без цивилизации, только лес, как у настоящих индейцев 🙂 Без среды разработки, только командная строка и Midnight Commander. Редактор будет Nano, который висит у меня на F4 в mc. Как там поет группа «Ноль»? Настоящему индейцу нужно только одного… Что еще нужно настоящему индейцу? Конечно, отладчик. Набираем gdb — есть! Ну что же, нажмем Shift+F4, и вперед!
Читать дальше →
[Из песочницы] Байт-машина для форта (и не только) по-индейски
Source: habrahabr

[Перевод] Что такое Method Handles в Java

1. Вступление

В этом туториале мы рассмотрим важный API, представленный в Java 7 и расширенный в новых версиях, java.lang.invoke.MethodHandles.

Мы узнаем, что такое method handles, как их создавать и использовать.

Читать дальше →
[Перевод] Что такое Method Handles в Java
Source: habrahabr

Как оформить заказ на бирже фриланса

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


Читать дальше →
Как оформить заказ на бирже фриланса
Source: habrahabr

В ядре Linux слово fuck заменили на hug

После решения Линуса Торвальдса о временном уходе из проекта в сентябре 2018 года совет директоров Linux Foundation принял новый кодекс поведения для разработчиков ядра Linux — Code of Conduct (CoC), чтобы «решить проблемы, связанные с дискриминацией, и улучшить эмоциональную обстановку среди разработчиков».

У новых правил было много сторонников, но объявились и недоброжелатели, которых вообще не привлекла идея подобной «доброжелательности». Разгорелись жаркие дебаты. 30 ноября эти споры вышли на новый уровень, потому что что один из авторитетных разработчиков Яркко Саккинен из компании Intel начал применять кодекс поведения на практике — и исправил несколько комментариев в коде ядра, заменив слово fuck (многозначное слово) на hug («обнимашки»).
Читать дальше →
В ядре Linux слово fuck заменили на hug
Source: habrahabr

Применяем Veeam Backup & Replication для тестирования новых систем и приложений перед апгрейдом

Месяц с небольшим тому назад компания Microsoft объявила о выходе новейшей версии Windows Server 2019. Однако после GA (general availability) были обнаружены серьезные недостатки, как и в Windows 10 October 2018 Update (оно же 1809) – установка обновления приводила к потере данных (файлы из My Documents жестоко удалялись, так что их нельзя было восстановить из Windows.old). Производитель был вынужден отменить релиз до устранения проблемы. И вот наконец-то 13 ноября починенная версия увидела свет.

Наряду с этим следует вспомнить, что скоро Microsoft завершит поддержку SQL Server 2008 R2 и Windows Server 2008 R2.

Естественно, что у пользователей возникает множество вопросов по переходу на новые системы:
Переезжать ли в облако Microsoft Azure? Как безопасно повысить функциональный уровень домена? Переходить ли на Azure SQL? Может, надо виртуализировать Windows Server 2008 R2 или перенести в Azure? Надо ли мигрировать на новейший Hyper-V?

Миграция на новую платформу нужна, чтобы обеспечить для критически важных приложений, работающих в ЦОД, наличие системы, поддерживаемой вендором. Поэтому важно, чтобы миграция прошла без сюрпризов. Пользователям Veeam повезло — у них есть хорошие способы минимизировать риски при подобных операциях, чтобы, как говорится, “7 раз отмерить, 1 раз отрезать”.

За подробностями добро пожаловать под кат.


Читать дальше →
Применяем Veeam Backup & Replication для тестирования новых систем и приложений перед апгрейдом
Source: habrahabr

Идёт мобильный разработчик по лесу, видит — Котлин горит. Сел в Котлин и сгорел

Мир сходит с ума. Говорят, все новые мобильные проекты на Андроиде пишут исключительно на Котлине. В наше время очень опасно не учиться новым технологиям. Вначале твои знания устаревают, ты вылетаешь с работы, живешь у теплотрассы, дерёшься с бомжами за еду и умираешь в безвестности, так и не выучив функционального программирования. Поэтому я отправился на Курсеру изучать курс Kotlin for Java Developers и начал читать книжку (привет, abreslav, yole), поспрашивал друзей сами знаете откуда и вернулся назад с некой пустотой в душе. Помогите Олегу-путешественнику найти смысл в Котлине!

Читать дальше →
Идёт мобильный разработчик по лесу, видит — Котлин горит. Сел в Котлин и сгорел
Source: habrahabr

К вопросу о параметрах драйвера в Linux, или как я провел выходные

«Мы ленивы и нелюбопытны»

На сей раз поводом к посту послужила статья в неплохом журнале, посвященном ОС Linux (далее по тексту Л), в которой привлеченный «эксперт» хвалил драйвер подключения ЖКИ к плате Raspbery. Поскольку подобные вещи (подключение, не ОС) входят в сферу моих профессиональных интересов, статью просмотрел с вниманием, потом нашел собственно текст «драйвера» и был слегка удивлен, что ЭТО можно хвалить. Ну, в общем то, уровень эксперта можно определить хотя бы потому, что он упорно именовал программу драйвером, несмотря на то, что она им никоим образом не является. Казалось бы, и фиг с ним, мало ли кто что пишет для себя, но выкладывать подобное в открытый доступ — «я и не знал, что так можно».

Особенно порадовало то обстоятельство, что адрес устройства на шине I2C напрямую задавался в тексте программы и для его изменения требовалась ее перекомпиляция (хорошо, что не всего ядра). Я, кстати, заметил, что на форумах, посвященных Л, наиболее популярный ответ на любой вопрос о проблемах в ПО, «пересобери последнюю версию ядра». Мне данный подход представляется несколько странным, наверное, я чего-то не знаю. Но, тем не менее, возник вопрос, а как в Л действительно реализуется (внутри, не снаружи — там все просто и понятно) параметризация драйвера, ответу на который и посвящен данный пост.
Читать дальше →
К вопросу о параметрах драйвера в Linux, или как я провел выходные
Source: habrahabr

[Перевод] Малоизвестные возможности JavaScript

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

image

Сегодня мы поговорим о малоизвестных возможностях JavaScript и о вариантах их практического применения.
Читать дальше →
[Перевод] Малоизвестные возможности JavaScript
Source: habrahabr