Giter Club home page Giter Club logo

i2pchat's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

i2pchat's Issues

old presence status issues + assorted

mixxy writes:

  1. There's a bug with showing peer status in 0.2.19. Even hours after the buddy has gone offline he is still shown as online. State changes once you change your own state or try to send a message to the contact.

  2. The first sent message is not quitted with the "message will be sent once the contact come back online" message, following ones are.

Feature requests:

  1. when someone adds you, you should get a notification and the other contact should not be added or my own state shown to him before he was admitted by me.

  2. and more generally an option for blocking all users that you have not added manually yourself would also be nice

//from http://forum.i2p/viewtopic.php?p=30868#30868

another user writes:
« I haven't used these features personally, and at the moment they seem greyed out for me, but I'm seeing under Settings->Security a container captioned "General" with two options that to me sound similar to what you're asking:

"Block all unknown Users"
"Request Authorization"

//from http://forum.i2p/viewtopic.php?p=30898#30898

«regarding 0.2.19 beta version (running on linux)

  1. A couple of days ago some random guy added my nick. I suppose he found me over seedless search. We exchanged a couple of messages, everything was well. Then my I2P-Messenger went offline. Now I turn it back on. I see that item displayed as "Receiving" in my user list. Is it because I didn't explicitly add that user as well? But the problem here is that as long as this item stayed in my user list, seedless search returned 0 results. As long as I deleted this item, seedless search started to work properly and return results.

[…]

  1. I run seedless search. It finds me as well. I try to add myself to my user list. I2P-Messenger is segfaulting. Here is the gdb backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x0806dd0f in CUser::setI2PStreamID (this=0x0, ID=-1) at src/User.cpp:115
115     src/User.cpp: No such file or directory.
        in src/User.cpp
(gdb) bt
#0  0x0806dd0f in CUser::setI2PStreamID (this=0x0, ID=-1) at src/User.cpp:115
#1  0x08075810 in CProtocol::slotInputUnknown (this=0x823f7c8, ID=-1, Data=...)
    at src/Protocol.cpp:364
#2  0x080cf17c in CProtocol::qt_metacall (this=0x823f7c8, _c=
    QMetaObject::InvokeMetaMethod, _id=1, _a=0xbfffe854)
    at moc/moc_Protocol.cpp:79
#3  0xb72d426a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt/lib/libQtCore.so.4
#4  0xb72e2885 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/qt/lib/libQtCore.so.4
#5  0x080d2335 in CI2PStream::signDataRecived (this=0x8244f08, _t1=-1, _t2=...)
    at moc/moc_I2PStream.cpp:123
#6  0x080b1be3 in CI2PStream::slotReadFromSocket (this=0x8244f08)
    at src/I2PStream.cpp:260
#7  0x080d2244 in CI2PStream::qt_metacall (this=0x8244f08, _c=
    QMetaObject::InvokeMetaMethod, _id=6, _a=0xbfffea2c)
    at moc/moc_I2PStream.cpp:95
#8  0xb72d426a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt/lib/libQtCore.so.4
#9  0xb72e2885 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/qt/lib/libQtCore.so.4
#10 0xb7331f17 in QIODevice::readyRead() () from /usr/lib/qt/lib/libQtCore.so.4
#11 0xb7488552 in ?? () from /usr/lib/qt/lib/libQtNetwork.so.4
---Type <return> to continue, or q <return> to quit---
#12 0xb7475e2b in ?? () from /usr/lib/qt/lib/libQtNetwork.so.4
#13 0xb74771f3 in ?? () from /usr/lib/qt/lib/libQtNetwork.so.4
#14 0xb764fd0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/qt/lib/libQtGui.so.4
#15 0xb765695e in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/qt/lib/libQtGui.so.4
#16 0xb72cf06b in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/qt/lib/libQtCore.so.4
#17 0xb72fae8a in ?? () from /usr/lib/qt/lib/libQtCore.so.4
#18 0xb6dee0f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#19 0xb6df1990 in ?? () from /usr/lib/libglib-2.0.so.0
#20 0xb6df1ac3 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#21 0xb72faab5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt/lib/libQtCore.so.4
#22 0xb770cd55 in ?? () from /usr/lib/qt/lib/libQtGui.so.4
#23 0xb72cd689 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt/lib/libQtCore.so.4
#24 0xb72cdada in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/qt/lib/libQtCore.so.4
#25 0xb72d1c6f in QCoreApplication::exec() ()
   from /usr/lib/qt/lib/libQtCore.so.4
