Pull to refresh
35
Karma
0
Rating
Павел Ишенин @PaulIsh

User

Никогда не принимайте контрпредложение

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

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

  1. В следующий раз опять будет трудный путь для повышения ЗП

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

  3. Кроме повышения ЗП вы скорее всего получите и какое-то развитие знаний у мений

Автоматизируем умный коттедж: куда потратить миллионы?

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

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

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

Как дизайн влияет на метрики: показываем на примере личного кабинета врача

Спасибо за развернутые ответы. Из статьи еще не сильно понял формат работы с клиниками. Вы врачей устраиваете по совместительству в СберЗдоровье или подключаете клиники с их МИСами к своему сервису?

Если вы мисы не подключаете, а врач делает направление, то как это работает? Может ли пациент потом с этим электронным направлением на прием к узкому специалисту или на анализы или на госпитализацию прийти и обслужиться в своей клинике по ДМС/ОМС минуя офлайн прием у терапевта/педиатра?

Как дизайн влияет на метрики: показываем на примере личного кабинета врача

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

Как дизайн влияет на метрики: показываем на примере личного кабинета врача

В первую очередь хочу сказать, что вами проделана отличная работа, а теперь вопросы :)

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

  2. Как я понял из скринов врач через галочку "Доступен" обозначает свою доступность как врача для проведения тмк? Что-то вроде свободного такси. Если так, то имеет ли возможность пациент записаться к любимому врачу. Например, мне очень не понравилась сегодняшняя тмк с врачом Ивановым и понравилась вчерашняя с Петровым и я хочу снова к Петрову.

  3. Вы пишете, что врачи со временем стали давать более высокие оценки сервису. Не может ли это быть причиной того, что врачи привыкли к функциональности и то, что ранее раздражало (возможно из-за недопонимания) стало привычным?

  4. Вы собираете с пациентов определенные показатели (рост, вес, группу крови). Эти показатели могут быть достаточными для расчетов определенных оценок по известным медицинским калькуляторам. Самое простое, посчитать из роста и веса ИМТ, а высокий ИМТ к примеру может быть признаком диабета. Выдаете ли вы как-то врачу такие подсказки?

  5. У пациента могут быть на руках результаты каких-то анализов. Эти анализы наряду с данными из вопроса 4 могут еще больше рассказать о здоровье пациента. Вы думали как это можно было бы автоматизировано занести в базу до начала приема?

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

  7. Бывает, что у пациента на руках могут быть и результаты в виде DICOM (например, я делал томограмму шейного отдела) и имеется желание получить независимое мнение. Имеется возможность такой консультации?

SberPay вернётся на смартфоны с Android в ноябре

Бесконтактная оплата миром доступна на android через мирпэй. Также qr-кодом через спбпей работало. Через SberPay не ясно будут доступны все карты сбера (mastercard,visa) или только мир?

ЦБ рассказал о рекордных показателях СБП за третий квартал

Лучше иметь разные варианты. У меня, например, долгое время был телефон без nfc.

ЦБ рассказал о рекордных показателях СБП за третий квартал

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

WebSocket ориентированое Api на Nest.js

Для документирования websocket можно использовать пакет nestjs-asyncapi

WebSocket ориентированое Api на Nest.js

А что именно не работает?

Вот у нас фрагмент на react:

import { useCallback, useEffect, useState } from "react";
import io, { Socket } from "socket.io-client";

...
  const [socket, setSocket] = useState<Socket | null>(null);

  const connectSocket = useCallback(() => {
    const socketTemp = io(url, {
      path,
      reconnection: true,
      extraHeaders: {
        Authorization: `Bearer ${accessToken}`,
      },
    });
    setSocket(socketTemp);
  }, [url, path, accessToken]);

  const disconnectSocket = useCallback(() => {
    socket?.disconnect();
    setSocket(null);
  }, [socket]);

И на сервере всё принимается

import {
    MessageBody,
    SubscribeMessage,
    WebSocketGateway,
    WebSocketServer,
    ConnectedSocket,
    OnGatewayConnection,
    OnGatewayDisconnect
} from '@nestjs/websockets'
import { ExtractJwt } from 'passport-jwt'

@WebSocketGateway({ cors: true, ... })
export class ChatGateway implements OnGatewayConnection, OnGatewayDisconnect {
    
