LINUX.ORG.RU

Счётная палата выложила код своего ПО

 


3

4

По ссылке https://code.ach.gov.ru/public доступен исходный код программ (в основном скриптов), написанных программистами счётной палаты.

>>> Исходный код

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)

Ответ на: комментарий от sniper21

Один способов мотивации - кнут. Мы вам сделаем плохо, чтобы вы сделали нам хорошо.

anonymous
()
Ответ на: комментарий от sniper21

Ага и патч будет содержать полное переписывание текущего Г.

KernelPanic
()
Ответ на: комментарий от DzenPython

Начну пожалуй.

---
 names.py | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/names.py b/names.py
index 07cee3a..3be3ad2 100644
--- a/names.py
+++ b/names.py
@@ -4,11 +4,11 @@
 import csv
 
 def run():
-    f = open('names.csv', 'r')
-    reader = csv.reader(f, delimiter=',')
-    n = 0
-    mal = 0
-    fem = 0
+    n = mal = fem = 0
+     
+    with open('names.csv', 'r') as handle:
+        reader = csv.reader(handle, delimiter=',')
+    
     for r in reader:
         s = r[2].decode('utf-8').lower()
         if s[-3:] in ['вна', 'чна']:
@@ -20,17 +20,16 @@ def run():
         elif s[-4:] == 'оглы':
             mal += 1
         else:
-#            if len(s) > 0:
             print(r[0], r[1])
         n += 1
         if n % 1000 == 0:
             print(n)
+
     print('Total', n)
     print('- females', fem, fem * 100.0 / n)
     print('- males', mal, mal * 100.0 / n)
     print('- unknown', n - fem - mal)
 
 
-
 if __name__ == '__main__':
-    run()
+    run()
\ No newline at end of file
-- 
2.20.1.windows.1
sniper21 ★★★★★
()
Последнее исправление: sniper21 (всего исправлений: 1)

Одно дело пулл-реквест для свободного проекта, поддерживаемого сообществом.

Другое дело, когда на места с немаленькой зарплатой набрали людей по принципу родства, а не по принципу квалифицированности. Несмотря на очевидную профнепригодность, никого не уволят (ни после открытия кода на весь мир, ни после инциндента с кассами) - они продолжат сидеть и получать зарплату с наших налогов. А работа должна производиться настоящими специалистами, но за бесплатно: ах ну да это же общее дело; код выложили - предложи конструктив вместо критики; докажи какой ты крутой кодер; это же ГИТ, а ну выдали дождь из фиксов; будьте волонтёрами. Вот только разработка кода сообществом по проектам из родины ГИТ это не то, как поступили в данном случае. Коммит туда = поддержка коррупции.

А теперь сравните ситуации:

А) руководство счётной палаты выложило код на ГИТ и ждёт дождя из баг фиксов;

Б) руководство счётной палаты уволило IT-подразделение всем составом, выложило код и набрало на замещение вакантных должностей профессиональных программистов (увеличив зарплату).

Чувствуется разница?

Тем более лицензия не GNU GPL. Данная ситуация - хороший пример для аргументирующих против GPL. Кто из противников GNU GPL готов коммитить туда?

Alexanderuser
()
Ответ на: комментарий от sniper21

Ты кидай ссылки на (принятые) пулреквесты на ихнем гитлабе. Форум - не место для кодинга.

anonymous
()
Ответ на: комментарий от Alexanderuser

«Вот так меня с феназепама прёт.» (c) Уральские пельмени. В гос конторах, редко есть должность инженер-программист. Зато полно просто должностей инженер, где тебе пледстоит писать программы, но это не вся твоя работа.

sniper21 ★★★★★
()

Когда будут неподтасованные выбoры и не будет людей с крoвью на руках в золотых эшелонах, тогда и поговорим за патчи. Уходите!

anonymous
()
Ответ на: комментарий от sniper21

Она есть! Просто профнепрегодные люди принимают других профнепригодных. Один получает ЗП за двоих, а то и четверых и более.

anonymous
()
Ответ на: комментарий от doctorx

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

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

https://xkcd.com/327/

anonymous
()

Это оптимизация и так быстрее?

        if s[-3:] in ['вна', 'чна']:
            fem += 1
        elif s[-3:] in ['вич', 'ьич']:
            mal += 1
        elif s[-4:] == 'кызы':
            fem += 1
        elif s[-4:] == 'оглы':
            mal += 1

Чем

MALE_ENDS = ('вич', 'ьич', 'оглы')
FEMALE_ENDS = ('вна', 'чна', 'кызы')


def _is_in(name, ends):
    for end in ends:
        if name.endswith(end):
            return True
    return False


def is_male(name: str) -> bool:
    return _is_in(name, MALE_ENDS)


