netwizard

пикабушник
пол: мужской
поставил 410 плюсов и 5 минусов
отредактировал 2 поста
проголосовал за 3 редактирования
13К рейтинг 581 подписчик 1148 комментариев 15 постов 12 в "горячем"
6211

Автоматизация на почте

Устроился на работу сотрудником почты. На окраине города стоит полупустое здание, там начальство решило сделать архив. Рабочие привезли туда огромную груду мешков с письмами, которые требовалось отсортировать и занести в базу. Процесс таков: имеется пачка писем, обвязанная шпагатом. У каждой пачки есть накладная со штрихкодом, в котором зашифрована информация по этой пачке. Нужно 1) нажать в программе кнопку "сканировать штрихкод" 2) провести сканером по накладной 3) подождать 10-30 секунд пока программа расшифрует ШК 4) нажать кнопку "внести данные" 5) подождать 30-90 секунд 6) написать на пачке диапазон номеров, которые программа присвоила этим письмам (10-15 сек) 7) нажать кнопку "закрыть накладную" (5-10 сек), выйти назад в меню 8) следующий цикл.


Как видите, все эти ожидания плюс время на нажатие кнопок отнимает много времени. Во время 10-30 и 30-90 секундных перерывов можно занять себя открывая очередной мешок в другом конце комнаты и вытаскивая новые пачки, однако приходится бегать туда сюда и жать кнопки. Тогда я написал скрипт, автоматически определяющий когда закончился предыдущий шаг (распознавание экрана), жмущий нужные кнопки, а также назначил горячие клавиши, которые быстро выходят в меню и начинают новый цикл. Также я наловчился писать цифры загодя на основе диапазонов предыдущих пачек и количества писем в текущей. Теперь процесс выглядит так: сканирую ШК, иду занять себя другими делами (вскрытие мешков, написание цифр на следующих накладных, складирование готовых), программа в это время сама проходит полный цикл, возвращаюсь, сканирую следующий ШК и т.д. Скорость работы приблизилась к теоретическому пределу: теперь все упиралось в скорость работы программы, ускорить которую я не мог. Но этого вполне хватало, программа постоянно что-то обрабатывала, а я выполнял другие работы.


Также были бракованные накладные или пачки писем вообще без накладных. Приходилось брать каждое письмо 1) сканировать его ШК 2) клик "ввести данные" 3) 1-2 секунды программа думает 4) вылезает окно с характеристиками письма, тут ничего не делаем, все письма одинаковые, жмем "сохранить письмо" 5) следующий цикл

Как видите, опять много ненужных движений, нужно откладывать сканер в сторону, тянуться к мышке, два раза жать в разные места на экране. Моментально был написан скрипт, автоматизирующий всю эту лабуду, теперь процесс свелся к "пикнул письмо сканером (сканер издает звук при считывании), жду 2 секунды, пикаю следующее письмо" и т.д. Работа ускорилась в 2-4 раза, да и сил тратится гораздо меньше.


Но мне и этого показалось мало. Мало приятного в двухсекундном пялении в монитор. Открыл блокнот, занес туда штрихкоды писем, каждое письмо требует треть-полсекунды. Затем пишется еще один скрипт, который заносит в программу из блокнота по письму каждые 2 секунды, а я иду пить чай (а писем очень много, 10-30 тысяч, их накопилось достаточно за три года). Или не иду. Принес с собой ноутбук, пока скрипт работает над другой пачкой писем, открываю на ноуте блокнот и вношу туда следующую партию. Скорость работы выросла еще больше.


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


Мои посты по автоматизации


Автоматизация с AutoHotKey

https://pikabu.ru/story/avtomatizatsiya_rutinyi_s_autohotkey...


Распознавание экрана в AutoHotKey https://pikabu.ru/story/avtomatizatsiya_rutinyi_s_autohotkey...

Показать полностью
1759

Принцип работы холодильника

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


Суть предельно проста. Наливаем воду в бак. Из бака откачиваем воздух, т.е. создаем вакуум. В какой-то момент вода начнет закипать. Почему? Потому что при снижении давления снижается и температура кипения воды.


Если вы подниметесь на Эверест, то заметите, что вода закипает не при 100 градусах, а при 68. И наоборот, если давление поднять, то температура кипения увеличится. На этом основан принцип работы скороварок - внутри них создается давление выше атмосферного, и вода кипит при температуре выше 100 градусов. Еда варится быстрее.