    extractUser(request: IncomingMessage): { token: string, tokenData: TokenData } {
        try {
            const extrator = ExtractJwt.fromAuthHeaderAsBearerToken();
            const token = extrator(request);
            const tokenData = this.authService.decodeUser(token);
            return { token, tokenData };
        } catch {
            return null;
        }
    }

    async handleConnection(client: SocketWithUser): Promise<string> {
        const { token, tokenData } = this.extractUser(client.request);
        ...
    }
}

TypeScript 4.9: что нас ожидает

Потому что JS не умеет комплексные числа, и так как они не могут быть выражены через тип number, то мы имеем NaN. И поскольку JS не может корректно представить левую и правую часть типом number он заменяет их на NaN.

Если в перспективе number расширят на комплексные числа или введут новый тип, то и sqrt(-1) перестанет быть NaN, но пока так.

TypeScript 4.9: что нас ожидает

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

if (1/0 == Math.sqrt(-1)) {
   console.log('1/0 equal to sqrt(-1)');
}

А теперь замените левую и правую часть сравнения на NaN. Почему в этом результат должен отличаться.

TypeScript 4.9: что нас ожидает

NaN получается в результате разных операций. Например вы что-то поделили на 0 и получили NaN и вы взяли квадратный корень из -1 и получили NaN. Язык не может гарантировать равенство результатов, которые он не может выразить числом.

Postgresso 8-9 (45-46)

Спасибо, но это был лишт один из примеров. В куче мест финальная выборка табличная. Про WITH знаю, но там внутри код на plpgsql не выполнить же.

Postgresso 8-9 (45-46)

Организационные ограничения. Такие блоки кода лежат в файлах конфигурациях некоторых сервисов. Эти конфигурации документируются, версионируются, складываются в gitlab, раздаются клиентам.

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

Postgresso 8-9 (45-46)

Радует, что potgresql становится всё больше совместим как со стандартом (MERGE), так и с другими СУБД (например, в версии 14 добавили out параметры в процедурах).

Начали плотно заниматься переездом с MSSQL на Pg и сходу столкнулись с нереализованной фичей в Pg.

У нас аналитики привыкли писать простыни кода вида:

set @var_1 = null
set @var_2 = null
select top 1 @var_1 = field_1, @var_2 = isnull(field_2, 0) from table_1 with(nolock) where field_3 = 'X' 
and feld_4 = @param_1
if @var_1 is null
begin
	...
end
else if exists(select * from sys.procedures where name = 'proc_1')
begin
	exec dbo.proc_1 'arg_1', @var_2
end
...
select @var_1, @var_2, ...

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

Наиболее близкое, что нашли в PG - это блок DO, но относительно MS SQL он имеет несколько отсутствующих возможностей:

  1. Нельзя передавать в блок DO параметры.

  2. Нельзя в блоке DO делать выдачу результата. Только через курсоры или временные таблицы

    Собственно вопрос в наличии планов по развитию анонимных блоков в PG как в базовой версии, так и в версиях Postgres Pro?

Вышла Node.js 19.0

Полагаю, что хорошим подходом будет хотя бы с LTS на LTS переходить и пакеты периодически обновлять. На 12 версию скоро пакеты перестанут популярные поддерживать, как это уже произошло с пакетами на версию 10.

Зачем тебе, бабка, тестовое

Несколько типовых задач для очередей:

  1. Формирование какого-то сложного отчета по запросу пользователя. Помните раньше в МТС чтобы получить детализацию по счету за месяц надо было этот отчет заказать и минут через 5 он появлялся в личном кабинете.

  2. Рассылка уведомлений пользователям через email/sms/push. Сделайте 2 сервиса: 1) который формирует задачу через очередь на отправку email другому сервису 2) который получает задачу из очереди и отправляет email

  3. Взаимодействие с асинхронным сервисом. Тут сложно посоветовать что-то сходу, но если вы сталкивались с федеральными сервисами минздрава РФ или СМЭВ, то там всё асинхронно.

Rutube запустил семейное приложение «Rutube Детям»

Сделайте прем чтобы без рекламы. Пока она есть смотреть там не хочется.

Information

Rating
4,906-th
Location
Красноярск, Красноярский край, Россия
Registered
Activity