#26 0xb764fda7 in QApplication::exec() () from /usr/lib/qt/lib/libQtGui.so.4
#27 0x08053f99 in main (argc=1, argv=0xbffff254) at src/Main.cpp:35

I start I2P-messenger again. As soon as I change the status to Online, it segfaults again. The backtrace looks similar:

Program received signal SIGSEGV, Segmentation fault.
0x0806dd0f in CUser::setI2PStreamID (this=0x0, ID=-1) at src/User.cpp:115
115     src/User.cpp: No such file or directory.
        in src/User.cpp
(gdb) bt
#0  0x0806dd0f in CUser::setI2PStreamID (this=0x0, ID=-1) at src/User.cpp:115
#1  0x08075810 in CProtocol::slotInputUnknown (this=0x823f7c8, ID=-1, Data=...)
    at src/Protocol.cpp:364
#2  0x080cf17c in CProtocol::qt_metacall (this=0x823f7c8, _c=
    QMetaObject::InvokeMetaMethod, _id=1, _a=0xbfffe854)
    at moc/moc_Protocol.cpp:79
#3  0xb72d426a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt/lib/libQtCore.so.4
#4  0xb72e2885 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/qt/lib/libQtCore.so.4
#5  0x080d2335 in CI2PStream::signDataRecived (this=0x8244590, _t1=-1, _t2=...)
    at moc/moc_I2PStream.cpp:123
#6  0x080b1be3 in CI2PStream::slotReadFromSocket (this=0x8244590)
    at src/I2PStream.cpp:260
#7  0x080d2244 in CI2PStream::qt_metacall (this=0x8244590, _c=
    QMetaObject::InvokeMetaMethod, _id=6, _a=0xbfffea2c)
    at moc/moc_I2PStream.cpp:95
#8  0xb72d426a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt/lib/libQtCore.so.4
#9  0xb72e2885 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/qt/lib/libQtCore.so.4
#10 0xb7331f17 in QIODevice::readyRead() () from /usr/lib/qt/lib/libQtCore.so.4
#11 0xb7488552 in ?? () from /usr/lib/qt/lib/libQtNetwork.so.4
---Type <return> to continue, or q <return> to quit---
#12 0xb7475e2b in ?? () from /usr/lib/qt/lib/libQtNetwork.so.4
#13 0xb74771f3 in ?? () from /usr/lib/qt/lib/libQtNetwork.so.4
#14 0xb764fd0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/qt/lib/libQtGui.so.4
#15 0xb765695e in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/qt/lib/libQtGui.so.4
#16 0xb72cf06b in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/qt/lib/libQtCore.so.4
#17 0xb72fae8a in ?? () from /usr/lib/qt/lib/libQtCore.so.4
#18 0xb6dee0f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#19 0xb6df1990 in ?? () from /usr/lib/libglib-2.0.so.0
#20 0xb6df1ac3 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#21 0xb72faab5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt/lib/libQtCore.so.4
#22 0xb770cd55 in ?? () from /usr/lib/qt/lib/libQtGui.so.4
#23 0xb72cd689 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt/lib/libQtCore.so.4
#24 0xb72cdada in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/qt/lib/libQtCore.so.4
#25 0xb72d1c6f in QCoreApplication::exec() ()
   from /usr/lib/qt/lib/libQtCore.so.4