Принцип работы холодильника Пикабу образовательный, Наука и техника, Холодильник, Гифка, Длиннопост

Итак, откачиваем из бака воздух, давление снижается, и в какой-то момент вода начинает кипеть при комнатной температуре. При этом она поглощает из окружающей среды теплоту, или как ее еще называют скрытая теплота парообразования. Если намочить руку и подуть на нее, руке станет холодно, верно? Это потому что мы заставляем воду испаряться (дуем), а ей, чтобы превратиться в пар, нужно откуда-то взять энергию. Вот она и берет тепло от руки.


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

Именно это и происходит в холодильнике. Только вместо воды используется фреон - легкокипящая жидкость. Достаточно совсем немного опустить давление, и фреон уже кипит. Для этого вместо откачивающего насоса фреон пропускают через длинный тонкий капилляр.


Согласно законам гидравлики, чем длиннее и тоньше трубопровод, тем большее сопротивление испытывает жидкость, проходящая через него, и тем сильнее падает давление этой жидкости. Если воду пропустить через такую трубку, она, конечно, не закипит, а вот фреону такого небольшого понижения давления достаточно - и он закипает. Откройте свой холодильник и посмотрите на его стенки: в этот самый момент за ними фреон постепенно теряет давление и кипит, отнимая теплоту от внутренностей холодильника.

Принцип работы холодильника Пикабу образовательный, Наука и техника, Холодильник, Гифка, Длиннопост

Далее парообразный фреон нужно снова превратить в жидкость. Для этого его сжимают компрессором.

Принцип работы холодильника Пикабу образовательный, Наука и техника, Холодильник, Гифка, Длиннопост

Однако тут есть небольшая проблема. Газы при сжатии нагреваются. Компрессор сжимает фреон и превращает его в жидкость, но: а) на выходе получается горячая жидкость с температурой 80-100°, нас такая не устраивает; б) на выходе получается не совсем жидкость, а скорее перегретый пар.


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

Принцип работы холодильника Пикабу образовательный, Наука и техника, Холодильник, Гифка, Длиннопост

И, наконец, получившуюся охладившуюся жидкость снова пускают по змеевидному капилляру внутри холодильника, где она кипит, охлаждая стенки до -20° (примерно).


Итого: как работает холодильник? Заставляют фреон кипеть, в процессе кипения тот поглощает тепло. Получившийся пар сжимают в жидкость электрокомпрессором, а от образовавшегося при сжатии тепла избавляются с помощью воздушного радиатора.

Будут вопросы - пишите!

Показать полностью 3
1255

Автоматизация рутины с AutoHotKey

Здравствуйте! Сегодня я хочу познакомить вас с замечательным инструментом автоматизации под названием AutoHotKey!

С ним вы сможете:

1) Программировать действия мышкой, нажатия клавиш;

2) Быстро заполнять однотипные бланки, формы;

3) Ставить на горячие клавиши заклинания, кастовать их в течение миллисекунд после перезарядки (что бывает критично);

4) Автоматизировать какие-либо рутинные действия и идти пить кофе.


Сразу предупрежу - писать скрипты поначалу очень капризное занятие. Будут такие ситуации, что код почему-то не работает, и вам придется думать полдня где вы совершили ошибку. Листать документацию. Просить помощи в интернете. Проверять синтаксис.

Однако вложенное время окупается с лихвой. При достаточном освоении AutoHotKey сэкономит вам кучу времени и нервов.


В данном посте я дам лишь описание конкретных примеров применения скриптинга на практике и расскажу про те подводные камни, которые не описаны в документации.


Итак, начнем. Ссылка на программу:

https://autohotkey.com/download/ahk-install.exe (3 Мб)


Написание кода ведется в файлах *.ahk, которые редактируются обычным блокнотом.

Создайте текстовый файл и измените его расширение.

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

Затем откройте его с помощью блокнота. Теперь вы готовы к работе!

Перейдем к практике.

Напишите


F1:: Send Здравствуйте{!}


Сохраните изменения. Запустите скрипт двойным кликом. Встаньте на какое-нибудь текстовое поле и нажмите F1. Первый опыт скриптинга у вас уже есть.

!, #, ^, +  это служебные знаки. Для того, чтобы напечатать их, нужно оформить их скобками.

Для выключения скрипта нажмите на его иконке возле часов, затем Exit.


