@proRuby

Страница 572 из 1594
Alex
29.05.2017
07:01:24
смешно

я еще раз говорю что я могу подставить туда генератор, алгоритмическая сложность увеличится, для меня, как программиста - не изменится.

Alexander
29.05.2017
07:02:03
Ещё раз речь только о синтаксисе и о сахаре
Окей. Тому, кто хочет понять и изучить алгоритмы, наверное, одинаково легко будет понять, что там один и тот же алгоритм?

Alex
29.05.2017
07:02:09
потому что я не пишу этот боилерплейт. Я говорю что я хочу получить, а не как это сделать.

Google
Alan
29.05.2017
07:03:11
Речь господа об определении алгоритма, а не о синтаксисе

Alex
29.05.2017
07:03:53
Докажите что руби под капотом итерирует массив также как вариант на C.

Alexander
29.05.2017
07:03:58
Нет, синтаксически один и тот же алгоритм представлен по разному
Ну вот и всё. Человек изначально сюда с такой целью пришёл

Alex
29.05.2017
07:04:19
именно

Alan
29.05.2017
07:04:53
Если это сортировка пузырьком, то она алгоритмически одинаковая на любом языке

Alex
29.05.2017
07:05:51
ЕСЛИ

Alexander
29.05.2017
07:05:57
Если это сортировка пузырьком, то она алгоритмически одинаковая на любом языке
Да, но её обычно учат на си или подобного уровня языке. А человек с целью понять и изучить алгоритмы пришёл в руби-чат — это и обсуждается

Alex
29.05.2017
07:06:00
вы сделали заявление что под капотом они идентичны

Alan
29.05.2017
07:06:10
Потому что последовательность действий , которые нужно делать с данными, чтобы получить результат одинаковая

Alex
29.05.2017
07:06:17
Вы в этом уверены?

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

Google
Alexander
29.05.2017
07:07:06
Если это сортировка пузырьком, то она алгоритмически одинаковая на любом языке
Цель обычно "отсортировать", а не "отсортировать пузырьком", и реализовано это может быть разными алгоритмами на разных ЯП, а кое-где вообще никак не реализовано

Alex
29.05.2017
07:07:19
уверен что под капотом используется более эффективная сортировка.

Alexander
29.05.2017
07:08:17
Потому что последовательность действий , которые нужно делать с данными, чтобы получить результат одинаковая
Последовательность действий компьютера — да, программиста — нет, вот в чём разница. И мы здесь про деятельность программистов говорим, а не компьютера

Alex
29.05.2017
07:08:46
да там даже под капотом машинный код различается на порядок

Alan
29.05.2017
07:09:17
Последовательность действий компьютера — да, программиста — нет, вот в чём разница. И мы здесь про деятельность программистов говорим, а не компьютера
Ну я исключительно про определение алгоритма как последовательности действий над данными, а не написания кода

Господа я очень люблю руби

Alan
29.05.2017
07:10:04
Но если вообще говорить об алгоритмах, то на си вы его показали а на руби просто один из способов привели-какой алгоритм под капотом там я хз, гляну

Но мы-то все тут код пишем
Но термин алгоритма от этого не меняется

Alex
29.05.2017
07:10:44
вы уверены что под капотом я массив итерирую не через линуховые пайпы например? :)

вы так уверено сказали что алгоритм одинаковый.

Alan
29.05.2017
07:11:04
да там даже под капотом машинный код различается на порядок
Машинный код даже в разных компиляторах на си отличается, речь не о машинном коде

Alex
29.05.2017
07:11:13
о чем и речь.

Alan
29.05.2017
07:11:27
о чем и речь.
Речь о термине алгоритма и последовательности действий над данными

Alex
29.05.2017
07:12:08
пройтись по массиву в любом порядке.

ладно, мне лень спорить, я делаю это изза вредности. Мне скорее проще согласиться.

Evgeny
29.05.2017
07:34:15
def create_revocation(html) @districts.each do |k, v| @threads << Thread.new do html.at_css('[id="org_name"]').content = v[:org] html.at_css('[id="fio_table"]').content = v[:fio] etc File.open("/home/evgeny/Рабочий стол/1/#{k}.html", 'w') { |f| f.write(html.to_html) } end end end Есть вот такой вот код, не могу понять как сделать этот метод потокобезопасным без использование мьютекса. Как видно из кода в html попадают значения просто рандомно, т.к. они выполняются на одной переменной html, но вот если сделаю внутри треда html = html, то все равно потоки изменяют тот html, который передан в метод, а не локальныю html которую должен видеть только текущий поток. У меня получилось только если прямо сделать html = File.open....., тогда все данные сохраняются корректно.

Google
Evgeny
29.05.2017
07:43:25
там внутри есть еще вызовы к апи внешнему, если делать в одном главном потоке делается долго, с потоками в 4 раза быстрее

Evgeny
29.05.2017
07:45:45
Так я же сказал ускорить) Или ты спращиваешь че апи делает?

Alexander
29.05.2017
07:45:57
Так я же сказал ускорить) Или ты спращиваешь че апи делает?
цель кода. твоего куска, условно говоря

