Giter Site home page Giter Site logo

pavel-pimenov / flylinkdc-r5xx Goto Github PK

View Code? Open in Web Editor NEW
54.0 9.0 26.0 130.21 MB

flylinkdc-r5xx

License: GNU General Public License v2.0

C++ 75.80% C 22.64% HTML 0.01% Pascal 0.02% Makefile 0.01% Batchfile 0.02% Rich Text Format 1.50% VBScript 0.01%
p2p torrent-client

flylinkdc-r5xx's People

Contributors

adem4ik avatar dennwc avatar gitter-badger avatar pavel-pimenov avatar rolex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar

flylinkdc-r5xx's Issues

Сохранять позицию курсора в файл-листе при переходе на один уровень выше по нажатию кнопки "Backspace"

Сохранять позицию курсора в файл-листе при переходе на один уровень выше по нажатию кнопки "Backspace". Для сравнения, как ведет себя тотал коммандер и проводник. Очень неудобно просматривать большие файл-листы без участия мышки.

Предложение: Добавить в свойства хаба галочку Send UserIP on logon

From [email protected] on December 11, 2007 16:36:26

При (пере)подключении к хабу отправлять на него команду (это ее
пользовательский эквивалент)
$UserIP %[myNI]|
и обрабатывать ответ как полагается, т.е. запоминать свой адрес.

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

Это правильно решение. Более того, это правильное поведение нормальных прог
в пассиве.

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

Original issue: http://code.google.com/p/flylinkdc/issues/detail?id=1

Нехватка памяти в UserCommand FavoriteManager::addUserCommand

  1. При активации 400 хабов размер массива достигает 12 тыщ записей
    user_command_bad_alloc
  2. Иногда падает исключение - bad_alloc
    пытаемся зачем-то заказать 2 гига
    user_command_bad_alloc_2g
  3. В последующем по массиву идет линейный поиск
    for (auto i = userCommands.cbegin(); i != userCommands.cend(); ++i)

Странно работает список поисковых запросов

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

  1. Поисковые запросы сохраняется в нём сверху, но если закрыть окно а потом открыть его, последние запросы каждый раз оказываются в конце списка.
  2. Старые поисковые запросы пока список растёт перемещаются вверх и вообще не вытесняются когда список полон, если в 1 окне поиска не начать искать 10 раз.
  3. Список сортируется рандомно.

По идее оно должно работать так:

  1. Новое слово добавлять вверх, список растёт, удаляется самое нижнее слово, если список полон.
  2. Если слово уже есть в списке, переместить его вверх.
  3. Список запросов сохраняется после каждого поиска, чтобы если открыть новое окно поиска или закрыть старое и открыть новое, список был всегда актуальным.

Взаимная блокировка при выполнении команды - "Закрыть все хабы"

Возникает на 470 хабах.

Стек 1
FlylinkDC_Debug.exe!std::list<std::pair<CID const ,boost::intrusive_ptr const >,std::allocator<std::pair<CID const ,boost::intrusive_ptr const > > >::_Orphan_ptr(std::list<std::pair<CID const ,boost::intrusive_ptr const >,std::allocator<std::pair<CID const ,boost::intrusive_ptr const > > > & _Cont, std::_List_nod<std::pair<CID const ,boost::intrusive_ptr const >,std::allocator<std::pair<CID const ,boost::intrusive_ptr const > > >::_Node * _Ptr) Line 1533 + 0x1b bytes C++
FlylinkDC_Debug.exe!std::list<std::pair<CID const ,boost::intrusive_ptr const >,std::allocator<std::pair<CID const ,boost::intrusive_ptr const > > >::erase(std::_List_const_iterator<std::_List_val<std::pair<CID const ,boost::intrusive_ptr const >,std::allocator<std::pair<CID const ,boost::intrusive_ptr const > > > > _Where) Line 1065 C++
FlylinkDC_Debug.exe!std::_Hashstd::tr1::_Umap_traits<CID,boost::intrusive_ptr<User const ,std::_Hash_compare<CID,std::hash,std::equal_to >,std::allocator<std::pair<CID const ,boost::intrusive_ptr const > >,0> >::erase(std::_List_const_iterator<std::_List_val<std::pair<CID const ,boost::intrusive_ptr const >,std::allocator<std::pair<CID const ,boost::intrusive_ptr const > > > > _Plist) Line 542 + 0x23 bytes C++

