Диджитализируй!
27.6K subscribers
459 photos
54 videos
11 files
530 links
Авторский канал Алексея Голобурдина о разработке ИТ систем и прочем важном

ПРАВИЛА — https://xn--r1a.website/t0digital/200

ЛАЙВ-КАНАЛ — @smthisgoingon

Дать много деняк — sterx@rl6.ru

Роскомнадзор: https://vk.cc/cJmDDB
Download Telegram
Гугол, ну это же русский!
😁312🔥96👍3🎉3
Обедаю, родители привели большую ватагу детей откуда-то, с трудом усадили и пошли заказывать. Дети тем временем посидели, поглазели и принялись играть в блогеров. «Всем привеееет, сегодня мы продаём пустую коробкууу!» 😂
😁314🔥34👍13🥰9🎉4
Господа PHP’шники, а што, нет нонче замыканий в PHP:)?

<?php
function closure_example($counter) {
return function() use ($counter) {
$counter++;
return $counter;
};
};

$result = closure_example(0);
foreach (range(0,2) as $_){
print_r($result());
}


Почему сие великолепие печатает 111, а не 123?

Питон печатает 123:

def closure_example(counter):
def inner():
nonlocal counter
counter += 1
return counter
return inner

result = closure_example(0)

for _ in range(3):
print(result(), end="")


JS печатает 123 (красиво на JS, даа!):

const closure_example = counter => () => ++counter

const result = closure_example(0)

for (const _ of Array(3).keys()) {
console.log(result())
}


Go печатает 123:

package main

import "fmt"

func closureExample(counter int) func() int {
return func() int {
counter++
return counter
}
}

func main() {
result := closureExample(0)
for range [3]int{} {
fmt.Print(result())
}
}


А PHP 111.
О — оригинальность!

Или я что-то делаю не так в PHP примере? Замена use на global заставит работать аналогично и PHP-пример, но это как-то кривенько совсем:)
😁44👍16🥰1
Вопрос снят, таки есть способ заставить это работать и в PHP. Этот мир не потерян!
😁71👍13🎉3
Дядя Боб и SRP сначала сформулировал, потом сказал ой нет, чота вы все, балбесы, его неправильно понимаете, сформулируя-ка я его по-другому! И теперь принцип единой ответственности по идее должен звучать как принцип единого актора:) Правит правила на ходу!
https://xn--r1a.website/softwareengineervlog/1338
😁40👍7
Так... Поможем человеку?

Пинтагон это, предположу, место для выпивки. Гонят пинтами.

А Пентагон это сервис на Хачатуряна.

Зачем ему их ломать...
😁284👍23🔥15🥰1🎉1
Следующей книгой будем ботанить «PostgreSQL. Основы языка SQL :: Евгений Моргунов», бумажная версия (ozon), бесплатная PDF версия, начинаем в первых числах января. Присоединяйтесь.

По Чистому коду у меня получилось 4.5 часа видео дополнений/комментариев. По Теоретический минимум по Computer Science 2 часа. Все эти материалы тоже доступны в группе по одной подписке.

За 1.5 месяца проработали 2 книги там. Мне нравится. Качаем скиллы. Основная польза не в моих комментариях, конечно, а в самом факте проработки материала — вместе, в одном ритме, с обсуждением этого материала, опечаток, корявых пояснений или, наоборот, хороших формулировок.

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

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

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

И при всём этом многие уделяют много внимания языку приложения и обвязке вокруг этого — фреймворкам, ORM и прочему, но почти не уделяют внимание БД. Вот несложные селекты-джоины умеем писать и всё. Этого мало.

Кто хочет углубиться в постгрес — приходите. Я книгу полистал, там есть в частности для меня новый материал, который мне хочется проработать-систематизировать.
#books
👍162🔥2714😁1
Гипер-лайфхак для всех магазинов!

Делюсь бесплатно! Только сегодня! Эксклюзив! Через час удалю!

Так как я имею некоторое отношение к eCommerce и на основании своего опыта в этой сфере, и на основании погруженности в тему благодаря нашему Salesbeat, хочу дать магазинщикам (из 20к присутствующих кто-то ведь имеет отношение, не правда ли?) супер-пупер-гипер лайфхак, унесущий бизнес-показатели магазина в космос!

