Публикации по теме 'crystal-lang'
Как начать с Traces in Crystal
Вкратце: добавьте два примера кода, чтобы начать работать с трассировками.
Кирк Хейнс ³ недавно начал работать над тем, чтобы сделать открытую телеметрию доступной для приложений Crystal ¹ . Я собрал примитивные примеры, помогающие понять распределенные трассировки.
Первые промежутки на стандартный вывод
OpenTelemetry поддерживает различные типы экспортеров (чтобы визуализировать и анализировать ваши трассировки и метрики, вам нужно будет экспортировать их в серверную часть)...
Руководство для начинающих по веб-сокетам в Elm and Crystal
Этот пост предназначен для людей, которые слышали о веб-сокетах, но никогда не имели возможности их использовать. До написания этого поста я был просто кем-то, кто слышал о веб-сокетах, но никогда не имел возможности их использовать.
Введение в веб-сокеты
Если вы не знаете, что такое веб-сокеты, визуализируйте их как трубу, идущую от сервера к клиенту. Сообщения могут отправляться через этот канал в любом направлении. Что мы подразумеваем под сообщениями ? Сообщения представляют..
Готово ли производство Crystal?
Вы слышали о Crystal Programming Language ? Прошло более трех лет с тех пор, как мы увидели его первую версию, но если вы не знакомы с ней, это статически типизированный, скомпилированный язык с синтаксисом в стиле Ruby.
Это имеет как минимум три последствия:
Со статическими типами мы с большей вероятностью обнаружим некоторые ошибки перед отправкой нашего кода (да, я смотрю на вас NoMethodError for nil:NilClass 🙄) Скомпилированные приложения должны работать почти так же..
Насколько быстро да в кристалле?
Сегодня я случайно наткнулся на эту ссылку, ища вопрос, который у меня был в Node. Сначала я не особо задумывался над этим, но читать дальше было немного интересно, так как, по всей видимости, это было сделано и на C, и на Go, и на JS, конечно же, это должно быть сделано и в Crystal :)
Если серьезно, то это также была возможность лучше узнать некоторые функции Crystal, а именно Slices, и некоторые тесты по быстрому конвейерному выводу.
Насколько быстро да в..
Вопросы по теме 'crystal-lang'
Получить путь к файлу для импорта файла во время компиляции
Если у меня есть файл, который должен потребоваться для других файлов, можно ли получить абсолютный путь к файлу, для которого он требуется?
Итак, если lib_file.cr имеет макрос, который должен вызываться app_file.cr , который его импортировал,...
202 просмотров
schedule
05.09.2021
Сбой сборки Crystal из-за ошибки компоновщика
Я только что попытался запустить простой HTTP-сервер из языковой документации. Программа выдает ошибку.
/usr/bin/ld: cannot find -lssl
collect2: error: ld returned 1 exit status
Error: execution of command failed with code: 1: `cc -o...
266 просмотров
schedule
09.09.2021
Как ограничить тип классом интерфейса, а не экземпляром этого интерфейса?
Учитывая следующий интерфейс в модуле:
module Action
abstract def perform
end
Я хотел бы использовать его для создания экземпляров различных классов, которые его реализуют:
class Run
include Action
def perform
puts "run!"...
143 просмотров
schedule
19.09.2021
Crystal Необработанное исключение в spawn / fork: невозможно выделить память
Я продолжаю сталкиваться с этой ошибкой кристаллического компилятора, и в настоящее время я не вижу никакого обходного пути, кроме перезагрузки моего компьютера. Я подал здесь проблему.
crystal$ crystal build main.cr
Unhandled exception in...
98 просмотров
schedule
21.10.2021
Как в Crystal узнать, является ли файл текстовым или двоичным?
Если у вас есть 2 файла, один текстовый, а другой двоичный, можно ли с помощью Crystal определить, какой файл является текстовым, а какой двоичным?
127 просмотров
schedule
23.09.2021
Hash.includes? дает странный результат в кристалле
Я пытаюсь написать Crystal-эквивалент этого кода Python:
test_hash = {}
test_hash[1] = 2
print(1 in test_hash)
Это печатает True, потому что 1 - один из ключей dict.
Вот код Crystal, который я пробовал:
# Create new Hash
test_hash =...
112 просмотров
schedule
03.12.2021
Можно ли получить IP-адрес входящего подключения к веб-сокету?
Мой сервер websocket работает следующим образом:
ws_hdl = WebSocketHandler.new do |ws|
# here we should determine the IP address of an incoming connection
end
srv = Server.new ws_hdl
srv.listen("0.0.0.0", 8080)
Можно ли получить...
849 просмотров
schedule
18.11.2021
Как прочитать файл в Crystal?
Я недавно познакомился с Crystal, проработав какое-то время рубистом, и, похоже, я ничего не могу найти о классе File. Я хочу открыть и прочитать файл, но возникает ошибка.
file = File.open("ditto.txt")
file = file.read...
984 просмотров
schedule
07.11.2021
Как получить atime и ctime файла (Crystal-lang)
(здесь новичок).
Попытка получить последнее время_доступа и время_создания файла. Таким образом, я нашел, как получить время модификации.
File.info("foo").modification_time
но не могу найти ничего для двух других. (Используется...
41 просмотров
schedule
23.10.2021
Вызов методов динамически (Crystal-lang)
Я понимаю, что это может быть дубликат метода Любого эквивалента метода public_send в Ruby? . Я хотел бы объяснить, что делаю, и, возможно, кто-нибудь сможет посоветовать.
Я портировал приложение Ruby в течение последних нескольких дней, чтобы...
787 просмотров
schedule
14.10.2021
сужение типа не работает, если тип указан?
class Foo
def initialize(@foo : String | Nil)
end
def foo
@foo
end
end
a = Foo.new "213"
if !a.foo.nil?
puts a.foo, typeof(a.foo)
end
получить результат
213
(String | Nil)
но не следует ли сужать тип a.foo до String? Это...
46 просмотров
schedule
13.11.2021
Отражение времени компиляции над членами типа
Я хотел бы написать макрос, который позволит мне выполнять некоторые операции с каждым атрибутом записи, например десериализовать строку CSV в экземпляр записи с правильным приведением типов. С чего мне начать?
58 просмотров
schedule
13.09.2021
Как читать все элементы из канала, когда вы не знаете их фактическое количество
Я пытаюсь реализовать сканер, который посещает какой-то URL-адрес, собирает из него новые относительные URL-адреса и создает отчет. Я пытаюсь сделать это одновременно, используя волокна и каналы Crystal, например:
urls = [...] # of String...
67 просмотров
schedule
27.10.2021
Уточнение типа в кристалле из податливых блоков
Я использовал Enumerable #select (& block) , чтобы попытаться уточнить массив до элементов определенного типа с помощью arr.select { |el| el.is_a?(Bar) } , но это не сработало.
Затем я увидел Enumerable # select (type) , и это сработало:...
59 просмотров
schedule
26.09.2021
Как обрабатывать исключение волокна за пределами волокна?
Иногда вам нужно работать с необслуживаемыми, старыми, грязными, огромными библиотеками, которые могут быть опасны для нашей программы.
Есть ли лучшие практики для безопасного выполнения этого кода?
Недавно я обнаружил (вероятно, на уровне моих...
112 просмотров
schedule
08.09.2021
Почему JSON :: Builder не использует модификатор with obj yield?
Crystal позволяет использовать ключевое слово with для улучшения DSL.
Но в своей стандартной библиотеке он не используется для JSON :: Builder, пример из документации выглядит так:
JSON.build do |json|
json.object do
json.field "name",...
39 просмотров
schedule
22.02.2022
Никакая перегрузка не соответствует 'Slice (UInt8) # +' с типом Slice (UInt8) при запуске кода
Я новичок в Crystal и столкнулся с ошибкой no overload matches 'Slice(UInt8)#+' with type Slice(UInt8) при запуске следующего кода,
require "openssl"
NAME = "Boy"
cipher = OpenSSL::Cipher.new("AES-256-CBC")
cipher.encrypt
key =...
57 просмотров
schedule
02.03.2022
Сочетание именованных аргументов для Crystal
В приведенном ниже коде необходимо продублировать именованные аргументы, есть ли способ сократить выражение?
struct Figure
getter id : String
getter hash : String
getter title : String
def initialize(@id, @hash, @title)
end...
40 просмотров
schedule
01.03.2022
Получение первого элемента пустого массива
Учитывая массив, содержащий ноль или один элемент, как мне вернуть первый элемент или ноль?
У меня есть рабочий код, но он не очень изящный:
class Category < ActiveRecord::Model
adapter sqlite
table_name "categories"
primary id...
443 просмотров
schedule
17.03.2022
Тестирование непубличных маршрутов приводит к ошибке KeyError
Я новичок в Crystal и Amber, и у меня проблема с тестированием непубличных маршрутов. Я использовал генератор аутентификации Amber, а затем создал основу для объекта Job и добавил связанные маршруты в блок routes: auth. Когда я открываю браузер и...
99 просмотров
schedule
14.03.2022