FlylinkDC_Debug.exe!ClientManager::on(TimerManagerListener::X<1> __formal, TimerManagerListener::X<1> __formal) Line 887 + 0x2a bytes C++
FlylinkDC_Debug.exe!Speaker::fireTimerManagerListener::X<1,__int64 const &>(TimerManagerListener::X<1> && type, const __int64 & p1) Line 103 + 0x3f bytes C++
FlylinkDC_Debug.exe!TimerManager::run() Line 106 C++
FlylinkDC_Debug.exe!Thread::starter(void * p) Line 307 + 0xf bytes C++
FlylinkDC_Debug.exe!_callthreadstartex() Line 314 + 0xf bytes C
FlylinkDC_Debug.exe!_threadstartex(void * ptd) Line 297 C
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes

Стек 2

ntdll.dll!_NtWaitForSingleObject@12()  + 0x15 bytes 
ntdll.dll!_NtWaitForSingleObject@12()  + 0x15 bytes 
FlylinkDC_Debug.exe!std::_Iterator012<std::bidirectional_iterator_tag,unsigned long,int,unsigned long const *,unsigned long const &,std::_Iterator_base12>::~_Iterator012<std::bidirectional_iterator_tag,unsigned long,int,unsigned long const *,unsigned long const &,std::_Iterator_base12>()  + 0x16 bytes  C++
ntdll.dll!_RtlEnterCriticalSection@4()  + 0x16a68 bytes 
FlylinkDC_Debug.exe!CriticalSection::lock()  Line 339 + 0xf bytes   C++

FlylinkDC_Debug.exe!LockBase::LockBase(CriticalSection & aCs) Line 478 C++
FlylinkDC_Debug.exe!ClientManager::putOffline(const boost::intrusive_ptr & ou, bool disconnect) Line 529 C++
FlylinkDC_Debug.exe!NmdcHub::putUser(const std::basic_string<char,std::char_traits,std::allocator > & aNick) Line 173 C++
FlylinkDC_Debug.exe!NmdcHub::onLine(const std::basic_string<char,std::char_traits,std::allocator > & aLine) Line 748 C++
FlylinkDC_Debug.exe!NmdcHub::on(BufferedSocketListener::X<2> __formal, const std::basic_string<char,std::char_traits,std::allocator > & aLine) Line 1730 C++
FlylinkDC_Debug.exe!Speaker::fireBufferedSocketListener::X<2,std::basic_string<char,std::char_traits,std::allocator > >(BufferedSocketListener::X<2> && type, std::basic_string<char,std::char_traits,std::allocator > && p1) Line 103 + 0x39 bytes C++
FlylinkDC_Debug.exe!BufferedSocket::threadRead() Line 353 + 0x39 bytes C++
FlylinkDC_Debug.exe!BufferedSocket::checkSocket() Line 719 C++
FlylinkDC_Debug.exe!BufferedSocket::run() Line 741 C++
FlylinkDC_Debug.exe!Thread::starter(void * p) Line 307 + 0xf bytes C++
FlylinkDC_Debug.exe!_callthreadstartex() Line 314 + 0xf bytes C
FlylinkDC_Debug.exe!_threadstartex(void * ptd) Line 297 C
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes

dead-lock-2

dead-lock-1

Автоматическое обновление

При старте компьютера, если флай перед перезагрузкой скачал обновление, он находит скачанное обновление и просит его установить. Но при этом процесс флая висит и ничего не происходит (его окно закрыто и нет иконки в трее). Если еще раз перезагрузиться, то все повториться.
r503-beta67-x64 build 17353

