-
−3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
// ==UserScript==
// @name Comment Highlighter
// @description Подсвечивает новые комментарии
// @include *://govnokod.ru/*
// @include *://www.govnokod.ru/*
// @version 2.1
// @grant none
// ==/UserScript==
(function() {
function updateState(data, lastPID, updater) {
// use `cid = 0` to enable highlighting comments in unvisited posts
// use `cid = Infinity` to disable highlighting in unvisited posts
var out, idx, pid, i = 0, cid = 0; // here
while(i < data.length) {
idx = i;
pid = data.charCodeAt(i++);
if(pid & 0x8000) {
pid &= 0x7fff;
pid <<= 16;
pid |= data.charCodeAt(i++);
}
if(pid == lastPID) {
cid = data.charCodeAt(i++) << 16 | data.charCodeAt(i++);
break;
} else {
i += 2;
}
}
data = pid == lastPID ? data.substring(0, idx) + data.substring(i) : data;
var lastCID = updater(cid);
if(isFinite(lastPID) && lastPID >= 0 && lastPID < 0x80000000) {
data += (lastPID >= 0x8000 ? String.fromCharCode(0x8000 | lastPID >> 16) : '') +
String.fromCharCode(lastPID & 0xffff) + String.fromCharCode(lastCID >> 16) +
String.fromCharCode(lastCID & 0xffff);
}
return data;
}
function commentID(comment) {
var commentLink = comment.querySelector('a.comment-link');
return Number(commentLink.href.match(/comment(\d+)$/)[1]);
}
function updateComments(prevCID) {
var comments = document.querySelectorAll('.entry-comment-wrapper');
var lastCID = prevCID;
for(var i=0; i<comments.length; ++i) {
var comment = comments[i];
var cid = commentID(comment);
if(cid <= prevCID) continue;
if(cid > lastCID) lastCID = cid;
comment.classList.add('new');
}
return lastCID;
}
var post = location.pathname.match(/^\/(\d+)/);
if(!post) return;
var PARAM = '8a9bd32e-20bc-42c7-bcdd-b65bb1fc2d0b-visited2';
var postID = +post[1];
var oldState = localStorage.getItem(PARAM) || '';
var newState = updateState(oldState, postID, updateComments);
localStorage.setItem(PARAM, newState);
})();
Битоёбство в "JS".
https://github.com/1024--/govnokod.ru-userscripts/blob/master/highlight-new.user.js
> use `cid = Infinity` to disable highlighting in unvisited posts
Не работает.
При следующем открытии все помечаются как не прочтённые.
Пофиксил так:
function updateComments(prevCID, highlightUnvisited=false) {
var comments = document.querySelectorAll('.entry-comment-wrapper');
var lastCID = prevCID;
for(var i=0; i<comments.length; ++i) {
var comment = comments[i];
var cid = commentID(comment);
if(cid <= prevCID) continue;
if(cid > lastCID) lastCID = cid;
if (!highlightUnvisited && prevCID === 0) continue;
comment.classList.add('new');
}
return lastCID;
}
guestinxo,
02 Октября 2018
-
−3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
#define m_from(format) \
char buff[128]; \
sprintf(buff, format, value); \
data_ = std::string(buff);
inline void fromShort(short value)
{
m_from("%i");
}
inline void fromInt(int value)
{
m_from("%i");
}
inline void fromLong(long value)
{
m_from("%li");
}
inline void fromFloat(float value)
{
m_from("%f");
}
inline void fromDouble(double value)
{
m_from("%f");
}
https://github.com/FlightBlaze/Newtoo/blob/master/modules/misc/USVString.h
Собственно, занесения в аналы ГК достоин весь этот класс целиком.
gost,
01 Октября 2018
-
−7
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
/*
Newtoo — разработка полноценного браузерного движка с нуля в 2018?
Так уж получилось, что в мире есть всего 4 популярных браузерных движка,
которые настолько сложны, что сами разработчики не знают и половины их
кодовой базы, и настолько продвинутые по технологиям, что начать их догонять —
пустая трата времени.
А так ли это на самом деле? Мой проект создан, чтобы повторить подвиги
современных браузерных движков и проверить, насколько ли реально создать
достойную альтернативу крупным проектам, история которых начинается с
девяностых годов. Мой новый движок создается с нуля, а значит его история
начинается — сегодня.
...
Те ошибки, которые были допущены на начальных стадиях разработки
остаются в проекте до конца. Самый яркий пример этому — умные
указатели в C++ — это еще более сложный синтаксис, большой оверхед
при работе, создании и удалении умных указателей. Кроме того, есть
очень много типов умных указателей и нужно знать, какой когда использовать,
ведь у каждого есть свои сюрпризы ньюансы. Посмотрите на этот файл из
WebKit. Когда видишь такой код, синтаксис умных указателей, пытаешься
успокоится и дышать ровно, но такого рода код — это весь вебкит с ног до
головы. В моем движке нет таких недостатков.
*/
Node* NodeListControlled::insertAt(unsigned long index, Node* child)
{
// mControl == vector<Node*>
mControl.insert(mControl.begin() + index, child);
return child;
}
Дело Попова, Бабушкина и иже с ними живёт!
У умных указателей оверхед большой, а вот List со вставкой за O(n) — это не недостаток, это фича.
А ещё там NamedNodeMap с тем же линейным поиском и практически полное игнорирование
передачи по ссылке — компилятор умный, авось, заоптимизирует как-нибудь.
https://sohabr.net/habr/post/424881/
https://github.com/FlightBlaze/Newtoo
gost,
01 Октября 2018
-
−5
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
class SNMPRemoteAgentSet
{
protected :
std::vector<SNMPRemoteAgent*> _agents;
}
void SNMPRemoteAgentSet::clear() {
while((int)_agents.size()) {
delete _agents[0];
_agents.erase(_agents.begin());
}
}
SNMPRemoteAgentSet::~SNMPRemoteAgentSet() {
clear();
}
Вот такой код нашёл в проекте. Таких говно-деструкторов в этом проекте ещё полно.
SuperCellSky,
01 Октября 2018
-
−1
- 1
- 2
- 3
- 4
- 5
- 6
#include <stdio.h>
#include <math.h>
char s[6];
main(){
puts(gets(s)[2]==45&8u>*s-65&8u>s[1]-49&8u>s[3]-65&8u>s[4]-49?abs((*s-s[3])*(s[1]-s[4]))-2?"NO":"YES":"ERROR");
}
666_N33D135,
01 Октября 2018
-
−4
Технический пост для работы говнофорума.
gvforum,
30 Сентября 2018
-
−2
- 1
- 2
https://sohabr.net/habr/post/424725/
https://sohabr.net/habr/post/423947/
Я не понял, жава платная или нет?
syoma,
30 Сентября 2018
-
−3
- 1
- 2
- 3
Открылся новый форум
https://gvforum.ru
Присоединяйтесь
gvforumyan,
29 Сентября 2018
-
0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Страйкер удалил политоту, а какого хуя ты не удалил
http://govnokod.ru/user/25102/codes
http://govnokod.ru/user/21529
http://govnokod.ru/user/21528/codes
И другую гомосятину в разделе "VisualBasic"?
Perevedi_na_PHP,
29 Сентября 2018
-
0
- 1
https://github.com/Microsoft/MS-DOS/tree/master/v2.0/source
[MS-DOS 1.25 & 2.0 Source] Copyright (c) Microsoft Corporation All rights reserved. MIT License Permission is hereby granted, freeof charge, to any person obtaining a copy of this software and associateddocumentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,merge, publish, distribute, sublicense, and/or sell copies of the Software, andto permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice andthis permission notice shall be included in all copies or substantial portionsof the Software.
THE SOFTWARE IS PROVIDED AS IS,WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TOTHE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE ANDNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLEFOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE ORTHE USE OR OTHER DEALINGS IN THE SOFTWARE.
j123123,
29 Сентября 2018