- 1
grep '^-' /mnt/etc/roskomhui.txt | cut -d' ' -f2 | sed 's|^\([^/]*\)$|\1/32|' | xargs -n1 ipcalc | awk -e '{if ($1=="Address:") ADDR=$2; if ($1=="Netmask:") print "route add " ADDR" mask "$2" 172.16.1.2" }'
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
grep '^-' /mnt/etc/roskomhui.txt | cut -d' ' -f2 | sed 's|^\([^/]*\)$|\1/32|' | xargs -n1 ipcalc | awk -e '{if ($1=="Address:") ADDR=$2; if ($1=="Netmask:") print "route add " ADDR" mask "$2" 172.16.1.2" }'
На старом роутере у меня бы opkg и openvpn с сервачком за пределами России.
Список префиксов, на которые я хотел ходить через него, хранился в файле roskomhui.txt и имел формат
# petuh
-net 1.2.3.0/24
-host 1.2.3.4
# foo
grep '^-' /opt/etc/roskomhui.txt | xargs -n2 -icmd echo route add cmd gw $REMOTE_VPN_ADDR | sh
route add 1.2.3.4 255.255.255.255 %ADDR%
+1
var ER={}, x=new TextDecoder('KOI8-R').decode(Uint8Array.from( Array.apply(0,new Uint8Array(64).map( (_,b)=>b&1 ? 128+0x61+b/2 : 65+b/2 ))))
for (var i=0;i<64;i+=2){
if (i<52)
ER[x[ i ]] = x[i+1], ER[ x[i].toLowerCase() ] = x[i+1].toLowerCase()
ER[x[i+1]] = x[ i ], ER[x[i+1].toLowerCase()] = x[ i ].toLowerCase();
}
text=`<Налог>
<Наименование>НДС</Наименование>
<УчтеноВСумме>false</УчтеноВСумме>
</Налог>`
text.replace(/./g,(char,offset,text) => ER[char] || char);
Из юзерскрипта для транслитерации в обоих направлениях.
+2
https://blog.aragon.one/update-on-aragon-courts-first-mock-dispute/
Вы уж простите, но я снова с криптовалютчиками. Их мир оказался слишком охуенным.
Криптовалютчики запустили свой собственный суд! Потому что все существующие, как известно, несовершенны,
а из блокчейна слов не выкинешь и perfect transparency.
В первом же тестовом деле суд проебался (хоть и не в юридическом поле - а может и в юридическом тоже,
я не читал), сыграв реальную ситуацию с реальными персонажами из крипто-системы.
Персонажи ожидаемо оказались инфантилами и забиделись.
Что же сделали организаторы суда? Правильно, «удалили решение» из системы блокчейн, сделав вид, что
ничего и не происходило.
Пропагандируемый эфирными поехавшими веб3.0 - это такая россия будущего, где данные о преступлениях
даже не скрываются, но все делают вид, что ничего не происходило, потому что так надо и вообще иначе
весь манямирок рухнет.
+3
function strEqual(string a, string b) private returns (bool) {
return sha3(a) == sha3(b);
}
Как проверить идентичность строк, если ты криптовалютчик?
https://github.com/axic/mango/blob/83ef808eba1571097fecd8d8e08303a82f69d68c/MangoRepo.sol#L83-L85
+2
var buf = Buffer.allocUnsafe(kexInitSize);
var p = 17;
buf[0] = MESSAGE.KEXINIT;
if (myCookie !== false)
myCookie.copy(buf, 1);
writeUInt32BE(buf, kexBuf.length, p);
p += 4;
kexBuf.copy(buf, p);
p += kexBuf.length;
writeUInt32BE(buf, hostKeyBuf.length, p);
p += 4;
hostKeyBuf.copy(buf, p);
p += hostKeyBuf.length;
writeUInt32BE(buf, algos.cipherBuf.length, p);
p += 4;
algos.cipherBuf.copy(buf, p);
p += algos.cipherBuf.length;
writeUInt32BE(buf, algos.cipherBuf.length, p);
p += 4;
algos.cipherBuf.copy(buf, p);
p += algos.cipherBuf.length;
writeUInt32BE(buf, algos.hmacBuf.length, p);
p += 4;
algos.hmacBuf.copy(buf, p);
p += algos.hmacBuf.length;
writeUInt32BE(buf, algos.hmacBuf.length, p);
p += 4;
algos.hmacBuf.copy(buf, p);
p += algos.hmacBuf.length;
writeUInt32BE(buf, algos.compressBuf.length, p);
p += 4;
algos.compressBuf.copy(buf, p);
p += algos.compressBuf.length;
writeUInt32BE(buf, algos.compressBuf.length, p);
p += 4;
algos.compressBuf.copy(buf, p);
p += algos.compressBuf.length;
// Skip language lists, first_kex_packet_follows, and reserved bytes
buf.fill(0, buf.length - 13);
Мечтают ли скриптухи об Электросишке?
https://github.com/mscdex/ssh2-streams/blob/master/lib/ssh.js
+2
> At its core, Swarm implements a distributed content-addressed chunk store.
> Chunks are arbitrary data blobs with a fixed maximum size (currently 4KB).
> Content addressing means that the address of any chunk is deterministically derived from its content.
> The addressing scheme falls back on a hash function which takes a chunk as input and returns a 32-byte long key as output.
> A hash function is irreversible, collision free and uniformly distributed (indeed this is what makes bitcoin, and in general proof-of-work, work).
исключая лишнее
> derived from content
> content = 4KB
> 32-byte output
> collision free!
И еще немного несвежых новостей из мира, где «блокчейн» стал устойчивым синонимом слова «распределенный»
https://blog.ethereum.org/2016/12/15/swarm-alpha-public-pilot-basics-swarm/
+2
Global Install
Installing Yarn 2.x globally is discouraged as we're moving to a per-project install strategy.
We advise you to keep Yarn 1.x (Classic) as your global binary by installing it via the instructions you can find here.
https://yarnpkg.com/getting-started/install
Мы выпустили вторую версию приложеньки, в которой исправили все недочёты первой.
Именно поэтому запускать вы её будете через первую версию, которая с вами навсегда.
Мы проработали другие варианты и пришли к решению, что они все неправильные.
Сердечно ваши,
джаваскриптеры.
+3
#include <iostream>
#include <iomanip>
#include <sstream>
int main()
{
std::stringstream ss;
std::string in = "String with spaces, and embedded \"quotes\" too";
std::string out;
ss << std::quoted(in);
std::cout << "read in [" << in << "]\n"
<< "stored as [" << ss.str() << "]\n";
ss >> std::quoted(out);
std::cout << "written out [" << out << "]\n";
// read in [String with spaces, and embedded "quotes" too]
// stored as ["String with spaces, and embedded \"quotes\" too"]
// written out [String with spaces, and embedded "quotes" too]
}
Блядь! В крестостандарте есть стандартная функция для экранирования кавычек!
Интересно, когда нам ждать std::mysql_real_escape_string()?
https://en.cppreference.com/w/cpp/io/manip/quoted
+1
// Задача: Рисовать в консоли прогресс бар, на сколько дней текущий год завершился
static void ProgressBarOfElapsedDays(DateTime dateTime, bool isRefreshebleat = false) // рефрешеБЛЕАТ! :))
{
int daysOfYear = DateTime.IsLeapYear(dateTime.Year) ? 366 : 365;
int dayInProcents = daysOfYear * 100 / 100; // WAT?
int currentDay = dateTime.DayOfYear * 100;
int daysOfYearNotElapsed = daysOfYear * 100 - currentDay; // Сложный матан
int procent = 100 - (daysOfYear * 100 - currentDay) / dayInProcents;
int buffer = 0;
if (isRefreshebleat)
{
if (Console.CursorTop >= 1 || Console.CursorLeft >= 1)
{
Console.SetCursorPosition(Console.CursorLeft - Console.CursorLeft, Console.CursorTop - Console.CursorTop); // когда Console.SetCursorPosition(0, 0) недостаточно
}
}
// остальной код
}
isRefreshebleat и всё остальное :))
+3
ОбластьТело.Параметры.Нерабочий = ?(
(Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 1 И (День(СсылкаНаОбъект.ДатаНачалаСобытия) = 1
ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 2
ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 3
ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 4
ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 5
ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 6
ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 7
ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 8))
ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 2 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 23
ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 3 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 8
ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 5 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 1
ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 5 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 9
ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 6 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 12
ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 11 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 4
,"праздничный", "выходной");
Проверочка на соответствие даты действия документа праздничному дню.. не ну а чо бы нет то