C#, проверить, открыта ли форма.

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

Например, такой код при нажатии на кнопку создаст столько форм frmChild, сколько раз кнопка будет нажата:

private void btnOpenForm_Click(object sender, EventArgs e)
{
    frmChild fChild = new frmChild();
    fChild.Show();
}

Конечно, можно сделать форму модальной, с помощью fChild.ShowDialog(), тогда мы не будем иметь доступа к первой форме, пока вторая не закроется. Но если это не нужно, например, мы хотим свободно переключаться между двумя формами, но вторую создать только один раз.

Открытые формы содержатся в Application.OpenForms. И фактически, надо просто перебрать этот массив, чтобы посмотреть, открыта или нет форма, например по ее имени:

foreach (Form f in Application.OpenForms)
    {
        if (f.Name == "frmChild")
        {
            lblFormOpened.Text = "Form #2 already opened!";
            return;
        }
    }

Код обработчика нажатия кнопки целиком:

private void btnOpenForm_Click(object sender, EventArgs e)
{
    lblFormOpened.Text = "";
    
    foreach (Form f in Application.OpenForms)
    {
        if (f.Name == "frmChild")
        {
            lblFormOpened.Text = "Form #2 already opened!";
            return;
        }
    }
    frmChild fChild = new frmChild();
    fChild.Show();
}

Источник
Код примера на GitHub

Электроника MK-45

Принесли вот такую няшечку, и оставили на наше попечение.
После замены конденсатора в блоке питания заработал. Показывает факториал из числа 666:

Шильдик:

Да, стоил достаточно дорого, две зарплаты продавца в магазине, или техника на метеостанции. Если примерно советский рубль по покупательной способности считать за евро (а примерно так и выходит), то на наши деньги 125 евро или 9000 путинских рублей. С учетом отсутствия в СССР кредитов, купить его мог профессор или какая-нибудь контора. Минус нашего прибора — даже после чистки клавиш, они все равно периодически залипают, потому подробного видеообзора не будет.
Зато нам едет настоящий программируемый МК, который мог даже в игры — доедет, на него будет полновесный обзор с видео.

Питается от 220 вольт, дисплей вакуумно-люминисцентный (т.е. вместо жидких кристаллов внутри у него хитросделанная вакуумная лампа).

Задняя часть

Микрокалькулятор «Электроника МК-45» является настольным вариантом калькулятора «Электроника МК-36». В настольном варианте не используется клавиша совмещения функций «F», а все функции вынесены в отдельные блоки клавиш. Калькулятор производился с 1983 года на заводах «Эльтав» в Дагестане и на заводе «Электронприбор» в городе Фрязино Московской области и продавался по цене 85 рублей.
Дизайн корпуса калькулятора повторяет модель «Электроника МК-44», однако количество клавиш позволяет легко различить эти модели.
Результат вычисления отображается на четырнадцатиразрядном вакуумно-люминесцентном индикаторе, при этом два разряда[SP1] никак не используются. Это было сделано специально ради экономии, чтобы не изготавливать новую модель индикатора, а использовать уже выпущенную и проверенную.

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

Питание калькулятора осуществляется от сети переменного тока 220 В.

Габаритные размеры — 241✕185✕77 мм.
Вес не более 1,0 кг.

Описание с elektronika.su

Настройка IPTABLES

На самом деле, жутко не люблю настраивать IPTables, поскольку синтаксис у него несколько инопланетный. Дома и на работе я как-то настроил один раз лет 10 назад и благополучно все забыл. Теперь вот приходится мучительно вспоминать: «Чем ты это делал? Ну вот этой вот мясорубкой.».

Настройки обновлены, старые под катом

Вроде все правильно, но стойкое ощущение, что где-то накосячил. Кто больше шарит в IPTABLES, приму все комментарии по поводу данной темы.

Природо-интернетозащитная песня про Ёлочку

В лесу родилась ёлочка,
В лесу она росла.
Зимой и летом стройная,
Зеленая была.

Метель ей пела песенку:
«Спи, ёлочка, бай-бай!»
А сисадмин на ёлочку
Прикручивал вай-фай

Трусишка зайка серенький
И Леший с Водяным
Собралися под елочкой
С планшетом дорогим.

А кто и с ноутбуками
Под елочку пришел
Здесь нет Роскомнадзора, ведь
Халавный ВэПэЭн!

Везёт лошадка дровенки,
На дровнях — мужичок
А шел бы ты отсюда нах
От ёлки петушок.

И вот уже его бошка
На елочке висит
И наш Darknet Мизулина
Никак, бля, не сломит.

Аццкий погодный информер.

Не, он и правда настолько аццкий и быдлокод, что я всем его даже не покажу. Редкий случай, когда мне почти стыдно. Там все, и наглое выдирание данных прямо из HTML, и стукнутое преобразование их в таблицу, CSV, а потом и DataSet, для дальнейшего анализа, и прочее, и прочее. Если дизайнер изменит сайт, с которого берется погода, то оно работать не будет, и не факт, что я буду это переделывать.

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

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

В общем, скачать бинарники и исходники можно здесь, а ключик (у кого вдруг еще нет, или кто не из своих захочет на этот быдлокод посмотреть) спрашивать в редакции через Телеграм.