Ошибка интерфейса.

При запуске флай говорит, что восстановлена папка, которая раньше была в шаре. При это в диалоге находятся две кнопки "Да" и "Нет".
Вопроса никакого нет, а да и нет есть.

При открытии торрент файла в броузере FL начинает перезапускаться

При открытии любой ссылки на скачку торрента с сайта piratebay.to в Opera 30 она предлагает открыть FL, нажимаешь открыть, запускается ещё одна копия FL и начинает по 100 раз в секунду перезапускаться. IE с этого же сайта предлагает просто сохранить торрент файл, как и Opera со всех других сайтов. Путь к торрент клиенту в настройках FL указан, но его можно и стереть, всё равно перезапуски. Видимо FL не может нормально передать ссалку на торрент файл uTorrent.exe или другому клиенту.

баг: не тот ник в строке ввода

From [email protected] on June 14, 2008 23:15:09

  1. в чате правой кнопкой тыкаем на пользователя и ничего в менюшке не
    выбираем
  2. в списке пользователей выбираем пользователя и выбираем отправку
    публичного сообщения (ник в чат)
  3. в строке ввода сообщения получаем ник из первого пункта

StrongDC++ 2.13 sqlite r328

Original issue: http://code.google.com/p/flylinkdc/issues/detail?id=4

Зависание при завершении приложения на большом кол-ве хабов

При закрывании клиента или закрытии сразу 400 хабов
клиент пожирает 100% процессора (иногда меньше) и дождаться когда отвиснет ни разу не удавалось.
Очень тормозит при закрывании даже одного окна.
fly_100cpu

Файл Favorites.xml
http://yadi.sk/d/SSmj5y4FATG3Y

Хэширование файлов "спотыкается" о "файл", который является символической ссылкой на другой файл, и стоит на месте (никогда не заканчивается)

Win7 x64 SP1 Pro, NTFS
FlylinkDC++ r502-x64 build 18654

По пути "D:\Музыка\Транс\Lange\04. Other\Judge Jules - Weekend Warmup (Menno De Jong & Lange Guests) (24.02.2012).mp3" у меня лежит символическая ссылка на "D:\Музыка\Транс\Menno De Jong\Judge Jules - Weekend Warmup (Menno De Jong & Lange Guests) (24.02.2012).mp3".

Ссылка создана в FAR2 путем нажатия Alt-F6 и далее выбрано "Тип ссылки" = "символическая ссылка (файл)". В Проводнике Windows эта ссылка называется «Файл "SYMLINK"».

В окне Flylink'а "Хеширую файлы..." (вызывается по Ctrl-H) видно, что скорость по нулям, осталось еще 2000+ файлов, и вверху отображается "D:\Музыка\Транс\Lange\04. Other\Judge Jules - Weekend Warmup (Menno De Jong & Lange Guests) (24.02.2012).mp3". И дальше ничего не происходит. См. скриншот "Ctrl-H.png".

У файла, на который ссылается ссылка, стоял атрибут "Только чтение". Убрал. Не помогло.

И у файла, и у ссылки стоят атрибуты "Архивный" и "Неиндексируемый". (Последним атрибутом пользуюсь в своих хитрых целых — установка атрибута у меня означает "прослушанная музыка / просмотренный фильм", и соответствующая раскраска в FAR2 делается. На индексирование моих файлов методами Windows мне плевать, встроенным поиском все равно никогда не пользуюсь).

Могу выполнить любую дополнительную диагностику, только скажите, какую :-).
ctrl-h

Частые вызовы FavoriteManager::getFavoriteHubEntry

Добавил логирование в дебаге.
получилось много вызовов - при 400 хабах уже заметно.

Внутри метода линейный поиск по вектору
Решение - заменить на map - будет меньше тормозить и не будет инвалидации при добавлении/удалении новых хабов.

Разные неправильности при обработке символических ссылок на файлы (SYMLINK)