#26 0xb764fda7 in QApplication::exec() () from /usr/lib/qt/lib/libQtGui.so.4
#27 0x08053f99 in main (argc=1, argv=0xbffff254) at src/Main.cpp:35

There is a record related to my nick in users.config. As soon as I remove it by manually editing the file, I2P-Messenger stops segfaulting.»
//from http://forum.i2p/viewtopic.php?p=31157#31157

"currently it does not have a password, no resumeable file transfers, no offline messages (since there's no server), and otr would be nice too. also indenting the chat messages" //from http://forum.i2p/viewtopic.php?p=52704#52704

offline msgs

<kind5> пихнуть себе в стораж локальный
<kind5> и всё ок
<orignal> доставится только когда вы оба онлайн будете
<kind5> ну и заебись
<orignal> а это далеко не всегда случается
<kind5> зато надёжно
<orignal> давай ты прям счас мне пошли
<kind5> и можно контролировать прохождение письма
<orignal> я через 5 минут зайду и посмотри как доставится
<kind5> оно токо в озу хранится
 [System] ( 09:39:46 ): Sending the message when the user comes online.
 If you close the client, the message will be lost.
<kind5> а надо на диск сбрасывать
<orignal> вот это хуево
<kind5> сразу после фейла отправки
<orignal> надо сохранять
<kind5> ну для оффлайн доставки дхт вапще не нужен

copy contact url

(03:11:48 AM) hypnosis: copy contact url
(03:11:57 AM) hypnosis: paste

get rid of «seedless» servers and or «seedless» technology

<kind5> orignal, кстати я думаю мож вырезать поиск юзеров из и2п мессенгера? 
нах эти сидлес сервера не нужны лишнее палево
<kind5> как считаешь?
<kind5> я ещё аудит кода не проводил
<orignal> разумеется выпилить
<orignal> это нахуй не надо
<orignal> кстати я его тоже начинал делать со встроенными i2pd
<orignal> https://github.com/orignal/i2q

(02:50:17) h: там единственно seedless сервера в и2п
(02:50:28) h: но их я буду выкоцывать
(02:50:51) h: эти сервера чисто регистри юзеров хранят профиля и всё

assorted issues from forum.i2p post 15748

«

  1. writing and having to hit "senden" is enrvating. Please make enter send the message.
  2. if someone writes me, i wanna get informed. So make it blink or beep
  3. sometimes empty messages get send. still dujno why. All I send gets through but sometimes additional lines appear only saying "Me"

other things:

  • If I select a color for my writing it should be remembered for next time.
  • offline messages would be cool for some very future version, maybe a joint effort with decentralized mail effort by postman or projects like http://www.epostmail.org/ and http://sourceforge.net/projects/p2pmail/ )
  • it recognized pretty rapidly when someone comes online, whoever if that person goes offline, the messenger does not notice it. Maybe a "goodbye" message?
  • OffTheRecord encryption
  • emoticons
  • log messages
  • sending a file says sending completed even five minutes before file actually arrived fully, so this status is fake. maybe wait for a receipt from receiver....
  • group chat

[…]

But therefore it should become as easy to use as torchat, i.e.

  1. no installation neeeded, just download, unpack and run.
  2. no spearate i2p installation needed
  3. no NAT/Firewall hole-punching needed
    Regarding the internal router, there already is the one running in imule....
    (should be updatable)

»
//from http://forum.i2p/viewtopic.php?p=15748#15748

tg flavor

anon5 (02:57:07):
я хочу ещё сделать flavor под вид telegram

anon5 (02:57:17):
то есть два разных пакета

anon5 (02:57:19):
один старый

anon5 (02:57:24):
другой телеграмистый

reach more users

«I would love to use it with my friends. But telling them to first install i2p, then compile the messenger, is pretty tedious. Long term goal should be have a precompiled binary without need to install (similar to torchat) which includes an internal router (like imule) so no dependencies» http://forum.i2p/viewtopic.php?p=15712#15712

