
Sasha
11.03.2017
17:49:47
чтобы не портить вам беседу)

Dima
11.03.2017
17:50:02
https://telegram.me/joinchat/Be4rsT3Uyr1TjmSlrRc77g

Sasha
11.03.2017
17:51:13
или подсобите, у меня вот это не работает(
https://paste.ofcode.org/U5r5tnrHdEdb7yVBAYEXx8

Google

Igor
11.03.2017
17:56:08

Sasha
11.03.2017
17:56:35
ооо
спасибо

Alex
11.03.2017
18:03:50

Arseniy
11.03.2017
18:13:44
\o \o

Михаил
11.03.2017
18:29:47
Почитал, что такое реакт, оказывается такую штуку я сейчас пишу.

Υπερβορεία
11.03.2017
18:32:28
Сейчас бы писать на реакте и не знать что это реакт

anoru
11.03.2017
18:35:20
О господи, ну в js чате хотя бы не напоминайте о шургиной, достало

Egor
11.03.2017
18:35:26

Михаил
11.03.2017
18:37:32
Ага, писать. Зачем брать готовое, если можно написать свое.

Art
11.03.2017
19:03:13
Ну и нафиг весь этот зоопарк из библиотек тогда. Пока одно освоишь выйдет другое и то что учил уже устарело
Вон java или c++ 20-30 лет без этой кучи и норм

Google

Михаил
11.03.2017
19:05:07
Ну так учить надо не библиотеки, а логику. Она никогда не устаревает и даже к языкам не привязана.

Art
11.03.2017
19:07:18
А это вот для чего bower gulp
Еще сасс лесс
И прочее
Разработку может и ускорит. Но пока освоишь весь этот набор, жизнь пройдет мима тебя
В поход с палаткой или лесс саасс учить ммм что же выбрать

Oleg
11.03.2017
19:11:51
В лесу учить тоже можно

Art
11.03.2017
19:12:14
Там не до этого)

Михаил
11.03.2017
19:16:58
Подскажите по SQL. Хочу сделать чат, того же формата как в телеграмме. На первый взгляд в таблице с сообщениями можно сделать один глобальный message_id, но не понятно, как тогда нормально получать часть сообщений, например с -20 до -10. Или только добавление message_chat_id - номер сообщения в чате решит проблему.

Art
11.03.2017
19:19:36
Всмысле чтобы при заходе в чать. Диалоги подгружались?

Михаил
11.03.2017
19:23:59

Михаил
11.03.2017
19:26:40
тебе нужно добавить dialog_id

Art
11.03.2017
19:27:19
(кол-во сообщение, все сообещния) - N(кол-во сколько выводим в порции). Т.е всего сообщений 100, нужно выводить по 10, 100-10 = 90. Вот отсюда и выводи limit 90, 100, потом 50, 60 и тд

Михаил
11.03.2017
19:28:21
зачем считать общее кол-во сообщений?

Art
11.03.2017
19:30:09
чтобы порциями точно выводить

Михаил
11.03.2017
19:30:31
дба на вас нет...

Ivan
11.03.2017
19:30:44
кейс использованаия такой, что ты всегда подгружаешь последние, а потом скроллишься по истории. Для скроллинга у тебя есть маркер, от которого грузить.

Art
11.03.2017
19:31:33
причем здесь ид, подгуружать старые сообщения обычным лимитом
арфметикой указатель переносишь откуда начинать вывод и до куда

Google

Михаил
11.03.2017
19:32:55
table messages (id int, chat_id int, author varchar, message text);
открываешь чат — грузишь последнее
select * from messages where chat_id = :chatID order by id desc limit 100
подгружаешь более ранние, у клиента уже есть сообщения, из них берешь самый маленький ид:
select * from messages where chat_id = :chatID and id < :minMessageID order by id desc limit 100

Ivan
11.03.2017
19:33:15
Select * from messages where messageId > $marker LIMIT N
messageId < $marker

Михаил
11.03.2017
19:35:44
Да, что-то я протупил, что можно взять WHERE от самого маленького id. Так и сделаю.

Art
11.03.2017
19:40:42
юзер зашел в чат, ему загрузились предыдущие сообщения. Запоминаем ид. То что далее напишут - не важно. Если он доскроллир до верха или нажал кнопку загрузить старые, от того id-10(порция) = x. и вывод limit x, id
id первого сообщения которое подгрузилось

