282 Matching Annotations
  1. Feb 2023
    1. Boost.Graph also has a binary component that is only needed if you intend to parse GraphViz files.

      Boost.Graph还有一个二进制组件,只有在你打算解析GraphViz文件时才需要。

  2. Jan 2023
    1. link to another page with the anchor (a) element.

      描述语言么,没啥神奇的呀,就是没啥神奇的呀!

    1. Tells the agent whether the action taken is good/bad.

      可以理解为标签啦。

  3. Dec 2022
    1. since they are more predictable than the long term future reward.

      这个和我们得日常生活得策略也是一致得吧。

    2. maximize its expected cumulative reward (also called expected return)

      期待奖赏

    3. by interacting with it through trial and error and receiving rewards (negative or positive) as feedback.

      这个就很傻逼啊,没啥难得啊。

    4. a computational approach of learning from action.

      所谓的计算方法就是转化为软件方法,然后可以在计算机上运行的意思。

    1. But if our agent does a little bit of exploration, it can discover the big reward (the pile of big cheese).

      但是如果我们的智能体进行一点点探索,它就能发现巨大的回报(那堆大奶酪)。

    1. What is Reinforcement Learning?

      这个世界太混乱了,什么电影都有,说明什么都可以发生。

    2. let’s start with the big picture.

      最小全局思维。

    1. give you solid foundations

      难道今天单元一就能搞定? 劲椎病又犯了,不能低头大爷的。

    2. a Deep Reinforcement Learning library

      还要用库,难道我不能自己写吗?当然可以,但是你写一个库不也是希望别人使用吗?

    1. The function setcontext() restores the user context pointed to by ucp. A successful call does not return. The context should have been obtained by a call of getcontext(), or makecontext(3), or received as the third argument to a signal handler (see the discussion of the SA_SIGINFO flag in sigaction(2)).

      函数 setcontext() 恢复指向的用户上下文UCP。成功的调用不会返回。上下文应该有通过调用 getcontext() 或makecontext(3) 获得,或作为信号处理程序的第三个参数接收(参见sigaction(2) 中 SA_SIGINFO 标志的讨论)。

    2. within a process

      重点

    1. thread1()

      其实就是task1啦

    2. ucontext_t

      这是一个上下文结构体啦

    3. curcontext

      此时这个就是等待队列的头部啦

    4. curcontext = (curcontext + 1) % NUMCONTEXTS; /* round robin */ cur_context = &contexts[curcontext];

      这个就类似等待队列出队的逻辑啦

    5. ucontext_t contexts[NUMCONTEXTS]; /* store our context info */

      这个其实就类似等待队列啦啦啦

    6. curcontext

      int curcontext = 0; // 当前context序号/位置

    7. The scheduling algorithm; selects the next context to run, then starts it.

      就是加载thread/task嘛

    8. #define INTERVAL 100 /* timer interval in nanoseconds */

      我们需要10ms

    1. sact.sa_handler = catcher;

      没想到是结构体的一部分。

    2. struct itimerval value;

      struct itimerval timer;

    3. The value of count is 702943

      70万个时间片,也就是70万个计时周期。

    4. time is Sun Jun 15 10:14:00 1997

      牛比,1997年的例子啊。

    5. setitimer()--Set Value for Interval Timer

      alarm()是闹一次,setitimer()是循环计时器。

    6. The SIGVTALRM signal is generated for the process when this timer expires.

      就是个连续计时器嘛,10ms响一下,然后继续重头开始计时,仅此而已。

    7. setitimer()--Set Value for Interval Timer

      setitimer (ITIMER_VIRTUAL, &timer, NULL);

    8. which

      which什么意思?

    9. ovalue

      old value

    1. Use sigaction() unless you've got very compelling reasons not to do so. The signal() interface has antiquity (and hence availability) in its favour, and it is defined in the C standard. Nevertheless, it has a number of undesirable characteristics that sigaction() avoids - unless you use the flags explicitly added to sigaction() to allow it to faithfully simulate the old signal() behaviour.

      使用 sigaction() 除非你有非常令人信服的理由不这样做。

      signal() 接口很古老(因此也很实用),它在 C 标准中定义。然而,它有许多 sigaction() 避免的不良特征 - 除非您使用显式添加到 sigaction() 的标志以允许它忠实地模拟旧的 signal() 行为。

    1. your program to react for certain kind of signals.

      Use related system calls to set a timer that should send a signal (SIGVTALRM) every 10 ms

      The signal handler should do the followings:

      i. Calculate all task-related time (granularity: 10ms)

      ii. Check if any tasks' state needs to be switched

      iii. Decide whether re-scheduling is needed

    1. sorted(L, cmp=lambda x,y:cmp(x[1],y[1])) # 利用 cmp 函数

      传入的是可迭代对象,也就是编译器自动把可迭代对象传入进去,然后再取对象的对象。

    1. c_cpp_properties.json (compiler path and IntelliSense settings)

      为tasks.json launch.json提供调用程序的路径啦

    2. which becomes your "workspace". As you go through the tutorial, you will create three files in a .vscode folder in the workspace

      也就是工程目录就是一个workspace,所以不要把workspace当成多文件夹集合使用。

    1. %.o: %.c

      %.o: %.c

    2. main.o 與 main.c、a.h 相關

      生成 %.o 文件我们需要%.c文件和%.h文件。

    3. target: 目標檔1 目標檔2

      这个和人的思考过程是一致的啦啦。 这个只是表述他需要用到的对象,并不是一定是源文件,也可以包含.o文件,然后.o文件再作为一个目标由其他文件生成。 比如某个目录下的所有c文件,我们可以把每个.c文件当作一个连接模块,这样一来就是把每个c文件生成.o文件。

      一般最后的可执行文件呢,是一堆.o文件和一个main.c文件

    4. <tab>gcc -o 欲建立的執行檔 目標檔1 目標檔2

      目标档的意思源文件,执行档才是所谓的编译后的东西啦。

    5. Makefile

      可以理解为自动化语言,当然更好的是自然语言了,语言其实就是规则啦。

    1. SSH keys provide a secure way of logging into your server and are recommended for all users.

      其实就是给了服务器一把锁,然后钥匙在我们手里,所以你连接的时候要提供私钥也就是钥匙。

    2. SSH keys

      钥匙/证件/证明都是可以这么理解的。

    3. encrypted protocol used to administer and communicate with servers

      协议,本身也包含了加密算法,所以是分形的。

    4. secure shell

      你这么说我就懂了,不就是相当于远程shell么? secure shell就是SSH的缩写

    1. UiObject.scrollForward()

      也就是视觉上的效果是把页面往上移动

    1. 即刻能通过爬虫和人工筛选编辑的方式第一时间获取这些消息

      原来即刻自己也用的爬虫?没必要吧,自己用的应该是数据库,因为数据库才能做数据分析。

    1. 允许程序搜索人类永远不会做的“愚蠢”选项,就是在逃避这个绝对核心的问题。

      我觉得这句话想表达的意思抓住了问题提核心,就类似自然语言抓住了我们思想的核心一样。而创造力的核心也许正是人脑的核心,在抓住人脑核心的基础上,我们可以再次突破真正的智能,也许这就是终点,也许这是起点,不管怎样,人脑是上帝的一个漏洞。

  4. Nov 2022
    1. 阶级的科学

      阶级也是科学,生命在意识产生后,就把演化的权力部分给了人类,自然和社会都是一直半自然的状态,需要我们用科学的态度对待,人的精神自然有一种直觉的成分在里面,不言自明,比如善良可以作为大部分人有共识的一种直觉精神。

    2. ”我们的政治挂帅就是为了提高居民的觉悟程度,我们的大跃进就是实现这种计划或那种计划的尝试。

      作为一种正确的尝试,显然觉悟要和技术水平相匹配,觉悟一方面靠精神,一方面靠科技,还要靠反面的切身体会来推动,有时弯路是弯路又不是弯路,也许有一定的道理把。 比如AlphaFold也许要放在全人类的角度来理解,重要的是学习,创新也是一个质变产生量变的过程。

    1. This means that the output can be displayed to a user, for example the app is 95% sure that this is a cat. It also means that the output can be fed into other machine learning algorithms without needing to be normalized, since it is guaranteed to lie between 0 and 1.

      哪有什么道理,就是技术呀!

    2. Typically, the final fully connected layer of this network would produce values like [-7.98, 2.39] which are not normalized and cannot be interpreted as probabilities.

      不是归一化的,不能被解释为概率。

    3. mutually exclusive

      相互排斥,可以用sigmoid S(x)表示啊,S(x)=1/1+e(-x)

    4. precision and recall of a classifier

      精度和召回率

    5. This could give the impression that the neural network prediction had a high confidence when that was not the case.

      概率这些数学模式只是一种侧面,是否反应了问题,并不确定,还需要进一步约束。

    6. normalization term

      归一化

    7. softmax because it “preserves the rank order of its input values, and is a differentiable generalisation of the ‘winner-take-all’ operation of picking the maximum value”.

      因为它 "保留了其输入值的等级顺序,并且是挑选最大值的'赢家通吃'操作的可微概括"。

    8. the statistical mechanics of gases in thermal equilibrium

      热平衡中的气体统计力学

    1. 通过语言,知识和信息能够穿越时空在人类社会延续、传递和扩展,构建能够像人一样理解和生成语言的机器可能会是实现通用人工智能最重要的里程碑。

      符号主义?

    1. scrapy genspider -t crawl lagou www.lagou.com

      Created spider 'getallurls' using template 'crawl' in module: scrapy_project.spiders.getallurls

    1. yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator,调用 fab(5) 不会执行 fab 函数,而是返回一个 iterable 对象!

      也就是对象是一个特殊的结构体,包含了成员变量和成员函数。

    2. Fab 类通过 next() 不断返回数列的下一个数,内存占用始终为常数:

      其实CPU计算是不占用什么资源的,当然如果你内存足够,但是时间不够可以先保存了。

    1. 由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

      python的默认编码文件是用的ASCII码,而你的python文件中使用了中文等非英语字符。

    2. 你可能猜到了,%运算符就是用来格式化字符串的。

      所谓运算符就是函数,就是操作,就是作用,作用无穷啊。

    3. 在计算机内存中,统一使用Unicode编码

      这不是浪费吗?其实是为了同一,当然要一个标准了。

    4. UTF-8编码有一个额外的好处,就是ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。

      ASCII和utf-8是兼容的,和Unicode不兼容。

    5. 又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间:

      也就是字符串默认都是Unicode的编码,在内存里都是Unicode的编码,也就是2个字节以上。 而utf-8把原来两个字节的缩短到一个字节。

    1. 因为 Python 认为 16 位的 unicode 才是字符的唯一内码,而大家常用的字符集如 gb2312,gb18030/gbk,utf-8,以及 ascii 都是字符的二进制(字节)编码形式。把字符从 unicode 转换成二进制编码,当然是要 encode。

      二进制本身也是一种形式,本体是什么全看人的定义。

    2. 原有编码 -> 内部编码(UNICODE) -> 目的编码

      python string的原有编码是什么?

  5. Oct 2022
  6. Sep 2022
    1. IBM z 和多数传统架构是大端序;

      原来如此啊,就是传统架构都是大端序,我终于搞懂了。 而 ARM, RISC-V 和 IBM Power 具有可切换的字节顺序(双端,不过前两个系统实际上几乎总是小端序)

    1. const sampleSeries = { samples: sampleData, label: 'Audio data', color: 'red' };

      一个结构体描述一个抽样。

    2. addRow('RIFF id', getStringValue(), 'RIFF file description header');

      名字/类型 值/value:值有可能是更加细化的或者需要额外的信息 描述/详细描述

    3. const count = getNumberValue();

      也就是两个字节表示的是颜色个数,然后后面的每个字节就是一个RGB的表达

    1. mount.davfs https://dav.jianguoyun.com/dav/ /mnt/

      就是一个挂载命令,挂载外部路径到本地路径

    1. If you don’t rebuild and restart, you could be using an old image built with an old version of your script.

      其实没必要吧,docker应该定位执行环境而非代码环境,不过生产环境确实应该这么搞。但是自己测试还是自己挂载最方便。

    2. a Dockerfile: a text file containing a set of very specific instructions on how to build the container and set up its environment.

      其实你理解为就是虚拟环境罢了。

    1. 想法不仅引导我们构造证明,还会引导数学家提出新的命题,发展新的理解,解决新的问题。这一部分是我们所知甚少的,也是目前科学所无法处理的。

      我觉得这个机器数学家的核心!

    2. 每写一步有跳步或者过不去gap马上都会被计算机检查出来,要么补上这些gap完成证明,要么补不上

      fuck,我觉得这个比手写证明合理多了。

    3. 理论上可以,但是因为还是需要人来把证明内容输入给计算机,所以这就需要望月新一本人或者其他懂它证明的人学习使用辅助证明,把他的想法写成计算机可以理解的证明。

      其实就是可执行化罢了,你用笔写不是一样的吗?

    4. 并非如此,事实上我们人能处理的理论基本上计算机都可以处理,当然使用的公理不同在某些特定的细节有所差别。

      其实就是形式化,形式化本身就是数学本身。

    5. 但是人思考的方式是共通的。并且计算机语言是一种比起自然语言更准确没有模糊性的语言,这其实有利有弊:严格的语言意味着人写证明不能再偷懒了,必须要准确的指出说的是什么,有时候会有些繁琐;好处不言自明,计算机可以验证是否正确,并且学习的人也可以通过查代码看每一步是怎么进行的避免跳步而不理解。某种意义上这种形式化的语言更适合数学,也很有趣。

      我觉得这是进步,必须的,也就是把形式化交给计算机,但我觉得创造性也交给计算机是可以的。

    6. 它能做的是验证人写下来的证明,还不能像人一样智能得自己去推导新结论,也许遥远的未来可能会有有办法实现。

      所以机器数学家就是要做这件事的!

  7. Aug 2022
    1. Higher-level Dalvik virtual machines, running inside processes

      可以理解为一个

  8. Jul 2022
    1. 模拟服务器的客户端

      也就是拦截发送到服务器的数据,假装自己就是服务器。

    2. 如果您修改代码,它会重新编译一个新的应用程序,这可能会在恶意软件分析的情况下引发道德问题,因为它实际上会创建一个新的恶意样本。

      哪有这么夸张,程序本身就是一堆01,是否有道德风险全看怎么解释。

    3. ENV PATH $PATH:/opt:...

      设置环境变量PATH

    1. 以LeNet-MNIST为例,简要介绍如何在启智AI协同平台上使用MindSpore完成训练任务

      本质是学习模型的研究!

    1. AI引擎 AI引擎选择[Ascend-Powered-Engine]和所需的MindSpore版本(本示例图片为 [Mindspore-1.3.0-python3.7-aarch64],请注意使用与所选版本对应的脚本)。 启动文件 启动文件选择代码目录下的启动脚本。

      AI引擎和启动文件其实可以理解为学习模型。

    2. 资源池 规格选择[Ascend: 1 * Ascend 910 CPU:24 核 256GiB],表示单机单卡

      可以理解为大脑的物质能量基础。

    3. 训练结束后可以下载模型文件

      也就是数学模型啦,特定任务的数量模型!

    4. 大家可以直接使用本项目提供的数据集和代码文件创建自己的训练任务。

      不要指望一下子超越时间,时间本身就是结构啊!所以训练就是时间?

    1. 模型调试和模型训练

      模型是一种思维范式,说白了就是数据模型,也就是用机器学习得到的理解模型。

    1. 进入上传页面,选择云脑2 的 NPU 集群,然后将数据集直接拖入或点击上传,最后点击【上传】按钮

      什么乱七八糟的,怎么这么多选择集群的地方?一会儿云闹,一会儿NPU的?上传到不同的机房的数据集存储路径。

    2. 同时云脑2还具备训练任务的功能,我们一起来看看吧~

      什么鬼?云脑1不是也能训练吗?

    1. 进入到标注工作区,一起来体验数据标注的快乐~

      可以理解为数据清洗。

    2. 上传数据集之前需要先创建数据集

      可以理解为变量赋值,也就是先声明变量。

    3. 数据集

      食物

    4. 创建项目

      创建一个对象,一切皆对象。

    1. 节点(node):一个工作单元,在这里就是一个任务,比如编译源代码

      也就是节点可以理解为一个事件/任务,边理解为因果。

    2. 这个依赖的任务要在这个任务之前执行

      任务其实就是一个边,一个需要经历时间的边,边就是目标之间的构建行为。

  9. Jun 2022
    1. 所以通常是将所有的符号信息去除之后才被包含到最终生成的APK中的。

      确实,也就是那些动态库是被strip过的哦。

    2. 开发者可以使用实际的设备来调试应用程序,同时,也可以通过创建一个虚拟设备来模拟Android设备运行应用程序。

      这个是为了调用设备所承载的CPU接口,也就是二进制程序的运行环境。

    1. --split-projects

      这个是把一些小的工程算进来了吧,就类似vs的小工程吧。

    1. “RELRO sharing” is when this segment is moved into shared memory and shared by multiple processes.

      "RELRO共享 "是指该段被移到共享内存中并由多个进程共享。

    1. WebView packaged independently (system_webview_bundle).

      什么意思,WebView package一会分开一会不分开?

    2. /etc/systemd/user/fast-local-dev-server.service

      这个就是服务名。

    3. out/Default/bin/chrome_public_apk gdb

      什么意思?不是chrome_publick_apk不包含webview吗?怎么会有C++代码需要调试的?

    4. out/Default/bin/chrome_public_apk install

      体验非常本地化,通过python脚本可以简化远程调试的体验感。

    5. LOG macro

      LOG(INFO) << <<;

    6. out/Default/bin/chrome_public_apk launch [--args='--foo --bar'] http://example.com

      这其实就是往webview传递参数,其实大部分参数都是作用在webview层面? 这种启动方法其实就是相当于一种桌面快捷方式了。

    7. Android WebView is a system framework component.

      系统框架模块,模块是嵌套相对而言的

    8. Native code shared with WebView through a “Static Shared Library APK”: trichrome_library_apk

      什么意思?WebView还要浏览器里的库?不是WebView是独立的吗?

    9. Multiple Chrome Targets

      没看懂到底有什么区别?

    10. There are closed-source equivalents to these targets (for Googlers), which are identical but link in some extra code.

      代码一样,只不过Google闭源的多了其他功能,不然难道你还一个功能写两份不同的代码。

    11. arm and x86 may optionally be used instead of arm64 and x64 for non-WebView targets. This is also allowed for Monochrome, but only when not set as the WebView provider.

      也就是WebView用途要严格准确。

    12. run gclient sync to pull the new Android dependencies

      这是fetch android和fetch chromium的唯一区别。

    13. .gclient

      solutions = [ { "name": "src", "url": "https://chromium.googlesource.com/chromium/src.git", "managed": False, "custom_deps": {}, "custom_vars": {}, }, ] target_os = ["android"]

    1. includes Chromium code while also using the system WebView

      应该没有问题吧?因为Trichrome已经分开啦!

    2. Android exposes assets and resources via AssetManager, but rather than use the AssetManager associated with the WebView APK Context that was created above, we instead add the WebView APK to the application‘s own AssetManager. This is important to ensure that resource references all work correctly: it’s possible for WebView resources (like XML layouts) to end up referencing app resources via themes, and so the resources have to coexist.

      Android通过AssetManager暴露资产和资源,但我们没有使用与上面创建的WebView APK Context相关的AssetManager,而是将WebView APK添加到应用程序自己的AssetManager。这对确保资源引用的正确性很重要:WebView资源(如XML布局)有可能最终通过主题引用应用程序的资源,因此这些资源必须共存。

    3. The dynamic sizing code was removed as it was complex and did not handle static shared library APKs correctly - the amount of space required in practise has not varied a great deal and hardcoded values suffice.

      动态尺寸代码被删除了,因为它很复杂,而且不能正确处理静态共享库APK--实际所需的空间量变化不大,硬编码值就足够了。

    4. WebView did not normally depend on any library APKs in O, so this doesn’t usually cause an issue, but it‘s one of the reasons why it’s not possible to use Trichrome on O.

      WebView通常不依赖于O中的任何库APK,所以这通常不会造成问题,但这是在O上无法使用Trichrome的原因之一。

    5. A side effect of createPackageContext is that ActivityManager is notified that the calling process has loaded the APK in question. This is used to decide which processes should be killed if that APK is uninstalled or updated, and thus when WebView is updated, all app processes that have loaded it are killed, and will use the new version if they are restarted.

      createPackageContext的一个副作用是,ActivityManager被通知调用的进程已经加载了相关的APK。这被用来决定如果该APK被卸载或更新,哪些进程应该被杀死,因此当WebView被更新时,所有加载了它的应用程序进程都被杀死,如果它们被重新启动,将使用新的版本。

    1. but many of the downsides and complexities of Monochrome don't apply to Trichrome.

      但单色的许多缺点和复杂性并不适用于三色。

    2. do not specify a different version. It is not necessary or beneficial to use an older SDK even if you are building a WebView for an older Android version - the built WebView is fully backward compatible, and building with older SDKs is not tested or supported.

      也就是webview始终考虑了旧版本的android,开发工具当然越新越好,因为兼容旧版本本来就是开发工具的功能之一,当然应该用最新的android sdk了。

    3. prebuilt version

      也是从chromium源码编译的,但是是很早之前的。

    4. has a functional WebView for development and testing purposes.

      最新的还得自己从chromium原始编译。

    5. a prebuilt WebView APK
    6. Building WebView from the AOSP source tree (as earlier versions of Android did) is no longer supported.

      也就是AOSP里不再包含webview源码了,其实这也是合理的,因为这本来就是浏览器这个领域的蕴含的功能。

    7. This APK is preinstalled on the device and can be updated in the same ways as an ordinary application.

      有意思了,就是说webview本身就是一个单独的软件,那这样的话我还是应该单独调试这个才对,不然换个浏览器,难道还要再把浏览器调试下?

    8. run their local build of Chromium

      应该就是指的是chrome_public_apk吧,也就是这个不包含webview框架模块?

    9. replace WebView in the system image for their Android device

      比如要理解webview然后自己添加功能就属于这种情况。

    1. an interface between two binary program modules

      也就是编译后的最终加载到内存的那些玩意,按道理其实这些才是应该我们手工写的。

    1. Return a new Context object for the given application name. This Context is the same as what the named application gets when it is launched, containing the same resources and class loader. Each call to this method returns a new instance of a Context object; Context objects are not shared, however they share common state (Resources, ClassLoader, etc) so the Context instance itself is fairly lightweight.

      为给定的应用程序名称返回一个新的Context对象。这个Context与被命名的应用程序启动时得到的一样,包含相同的资源和类加载器。对这个方法的每次调用都会返回一个新的Context对象的实例;Context对象是不共享的,然而它们共享共同的状态(资源、ClassLoader等),所以Context实例本身是相当轻量级的。

    1. mutually exclusive

      相互排斥

    2. Since Android Lollipop, WebView has been an updateable system component

      自从Android 5后,WebView变成可以更新的系统模块了。

    3. the Android framework must load its native library.

      哦,也就是说webview是通过apk安装为native library的形式,大部分都是C++代码编译成的so的形式吧?

    1. N+

      也就是Android 7之后

    2. adb reboot bootloader

      重启开机进入bootloader状态,也就是进入操作系统选择代码阶段。

    3. Unless you have a hardware-specific bug, or need to use a pre-release Android version, a physical device is usually unnecessary.

      除非你有一个硬件特定的错误,或者需要使用预发布的安卓版本,否则物理设备通常是不必要的。 也就是软件没法模拟或者软件还没有特定的硬件。

    4. with a userdebug or eng Android image

      也就是调试状态或者时开发用的工程状态。

    1. 不存在 third_party\llvm-build\Release+Asserts\bin\clang-cl.exe

      其实gclient runhooks是拉取的一些非源码的东西,源码的东西都是fetch --no-hooks v8和gclient sync --nohooks干的事情。

    1. docker run --name docker-ida -p 8080:8080 -v "/:/root/host" -p "3389:3389/tcp" --hostname="$(hostname)" --env="RDP_SERVER=yes" -it nyamisty/docker-wine-ida:7.6sp1

      docker rm -f $(docker ps -aq)

    1. The page will stay swapped until a new page fault on its virtual address happens, at which point the kernel will bring it back in main memory.

      该页将保持交换状态,直到在其虚拟地址上发生新的页故障,此时内核将把它带回主内存中。

    2. We call the amount a process' memory that is resident in physical memory its RSS (Resident Set Size). Not all resident memory is equal though.

      我们把一个进程驻留在物理内存中的内存量称为RSS(Resident Set Size)。但并不是所有的常驻内存都是一样的。

    3. Pages are organized in virtually contiguous ranges called VMA (Virtual Memory Area).

      分散管理,被组织为连续访问的空间,通过地址表形成连续可用空间。软件看到的是虚拟的完整的虚拟内存空间,而操作系统复杂用有限的pages满足内存调用。 因为内存调用每次是有限的,只是地址上看起来可以访问很大的地址而已。

    1. For some reason this causes abort during unwinding complex calls.

      由于某些原因,这在解开复杂调用时导致中止。

    2. stack unwinding on exception

      异常情况下的堆栈展开

    3. Is "remote gdb in colab" accessible to everyone or just Google people? :-)

      原来很多东西就是数量造成的隔阂,没有人是神。

    4. You know, I'm in somewhere on earth without access to google.

      无法获取是正常的。

    1. xhost +

      xhost 是用来控制X server访问权限的。 通常当你从hostA登陆到hostB上运行hostB上的应用程序时, 做为应用程序来说,hostA是client,但是作为图形来说, 是在hostA上显示的,需要使用hostA的Xserver,所以hostA是 server.因此在登陆到hostB前,需要在hostA上运行xhost + 来使其它用户能够访问hostA的Xserver. xhost + 是使所有用户都能访问Xserver. xhost + ip使ip上的用户能够访问Xserver. xhost + nis:user@domain使domain上的nis用户user能够访问 xhost + inet:user@domain使domain上的inet用户能够访问。

    2. docker-compose up -d android-emulators

      --no-cache

    3. docker-compose up -d android-retools

      docker-compose up -d android-retools <br /> [+] Running 2/2 ⠿ Network androidre_default Created <br /> ⠿ Container android-retools Started

    4. docker-compose up -d android-emulators

      [+] Running 3/24 android-emulators Pulling da Already exists

    5. Running dexcalibur

      Android逆向工程工具,专注于利用Frida的动态工具自动化。它拆解dex,静态分析,生成钩子,发现反射的方法,存储拦截的数据,并从中做新的事情。它的目标是成为一个多合一的Android逆向工程平台。

    6. --rm

      显然,--rm 选项不能与 -d 同时使用(或者说同时使用没有意义),即只能自动清理 foreground 容器,不能自动清理 detached 容器。 注意,--rm 选项也会清理容器的匿名data volumes。 所以,执行 docker run 命令带 --rm 命令选项,等价于在容器退出后,执行docker rm -v。

    7. -it

      交互

    8. /bin/bash

      启动/bin/bash进程,映射到本地终端环境。

  10. May 2022
    1. Nginx container

      可以理解为Nginx Service,把服务用容器包装起来了。

    2. containerized environment

      容器化环境,所谓环境也就是多个services构成的才行啊,所以就是docker-compose管理的哦。

    3. create a container for the web service

      这就是把一个container作为一个service来用啊

    4. This containerized environment will serve a single static HTML file.

      这就是一个服务啊,也就是service可以理解为一个产品。

    5. /usr/local/bin/docker-compose

      就类似C:\Program Files\docker-compose

    6. Docker Compose

      就类似GIt

    7. service

      服务其实是目的导向,比进程更上一层,多个进程可以合并为一个服务,服务是相对的,进程->服务->程序。

    8. Docker Compose is a tool that allows you to run multi-container application environments based on definitions set in a YAML file.

      也就是说多个服务相当于一个大程序,进程/服务,其实是一种拟人化的,有点装B嫌疑的概念。

    9. break down an application environment into multiple isolated services.

      因为传统的你必须手动解决一堆依赖问题,但是隔离思想/虚拟环境思想可以使你远离这个烦恼,太棒了。 docker python虚拟环境 虚拟机 虚拟机作为服务 容器作为服务 服务抽象化。

    1. identify the container

      可以把容器当作一个进程来看待。

    2. running the docker command as a user in the docker group

      就类似家庭成语套餐一样!

    3. Containers let you run your applications in resource-isolated processes.

      容器让你在资源隔离的进程中运行你的应用程序。

    1. 善用 HTML5 的缓存机制:合理设计启用 LocalStorage、SessionStorage、IndexDB、SW 等存储,会给页面性能带来明显提升;

      就类似编程,如何利用系统的存储功能,所以又需要用到操作系统的知识,所以前端的操作系统就是浏览器的管理功能。

    2. 如果发现校验标识不匹配,说明资源已经被修改或过期,浏览器需求重新获取资源内容。

      就类似Volatile机制,就是每次都要到内存去取,就是每次都要到存放地取。

    3. 减少网络带宽消耗

      这个就类似降低通信成本,可以理解为多个进程。也就是把网页理解为一个进程。

    4. 加快页面打开速度

      网页的渲染/执行JS,也就是类似加快程序执行速度。V8类似python解释器。

    5. Web 缓存

      web这里就类似程序,这样一来,浏览器就成了一个CPU,又包含了操作系统和编译器V8,这样一个逻辑。

    1. Input event has higher fidelity than our screen can refresh.

      输入事件的保真度比我们的屏幕能刷新的要高。