FT file transfer gets aborted spontaneously

[System] ( 02:07:42 ): Incoming Filetransfer
Filename: mask.png
please accept or reject it in the user list
  
[System] ( 02:08:15 ): The Sender abort the Filetransfer
FileName: mask.png
incomplead File deleted
 
xcps ( 02:08:26 ): 
ты абортнул?

anon5 (02:08:31): 
нет, оно само
 
anon5 (02:08:38): 
говорит сендер то есть ты

anon5 (02:08:41): 
абортнул

xcps ( 02:08:42 ): 
ага

xcps ( 02:08:45 ): 
пиздит

xcps ( 02:08:50 ): 
это тоже надо чинить

rename to a better market brand

<villain> kind5, и на счет названия я таки настаиваю, это на втором месте по важности 
после иконки
<kind5> название это бренд
<kind5> github repo это так, приблуда
<kind5> пофик какой будет бренд
<kind5> пиарщики решат
<villain> i2pqtzalupachat только кириллы всякие будут юзать
<villain> :)
<villain> а ну если это core, то да, похуй
<kind5> это так, приблуда пока что
<kind5> склонируем реп куда нить
<villain> как tox-core
<kind5> villain, #21
<kind5> вот про бренд иссуй
<kind5> создал спец. для тебя =)

n-to-n group chats

<kind5> а я вот думаю
<kind5> зачем в и2п чатеге дхт вапще
<kind5> просто на всех узлах хранить список чатов и ок

<kind5> все равно мультицентрализация нужна для и2п чатега
<kind5> каждый центр это просто и2п чатег нода
<kind5> и центры юзаются чтобы объединить все подграфы в общий связный граф

assorted todo

<kind5> надо там ещё групповые чаты сделать
<kind5> и чатлог починить
<kind5> а то он глючит чатлог
<orignal> там оффлайн доставки нет
<kind5> пофик
<kind5> бессерверное же
<kind5> надо сделать чтоб на локалке оффлайн доставка складировалась и отправ-
лялась по мере доступности targets
<orignal> потому он и нахуй не нужен
<kind5> и управление стораджем оффлайн доставки
<orignal> надо как в боте

<MXPLRS|Kirill> kind5, с тебя групповуха
<xcps> kind5, и чтоб все чаты в одном окне

Capabilities at backend protocol

<pilgrim_AndChat> Щас самую мякотку буду запиливать
<pilgrim_AndChat> дхт =)
<pilgrim_AndChat> Уже в сидлесс манагер впилил два пустых метода
<pilgrim_AndChat> и одну структурку
<pilgrim_AndChat> Надо капабилити базед апи сделать если не сделан. И сделать такой капабилити как топик_симпл

должно быть защищено от кривого сидлес файла

<xcps> видимо в сидлесы мы теперь можем себя вписать?
<MXPLRS|Kirill> видать
<kind5> ща вы навписываете а я потом чини траблемы =)
<xcps> конечно)
<kind5> ну да, должно быть защищено от кривого сидлес файла

implement identification by b32

<MXPLRS|Kirill> вон
<MXPLRS|Kirill> дип дело спрашивает
<MXPLRS|Kirill> а если при добавлении указать b32 то найдет?
<MXPLRS|Kirill> надо сделать
<MXPLRS|Kirill> чтобы эту кучу не кидать чисто по b32
<deepi2p> censoredjvhvkljvlkjvlkjv.b32.i2p
<deepi2p> это я)
<deepi2p> адрес сэм сессии
<MXPLRS|Kirill> мне кажется оно сейчас так не найдет

crash when exiting the app

visible when being run under QtCreator

log:

Starting build-I2P-Messenger-Qt_4_8_6_Desktop-Debug/I2P-Messenger...
The program has unexpectedly finished.
build-I2P-Messenger-Qt_4_8_6_Desktop-Debug/I2P-Messenger crashed.

