Show newer

@mashiro 话说网页端拖动图片的限制是不是挺小,还是我卡到bug了,脱了3张图片好像,然后拖动就无效了(提示也没有)

现实警告 

转载自:慕格学术

上学的时候受到的教育是不要拜金,知识才是财富;搞研究的时候受到的教育是不要浮躁要坐得住冷板凳;入职的时候领导讲搞科研不是升官发财,心要静……。

我都照做了。结果到买房子的时候现实告诉我知识不是财富,因为既不能当首付也不能抵押贷款;评职称的时候才发现坐冷板凳的发不了高影响因子的文章自然就评不上高级职称;给子女抢所内教育名额的时候才发现人家就是按官职或职称来排队的,或者排不上没关系,有钱也可以:科学院自己办的6万一年的私立学校也为你敞开,升官的或者发财的都有出路。所以搞来搞去,合着自己才是一部彻头彻尾的反面教材!

念经警告 

TIRAMISU :bili_emoji_huaji: : tiling, vectorization, loop unrolling, array packing, register blocking, data prefetching

—– Optimization in code generation

我好像悟出来了 curses 的 terminfo/termcap 咋看了

man terminfo 里头
Cap-name指的是terminfo.src里的名字,TCap-Code是要用的代码,就是termcap里的东西

比如 el, ce(Cap-name, TCap-Code)含义是:清空行尾
terminfo会写 el=\E[K
termcap会写 ce=\E[K
你得用 tput ce

我悟了(查了一下 /usr/share/misc/termcap
\E[K 对应到 xterm 是 ce=\E[K
man cursesce 是 clear to end of line 的意思
于是就用 tput ce 就可以了

友尽警告 

舍友不尊重我重要的电脑,就这么友尽就对了吧。说实话,我现在输不起,我也没法原谅。他把水滴到我笔记本电脑的键盘上了,你大概会觉得很可笑,没什么大不了的。我只不过失去了1w,一个游戏机,几年以来的玩具,小说,博客,自定义linux的配置,甚至我的青春,或者是一生。

有没有什么站有设计好的应用架构,比如业务逻辑的框架,怎么写,数据库怎么设计,当前都怎么搞的,最好是文字材料。 :bili_emoji_xiaoku:

自己服务器日志统计

注:
<none> 基本上都是攻击
<other> 大多是代理请求
docs, wiki已经下线了

成天被别人打:

$ sed -n 139p access.log | xxd
00000000: 7b22 7469 6d65 223a 2232 3032 312d 3035  {"time":"2021-05
00000010: 2d31 3154 3031 3a34 313a 3439 2b30 383a  -11T01:41:49+08:
00000020: 3030 222c 2272 656d 6f74 6522 3a22 3136  00","remote":"16
00000030: 372e 3939 2e31 3639 2e32 3035 222c 2272  7.99.169.205","r
00000040: 6571 7565 7374 223a 2239 39cc 5c75 3030  equest":"99.\u00
00000050: 3133 eb8b 55c0 218b 69c8 96a5 7532 de8e  13..U.!.i...u2..
00000060: bad5 8da0 b0d3 7c8f 6374 57f0 5c75 3030  ......|.ctW.\u00
00000070: 3030 5c75 3030 3132 3845 5c22 aed0 2b68  00\u00128E\"..+h
00000080: 85c2 56d1 725c 7530 3031 39b4 443d 42a6  ..V.r\u0019.D=B.
00000090: 67d3 72c7 9ac9 33bc 5c75 3030 3037 d371  g.r...3.\u0007.q
000000a0: c3d7 8a80 cfa9 b83e 5c75 3030 3142 e38f  .......>\u001B..
000000b0: 59d5 7692 6c88 aa5c 7530 3031 3183 5c75  Y.v.l..\u0011.\u
000000c0: 3030 3045 8d2e bc39 b1c9 f63b 84b5 5d9c  000E...9...;..].
000000d0: 5c75 3030 3032 6c5c 7530 3031 414d c828  \u0002l\u001AM.(
000000e0: 46bf 8370 345c 6238 7fcf b6fb a4f7 6bb7  F..p4\b8......k.
000000f0: dfd2 d278 7d73 dc5d 51e7 5296 769d 202a  ...x}s.]Q.R.v. *
00000100: 475f 9fc8 5c75 3030 3136 805c 7530 3030  G_..\u0016.\u000
00000110: 346a 7490 d9ab 288d f7af d7d7 e44d 775c  4jt...(......Mw\
00000120: 7530 3030 306c c736 28a2 62ca f97c 4f5d  u0000l.6(.b..|O]
00000130: f25c 225c 7530 3030 345c 7530 3030 30f8  .\"\u0004\u0000.
00000140: 23a3 665c 7466 db51 36d5 7ad3 bcda 5c75  #.f\tf.Q6.z...\u
00000150: 3030 3141 2b77 eae7 a45c 7530 3030 42e7  001A+w...\u000B.
00000160: d780 32d4 41ea d0d2 b435 e78f 92d5 b54e  ..2.A....5.....N
00000170: d8cc affd 4c3a 4bb8 5c75 3030 3030 5c75  ....L:K.\u0000\u
00000180: 3030 3042 30ed 9db8 e89d 5c75 3030 3133  000B0.....\u0013
00000190: 97b4 e920 482d d959 f9b4 9bdc b35c 6298  ... H-.Y.....\b.
000001a0: a49e d599 8eb5 f7cd 9389 b3bf 3591 9b52  ............5..R
000001b0: 523f 222c 2273 7461 7475 7322 3a22 3430  R?","status":"40
000001c0: 3022 2c22 686f 7374 223a 2222 2c22 7365  0","host":"","se
000001d0: 6e74 223a 2231 3530 222c 2272 6566 6572  nt":"150","refer
000001e0: 6572 223a 2222 2c22 7573 6572 5f61 6765  er":"","user_age
000001f0: 6e74 223a 2222 7d0a                      nt":""}.

readpe 支持 x64 了

#define DUMP_SECTIONS() do{                                                                                            \
    printf("ImageBase:\t" READPE_PTR_FMT "\n", ((READEPE_NT_HEADERS*)nt_header)->OptionalHeader.ImageBase);            \
    printf("StackCommit:\t" READPE_PTR_FMT "\n", ((READEPE_NT_HEADERS*)nt_header)->OptionalHeader.SizeOfStackCommit);  \
                                                                                                                       \
    puts("");                                                                                                          \
                                                                                                                       \
    puts("Sections\n============");                                                                                    \
    IMAGE_SECTION_HEADER* section = (IMAGE_SECTION_HEADER*)xmalloc(sizeof(IMAGE_SECTION_HEADER));                      \
    fseek(file, dos_header->e_lfanew, SEEK_SET);                                                                       \
    fseek(file, (size_t)IMAGE_FIRST_SECTION(((READEPE_NT_HEADERS*)nt_header)) - (size_t)nt_header, SEEK_CUR);          \
    fread(section, sizeof(IMAGE_SECTION_HEADER), 1, file);                                                             \
    puts("##     Name     FLAGS   virtaddr[  size  ]      fileaddr[  size  ]");                                        \
    puts("------------------------------------------------------------------");                                        \
    for (int i = 0; i < ((READEPE_NT_HEADERS*)nt_header)->FileHeader.NumberOfSections; ++i)                            \
    {                                                                                                                  \
        printf("%02d %8.8s\t%5s\t" READPE_PTR_FMT "[" "%08lx" "]\t" "%08lx" "[" "%08lx" "]\n",                         \
           i,                                                                                                          \
           section->Name,                                                                                              \
           get_section_flags(section->Characteristics),                                                                \
           section->VirtualAddress + ((READEPE_NT_HEADERS*)nt_header)->OptionalHeader.ImageBase,                       \
           section->Misc.VirtualSize,                                                                                  \
           section->PointerToRawData,                                                                                  \
           section->SizeOfRawData);                                                                                    \
                                                                                                                       \
        fread(section, sizeof(IMAGE_SECTION_HEADER), 1, file);                                                         \
    }                                                                                                                  \
    free(section);                                                                                                     \
}while(0)

Boost for CMake

cmake_minimum_required(VERSION 3.7)

project(boost-playground)

set(CMAKE_CXX_STANDARD 11)

# Boost
set(BOOST_ROOT E:/opensource/boost_1_75_0)

find_package(Boost)
if(Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS})
    link_directories(${Boost_LIBRARY_DIRS})
    link_libraries(${Boost_LIBRARIES})

    message(STATUS "[Boost] version: ${Boost_LIB_VERSION}")
    message(STATUS "[Boost] include: ${Boost_INCLUDE_DIRS}")
    message(STATUS "[Boost] library: ${Boost_LIBRARY_DIRS}")
    message(STATUS "[Boost] library: ${Boost_LIBRARIES}")
    message(STATUS "All target links: ${Boost_LIBRARIES}")
else()
    message(ERROR "Boost notfound")
endif()

# Playgrounds
add_subdirectory(playground)

折腾脚本

拿网络设备名

ip link show | grep -Po '^\d+:\s+\w+' | cut -d : -f 2 | grep -Po '\w+'
Show older
小森林

每个人都有属于自己的一片森林,也许我们从来不曾走过,但它一直在那里,总会在那里。迷失的人迷失了,相逢的人会再相逢。愿这里,成为属于你的小森林。