Итак, что же нужно интернет-магазину для роста заказов? Может быть, новый ультра-современный дезигн? Быстрый удобный сайт? Бонусная программа?! Machine Learning?! Big data? Чудо-мобильное приложение?! Какое-то выезжающее говно на весь экран?!

Ниф-ниф наф-наф нах-нах!

Попробуйте-ка ТУПО ОТВЕЧАТЬ клиентам!

Воу! Очччень просто. Прям вот берём и делаем так, шобы на телефонные звонки отвечали, в чате авито отвечали, в чате на сайте отвечали — быстро и чётенько. И никаких гипер-технологий не надо, простое человеческое тепло на том конце телефона или чата. Вжууух!

Пытался я давеча макбук коллеге купить. В разрекламированном по всему ютубу biggeek мне тупо не ответили. Я по 5 минут честно на звонке висел несколько звонков подряд. Примерно четверть млн руб выручки ушла в магазин, где просто мне ответили. Реклама biggeek не помогла ему сделать транзакцию.

Летом покупал новую камеру и линзу. Снова несколько магазинов тупо не ответили, один магазин с авито ответил. Не очень люблю покупать на Савёловском рынке, но раз они единственные, кто ответил, заехал к ним и купил. Сейчас снова искал штуку, и снова только кто-то с Савёлы ответил мне, приехал и узнал тот же магазин, в котором был летом. Итого ~ 0.5 млн руб выручки им сделал за этот год — просто потому что мне ответили, быстро и по делу. Без роботов, без «ваш звонок до фига важен для нас», без мелодичных получасовых симфоний. «Здрасьте, есть эта штука, заеду щас заберу? Оплатить как?» «Да, заезжайте, наличка или перевод на карту». «Супер, сейчас буду». Всё.

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

Мы вообще мутили там сервис. Человек мог позвонить нам в 19ч вечера и через час-полтора получить свой заказ. Тогда ещё яндекс go, самоката и прочего не было, а мы уже это делали. Помню, как люди удивлялись.

Дааа, возможно я один такой вредный чебурашка, который хочет, чтобы ему отвечали, когда он хочет что-то уточнить. Аааа может и нет. Так или иначе те магазины, которые меня не игнорят, кажется, зарабатывают несколько больше тех, что мне не отвечают:)

Самая адовая хрень это чат на сайте, в котором никого нет. Людям рассказали, что вот поставьте скрипт на сайт и ваши продажи чудом увеличатся! Благо хоть не пообещали, что пиписка ещё вырастет от этого скрипта:) То, что там кто-то должен отвечать в этом чате, это людям не рассказали. Это ж оно работать тогда кому-то надо. Работать не хочецца, хочецца скриптов и магии! Хочется, чтобы дезигн, биг дата, машин лернинг и деньги сразу на счёт шли! Ну пазязя!

А оно вот нет. Работать надо. Бгг!
👍392🔥39😁3015🎉4
Диджитализируй!
Photo
Вот, 21 октября сделал заметку по одной теме, которую ковырял тогда, сейчас понадобилось погрузиться в неё ещё раз — открыл, освежил, погнал делать. В очередной раз рекомендую всем делать заметки. Экономия времени и просто приятно, когда не надо два раза делать одну работу.

Как и где писать — не так важно. Notion, Obsidian, рукописно на iPad или в блокноте/тетради. Важно, чтобы вернуться можно было, когда понадобится.

PS. Это приложение GoodNotes для iPad. Хотя иногда что-то рукописное просто в приложении заметок пишу.
#tools
👍174🔥143🥰3😁2
Кто занимается бусинесом в России (в частности айти-разработкой), ребятушки, оказывается, мы можем это делать не на УСН (упрощенной системе налогообложения), а на ПСН (патентной системе), и часто патент значительно выгоднее.

По УСН надо платить 6% со всех поступлений, а патент на разработку стоит фиксу в год. Стоимость для своего региона можно узнать тут. Для Москвы на 2023 это немало — 588 тыс, а для, например, Питера 70 тыс, для Липецка — 5 тыс.

Ограничения ПСН — до 60 млн в год и меньше 15 сотрудников.