Михаил
11.03.2017
19:42:46
ты подразумеваешь что сообщения должны идти в хронолигческом порядке, и упускаешь более простой путь
в моем примере видишь сортировка в обратном
таким образом можно просто указывать лимит, без оффсета
а развернуть порядок потом в приложении можно
это намного производительнее, оффсет заставит базу бегать по диску гораздо больше чем нужно

Михаил
11.03.2017
20:00:38
А как обстоят дела с готовыми чатами на js? Имеет смысл думать на тему выкладывания в открытый доступ или нет смысла тратить на это силы? Чат на вебсокетах и node.js (не работал, как раз будет повод разобраться).

Vitaliy
11.03.2017
20:14:12
Ребят, у меня странный вопрос =)) просто тут много людей))
есть PDF, в нем поля куда можно ввести текст. Вот как это поле передвинуть мальца?)))

Михаил
11.03.2017
20:18:50
потому что там интегрировано в основную систему, учетки юзеров там уведомления и все такое
думаю у большинства так же будет

Михаил
11.03.2017
20:27:48
У меня так же, нужен чат для панели управления. Идея в том, чтобы его выделить в отдельный модуль, который максимально просто подключается на стороне клиента и сервера. Тогда можно вложить больше времени и коллективный разум.
2-3 дня довольно оптимистичный прогноз. Как бы мне не понадобилась целая неделя.

Дмитрий
11.03.2017
20:41:12
А потом ещё пара лет на всякие мелочи

Михаил
11.03.2017
22:41:31
В javascript дефайны есть? Ищу и не нахожу. Хочу сделать так: #define callError(e) return this.callError(user, req, res, e);

Google

hlomzik
11.03.2017
22:42:37
Боже, лол, нет

Михаил
11.03.2017
22:45:19
Зря, зря, зря.
Узнал, что приватных функций тоже нет. Как дальше жить.

Victoria
11.03.2017
23:22:27
Эм, Михаэль-сама, откуда препроцессору взяться в интерпертаторе ?
Он же однопроходный.

Олег
11.03.2017
23:24:59

Admin
ERROR: S client not available

Victoria
11.03.2017
23:30:27
А, ну если считать трансляцию в байт-код...

Олег
11.03.2017
23:33:14
я про hoisting

Victoria
11.03.2017
23:38:51
А, это... На самом деле, оно и в один проход реализуется, учитывая гомогеничность подхода JS к организации кода ("все - поле: классы, функции, перменные")
Ну или "все - свойство", вопрос терминологии.
Это в Питоне надо код проанализировать, прежде чем отличить вызов функции от создания объекта.
А в JS это официально одно и то же.
Кстати, приватные ф-ии тоже противоречат идеологии по факту.
Сущность может вообще распределена быть, если захотеть. Все упирается в текущее значение this.
И никто не мешает инъекциям кода в объект, например.

anoru
12.03.2017
05:47:02

Михаил
12.03.2017
07:47:23

Oleg
12.03.2017
07:51:32
Это смотря что вкладывать в слово "аналог"
Старые жигули и ламборджини последней модели - тоже аналоги, и то и то автомобили

Google

Oleg
12.03.2017
07:54:35
Ну и собрать можно крупноузловой сборкой из 5-6 частей, а можно разработать каждый болтик с нуля
Так что лучше конечно просто определиться а что и в каком виде нужно
Ибо слово аналог сильно разно люди могут воспринимать
Особенно те кто в этой сфере многое повидал
А написать чат - где-то видел как тестовое задание в двух компаниях
Нода, экспресс и сокет ио
Так что да, чат можно и за 4 часа запилить

anoru
12.03.2017
07:59:32

Михаил
12.03.2017
08:14:14
Это смотря что вкладывать в слово "аналог"
То, что похоже на чат телеграмма, работает, с минимальным функционалом и имеет возможности для развития, то есть с понятной и расширяемой архитектурой, а не набором костылей.

Oleg
12.03.2017
08:20:34
Вот с последним сложно, остальное вполне за неделю

Azein
12.03.2017
11:29:46
"Аналог телеграма за месяц" это чушь, конечно же.
Тем более одним разработчиком.

Михаил
12.03.2017
11:37:30
Не чушь. Но понятно, что без шифрования и в максимально простом исполнении.

Vladimir
12.03.2017
12:00:09

Дмитрий
12.03.2017
13:42:51
Извините
Я один только сетевой протокол для телеграма уже месяц пишу