Краткое введение закончено, дальше пойдут лишь небольшие советы.


1) Добавьте к скрипту

F12:: Suspend, Toggle

, чтобы ставить/снимать его с паузы клавишей F12


2) Чтобы горячая клавиша не блокировалась скриптом и выполняла также свою обычную функцию, пишите ~.

~F3:: Send {Down}


3)

1::

Send {Tab 5}привет{Enter}  ;пять раз таб, привет, энтер

Click 100, 100  ;клик по заданным координатам, отсчитывается слева-сверху

Click, 2  ;клик два раза

Click right  ;клик правой кнопкой

Send {Down}{Left}{Up}

Send {PgUp}{PgDn}

Send {Space}{Del}

Send {b down}

Sleep, 1000  ;зажать b, ждать 1 секунду, отпустить

Send {b up}  

Return  ;конец списка команд, вызываемых кнопкой "1"


Полный список клавиш смотрите в документации. Пуск -> AutoHotKey -> AutoHotKey HelpFile -> Mouse and Keyboard -> Send


4)

^F1::  ;при нажатии на Ctrl+F1

MouseGetPos, X, Y  ;выдаст текущие координаты курсора

MsgBox, %X%, %Y%

Clipboard = %X%, %Y%  ;и скопирует их в буфер обмена

Return


Обратите внимание - по умолчанию координаты отсчитываются от левого верхнего угла активного окна.

Можно заставить скрипт отсчитывать координаты от левого верхнего угла экрана, предварительно прописав:


CoordMode, Mouse, Screen


Вернуться обратно:


CoordMode, Mouse, Window


5) Модификаторы: "^" = Ctrl, "+" = Shift, "!" = Alt.

Send !{Tab}  ;Alt+Tab

Send +{Home}

Send ^{vk56}  ;Ctrl+V


Почему именно {vk56}, а не {v}? Потому что ^{v} будет работать только при английской раскладке, при русской пришлось бы написать ^{м}.

Однако без всего это можно обойтись, обратившись к клавише через ее виртуальный код.


Список наиболее часто используемых виртуальных кодов:


Send ^{vk43} ;Ctrl+C

Send ^{vk56} ;ctrl+V

Send ^{vk58} ;ctrl+X

Send ^{vk41} ;ctrl+A

Send ^{vk5A} ;ctrl+Z

Send ^{vk53} ;ctrl+S

Send ^{vk51} ;ctrl+Q

Send ^{vk57} ;ctrl+W

Send ^{vk52} ;ctrl+R

Send ^{vk42} ;ctrl+B

Send ^{vk4E} ;ctrl+N

Send ^{vk4C} ;ctrl+L


Аналогично, если вы хотите сделать буквенную клавишу горячей, лучше обратиться к ней через ее виртуальный код:


vk56::Send {Click}  ;посылает клик при нажатии на "м" или "v".


Полный список виртуальных кодов клавиш: http://www.kbdedit.com/manual/low_level_vk_list.html


6) Быстро разворачиваем фотографии правильной стороной.

В стандартной утилите просмотра фотографий Windows есть опция "Развернуть картинку"

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

NumPad1:: Send ^{,}

NumPad2:: Send ^{.}


Обратите внимание, что эти клавиши работают только при английской раскладке.

Английские точка с запятой расположены справа от клавиши "m" и являются отдельными клавишами. Русская точка и запятая находятся слева от шифта и объединены в одну клавишу.

И еще: чтобы нажать Numpad1 и 2, должна гореть лампочка NumLock.


7)

~1::

Loop,

{

If A_Cursor=Unknown

Click

Sleep, 20

If GetKeyState("2","p")=1

Break

}

F12::Suspend, Toggle


При нажатии кнопку 1 скрипт будет посылать клики, если заметит, что курсор принял форму руки. Нажатие кнопки 2 (и непродолжительное ее удерживание) разрывает цикл.

Осторожно, если вы наведете мышь на ссылки браузера при активном цикле, он вам их откроет!


Таким образом я автоматизировал прохождение флеш игры Deanimator.

Достаточно навести мышкой на зомби, и профессор сам стреляет, да еще и со скоростью пулемета!

http://www.de-animator.com/deanimator.swf

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

8)

1::

MouseGetPos, xpos, ypos

MouseClick, left, 130, 70, , 0 ; [WhichButton , X, Y, ClickCount, Speed, D|U, R]

MouseMove, xpos, ypos, 0

