В 10тые шарпы добавили скопт неймспейсы, на одную бесполезную вложенность меньше.
Кстате в Vala эту фичу назвали Kotlin-style namespace declaration https://gitlab.gnome.org/GNOME/vala/-/issues/943
Ну и да, в плюсах оно было оччень давно
Кстате в Vala эту фичу назвали Kotlin-style namespace declaration https://gitlab.gnome.org/GNOME/vala/-/issues/943
Ну и да, в плюсах оно было оччень давно
Чел учит тервер с GPT 4 как с личным репетитором, даже захотелось попробовать, мне например греческий надо выучить
Впервые буду седня проводить технические собеседования, с другой стороны тк сказать
У мя идея вместо остачерчевшего всем ооп поспрашивать про функциональную парадигму, заодно немножко отобъет теоретическую натасканнасть на "типичные вопросы на интервью онлайн без смс"
У мя идея вместо остачерчевшего всем ооп поспрашивать про функциональную парадигму, заодно немножко отобъет теоретическую натасканнасть на "типичные вопросы на интервью онлайн без смс"
gavr_sas
Впервые буду седня проводить технические собеседования, с другой стороны тк сказать У мя идея вместо остачерчевшего всем ооп поспрашивать про функциональную парадигму, заодно немножко отобъет теоретическую натасканнасть на "типичные вопросы на интервью онлайн…
ясн, это была попытка войтивайти нашару написав один около проект на спринге, филологи выйдя с вуза поняли шо такой профессии не существует и зашевелились.
Надеюсь следующие кандидаты будут лучше
Первое тестовое кста сделано было хорошо, теперь рассматриваем как бы поменять процесс чтобы отметать таких раньше, например микро тестовое поместить попозже
Надеюсь следующие кандидаты будут лучше
Первое тестовое кста сделано было хорошо, теперь рассматриваем как бы поменять процесс чтобы отметать таких раньше, например микро тестовое поместить попозже
🗿2😁1
gavr_sas
ясн, это была попытка войтивайти нашару написав один около проект на спринге, филологи выйдя с вуза поняли шо такой профессии не существует и зашевелились. Надеюсь следующие кандидаты будут лучше Первое тестовое кста сделано было хорошо, теперь рассматриваем…
Сейчас так, сначала скрининг интервью(тест на турка), потом интервью чуть более углубленное после которого дается простое тестовое на дом, там буквально обычные вопросы, некоторые с примерами кода, вот это тестовое кандидат сделала отлично, а сейчас на полноценном интервью не смогла даже ответить на теже самые вопросы(после этого интервью кстати дается уже более серьезное тестовое)
Сначала кажется что тогда лучше поместить техническое интервью до тестового
Но с другой стороны это прикольно, оно дает возможность сразу же проверить сам ли чел делал тестовое или вместе с GPT, так сказать поймать за руку как дешевку
Вот думаем стоит ли менять процесс
Сначала кажется что тогда лучше поместить техническое интервью до тестового
Но с другой стороны это прикольно, оно дает возможность сразу же проверить сам ли чел делал тестовое или вместе с GPT, так сказать поймать за руку как дешевку
Вот думаем стоит ли менять процесс
Визуализация по данным Нью Йоркского музея современного искусства, размер кружка — количество работ, после 65 еще живы и ложатся на ось абсцыссс
https://gnykka.io/moma-artists
https://gnykka.io/moma-artists
gavr_sas
Почему только числа? В процессоре тоже только числа, все логично, привязавшись к какой-нибудь конкретной реализации типов вроде String получится менее универсально, может для скорости мы хотим аски таблицу, а у нас токо UTF-8(в JVM), так что хотите строки…
3 окт, 25 окт
упс
Вообщем в прошлом посте разобрал шо васм из себя представляет в плане рантайма, теперь сам язык.
Ну так то это байткод, но как и у машинного кода есть ассемблер для удобного чтения человеками, так и у васм байткода есть WAT(?) — WebAssembly text format
Сейчас каждый wasm бинарь содержит в себе модуль, который импортирует и экспортирует функции.
Рассмотрим на примере функции складывающей 2 числа, которую мы будем постепенно улучшать:
Ретурна нет, все по модному, последнее значение есть возвращаемое, тут мы положили на стек через i32.const 2 числа, и вызвали add которая 2 числа со стека берет и кладет обратно результат.
Также можно заметить что все это похоже на лисп, и действительно WAT сделан на S-expressions, тк кк человекам сложно держать в голове стек, все функции можно также вызывать в виде S-expressions, конечно это просто синтаксический сахар:
упс
Вообщем в прошлом посте разобрал шо васм из себя представляет в плане рантайма, теперь сам язык.
Ну так то это байткод, но как и у машинного кода есть ассемблер для удобного чтения человеками, так и у васм байткода есть WAT(?) — WebAssembly text format
Сейчас каждый wasm бинарь содержит в себе модуль, который импортирует и экспортирует функции.
Рассмотрим на примере функции складывающей 2 числа, которую мы будем постепенно улучшать:
(module(result i32) - тип возвращаемого значения
(func (result i32)
i32.const 1
i32.const 2
i32.add
)
)
Ретурна нет, все по модному, последнее значение есть возвращаемое, тут мы положили на стек через i32.const 2 числа, и вызвали add которая 2 числа со стека берет и кладет обратно результат.
Также можно заметить что все это похоже на лисп, и действительно WAT сделан на S-expressions, тк кк человекам сложно держать в голове стек, все функции можно также вызывать в виде S-expressions, конечно это просто синтаксический сахар:
(i32.addКоличество аргументов строго фиксировано, поэтому чтобы сложить 3 числа придется сделать 2 сложения, в отличии от лиспов:
(i32.const 1)
(i32.const 2))
(i32.add#wasm
(i32.const 1)
(i32.add
(i32.const 1)
(i32.const 2)))
gavr_sas
3 окт, 25 окт упс Вообщем в прошлом посте разобрал шо васм из себя представляет в плане рантайма, теперь сам язык. Ну так то это байткод, но как и у машинного кода есть ассемблер для удобного чтения человеками, так и у васм байткода есть WAT(?) — WebAssembly…
Запуск
Пора бы как то это вызвать, для простоты вызывать будем пока что из js, для этого функции нужно дать имя, заодно обозначив как экспортируемую
В js ничего интересного фетчим Wasm как обычный файл, загоняем в
Это возможно из-за того что Wasm структурный, то есть в нем нет всяких джампов\эксепшонов(пока) изза которых код может прыгать в неизвестных направлениях, поэтому мы можем спокойно компилировать его строчка за строчкой даже если еще не получили весь файл, однопроходной интерпретацией также славилась луа.
Пора бы как то это вызвать, для простоты вызывать будем пока что из js, для этого функции нужно дать имя, заодно обозначив как экспортируемую
(func (export "select_simple") (result i32)И вот ее уже можно вызывать из js
(i32.add
(i32.const 1)
(i32.const 2))
)
await WebAssembly.instantiateStreaming(fetch(url)).then((result) => {
const { select_simple } = result.instance.exports;
let sas = result.instance.exports.select_simple()
console.log(sas);
});
И вот мы получили заветные 3 в консоле.В js ничего интересного фетчим Wasm как обычный файл, загоняем в
instanceStreaming, что означает стрим компиляцию прямо пока получаем файл, это при скорости интернета в 20 Мбит экономит 2Х времени по сравнению с тем, если бы мы сначала получили весь файл, а потом его скомпилировали. Это возможно из-за того что Wasm структурный, то есть в нем нет всяких джампов\эксепшонов(пока) изза которых код может прыгать в неизвестных направлениях, поэтому мы можем спокойно компилировать его строчка за строчкой даже если еще не получили весь файл, однопроходной интерпретацией также славилась луа.
gavr_sas
Запуск Пора бы как то это вызвать, для простоты вызывать будем пока что из js, для этого функции нужно дать имя, заодно обозначив как экспортируемую (func (export "select_simple") (result i32) (i32.add (i32.const 1) (i32.const 2)) )…
# Аргументы
Во первых это длиннющее
Во первых это длиннющее
(export "add") в объявлении функции выглядит так себе, его можно вынести в отдельное (export "add" (func $add)) оставив в самой функции только имя $add
(moduleСкладывать константы не интересно, пора добавить аргументы, делается это также как с возвращаемым значением, только вместо result будет param, и аргументам можно давать имена через $
(export "add" (func $add))
(func $add (result i32)
...
)
)
(func $add (param $a i32) (param $b i32) (result i32)Отлично, осталось заменить наши константы на получение этих параметров:
...
)
(func $add (param $a i32) (param $b i32) (result i32)В js теперь:
(i32.add
(local.get $a)
(local.get $b))
)
console.log(add(1, 2));
Получаем заветные 3
#wasm