跳转至

toLearn

Datastruture: Tree

导言

When i learn the radix tree in mult-level page table, I was confused by various kinds of tree and thier names

Naming your work

导言

While reading various research papers, it's fascinating to observe a trend where researchers use names from popular culture to label their scientific work. This practice not only adds a cool and captivating touch to the research but also leaves a lasting impression, e.g, transformer in AI. Popular culture symbols and names serve as powerful tools when incorporated into research titles, especially when they align with the core concept.

Speech

导言

随着翻译软件逐渐结合到工作流中,再加上chatgpt等润色英文写作。我相信在未来读写不会再是难点。但是与外国人直接打交道的听说还是需要积累的。(听的话假如是zoom会有实时翻译,说反而更重要。You should always reading the blog content

内容选择

科技相关的有意思的TED视频演讲视频。

Mkdocs

导言

mkdocs在今年支持了blog的基本功能,而且已经有探路者实践过了1。也是时候升级博客生成器了。

CProgramReading

visibility & attribute & capability

#ifndef _LIBCPP_TYPE_VIS
#  if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)
#    define _LIBCPP_TYPE_VIS __attribute__ ((__visibility__("default")))
#  else
#    define _LIBCPP_TYPE_VIS
#  endif
#endif

#ifndef _LIBCPP_THREAD_SAFETY_ANNOTATION
#  ifdef _LIBCPP_HAS_THREAD_SAFETY_ANNOTATIONS
#    define _LIBCPP_THREAD_SAFETY_ANNOTATION(x) __attribute__((x))
#  else
#    define _LIBCPP_THREAD_SAFETY_ANNOTATION(x)
#  endif
#endif  // _LIBCPP_THREAD_SAFETY_ANNOTATION

class _LIBCPP_TYPE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(capability("mutex")) mutex
{
}

It's part of code from __mutex_base

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

上面回答部分来自ChatGPT-3.5,没有进行正确性的交叉校验。

6 FPS

卡拉彼丘

  • 信息差:发现分布以及落单对方,灵活跑动隐藏自身,干扰对方准备好时,对方换弹/倒地时补射。
  • 躲避对方多枪线,己方架多枪线,多路线包围
  • 一个位置偷一枪,就换位置。不要再露头。
  • 对枪注意弦化
  • 位置的选择:一要有掩体,二要有安全的退路通道和队友大部队汇合,不要被敌人包夹。
  • 不要急于补人,要观察有没有被敌人包
  • 进阶:时刻预瞄出人点,
    • 弦化靠左墙,预瞄靠左,因为向右出掩体,准星会被向右移动。
    • 学习弹道,反向压枪。
  • 注意不要冲动,以身试陷(除非是突破位)

角色特点

  1. 熊当掩体(带闪光弹,烟雾弹),熊会自动冲锋并结冰
  2. 防守方
  3. 米雪儿:适合压制补枪,技能适合补枪。引诱敌方到背面炮台射程里
  4. 进攻方:
  5. 明:侦察 + 干扰器,风场雷

地图,高空卡墙脚。

  1. 欧拉港口/海湾图:复杂的短距离(掩体之间的距离)小路。适合白墨(带烟雾弹增加自身能力)和熊。白墨攻击走中间,抄底路偷对面的大狙。或者A点上上下下,适合近身跳散弹。
  2. 防守走A
  3. 404基地/巨炮图:白墨可以中路强压。
  4. 防守方 熊,进攻方沙猫无敌B
  5. 88区/古风图,大图远视野,适合大狙,大机枪。还有熊
  6. 禁止白墨。
  7. 风曳镇:大狙和小画家
  8. 防守必选熊(AB滑)和信(传送)
  9. 禁止白墨。

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

上面回答部分来自ChatGPT-3.5,没有进行正确性的交叉校验。

Scons

Scons

  • SCons is a software construction tool that can be used as an alternative to traditional build systems like Make and CMake.
  • It is a Python-based build tool that provides a convenient and flexible way to define and manage the build process for software projects, including C++ programs.

Scons VS cmake

  1. 基于python语言的构建工具,对开发者来说过度自然,简单,no need to learn domain-specific language like cmake

其余cmake有的, Scons 也有。

  1. cross-paltform,
  2. SCons has built-in support for dynamic dependency analysis, meaning it can automatically detect changes in source files and rebuild only what's necessary. This can result in faster builds for large projects.

Project structure

  1. Sconstruct python file as compile entry

framework grammar

  1. add option for scons command
AddOption('--buildDir', 
   dest='buildDir', 
   type='string', 
   default="build/", 
   # default=False,
   nargs=1, 
   action='store', # meaning save the string
   # or action='store', meaning True or false
   metavar='DIR', 
   help='Base build directory'
)
baseBuildDir = GetOption('buildDir') 
  1. add sub scons config file and build result path using variant_dir
env.SConscript("src/SConscript", variant_dir=buildDir, exports= {'env' : env.Clone()})     
  1. achive debug mode

using scons debug=1 command.

env = Environment()
debug = ARGUMENTS.get("debug", 0)
if int(debug):
   print "in debug mode"

main construct grammar

  1. Define the Build Environment: In the SConstruct file, define the build environment by creating an Environment object. You can specify compiler options, flags, include paths, library paths, and other build settings within this object.
env = Environment(CXX='g++', CCFLAGS=['-O2', '-Wall'], CPPPATH=['include'], LIBPATH=['lib'])
 libEnv = env.Clone()
  1. Specify Source Files and Targets: Define the source files for your C++ program and specify the target(s) you want to build using the Program() function.
source_files = ['main.cpp', 'util.cpp', 'other.cpp']
# or select the src files 
Object('hello.cpp')
program = env.Program(target='my_program', source=source_files)

In this example, main.cpp, util.cpp, and other.cpp are the source files, and my_program is the name of the target executable.

  1. static or dynamic lib
# static
Library("t", Glob("src/*.cpp"))
# dynamic
source = Glob("src/*.cpp")
SharedLibrary("t", source)
Program(["hello.cpp"], LIBS=["t"], LIBPATH=".")
  1. execute command during compilation

  2. this is usually to print info

  3. The command is executed when any of the specified dependencies (allSrcs, ".git/index", or "SConstruct") change.
env.Command(
 target='bar.out',
 source='bar.in',
 action=["rm -f $TARGET", "$BAR_BUILD < $SOURCES > $TARGET"],
 ENV={'PATH': '/usr/local/bin/'},
)
env.Command(
   versionFile, 
   allSrcs + [".git/index" "SConstruct"],                                                 
   'printf "#define ZSIM_BUILDDATE \\"`date "+%Y-%m-%d %T"`\\"\\n#define ZSIM_BUILDVERSION \\"`python misc/getver.py`\\"" >>' + versionFile) 

Command

scons -c  # Clean
scons debug=1    # Rebuild using `SConstruct` file in debug mode

scons-project analysis

TODO: multipim how to add a singel head file during compilation process.

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

上面回答部分来自ChatGPT-3.5,没有进行正确性的交叉校验。

https://scons.org/doc/production/PDF/scons-man.pdf