Return


Скрипт кликает карточку горохострела вверху экрана и вовзвращает курсор на место.

Цифры 0 в обоих операторах отвечают за скорость перемещения курсора, то есть мгновенно.

Можно закрепить за клавишей 1 горохострел, за 2 - подсолнух и т.д., и быстро без напряга сажать растения.

(координаты 130, 70 вам, скорее всего, придется поменять. Воспользуйтесь пунктом 4)

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

9) Допустим, вам нужно поставить звездочку или другой символ в конце каждой строки.

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

NumPad1::

Send {*}{Up}{End}

Return


Ставим звездочку, переходим вверх, идем в конец строки. Готово!

Если нужно удалить символ в конце каждой строки, пишем:


NumPad1::

Send {Backspace}{Up}{End}

Return


Если нужно удалить два символа:


NumPad1::

Send {Backspace 2}{Up}{End}

Return


10) Нужно щелкать мышью как можно чаще? Не проблема!

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

~1::

While GetKeyState("1","p")=1

{

Click

Sleep 20

}

Return


Данный скрипт посылает клики каждые 20 мс при нажатой клавише "1".

Или можно так. Посылаем клики до тех пор, пока не будет нажата клавиша "2".


1::

While GetKeyState("2","p")=0

{

Click

Sleep 20

}

Return



Ладно, на этом пока все. Будут вопросы - обращайтесь!

Можно даже сделать так: пишите какие типичные рутинные операции нужно разобрать, и они появятся в следующем посте!


P.S.

/*

Многострочный комментарий.

Для выключения участков кода

*/

Показать полностью 5
904

Почему нельзя ставить горячее в холодильник?

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

Тут есть три опасных момента:


1) Стеклянная полка, на которую вы ставите горячую кастрюлю, испытывает тепловые деформации.


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

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


То же самое происходит со стеклянной полкой холодильника. Стекло под кастрюлей нагревается и расширяется, а остальная часть - нет. Оно может быть и не треснет, но могут появиться микротрещины, которые со временем будут уменьшать прочность полки.


Так что подкладывайте под кастрюлю доску.


2) Горячая вода очень хорошо испаряется, остывает, и оседает на стенках холодильника в виде инея. Образуется "шуба", которая мешает фреону забирать тепло от продуктов. В результате падает эффективность (КПД) охлаждения и, соответственно, увеличивается нагрузка на компрессор. Уменьшается срок службы холодильника. Регулярно счищайте снег со стенок холодильника, а еще лучше - размораживайте его!

Когда ставите горячий суп в холодильник, обязательно накрывайте его крышкой!


Подробнее про принцип работы холодильника: http://pikabu.ru/story/printsip_rabotyi_kholodilnika_5089398


3) При нормальной работе холодильника компрессор работает циклично. Грубо говоря, поработает, отдохнет, поработает, отдохнет. Когда же вы ставите в холодильник горячее, компрессор начинает работать без перерыва несколько часов. Может сильно нагреться и перегореть обмотка компрессора.

Так что лучше сначала охладите суп при комнатной температуре.


На этом все, будут вопросы - пишите!

679

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

Суточное вращение Земли постепенно замедляется. Луна "тянет" океаны на себя, океаны передают импульс суше. В то же время океаны "тянут" Луну на себя, заставляя ее крутиться по орбите быстрее. Луна набирает скорость и переходит на более высокую орбиту, постепенно отдаляясь от Земли.

Через 100 млн. лет количество дней в году станет равным примерно 358 Наука, Астрономия, Космос, Познавательно, Гифка, Длиннопост

Этот процесс будет продолжаться до тех пор, пока вращение системы Луна-Земля не станет полностью синхронным, как это уже произошло в системе Плутон-Харон.

Через 100 млн. лет количество дней в году станет равным примерно 358 Наука, Астрономия, Космос, Познавательно, Гифка, Длиннопост

Так называемые приливные силы стремятся привести систему в равновесное состояние, при котором оба объекта становятся неподвижными относительно друг друга.

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


Нечто похожее наблюдается и у нас, только Луна намного меньше Земли (масса меньше в 81 раз), поэтому Земля успела развернуть Луну к себе одной стороной, а Луна Землю еще нет.

Луна отдаляется от Земли на 4 сантиметра в год, а солнечные сутки на Земле становятся длиннее на 1,7мс каждые сто лет.