assorted from xcps

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

old java i2p sam bug

BUG in SAM v3

It seams something with the SAM v.3 is broken.

After a stream-connection is broken, it's no longer possible to make a reconnect to this destination...
Only get the Message "STREAM STATUS RESULT=CANT_REACH_PEER"

The only solution for the moment is to close the complete session and create a new one.

After this everything is working again.
There is no error or messages in Critical Logs or Router Logs.

System:
I2P version: 0.8.7-0
Java version: Sun Microsystems Inc. 1.6.0_22 (Java(TM) SE Runtime Environment 1.6.0_22-b04)
Jbigi: Locally optimized native BigInteger library loaded from file
Encoding: ANSI_X3.4-1968

//from http://forum.i2p/viewtopic.php?p=33779#33779

add group chats

(10:18:31) : я в этом и2п чате п2п чаты приделываю
(10:18:40) : чтоб администрять можно было только свою тачку =)
(10:18:47) : анархо либертарные чатеги =)
(10:18:58) : без опов в принципе =)

dht protocol doc

<psi> kind5: do you have a draft for the dht protocol planned for i2p qt messager?
<kind5> psi, i will file an issue for this. wanted =)

hybridization and portability issues + plugin to roster

Guest Posted: Mar 20, 2008 http://forum.i2p/viewtopic.php?p=11787#11787

Misc

the rumours say, that the torchat will be soon hybrid with a p2p messenger.

Would it be possible, that like Imule the I2p Messenger includes the SAM jar?
So that the messenger works without i2p-java as a standalone? and then gets hybrid with retroshare? A plugin would be perfect.

users could chat both... anonymously and with IP secure.

Plugin

A plugin to the friendslist would be cool.

seedless needs to be documented

<MXPLRS|Kirill> kind5, насчет seedless
<MXPLRS|Kirill> он где то говорил есть
<MXPLRS|Kirill> а вот например исхов плагина ни где нет
<kind5> эээ сырцы сидлес есть в чатеге
<kind5> но там вроде ещё сервера сидлес бывают
<kind5> sponge этим руководил серверами
<kind5> в форуме была переписка автора чатега и sponge
<kind5> в 14-страничной ветке про чатег
<kind5> надо эту переписку в доки
<kind5> orignal говорил sponge слился
<MXPLRS|Kirill> раньше был http://sponge.i2p/files/seedless/doc/how-it-works.txt
<MXPLRS|Kirill> но уже не доступен
<orignal> есть какой то плагин
<orignal> посмотри на robert.i2p
<orignal> там надо серверную сторону делать
<orignal> которой у меня нет


<orignal> kind5 давай ты мне расскажешь
<kind5> колупаю
<orignal> просто с меня для роберта тоже просили

presence issues

<orignal> опять оба оффлайн
<kind5> все оффлайн
<kind5> а я онлайн
<kind5> чёта с презенсом криво в нём
<kind5> с оффлайн онлайн статусом

assorted

what is needed:

  • groupchat
  • shortids
  • authenication message

and it need:

  • voice of i2p

  • offline messages

  • folder sync

  • file transfer with resume

  • multi-file for transfer

  • file search

  • gateways to other IM-Networks like ICQ

  • other programming language

  • chat history

and many more...every IM has this now,- it's state of the art....

//from

нету EdDSA

<orignal> занчит так
<orignal> у тебя в списке подписей нету EdDSA
<orignal> это типа 7
<orignal> EDDSA_SHA512_25519
<orignal> типа такого
<hren5> ща зафайлим иссуй
<orignal> const uint16_t SIGNING_KEY_TYPE_EDDSA_SHA512_ED25519 = 7;
<orignal> это счас самый главный тип подписи

where is the private key being kept?

<deepi2p> так щас вопрос по месаджеру, как ого хера у меня
 Destanation сменился после сборки нового i2pd?? 