В качестве продолжения #14: хэширование прошло успешно, смотрю в свой список файлов, чтобы проверить, насколько успешно обработался "файл"–символическая ссылка. Косяки:

  1. Смотрим в ту папку, где лежит символическая ссылка, см. вложение "symlink_fail.png":
    • довольно странно, что путь указывает на текущую папку (подчеркнуто желтой линией), а не на папку, в которой реально располагается настоящий файл — сомнительный момент, может фэйл, может нет;
    • свойства реального файла не считались (выделено красной рамкой) — это явный фэйл.
  2. Смотрим в ту папку, где лежит настоящий файл , см. вложение "real_file_path_fail.png":
    • путь указывает на папку, где лежит символическая ссылка на текущий настоящий файл! (а если бы ссылок было несколько?..), подчеркнуто красной линией — это явный фэйл;
    • свойства реального файла успешно считались (выделено зеленой рамкой) — это гуд.
      symlink_fail
      real_file_path_fail

Слетает шрифт главного чата через некоторое время работы

From ivanzoid on December 04, 2008 14:36:33

What steps will reproduce the problem? 1. Установить шрифт для чата, отличный от дефолтного (у меня Verdana)
2. Перезапустить Flylink чтобы изменения вступили в силу
3. Подождать несколько часов (точного момента проявления бага к сожалению
не выяснил) What is the expected output? What do you see instead? Шрифт должен оставаться таким какой установлен в настройках. Но с какого-то
момента шрифт чата меняется на, судя по всему, Arial, чего явно не должно быть. What version of the product are you using? On what operating system? FlylinkDC++ r370 . Windows XP SP3 English Please provide any additional information below.

Attachment: flybug.png

Original issue: http://code.google.com/p/flylinkdc/issues/detail?id=6

Возможность отключить постоянную сортировку списка пользователей

Добавлял миллион(1 000 000) пользователей.(фейковые MyINFO от "хаба")
Без сортировки списка:
На локальном интерфейсе; UI флая зависало. Все клиенты добавились за несколько секунд(сотнями)(уперся в производительность одного ядра проца)

Через вайфай роутер или через сеть провайдера - упирается в траффик(около 30 мегабит входящих MyINFO). UI флая подвисало на доли секунд.

С включенной сортировкой(по имени например) - после 60000 UI подвисает(перегруз ядра проца) конкретно. При нескольких тысячах в секунду новых MyINFO.
Миллион добавлялся минут 20...


Хотя для малого количества пользователей это мало существенно.
Но зачем лишний раз сортировать?
При заходе на хаб например, можно отсортировать только раз. - После первого сообщения.
В неактивных - надеюсь итак не сортируется. При закрытом списке тоже? :)

При добавлении хаба(или CTRL-Q), сортировка устанавливается на столбец с IP.
Это конечно пожелание

Исключить тип mp4 из фильтра поиска Аудио

Тип mp4 надо исключить из фильтра Аудио при поиске, он уже есть в фильтре Видео где ему и место. Иначе ищешь с фильтром Аудио музыку, а выдаёт mp4 видео файлы.
К фильтру аудио добавить форматы *.wv и *.m4a если их там нет.

Нужная фича

From [email protected] on January 12, 2008 16:38:59

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

Original issue: http://code.google.com/p/flylinkdc/issues/detail?id=2

Глючное поле в фаворитах OP Chat Names

В фаворитах поле OP Chat Names, когда имеет что либо, через разделитель ; должно открывать лички от этого ника при входе на хаб
но поле абсолютно ничего не делает.

op-names