Однако Луна не может уйти от Земли насовсем. Кинетическая энергия вращения Земли переходит в потенциальную энергию высоты орбиты Луны, а эта энергия не бесконечна. Когда вращение системы Земля-Луна станет полностью синхронным, действие приливных сил прекратится, приливы и отливы на Земле, вызванные влиянием Луны исчезнут (останутся только приливы, вызываемые влиянием Солнца, но они гораздо слабее), Земля будет делать оборот вокруг своей оси за (грубо) 40 дней.


Нетрудно приблизительно посчитать, насколько увеличится продолжительность суток за 100 млн.лет. В 2000 году продолжительность солнечных суток (СС) составляла 86400,002 секунды. Количество солнечных суток в тропическом году по состоянию на 2000 год = 365,2421897 суток. Отсюда количество секунд в году = 31556925,92 с.


100 млн.лет дают прирост суток на 10^8*0.0017/100 = 1700 c, то есть примерно полчаса.

Продолжительность СС составит 88100,002 с; количество СС в году уменьшится до 358 дней.

Через 100 млн. лет количество дней в году станет равным примерно 358 Наука, Астрономия, Космос, Познавательно, Гифка, Длиннопост

Аналогично проделаем расчеты для 5 млрд. лет. К этому времени Солнце уже погаснет, но если не принимать это в учет, то получим длительность суток 47 часов, а дней в году станет 184.


P.S. В прошлом Земля вращалась быстрее. Откопал в Интернете, что 680 млн. лет назад в сутках был 21 час.

P.S.S. Анимация создавалась в Macromedia Flash 8.

Показать полностью 1
657

Автоматизация рутины с AutoHotKey. Часть 2: Распознавание экрана.

Небольшое продолжение к предыдущему посту

http://pikabu.ru/story/avtomatizatsiya_rutinyi_s_autohotkey_...

За прошедший год мое владение скриптами немного улучшилось, в частности, теперь я могу научить скрипт распознавать изображение на экране, искать всякие кнопки, рисунки и т.д.


Давайте попробуем какую-нибудь незатейливую программу, например игрушку сапер.

Научим скрипт реагировать на нашу смерть.

Автоматизация рутины с AutoHotKey. Часть 2: Распознавание экрана. Автоматизация, Autohotkey, Длиннопост

Делаем скриншот, открываем Пэйнт, и выделяем небольшой кусочек желтой рожицы.

Автоматизация рутины с AutoHotKey. Часть 2: Распознавание экрана. Автоматизация, Autohotkey, Длиннопост

Обрезаем и сохраняем в файл smert.png. Можно сохранять и в bmp и в jpg, Autohotkey кушает их всех.

Получился вот такой небольшой файлик:

Автоматизация рутины с AutoHotKey. Часть 2: Распознавание экрана. Автоматизация, Autohotkey, Длиннопост

Этот кусочек изображения и будет искать скрипт.

Теперь нам нужны координаты области на экране, где скрипт будет производить поиск. Можно, конечно, сказать скрипту сканировать весь экран, но это нерационально и наверняка будет приводить к задержкам в работе.

Запускаем этот скрипт:


^F1::

MouseGetPos, X, Y

Tooltip, %X% %Y%

Clipboard = %X%, %Y%

Sleep 1000

Tooltip

Return


При нажатии ctrl+F1 координаты курсора появятся на экране И скопируются в буфер обмена.

Автоматизация рутины с AutoHotKey. Часть 2: Распознавание экрана. Автоматизация, Autohotkey, Длиннопост

Наша задача: получить координаты вот этой области. А именно - координаты левого верхнего и правого нижнего углов. Подведите кончик курсора к ЛВ углу и нажмите Ctrl F1. Сохраните эти координаты. То же самое с ПН углом. (окно Сапера должно быть активным)

Автоматизация рутины с AutoHotKey. Часть 2: Распознавание экрана. Автоматизация, Autohotkey, Длиннопост

Теперь создайте следующий скрипт:


F1::

Loop,

{

ImageSearch, xp, yp, 75, 61, 97, 83, *50 smert.png

Sleep 200

If xp > 0

Break

}

MsgBox, Muhaha!

Return


F10::ExitApp

F12::Suspend, Toggle


Если скрипт ничего не находит, то переменным xp, yp присваивается пустое значение, Null.

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

*50 отвечает за строгость поиска. *0 максимальная строгость, *255 минимальная.