def is_female(name: str) -> bool:
    return _is_in(name, FEMALE_ENDS)
KillTheCat ★★★★★
()
Ответ на: комментарий от sniper21

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

Другое дело, что код вполне вменяемый для этой среды. Я бы ожидал совсем ужас на VB. Айтишников рвет, но это считай не айтишники, и критерии там другие.

anonymous
()
Ответ на: комментарий от KillTheCat

Умник!

кто пишет -

for end in ends:
        if name.endswith(end):
            return True
    return False
? Пацаны на раёне пишут
return any(name.endswith(end) for end in ends)

Остальные знают, что str.endswith принимает tuple

Или у Вас построчная оплата? Тогда вопросов нет :)

anonymous
()
Ответ на: комментарий от Alexanderuser

А работа должна производиться настоящими специалистами, но за бесплатно

А как ты думал? Настоящий ученый не думает о деньгах. Настоящий учитель тоже, как и врач.

руководство счётной палаты уволило IT-подразделение всем составом, выложило код и набрало на замещение вакантных должностей профессиональных программистов (увеличив зарплату).

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

    f = open('names.csv', 'r')
    reader = csv.reader(f, delimiter=',')
    n = 0
    mal = 0
    fem = 0

А если у работника KPI от количества строк?

(Кстати удалили доступ....)

dem ★★
()
Ответ на: комментарий от KillTheCat

Гадя Петрович Хренова - female!

anonymous
()

Очень поддерживаю подобные инициативы. Должно начать приходить понимание, что прятать код смысла нету. Я молчу о том, что бюджетные организации работают за деньги налогоплатильщиков, поэтому хорошо-бы с ними делиться результатом (строго смотрит в сторону МЦСТ)

jekader ★★★★★
()
Ответ на: комментарий от sniper21

В гос конторах, редко есть должность инженер-программист.

В нашей больнице есть такая должность, занимается он заправкой картриджей и тд.

anonymous
()
Ответ на: комментарий от anonymous

Для страны XXI века отсутствие должности программист в штатном расписании организации (неважно - школа, больница, библиотека) - преступление.

Alexanderuser
()
Ответ на: комментарий от Alexanderuser

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

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

jekader ★★★★★
()
Ответ на: комментарий от jekader

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

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

Нужен сайт - заказываешь

1. Если учитель информатики (в случае с школой) или программист (в случае с больницей) не умеет делать сайт, то они профнепригодны (но, если они согласятся выделить на это время за доп. плату - а они согласятся). 2. Зачем обязательно сайт должен быть на PHP и нагруженным скриптами. Обычная HTML страничка - самое то. А для этого не нужна дизайн-студия. 3. Если хотят применить оригинальные графические решения, то да - можно и в дизайн студии. Но, я бы не хотел, чтобы мои налоги тратились на украшательства, когда в стране кризис. Мне достаточно, если сайт школы или библиотеки будет вообще чёрно-белым, но там будет вся информация и он будет лаконичен и строг. 4. Сайт должен ежедневно обновляться: запросы граждан, новости, информация, сервер.

Кроме того, одно дело обслуживать принтер и сделать сайт, а другое создание кода. Я писал в том числе помятуя о необходимости внедрения GNU/Linux во все гос.учреждения. В школе, к примеру столкнутся ребята с вопросами при работе над IT-проектом, кто им поможет? Или после обновления перестанет загружаться GUI. Или привезут новое оборудование, которое нужно подключить. А если проблемы с оборудованием возникнут в больнице? Вам хватит совести будучи главным врачом сказать пациентам: «подождите, завтра приедет программист на аутсорсе» или «подождите недельку, в компании-аутсорс все специалисты в коммандировках».

Более того, согласно нормам сейчас в каждом учреждении есть таковая штатная единица.

Alexanderuser
()
Ответ на: комментарий от doctorx

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

Что ты вообще на этом сайте забыл, чучело? Там вконтакте антипрививочники новый ролик про вред ГМО выложили - беги скорее смотреть.

zabbal ★★★★★
()
Ответ на: комментарий от dem

Тоесть ЗП ты получишь в 4 раза меньше....

У меня нет построчной оплаты. У меня доходы скорее зависят от решённых задач. Ну и от активности продажников.

Таким образом, если что-то можно сделать в одну строку вместо 4 - лучше в одну. А если можно совсем не писать - то лучше и не писать :)

anonymous
()
Ответ на: комментарий от anonymous

И что он должен программировать в ... больнице?

Томограф, аппарат УЗИ и выгрузку отчетов в налоговую, еще сбрасывать память картриджа для принтера.

anonymous
()
Ответ на: комментарий от sniper21

но пока не научились исключать всякий шлак из VCS

mos ★★☆☆☆
()
Ответ на: комментарий от zabbal