Evgeny
29.05.2017
07:46:24
Шаблоны генерирую для списка полученного из yml файла

Alexander
29.05.2017
07:47:06
шаблоны куда нужно отдать?

Evgeny
29.05.2017
07:47:37
otziv = File.open('/home/evgeny/Рабочий стол/1.html') { |f| Nokogiri::HTML(f, nil, Encoding::UTF_8.to_s) }

вот его и передаю в метод

Alexander
29.05.2017
07:48:15
otziv = File.open('/home/evgeny/Рабочий стол/1.html') { |f| Nokogiri::HTML(f, nil, Encoding::UTF_8.to_s) }
достаточно было "паршу с нокогири локальный файл")

Evgeny
29.05.2017
07:48:18
А далее в него все вставляю и сохранаю в итоге

Alexander
29.05.2017
07:48:34
А далее в него все вставляю и сохранаю в итоге
в локальный файл? под другим названием или тем же?

Evgeny
29.05.2017
07:48:39
разный

имя берется из ключа хэша

Alexander
29.05.2017
07:49:56
один HTML проходит разную обработку и сохраняется в разные места?

Evgeny
29.05.2017
07:50:32
ну так да, в одном потоке с этим нет никаких проблем, изменил сохранил, новая итерация

Alexander
29.05.2017
07:50:48
передавай в поток переменную

для избежания модификации исходного объекта можешь dup использовать

Alex
29.05.2017
07:51:54
в руби нет мьютексов т.к GIL

Google
Alex
29.05.2017
07:51:59
может они и есть но они не нужны.

Evgeny
29.05.2017
07:52:20
пробовал dup

А вот передать в thread че то не додумался

сработало

хотя чем не нравится вариант с html = html внутри треда

или даже html.dup

Alexander
29.05.2017
07:53:17
Evgeny
29.05.2017
07:56:42
Видимо свсязано с работой самой vm, о внутренностях которой я не особо знаю. Спс еще раз)

че то я походу рано порадовался, лажа)

Lupsick
29.05.2017
08:06:27
Посоны, вот у меня есть задача: нужно из одного сложного хэша, сделать другие разные хэши (сорт оф форматтер). Как это можно лучше сделать? Формат приходящего хэша я знаю сомнительно, но в процессе это выяснить реально

Admin
ERROR: S client not available

Alexander
29.05.2017
08:10:07
че то я походу рано порадовался, лажа)
Ну, если ждёшь помощи — то лучше описать, в чём лажа

Evgeny
29.05.2017
08:10:28
@threads « Thread.new(html.dup)

Все равно внутри блока все рандомно вписывается

Alexander
29.05.2017
08:16:16
@threads « Thread.new(html.dup)
Если это всё, что ты изменил в том коде — этого недостаточно

Evgeny
29.05.2017
08:16:47
почему?

Alexander
29.05.2017
08:17:00
потому что это не полный процесс передачи переменной)

как ты передаёшь переменную методу или блоку?

Evgeny
29.05.2017
08:17:44
Трындец я короче, забываю все находу

Alexander
29.05.2017
08:18:02
Трындец я короче, забываю все находу
достаточно погуглить и понять)

Google
Evgeny
29.05.2017
08:18:11
да я тыщу раз делал такое

а щас сомтрю как баран

на новые ворота

за Александра)

Oleg
29.05.2017
08:25:18
Привет, кто-нибудь сталкивался с такой штукой? 2.3.1 :126 > 4.01-4.0 => 0.009999999999999787

No
29.05.2017
08:26:13
Да. Почитай про представление чисел в памяти

Прояснит ситуацию

https://habrahabr.ru/post/112953/

четвертый пункт как раз по твоей проблеме

Alexander
29.05.2017
08:30:58
ToshiDono
29.05.2017
08:31:18
Всем привет! Читаю "The Cucumber Book", в примере строка 'ruby calc.rb #{@input}' должна исполнится, но у меня не исполняется. Если честно никогда такого не видел. Подскажите пожалуйста, как сделать так, чтобы она выполнялась?

Oleg
29.05.2017
08:31:26
Спасибо, гайс

ToshiDono
29.05.2017
08:38:22
проблема не в инпуте, а в том, что calc.rb вопринимается как метод, а не как файл который должен быть запущен как будто я в консоли ввожу ruby calc.rb и передаю ему значение из @input

Evgeny
29.05.2017
08:40:39
А есть полный пример, или это все что там написано? обычно ruby file в консоли запускают или передают туда аргументы, я так понял у тебя должен выполнится скрипт из шела и вернуть результат я так понимаю

и Cucumber еще кто то пользуется?

ToshiDono
29.05.2017
08:41:43
https://paste2.org/39gDBzV2

Alex
29.05.2017
08:41:53
Evgeny
29.05.2017
08:42:02
Выше спрашивают)

И даже примеры делают

Alexander
29.05.2017
08:43:12
https://paste2.org/39gDBzV2
очень странная компановка "команда райз анлесс"

Страница 572 из 1594