F10 нужен для аварийного выхода из скрипта если вы вдруг создадите бесконечный скрипт, блокирующий ваши действия.

F12 для временного отключения/включения горячих клавиш.


Итак, расположите smert.png в одной папке со скриптом, запустите сапера, нажмите F1, и каждый 200 миллисекунд скрипт будет искать ваш файлик на экране.

Автоматизация рутины с AutoHotKey. Часть 2: Распознавание экрана. Автоматизация, Autohotkey, Длиннопост

Готово!


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


С уважением, netwizard.

Показать полностью 4
318

Зачем дороги посыпают солью?

Ответ в следующем. Температура плавления смеси двух разных веществ всегда ниже, чем по отдельности. Допустим, у меня есть металл А, который плавится при температуре 600°. Если я добавлю к нему какой-нибудь металл Б, то получившаяся смесь будет плавиться при температуре, скажем 580°. Или если металл Б плавится при 800°, то добавим немного металла А, и станет 780°.


Данная особенность очень удобна при контроле качества чистоты получения различных веществ. Если мы хотим получить чистый металл А, а температура плавления опытного образца ниже 600°, значит в этом образце присутствуют загрязнения.


Причина в том, что при затвердевании такой смеси получается конфликт кристаллических решеток металла А и металла Б, в результате эти самые решетки получаются ломаными, неправильными, и на образование таких решеток нужно больше теплоты, чем на образование геометрически правильных решеток чистого вещества. Ну да ладно, суть не в этом.


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


Для снега и поваренной соли минимальная достижимая температура плавления = -21.2°С.

Замерзло лобовое стекло автомобиля? Нет проблем! Просто посыпьте его солью, и через некоторое время лед растает!

Что же на самом деле тут происходит? А дело в том, что с точки зрения снега лобовое стекло становится горячим! Моя температура плавления -20°С, а температура стекла 0°С, слишком горячо для меня! И я плавлюсь. А еще меня окружает горячий воздух температурой 0°С. Я плавлюсь.


То же самое с гололедом. На меня бросают соль, и вдруг асфальт становится для меня невыносимо горячим! Воздух тоже становится горячим!


Или взять эксперимент со сжатием в кулаке смеси снега с солью.

Нет, никаким химическим ожогом тут, вопреки мнению некоторых людей, не пахнет.

Дело в том, что чистый снег охлаждает руку, но не может охладить ее ниже 0°С.

Если же добавить соль, то он охлаждает руку до -20°С!


Однако не это является главной причиной ожогов. Когда снег плавится, он поглощает из окружающей среды огромное количество тепла. Это называется скрытой теплотой плавления. Она в сотни раз больше теплоемкости снега.

К примеру, для того, чтобы нагреть 1 кг снега с -1° до 0°, требуется 2 кДж тепла.

А для того, чтобы расплавить 1 кг снега, требуется 335 кДж тепла!


Поэтому, когда в снег добавляют соль, интенсивность его плавления резко возрастает, и он буквально высасывает из всего вокруг себя тепло. Осторожно, можно получить серьезные ожоги! Лучше не прикладывайте к коже, а используйте, например, чтобы быстро охладить напитки. Или сделать мороженое.


Вот так вот. Будут вопросы - пишите!

Показать полностью
265

Принцип работы паровой турбины

Отвечаю на комментарий http://pikabu.ru/story/tolerantnost_4414188#comment_70961298

Принцип работы паровой турбины Наука, Термодинамика, Технарь, Адольф Гитлер, Длиннопост

В самом деле, почему на электростанциях отработавший газ, прошедший через турбины, разогретый до температуры 70°С, нужно охлаждать, перед тем, как снова пустить его в нагрев? Ведь теряется столько тепла? Почему бы сразу не отправить его в котел?


Отвечаю.

Для этого придется углубиться в теорию. Представь, что есть источник тепла. Котел с углем, например. Нужно преобразовать эту тепловую энергию в механическую работу. Но ведь тепло просто так не переведешь в работу! Нагретый котел сам по себе не сдвинет коленчатый вал и не заставит вращаться лопасти.

Для этого нужен посредник. Газ. Называемый также рабочим телом.


Простейший способ обустроить процесс - поместить газ в цилиндр с поршнем. Нагреваешь котлом газ, котел отдает ему тепло Q1, которое преобразуется во внутреннюю энергию газа U. Затем он расширяется, толкает поршень, то есть совершает работу А. Внутренняя энергия газа при этом понижается.