Ну так объясни мне недалекому. У меня развилась конфиденциальность головного мозга - о коде с текущих/предыдущих рабочих мест нельзя говорить, не то что уже другим показывать

doctorx ★★★★
()
Ответ на: комментарий от dem

(Кстати удалили доступ....)

Нет, просто удалили names.py ( https://code.ach.gov.ru/scraping/buscmd/commits/master )

names.py - довольно простой ad-hoc скрипт. Он был написан для python2 и делал свою работы быстро и немного грязно. Такой вывод можно сделать исходя из того, что:

  • имя скрипта не отражает его функцию
  • имя обрабатываемого файла встроено в скрипт
  • файл открывается из текущего директория, и судя по некоторым признакам names.py тоже помещается в текущий директорий
  • обрабатываемый файл имеет особенности (кодировка, разделители, назначение первой строки, назначение столбцов), которые хорошо знает автор и которые позволяют предположить что этот файл получается в процессе работы каких-то других скриптов.
  • в процессе работы скрипт печатает «прогресс-индикатор» , который перемешивается с печатью строк, для которых не удалось определить пол. Это значит, что вывод этого скрипта главным образом читался глазами, а не анализировался другими программами.

Вот такой скрипт был залит Иваном Бегтиным 2019-05-27

На следующий день (2019-05-28) Иван Бегтин «портировал» names.py на python3. Правда, при этом он не сделал этого до конца, в python3 «decode('utf-8')» не только не нужно, но и тупо не работает.

Сегодня (2019-06-28) Иван Бегтин удалил names.py «как неиспользуемый». Может быть, сам нашёл. Может быть, ЛОРа почитал :)

anonymous
()
Ответ на: комментарий от Alexanderuser

Да и наличие такой должности - тоже. Нужен-то толковый сисадмин, который знает что у него на объекте есть, как оно работает, и знает куда обращаться если что-то идёт не так.

anonymous
()
Ответ на: комментарий от Alexanderuser

Если учитель информатики (в случае с школой) или программист (в случае с больницей) не умеет делать сайт, то они профнепригодны

Это какое-то дикое предубеждение из девяностых.

после обновления перестанет загружаться GUI.

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

Или привезут новое оборудование, которое нужно подключить

C этим отлично справится системный интегратор, работники которого имеют необходимые сертификаты.

А если проблемы с оборудованием возникнут в больнице?

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

jekader ★★★★★
()
Последнее исправление: jekader (всего исправлений: 1)
Ответ на: комментарий от jekader

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

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

anonymous
()
Ответ на: комментарий от WitcherGeralt

Наоборот. Очень круто, что выложили.

Ты что, это же Российское, Рашкинское, хтьфу! Вот если бы это выложили из США...

Deleted
()
Ответ на: комментарий от anonymous

Я кстати думал, что это всё сказка, пока сам не увидел такой. В больнице даже отдельное крыло выделено и там стоит он... Даже таблички и указатели есть. И это крыло как некий секретный бункер)

У нас оказывается каждая больница была обеспечена этим «экспонатом»)

Alexanderuser
()
Ответ на: комментарий от Alexanderuser

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

В школе, к примеру столкнутся ребята с вопросами при работе над IT-проектом, кто им поможет? Или после обновления перестанет загружаться GUI. Или привезут новое оборудование, которое нужно подключить. А если проблемы с оборудованием возникнут в больнице? Вам хватит совести будучи главным врачом сказать пациентам: «подождите, завтра приедет программист на аутсорсе» или «подождите недельку, в компании-аутсорс все специалисты в коммандировках».

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

anonymous
()
Ответ на: комментарий от Alexanderuser

У нас оказывается каждая больница была обеспечена этим «экспонатом»)

Самое интересное, то что в 90-х и 00-х такие экспонаты можно было как-то использовать по своей инициативе, теперь за инициативу посадют.

anonymous
()
Ответ на: комментарий от anonymous

И быстрее... вызов функции дорог. Но..

dem ★★
()
Ответ на: комментарий от jekader

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

Знаешь сколько людей тебя стало ненавидеть?

dem ★★
()
Ответ на: комментарий от Alexanderuser

Лет 15 назад я подавал анкету на переезд в Австралию (не путать с Австрией). Меня попросили указать что я умею. Я написал Delphi, Python, Pascal, Perl, PostgreSQL, MySQL, MSSQL и что я услышал? Мне написали «Ни один человек не может столько знать вы врете». Спец по PostgreSQL весьма посредственный спец в MS-SQL Server. Потому НЕТ должности программист. Для примера вы за неделю напишите код дла контроллера AVR который управляет двигателем, Потом Веб приложение на Фласк с фронтендом на Реакт, а потом перепишите фронтенд на VUE.JS и портируйте это нативно на андроид и iOS

dem ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.