Получи случайную криптовалюту за регистрацию!

Legal Code

Логотип телеграм канала @legalcode — Legal Code L
Логотип телеграм канала @legalcode — Legal Code
Адрес канала: @legalcode
Категории: Блоги , Образование
Язык: Русский
Страна: Россия
Количество подписчиков: 680
Описание канала:

Навчання програмуванню. Вирішення юридичних задач за допомогою IT-навичок. Технічний світогляд юриста.
Рекламу не пропонувати :)

Рейтинги и Отзывы

2.33

3 отзыва

Оценить канал legalcode и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

0

3 звезд

2

2 звезд

0

1 звезд

1


Последние сообщения

2021-06-29 09:01:03 Як відкрити величезний файл: поради знавців

Колеги по екосистемі дали кілька фідбеків по темі попереднього поста. Поділюся ними.

Не варто парсити XML регулярними виразами. XML — це спеціальна мова розмітки, з якою слід працювати відповідним чином.

Не варто прив'язуватися до переносів рядків. Кажуть, Мін'юст може несподівано "поламати" логіку, виклавши черговий файл "в один рядок". Тому типу краще зчитувати файл "порціями" байтів, видираючи потрібний контент з поточної порції. Дійсно, можна і так.

PHP — непідходяща мова програмування для такого роду задач. Типу краще R чи Python. Що ж, якщо ви знаєте кілька мов, то беріть ту, яка більше пасує вашій поточній задачі. А на PHP парсинг я запускав локально, щоб підготувати дані до подальшого використання в інших умовах, тому мені це було цілком норм.

Краще використовувати підхід MapReduce, коли весь масив даних ділиться на кілька фрагментів (чи навіть кілька десятків) і аналіз кожного фрагмента запускається на окремому ядрі процесора чи окремому комп'ютері (сервері). Це дозволить пришвидшити отримання кінцевого результату. Але для цього доведеться писати значно більше коду, щоб весь масив даних розділити, делегувати задачі окремим підпрограмам, а потім зібрати докупи результати їх роботи. Тому це варто робити, коли вам доводиться виконувати цю процедуру часто і коли важливо швидко отримувати результати. А я ж запускав свій алгоритм раз на два тижні і нікуди не поспішав.


Загалом, цей кейс — гарний приклад того, що в інформатиці одну й ту ж задачу можна виконати по-різному:

"дешево і сердито" — будь-якою мовою програмування написати примітивний код, який тупо "в лоб" видасть потрібний результат (але буде ризик, що наступного разу щось піде не так)

фундаментально — підібрати оптимальну мову програмування, врахувати формат даних наявного джерела (XML, JSON, CSV тощо), написати алгоритм для розподілених обчислень, запустити його на потрібній інфраструктурі тощо
220 views06:01
Открыть/Комментировать
2021-06-23 11:19:12 ​​ Як відкрити величезний файл

При роботі з Big Data можете зіткнутися з тим, що потрібні вам дані будуть розміщені у величезному файлі. Наприклад, ось цей набір даних по юридичних особах і ФОПах лежить у двох файлах об'ємом 5 Gb і 9 Gb (після розархівування), які налічують 1 800 000+ і 5 500 000+ рядків відповідно. Файли мають розширення XML. Якщо ви спробуєте відкрити будь-який з них в текстовому редакторі, то... краще цього не робіть .

Як же ж бути? Тут і можуть стати в нагоді базові навички з кодингу та використання регулярних виразів (про них писав тут раніше). Скориставшись ними, ви можете не завантажувати файл цілком в оперативну пам'ять комп'ютера, а зчитувати його по одному рядку. І над кожним таким рядком можна виконувати потрібні операції: шукати якісь значення, виписувати їх в окремий файл / базу даних тощо. Завдяки цьому прийому я на прохання одного знайомого видобув потрібні дані по всіх юридичних особах, які були зареєстровані за останні кілька місяців.

Наприклад, на зображенні показано невеличкий код на PHP, який з величезного файла з юрособами "випише" вам в окремий текстовий файлик всі рядки з даними про юросіб, які були зареєстровані у червні 2021 року.
276 views08:19
Открыть/Комментировать
2021-06-22 10:15:00 Дзінь, є хто живий?

Пробачте, давно сюди не писав. Було багатенько роботи. Вирішив далі вести цей канал українською, бо все ж цей канал народжений і викормлений українською екосистемою.

Про що поговоримо далі? Та як завжди, про різне: (само)навчання кодингу, роботу з даними, SQL та Excel, аналіз правових текстів та про інші технарсько-правничі суміші.

Але як і раніше:
жодної реклами (типу коли автору каналу платять, а він постить бозна-що);
ніякого контенту в дусі "на, відчепись".

Я ціную ваш час.
326 views07:15
Открыть/Комментировать
2021-02-08 11:26:05 Инновации на костылях — быстро или вредно?

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

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

Например, вам нужно сгенерировать случайную дату в текущем году. Реализовать это, например, в Python можно так:

from datetime import date
from random import randint

date_start = date.today().replace(day=1, month=1).toordinal()
date_final = date.today().replace(day=31, month=12).toordinal()
date_random = date.fromordinal(randint(date_start, date_final))

print(date_random)


А вот как выглядит явно костыльное решение:

from random import randint

random_day = randint(1, 28)
random_day = '0' + str(random_day) if random_day < 10 else str(random_day)

random_month = randint(1, 12)
random_month = '0' + str(random_month) if random_month < 10 else str(random_month)

date_random = '2021-' + random_month + '-' + random_day

print(date_random)


То есть во втором варианте мы не заморачиваемся с учётом количества дней для каждого месяца (не будут появляться даты с 29, 30 и 31 днём) и жёстко привязываемся к 2021-му году. Минусы этого решения очевидны.

Являются ли костыли абсолютным злом? Да нет. Они часто нужны, чтобы сократить время на разработку какой-то фичи и за счёт этого быстрее проверить гипотезу. Но когда окажется, что гипотеза удачна и фичу надо оставлять, код следует переписать так, чтобы избавиться от костылей и прочих "мин замедленного действия". Нужно уметь убеждать свой менеджмент, что хоть и "оно же работает", код нуждается в существенной доработке, чтобы в будущем эти костыли не вылезли боком (как бы это ни звучало).

А что является костылём в праве? Думаю, вы уже встречали их. Костыли встречаются в договорах, правоприменении и даже в законах. Наверняка кто-то считает и сам Хозяйственный кодекс сплошным огромным костылём в частном праве.
402 views08:26
Открыть/Комментировать