Что же дальше? Чтобы начался следующий цикл, нужно вернуть поршень на место. Но ведь сделать это не так просто! Подумай - газ нагрелся так, что его давление стало 20 атмосфер, затем толкнул поршень и охладился. Значит, когда мы затолкнем поршень обратно, температура вновь подскочит до 1000°С (газы при сжатии нагреваются) и давление снова станет равным 20 атмосферам! Чтобы преодолеть такое давление, нужно затратить работу А, и весь наш выигрыш в работе в итоге станет равным нулю.

Принцип работы паровой турбины Наука, Термодинамика, Технарь, Адольф Гитлер, Длиннопост

Хорошо, что мы свободно можем играться с температурой!

Достаточно дать газу остыть, то есть подождать, пока он отдаст окружающему воздуху (холодильнику) тепло Q2.


Делается это так - немного сжимаем поршень, температура и давление подскакивают, дальше толкать поршень становится уже трудно (увеличилось давление). Ждем, пока газ остынет, с уменьшением температуры уменьшится и давление. Теперь поршень снова можно толкать. Толкаем поршень, ждем, пока упадут температура и давление. И так пока не придем к начальному состоянию.


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


Какой вывод мы сделали в итоге? Если бы не было окружающего воздуха, которому газ по мере сжатия мог бы отдавать лишнее тепло, нам бы пришлось изрядно попотеть, сжимая поршень до 20 атмосфер.


Вот почему так важно охлаждение.


----------------------------------------------------


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

Принцип работы паровой турбины Наука, Термодинамика, Технарь, Адольф Гитлер, Длиннопост

Пояснение к рисунку выше:

1) Пружинка комнатной температуры. Просто пружинка.

2) Теперь нагреваем пружинку. Она становится напряженной, но выпрямиться ей мешает недостаток места и такие же напряженные пружинки по соседству.

3) Когда появляется возможность расшириться, пружинка выпрямляется, совершает работу и охлаждается.


А вот схема процесса.

Принцип работы паровой турбины Наука, Термодинамика, Технарь, Адольф Гитлер, Длиннопост

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

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

Принцип работы паровой турбины Наука, Термодинамика, Технарь, Адольф Гитлер, Длиннопост

P.S. От вращения праха Гитлера толку будет мало. Сыпучий объект. Крутиться должен труп.

Показать полностью 4
254

Текстовый квест "Икебана" в Космических Рейнджерах

На днях решил снова сыграть в такую древнюю игру, как Космические Рейнджеры, и наткнулся там на этот квест.


Напомню, его суть такова: на столе лежат цветки пяти разных цветов, количество цветков каждого цвета не может превышать три. Начальное количество цветков определяется случайным образом. Право ходить первым вы оставляете себе, либо же отдаете его сопернику. Игроки по очереди добавляют цветки какого-то одного цвета, от 1 до 3 штук. Победившим считается тот, чей ход завершит "гармонию Икебаны", то есть доведет ее до состояния 3-3-3-3-3.

Текстовый квест "Икебана" в Космических Рейнджерах Космические рейнджеры, Прохождение, Икебана, Математика, Длиннопост

Тут я задался вопросом: существует ли какая-то беспроигрышная стратегия?

Немного погуглив, я нашел этот совет.

Квест этот весьма сложен и непредсказуем, так что дам только основную стратегию, с которой можно выиграть в большей части случаев. Нужно делать первый ход и этим ходом добиваться, чтобы на поле осталось четное количество чётных чисел. Приведу пример: имеется следующая икебана: красный - 1, жёлтый - 2, зелёный -1, синий - 2, фиолетовый - 0. Чётных чисел здесь 3 - от жёлтого (2), синего (2) и фиолетового (0) цветов. Нужно добавить либо красный, либо зелёный цвет до двух. Далее необходимо повторять действия соперника, то есть если он увеличивает число цветков с 2 до 3, то надо у другого цвета сделать то же самое.

Неплохо, подумал я, но, увы, эта тактика не всегда ведет к победе.

Тогда, поразмыслив, я сделал следующие простейшие наблюдения.


Я побеждаю, если нет {0,1}, а число двоек нечетно. 22222, 22233 - моя победа.

Я побеждаю, если оставлю компьютеру четное число двоек.