Дубликатные запросы к таблицам TTH если файл найден у нескольких.

  1. Запускаем флай с трассировкой SQL ( FlylinkDC.exe /sqltrace )
  2. Начинаем качать файл, который есть у нескольких юзеров
  3. В Settings\Logs\sqltrace.log видим картину:
    [2013-10-11 14:35:37] select id from fly_hash where tth=x'06eb2b4aca1545c6f88fd1afcfb88c34fb95f74174b4b01c'
    [2013-10-11 14:35:37] select tiger_tree,file_size,block_size from fly_hash_block where tth_id=6
    [2013-10-11 14:35:39] select id from fly_hash where tth=x'06eb2b4aca1545c6f88fd1afcfb88c34fb95f74174b4b01c'
    [2013-10-11 14:35:39] select tiger_tree,file_size,block_size from fly_hash_block where tth_id=6
    [2013-10-11 14:35:39] select id from fly_hash where tth=x'06eb2b4aca1545c6f88fd1afcfb88c34fb95f74174b4b01c'
    [2013-10-11 14:35:39] select tiger_tree,file_size,block_size from fly_hash_block where tth_id=6

Отображение TTH файла перемещённого на окно FL

В GL есть очень полезная функция расчёта TTH брошенного на окно GL файла: http://f6.s.qip.ru/ETcrHqYi.png
В файловой системе NTFS TTH сразу отображается в отдельном поле, при этом сразу доступна магнет-ссылка для копирования, а после хеширования TTH отображается в основном поле.
Это бывает очень удобно, если быстро хочешь найти или кинуть магнет файла. Не надо открывать окно, указывать путь, ждать.

Скачивание архивов rar/zip с повреждением

Здравствуйте. последнюю неделю-полтора наблюдаю следующее: если скачивать архивы с изображениями jpg внутри (в частности, манга/комиксы), некоторые скачанные файлы произвольным образом (в смысле, как повезет) в итоге оказываются поврежденными. картинки либо показываются наполовину, либо winrar выдает сообщение "повреждение заголовка". при повторном скачивании того же файла, он загружается целым и невредимым. но опять же - в следующий раз другой файл может оказаться поврежденным.

Анимация HubFrame::onSpeaker в событии case SET_WINDOW_TITLE:

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

TODO - заблокировать генерацию таких событий пока стартуем и разгрузить очередь от спама?

13-10-08 22:48:24] case SET_WINDOW_TITLE g_count = 1028 str = Metro & RZD HUB - Добро (dchub://metro.pit-bull.biz:416) g_max_len = 259
13-10-08 22:48:24] case SET_WINDOW_TITLE g_count = 1029 str = Metro & RZD HUB - Добро (dchub://metro.pit-bull.biz:416) g_max_len = 259
13-10-08 22:48:24] case SET_WINDOW_TITLE g_count = 1030 str = Metro & RZD HUB - Добро п (dchub://metro.pit-bull.biz:416) g_max_len = 259
13-10-08 22:48:24] case SET_WINDOW_TITLE g_count = 1031 str = Metro & RZD HUB - Добро по (dchub://metro.pit-bull.biz:416) g_max_len = 259
13-10-08 22:48:25] case SET_WINDOW_TITLE g_count = 1032 str = Metro & RZD HUB - Добро пож (dchub://metro.pit-bull.biz:416) g_max_len = 259
13-10-08 22:48:25] case SET_WINDOW_TITLE g_count = 1033 str = Metro & RZD HUB - Добро пожа (dchub://metro.pit-bull.biz:416) g_max_len = 259
13-10-08 22:48:25] case SET_WINDOW_TITLE g_count = 1034 str = Metro & RZD HUB - Добро пожал (dchub://metro.pit-bull.biz:416) g_max_len = 259
13-10-08 22:48:25] case SET_WINDOW_TITLE g_count = 1035 str = Metro & RZD HUB - Добро пожало (dchub://metro.pit-bull.biz:416) g_max_len = 259
13-10-08 22:48:25] case SET_WINDOW_TITLE g_count = 1036 str = Metro & RZD HUB - Добро пожалов (dchub://metro.pit-bull.biz:416) g_max_len = 259
13-10-08 22:48:25] case SET_WINDOW_TITLE g_count = 1037 str = Metro & RZD HUB - Добро пожалова (dchub://metro.pit-bull.biz:416) g_max_len = 259

Количество открытых хабов отображается неверно

В статусной строке неверно отображается количество открытых хабов: http://f5.s.qip.ru/P703CDga.png
X:31/2/1
У меня 37 хабов / 2 отключены в избранных / 1 не удаётся подключиться
В GL, ApexDC также отображается неверно.
Предлагаю сделать отображение в таком виде: X:37/34/1
Всего в избранных / Подключено сейчас / Не удаётся подключиться
Точное количество хабов в избранных посмотреть негде и в статусной строке тоже нет такой информации.

В дружбу с пользователем

From [email protected] on May 08, 2008 04:36:23

Хотелось бы что б было создано отдельное окно и в нем всегда был список
доступных
серверов игр(и инфа о сервере)\хабов\ресурсов сети\помощь по
хабам\реклама\описания полезных сайтов
например добавил сервер контры свой ip и описания сервера, а ты открыл окно
и зазырил с
первого раза ) и все жили б дружно ... =)