<xcps_> deepi2p, вроде kind5 собирался выяснить, где лежит ключ тоннеля
<xcps_> чтоб сохранять его
<deepi2p> так может его в конфиге прописать, как в тоннелях
<xcps_> там надо еще приватный ключ к дестинейшенсу
<xcps_> поэтому надо найти где лежит, если лежит

implement dht

<kind5_> orignal, короче дхт надо мудрить
<orignal> кэп ))
<orignal> смотри код боте как у них

correct scrollbars

deppi2p ( 02:50:39 ):
кстати заметил когда много писать подряд текстат ползунок слева съезжает

anon5 (02:50:56):
у меня нет ползунка слева

deppi2p ( 02:51:06 ):
не, тожесть справа)

anon5 (02:51:08):
у меня ползунок справа . шлите скриншоты

anon5 (02:51:42):
там какая-то мудня с ползунками

anon5 (02:51:50):
надо чистить и комментить что к чему

anon5 (02:52:00):
прямо в коде мудятся ползуны

deppi2p ( 02:52:57 ):
т.е. когда открываш окошко немного поднят ползунок, ты попробуй меня закрыть щас и открыть

image

old issue — block list crash

»I2P-Messenger_0.2.19_Beta is segfaulting for me on linux if the blocklist is not empty (there are entries in UserBlockList.dat). If I delete the blocklist file, the app starts.

Program received signal SIGSEGV, Segmentation fault.
0x0805d654 in QListData::size (this=0x10)
    at /usr/lib/qt/include/QtCore/qlist.h:90
90          inline int size() const { return d->end - d->begin; }
(gdb) bt
#0  0x0805d654 in QListData::size (this=0x10)
    at /usr/lib/qt/include/QtCore/qlist.h:90
#1  0x08066b20 in QList<CUser*>::size (this=0x10)
    at /usr/lib/qt/include/QtCore/qlist.h:120
#2  0x080ca0db in CUserManager::getUserByI2P_Destination (this=0x0,
    Destination=...) at src/UserManager.cpp:115
#3  0x080b5ac7 in CUserBlockManager::addNewBlockEntity (this=0x823f8b8,
    NickName=..., Destination=..., BlockDate=...)
    at src/UserBlockManager.cpp:103
#4  0x080b567f in CUserBlockManager::readBlockListe (this=0x823f8b8)
    at src/UserBlockManager.cpp:69
#5  0x080b50a8 in CUserBlockManager (this=0x823f8b8, Core=...,
    FilePathToBlockFile=...) at src/UserBlockManager.cpp:32
#6  0x08061cc4 in CCore (this=0x8231058) at src/Core.cpp:80
#7  0x08054858 in form_MainWindow (this=0x8220bc8, parent=0x0)
    at gui/form_Main.cpp:32
#8  0x08053f7f in main (argc=1, argv=0xbffff254) at src/Main.cpp:33 

//from http://forum.i2p/viewtopic.php?p=30798#30798 Jan 17, 2011

PR stuff to be done

<kind5_> I've renamed the I2P Messenger repo to https://github.com/hypnosis-i2p/i2pchat
<kind5_> For a better brand
* kind5_ is now known as chthon5
<eche|of> chthon5: for a better publicity, you can announce it on zzz.i2p or even
better: forum.i2p - to keep track of it, too
<chthon5> eche|of, on forum.i2p in the same old topic
<chthon5> i'm slowly reviewing that topic and gathering info into my repos
<chthon5> eche|of, thanks for the advice, much appreciated

tooltips (over btns) are shown incorrectly on some system

<MXPLRS|Kirill> kind5, у меня такая еще херня
<MXPLRS|Kirill> почему-то надписи при наведении на кнопки не показываются

<MXPLRS|Kirill> блок всплывающий появляется
<MXPLRS|Kirill> а в нем текта нет

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.