Я побеждаю, если единица всего одна и нет нулей. Тогда я смогу оставить компьютеру четное число двоек. 12222 - моя победа.


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


Однако не все так плохо! Сделаем подробный анализ игры. Каждый цвет может принимать значения от 0 до 3. Потратив полчаса в Excel'е, можно с уверенностью сказать, что количество всех возможных комбинаций составляет 55 (за вычетом дубликатов и комбинации 33333).


Неплохо! Едем дальше. Выпишем все возможные состояния на диаграмму и упорядочим их по сумме всех цифр (макс. 14).

Текстовый квест "Икебана" в Космических Рейнджерах Космические рейнджеры, Прохождение, Икебана, Математика, Длиннопост

Теперь начнем окрашивать в зеленый те комбинации, которые однозначно принесут нам победу, а в синий - те, которые однозначно принесут компьютеру поражение!

23333 - зеленый

22333 - синий

Текстовый квест "Икебана" в Космических Рейнджерах Космические рейнджеры, Прохождение, Икебана, Математика, Длиннопост

Окрасим в зеленый те блоки, которыми можно загнать компьютера на синие.

Например, из 02333 можно получить 22333. И компьютер терпит поражение.


Окрасим в синий те блоки, из которых НИКАК нельзя прийти в другие синие блоки.

Из них можно получить только зеленые блоки, которые ведут к нашей победе =)

Текстовый квест "Икебана" в Космических Рейнджерах Космические рейнджеры, Прохождение, Икебана, Математика, Длиннопост

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

P.S. Получить быстрый доступ ко всем квестам можно, нажав в главном меню q.

P.S.S. Сделано на сайте draw.io

Текстовый квест "Икебана" в Космических Рейнджерах Космические рейнджеры, Прохождение, Икебана, Математика, Длиннопост

UPD Математическое обоснование #comment_136426712

Показать полностью 4
153

Движение Солнца через зодиакальные созвездия

Движение Солнца через зодиакальные созвездия Астрономия, Гифка, Интересное, Образование, Небо, Познавательно

Земля движется вокруг Солнца, поэтому нам кажется, что Солнце меняет свое положение относительно звезд. Однако это движение не хаотичное - каждый год Солнце проходит через одни и те же созвездия, именуемые зодиакальными.


В июне Солнце проходит через созвездие Близнецов, в ноябре - через Весы и т.д.

С марта по сентябрь Солнце поднимается в Северное звездное полушарие - Северное полушарие Земли получает больше тепла, наступает лето, в Южном полушарии в это время наступает зима. С сентября по март Солнце опускается в Южное полушарие, в Северном полушарии наступает зима, в Южном - лето.


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


Создано в программах Stellarium и LICEcap.

Мы ищем frontend-разработчика

Мы ищем frontend-разработчика

Привет!)


"Шо? опять?"

Задач так много, что мы не успеваем! И вот нам снова нужны frontend-разработчики!

Как уже стало традицией, мы предлагаем небольшую игру, где вам необходимо при помощи знаний JS, CSS и HTML пройти ряд испытаний!


Зачем всё это?

Каждый день на Пикабу заходит 2,5 млн человек, появляется около 2500 постов и 95 000 комментариев. Наша цель – делать самое уютное и удобное сообщество. Мы хотим регулярно радовать пользователей новыми функциями, не задерживать обещанные обновления и вовремя отлавливать баги.


Что надо делать?

Например, реализовывать новые фичи (как эти) и улучшать инструменты для работы внутри Пикабу. Не бояться рутины и удаленной командной работы (по чатам!).


Вам необходимо знать современные JS, CSS и HTML, уметь писать быстрый и безопасный код ;) Хотя бы немножко знать о Less, Sass, webpack, gulp, npm, Web APIs, jsDoc, git и др.


Какие у вас условия?

Рыночное вознаграждение по результатам тестового и собеседования, официальное оформление, полный рабочий день, но гибкий график. Если вас не пугает удаленная работа и ваш часовой пояс отличается от московского не больше, чем на 3 часа, тогда вы тоже можете присоединиться к нам!


Ну как, интересно? Тогда пробуйте ваши силы по ссылке :)

Если вы успешно пройдете испытание и оставите достаточно информации о себе (ссылку на резюме, примеры кода, описание ваших знаний), и если наша вакансия ещё не будет закрыта, то мы с вами обязательно свяжемся по email.

Удачи вам! ;)

Показать полностью
Отличная работа, все прочитано!