• Как сделать корпоративный портал с функцией личного кабинета?

    @hail3b
    Заказчику решал аналогичный вопрос в итоге выбрали рассылку СМС в 6 шт один расчетный листок укладывается. Это дешевле аренды/содержания сервера, обучения сотрудников.

    Если же предположить что все сотрудники пользуются компьютером то почему не сделать просмотр расчетного листа на рабочем компьютере, они все работают в учетной программе.
    Ответ написан
  • В чем принципиальное отличие L3 коммутатора от маршрутизатора?

    @hail3b
    Вопрос старый и до сих пор актуальный. Часто встречаю что даже бывалые сет.инженеры (сис.админы) зная теорию, не всегда могут правильно применить свои знания на практике. Для новичков ответ будет звучать так:

    - L3 коммутатор очень производительный, используется для маршрутизации между внутренних VLAN подсетей (особенно когда VLAN много и они с большим трафиком) в этом случае L3 коммутатор является шлюзом для VLAN подсетей. Нам нём прописываются и правила доступа (ACL) для пользователей VLAN.
    - Маршрутизатор (или роутер) же менее производительный но "более умный", и используется для маршрутизации между локальными сетями и внешними.

    В малых сетях с малым трафиком допустимо использовать маршрутизатор и для VLAN, и для LAN, но если количество VLAN и трафика в них стало много обязательно нужно пересматривать архитектуру вашей сети с учетом использования L3 коммутатора (-ов).
    Ответ написан
    Комментировать
  • Зачем ботов заворачивают во Flask (как пример)?

    @hail3b
    От http вы получите много готовых решений. Таких как, масштабирование, балансировку, мониторинг, следовательно стабильность, производительность, ускоренное решение проблем.
    Ответ написан
    5 комментариев
  • Как взламывают сим-карты?

    @hail3b
    Если рассматривать вашу проблему от обратного. Результат к которому вы пришли возможен только в двух случаях. Первый в вас заинтересованы гос.органы, а это только по линии МВД но это маловероятно поскольку мне хочется верить в то, что вы ничего не совершили и второй вы интересны некой коммерческой организации для получения какой-либо прибыли.
    Что в первом что во втором варианте следить за вами, записывать и прослушивать разговоры, читать и писать от вашего имени смс, блокировать звонки, узнавать ваши новые номера, выявлять номера знакомых все это делается удаленно одним человеком сидя за компьютером, причём делать это так, что никто об этом не догадается ни вы, ни ваш телефон, ни ваша сим карта, будь она даже с ии . Но возможность такую могут предоставить только операторы сотовой связи. Стоимость же подобного мероприятия я бы оценил около 50 миллионов рублей на подкупы высокопоставленных руководителей. А с постоянной слежкой "агентами" эта сумма выросла бы в два раза, ведь нужна координация, план, связь, контроль, оперативность, поддержка, агенты-студенты, проф.оборудование все это не к чему это только увеличит и риски и стоимость операции. Общая сумма такой операции составит около 100 млн.р. Теперь необходимо подсчитать сумму прибыли которую необходимо по результату получить. Получается что вы должны быть очень богатым человеком.
    Ответ написан
  • Как спроектировать базу данных?

    @hail3b
    Во первых вам нужнно научиться задавать вопросы а вернее их форматировать, в вашем вопросе нечитабельна структура таблиц.
    Во вторых литературы полно в сети выбирай самую свежую и вперед. Техническую литературу не нужно читать последовательно если вы с главой знакомы читайте следующую. Индивидуальную книгу под ваш проект не найти в ней всегда будет что-то "лишнее".
    В третьих вам нужно определиться с приоритетом поставленной задачи скорость выполнения или интерес/самообразование. Для новичка и не только это два противоположных друг другу приоритета и план выполнения будет разный. Если это заказ и нужно быстрее сделать, то берите готовый движок и настраиваете для себя. Если вам интересен сам процесс проектировки БД, то делайте все сами. Готовый проект также брать не стоит т.к. в нем нужно разбираться и он покажется вам очень сложный.

    По вашему вопросу:
    В вашей структуре есть ошибка, в каждой таблице есть поле логин а должно быть id ссылка на таблицу логин. Структура БД в вашем случае будет примерно такой:
    -- Пользователи
    CREATE TABLE user AS(
    	id int identity,
    	name varchar(128),
    	pass varchar(128)
    )
    -- Авторизация / сессия
    CREATE TABLE user_session AS(
    	id int identity,
    	user__id int,
    	timestamp datetime
    )
    -- Сообщения
    CREATE TABLE message AS(
    	id int identity,
    	post__id int,
    	user_session__id int,
    	subject varchar(255),
    	text varchar(max)
    )
    -- лайк / дизлайк
    CREATE TABLE message_like AS(
    	id int identity,
    	user_session__id int, -- пользователь кто плюсанул
    	message__id int,
    	value int -- плюс 1 / минус 1
    )
    Ответ написан
    Комментировать
  • Составить запрос для получения таблицы рейтинга

    @hail3b
    У вас рейтинг игроков формируется сортировкой
    winGame, drawGame, allGame
    

    кажется это самый простой и правильный метод, но это не так.
    Не простой потому, как сортировка это очень ресурсоёмкая задача.
    А не правильный потому, как из двух игроков:
    23 usr, 1 winGame, 0 drawGame, 50 drawGame
    24 usr, 0 winGame, 10 drawGame, 10 drawGame
    предпочтения отдается первому 23 usr, хотя второй явно играет лучше.

    Мне кажется, что лучше сделать подсчет рейтинга/очков/баллов, т.е. если у вас три параметра определяющие рейтинг winGame, drawGame, allGame, то им просто можно назначить коэффициенты значимости. К примеру winGame*3, drawGame*2, allGame*1, а потом уже отсортировать по баллам.

    select *, (t2.winGame*3 + t2.drawGame*2 + t2.allGame*1) rating
    from(
    SELECT
    temp.userId as userId,
    SUM(CASE WHEN temp.resultGame IS NOT NULL THEN 1 ELSE 0 END) as allGame,
    SUM(CASE WHEN temp.resultGame = 3  THEN 1 ELSE 0 END) as winGame,
    SUM(CASE WHEN temp.resultGame in(2,4,5,6) THEN 1 ELSE 0 END) as drawGame,
    SUM(CASE WHEN temp.resultGame = 1  THEN 1 ELSE 0 END) as loseGame,
    SUM(CASE WHEN temp.resultGame = 0  THEN 1 ELSE 0 END) as startGame,
    SUM(CASE WHEN temp.resultGame=3 AND UNIX_TIMESTAMP(temp.timeStart)>=UNIX_TIMESTAMP(CURDATE()) THEN 1 ELSE 0 END) as countNewWinGame,
    SUM(CASE WHEN temp.resultGame in(2,4,5,6) AND UNIX_TIMESTAMP(temp.timeStart)>=UNIX_TIMESTAMP(CURDATE()) THEN 1 ELSE 0 END) as countNewDrawGame,
    SUM(CASE WHEN UNIX_TIMESTAMP(temp.timeStart)>=UNIX_TIMESTAMP(CURDATE()) AND temp.numberMove>3 THEN 1 ELSE 0 END) as countNewAllGame,
    SUM(temp.timeUser+temp.timeUI) as sumTimeGame
    
    FROM `chess_historyui` temp
    GROUP BY temp.userId
    ) t2
    ORDER BY rating DESC
    
    Ответ написан