Attachment:

Original issue: http://code.google.com/p/flylinkdc/issues/detail?id=3

Не работает отключение медленных источников

From [email protected] on December 13, 2008 10:55:22

What steps will reproduce the problem? Поставить галочку в "Отключать медленные источники" и "Только при сегм.
скачивании".
Разорвать скачку, если скорость ниже 25 кб/с.
Дольше чем 15 сек
И скорость скачивания превысит 100 кб/с
и размер файла больше 10 мб
удалить источник, если скорость ниже 5 кб/с What is the expected output? What do you see instead? При скачивании файлов превыщающих 10 мб и суммарная скорость скачивания
больше 100 кб/с должны отключаться источники со скоростью скачки меньше
25 кб/с, если эта скорость держится на протяжении не менее 15 секунд. Но
они не отключаются, хоть и проходит 1 минута на скорости с этого
источника например 3 кб/с. Суммарная скорость скачки 600 кб/с. What version of the product are you using? On what operating system? Сломалось это в версии 364-365 вроде. Сейчас уже 370 и все равно не
работает. Пытался на блоге писать, но почему-то никто не реагировал даже
ответом. Версия под Windows XP sp3. На других не пробовал. Please provide any additional information below.

Original issue: http://code.google.com/p/flylinkdc/issues/detail?id=7

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

1.Каждый раз, когда щёлкаешь правой по некоторым хабам, в меню этого хаба добавляются лишние "Команды пользователя": http://f5.s.qip.ru/P703CDg8.png
Например вот эти хабы:
dchub://dc.inetvl.ru:2223
dchub://dc.playground.ru
dchub://tankafett.biz
dchub://dc.pashahub.ru
dchub://hub.magnet.211.ru
"Команды пользователя" также добавляются к хабам с которыми отсутствует соединение.
На других хабах всё нормально.

2.Когда щёлкаешь правой по хабу когда он неактивен, почему-то кроме пункта Меню пользователя, больше никаких пунктов меню нет: http://f5.s.qip.ru/P703CDg9.png
А хотелось бы видеть пункты: Свойства, Закрыть и т.д. как в любом активном хабе.

Положение панели быстрого поиска не запоминается

1.Положение панели быстрого поиска после перезапуска FL не запоминается. Перемещаю её на панель инструментов, а при перезапуске она каждый раз оказывается сверху, справа от кнопок закрытия хаба, где ей вообще не место.
2.На панели инструментов есть кнопка "Открыть собственный список файлов", при повторном нажатии на эту кнопку, по идее он должен закрыться, но он остаётся открытым. Просто остальные кнопки закрывают свои окна, а эта кнопка почему-то нет.

Высокая загрузка процессора при включении ограничителя скорости

С меня качает юзер.
Ограничил ему скорость.
Проц стало грузить: (23-24% на 4х ядерном проце)
Зависит от того какое ограничение выставить: чем меньше - тем выше нагрузка на проц.
Флай - бета102x64

если ограничивать глобально - проц не нагружает(вроде)

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.