При этом на сумму страховых взносов (себя и сотрудников) этот патентный платеж можно уменьшать — до 100%, если вы без сотрудников, до 50%, если с сотрудниками.

Подать заявку на переход на ПСН можно из своего налогового ЛК, для ИП здесь, если у вас есть квал электронная подпись.

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

Минутка полезной бухгалтерии на Диджитализируй😇

PS. А если ИП меньше 2 лет, то есть налоговые каникулы, тоже можете разузнать.
👍213🔥422
Media is too big
VIEW IN TELEGRAM
О тонкостях костылестроения фронтенда:)

Способ описан здесь. Работает даже в IE (проверять мы это, конечно, не будем).

Ещё можно заставить принудительно скролл всегда показываться с overflow-y: scroll или задать высоту страницы 101vh, но мне это нравится ещё меньше.

Ещё есть CSS свойство scrollbar-gutter, худо-бедно появляющееся в браузерах, но на маке оно похоже не влияет на поведение скролла и не решает задачу.

#IT #frontend #css
👍141😁60🔥15🎉75
Прочёл первые 4 главы книги о PostgreSQL, пока еду в поезде. Огонь. Мне нравится. Ни одного недостатка для себя пока не выявил.

Кто не хотел книжек формата «ля-ля», но хотел мяса, здесь есть оно:)

В конце 4й главы 37 заданий. 37! Не два-три, типа убедиться, что ты там что-то вроде понял. 37.

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

Кто-то на Ютубе писал, что мол книги это фигня, потому что они не про learning by doing. Нннну да:)

Ещё нравится, что автор продумал реальный сценарий использования БД и примеры всей книги показывает на нём. Задача связана с базой данных аэропортов, самолётов, рейсов, пилотов, билетов, регистраций на рейсы и тп. Хороший продуманный академичный подход. Примеры запросов про реальные бизнес-эадачи выбранной предметной области, а не высосанные из пальца абстрактные штуки. Как говорится, видно, что автор тщательно потрудился:)

Книжный клуб

#IT #books #backend #tools
👍364🔥6214🎉1
Так-так, ребятушки, с наступающим нас всех! Время сейчас — какое есть, но уныние смертный грех, так шо унывать не будем. Всем, кто дома — встретить в тёплом кругу своих:) Кто не дома — тоже встретить в тёплом кругу своих:)!

Будем жить. На крайняк нет😂. С праздником!

И давайте сделаем что-то хорошее в уходящем году. Сделать что-то хорошее можно, например, здесь: https://podari-zhizn.ru/

СПАСИБООО всем!
В частности спасибо @pylounge, присоединившемуся к нашей традиции! Присоединяйтесь и вы.

Вжууух!

#soulful
👍249🎉7027🔥9
Typos проверяет языковые опечатки в исходниках.

Красота!

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

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

Можно автоматически запускать перед каждым коммитом через pre-commit, как я показывал в видео.

Зачем исправлять языковые опечатки в исходниках, они ж не влияют на работоспособность? Блин. Красиво делай, красиво будет:)

PS. Про bat со скриншота говорил тут.

#rust #tools #IT
🔥136👍545
+1 котан

#gg
🔥286😁76👍41🥰1816
В Mac OS (и linux при желании) есть удобная консольная команда pbcopy, которая позволяет копировать что-то в системный буфер обмена. Например, мы хотим скопировать строку wow в системный буфер:

echo wow | pbcopy

Скопировать файл в буфер обмена:

cat file.txt | pbcopy

Скопировать календарь на текущий месяц, чтобы вставить его в фотошоп на фоне красивой картинки и бахнуть на всю стену:

cal | pbcopy

Команда pbpaste вставляет текущее значение системного буфера обмена.

Утилита pass, которая хранит пароли, умеет копировать данные в системный буфер обмена:

pass somefile -c

скопирует первую строку из файла somefile. Если нужна вторая, то передаём -c2, третья -c3 и тд.

Копирование из nvim в системный буфер — выделяем текст в визуальном режиме (нажав v и выбрав нужный текст) и тыкаем "*y или "+y. В случае Linux предварительно установить xclip и xsel, для Wayland wl-copy и wl-paste, see here.

#linux #tools #it
👍297🔥4217