Apr 9 2020 - What I did

**啃软考,b站大法好

What I learned

  1. 【设计模式】Mediator和Observer是相互竞争的模式。Observer通过引入Observer和Subject对象来分布通信,而Mediator对象则封装了其他对象间的通信。
  2. 【UML】
    对象图:展现了一组对象以及它们之间的关系
    序列图:描述以时间顺序阻止的对象之间的交互活动
    通信图:强调收发消息的对象的组织结构
    时序图:描述对象状态随着时间改变的情况
  3. 【有限自动机】双圈表终结
  4. 【数据库】用户需求分析阶段->需求说明文档、数据字典和数据流程图
  5. 【数据结构】线性表包含顺序存储&链式存储
  6. 【KMP模式】(看了好久博客但是没看懂,于是去b站搜视频秒懂)
    重点:找前后缀,找当前最大公共前后缀的长度
    「天勤公开课」KMP算法易懂版
  7. 【排序】
    快速排序:快速排序算法
    选择排序:【数据结构】【考研计算机】选择排序算法可视化解读
  8. 【Huffman编码】
    重点:构造Huffman tree,左0右1
    Huffman编码 Huffman Coding - Greedy Algorithm
    哈夫曼树以及哈夫曼编码的构造步骤
  9. 【协议】
    口令验证协议(PAP):两次握手
    质询握手认证协议(CHAP):三次握手
  10. 【网络技术标准与协议】
    在这里插入图片描述

What I reviewed

8说了,复习代码。

  1. this: 指向当前调用该函数的对象;是一个系统隐含的指针被自动附加在非静态的成员函数参数列表中;每个非static方法中都隐含了this指针。
  2. static: 属于类本身,不创建对象也能使用类本身的static成员(例子见TestStatic_x.java);不能引用this和super
# -- Rule engine initialization ---------------------------------------------- # Enable ModSecurity, attaching it to every transaction. Use detection # only to start with, because that minimises the chances of post-installation # disruption. # SecRuleEngine On Include /www/server/nginx/modsecurity/crs-setup.conf Include /www/server/nginx/modsecurity/rules/*.conf # 增加 PCRE 匹配限制 # -- Request body handling --------------------------------------------------- # Allow ModSecurity to access request bodies. If you don't, ModSecurity # won't be able to see any POST parameters, which opens a large security # hole for attackers to exploit. # SecRequestBodyAccess On # Enable XML request body parser. # Initiate XML Processor in case of xml content-type # SecRule REQUEST_HEADERS:Content-Type "^(?:application(?:/soap\+|/)|text/)xml" \ "id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML" # Enable JSON request body parser. # Initiate JSON Processor in case of JSON content-type; change accordingly # if your application does not use 'application/json' # SecRule REQUEST_HEADERS:Content-Type "^application/json" \ "id:'200001',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON" # Sample rule to enable JSON request body parser for more subtypes. # Uncomment or adapt this rule if you want to engage the JSON # Processor for "+json" subtypes # #SecRule REQUEST_HEADERS:Content-Type "^application/[a-z0-9.-]+[+]json" \ # "id:'200006',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON" # Maximum request body size we will accept for buffering. If you support # file uploads then the value given on the first line has to be as large # as the largest file you are willing to accept. The second value refers # to the size of data, with files excluded. You want to keep that value as # low as practical. # SecRequestBodyLimit 13107200 SecRequestBodyNoFilesLimit 131072 # What to do if the request body size is above our configured limit. # Keep in mind that this setting will automatically be set to ProcessPartial # when SecRuleEngine is set to DetectionOnly mode in order to minimize # disruptions when initially deploying ModSecurity. # SecRequestBodyLimitAction Reject # Maximum parsing depth allowed for JSON objects. You want to keep this # value as low as practical. # SecRequestBodyJsonDepthLimit 512 # Maximum number of args allowed per request. You want to keep this # value as low as practical. The value should match that in rule 200007. SecArgumentsLimit 1000 # If SecArgumentsLimit has been set, you probably want to reject any # request body that has only been partly parsed. The value used in this # rule should match what was used with SecArgumentsLimit SecRule &ARGS "@ge 1000" \ "id:'200007', phase:2,t:none,log,deny,status:400,msg:'Failed to fully parse request body due to large argument count',severity:2" # Verify that we've correctly processed the request body. # As a rule of thumb, when failing to process a request body # you should reject the request (when deployed in blocking mode) # or log a high-severity alert (when deployed in detection-only mode). # SecRule REQBODY_ERROR "!@eq 0" \ "id:'200002', phase:2,t:none,log,deny,status:400,msg:'Failed to parse request body.',logdata:'%{reqbody_error_msg}',severity:2" # By default be strict with what we accept in the multipart/form-data # request body. If the rule below proves to be too strict for your # environment consider changing it to detection-only. You are encouraged # _not_ to remove it altogether. # SecRule MULTIPART_STRICT_ERROR "!@eq 0" \ "id:'200003',phase:2,t:none,log,deny,status:400, \ msg:'Multipart request body failed strict validation: \ PE %{REQBODY_PROCESSOR_ERROR}, \ BQ %{MULTIPART_BOUNDARY_QUOTED}, \ BW %{MULTIPART_BOUNDARY_WHITESPACE}, \ DB %{MULTIPART_DATA_BEFORE}, \ DA %{MULTIPART_DATA_AFTER}, \ HF %{MULTIPART_HEADER_FOLDING}, \ LF %{MULTIPART_LF_LINE}, \ SM %{MULTIPART_MISSING_SEMICOLON}, \ IQ %{MULTIPART_INVALID_QUOTING}, \ IP %{MULTIPART_INVALID_PART}, \ IH %{MULTIPART_INVALID_HEADER_FOLDING}, \ FL %{MULTIPART_FILE_LIMIT_EXCEEDED}'" # Did we see anything that might be a boundary? # # Here is a short description about the ModSecurity Multipart parser: the # parser returns with value 0, if all "boundary-like" line matches with # the boundary string which given in MIME header. In any other cases it returns # with different value, eg. 1 or 2. # # The RFC 1341 descript the multipart content-type and its syntax must contains # only three mandatory lines (above the content): # * Content-Type: multipart/mixed; boundary=BOUNDARY_STRING # * --BOUNDARY_STRING # * --BOUNDARY_STRING-- # # First line indicates, that this is a multipart content, second shows that # here starts a part of the multipart content, third shows the end of content. # # If there are any other lines, which starts with "--", then it should be # another boundary id - or not. # # After 3.0.3, there are two kinds of types of boundary errors: strict and permissive. # # If multipart content contains the three necessary lines with correct order, but # there are one or more lines with "--", then parser returns with value 2 (non-zero). # # If some of the necessary lines (usually the start or end) misses, or the order # is wrong, then parser returns with value 1 (also a non-zero). # # You can choose, which one is what you need. The example below contains the # 'strict' mode, which means if there are any lines with start of "--", then # ModSecurity blocked the content. But the next, commented example contains # the 'permissive' mode, then you check only if the necessary lines exists in # correct order. Whit this, you can enable to upload PEM files (eg "----BEGIN.."), # or other text files, which contains eg. HTTP headers. # # The difference is only the operator - in strict mode (first) the content blocked # in case of any non-zero value. In permissive mode (second, commented) the # content blocked only if the value is explicit 1. If it 0 or 2, the content will # allowed. # # # See #1747 and #1924 for further information on the possible values for # MULTIPART_UNMATCHED_BOUNDARY. # SecRule MULTIPART_UNMATCHED_BOUNDARY "@eq 1" \ "id:'200004',phase:2,t:none,log,deny,msg:'Multipart parser detected a possible unmatched boundary.'" # PCRE Tuning # We want to avoid a potential RegEx DoS condition # SecPcreMatchLimit 1000000 SecPcreMatchLimitRecursion 1000000 # Some internal errors will set flags in TX and we will need to look for these. # All of these are prefixed with "MSC_". The following flags currently exist: # # MSC_PCRE_LIMITS_EXCEEDED: PCRE match limits were exceeded. # SecRule TX:/^MSC_/ "!@streq 0" \ "id:'200005',phase:2,t:none,deny,msg:'ModSecurity internal error flagged: %{MATCHED_VAR_NAME}'" # -- Response body handling -------------------------------------------------- # Allow ModSecurity to access response bodies. # You should have this directive enabled in order to identify errors # and data leakage issues. # # Do keep in mind that enabling this directive does increases both # memory consumption and response latency. # SecResponseBodyAccess On # Which response MIME types do you want to inspect? You should adjust the # configuration below to catch documents but avoid static files # (e.g., images and archives). # SecResponseBodyMimeType text/plain text/html text/xml # Buffer response bodies of up to 512 KB in length. SecResponseBodyLimit 524288 # What happens when we encounter a response body larger than the configured # limit? By default, we process what we have and let the rest through. # That's somewhat less secure, but does not break any legitimate pages. # SecResponseBodyLimitAction ProcessPartial # -- Filesystem configuration ------------------------------------------------ # The location where ModSecurity stores temporary files (for example, when # it needs to handle a file upload that is larger than the configured limit). # # This default setting is chosen due to all systems have /tmp available however, # this is less than ideal. It is recommended that you specify a location that's private. # SecTmpDir /tmp/ # The location where ModSecurity will keep its persistent data. This default setting # is chosen due to all systems have /tmp available however, it # too should be updated to a place that other users can't access. # SecDataDir /tmp/ # -- File uploads handling configuration ------------------------------------- # The location where ModSecurity stores intercepted uploaded files. This # location must be private to ModSecurity. You don't want other users on # the server to access the files, do you? # #SecUploadDir /opt/modsecurity/var/upload/ # By default, only keep the files that were determined to be unusual # in some way (by an external inspection script). For this to work you # will also need at least one file inspection rule. # #SecUploadKeepFiles RelevantOnly # Uploaded files are by default created with permissions that do not allow # any other user to access them. You may need to relax that if you want to # interface ModSecurity to an external program (e.g., an anti-virus). # #SecUploadFileMode 0600 # -- Debug log configuration ------------------------------------------------- # The default debug log configuration is to duplicate the error, warning # and notice messages from the error log. # #SecDebugLog /opt/modsecurity/var/log/debug.log #SecDebugLogLevel 3 # -- Audit log configuration ------------------------------------------------- # Log the transactions that are marked by a rule, as well as those that # trigger a server error (determined by a 5xx or 4xx, excluding 404, # level response status codes). # SecAuditEngine RelevantOnly SecAuditLogRelevantStatus "^(?:5|4(?!04))" # Log everything we know about a transaction. SecAuditLogParts ABIJDEFHZ # Use a single file for logging. This is much easier to look at, but # assumes that you will use the audit log only ocassionally. # SecAuditLogType Serial SecAuditLog /var/log/modsec_audit.log # Specify the path for concurrent audit logging. #SecAuditLogStorageDir /opt/modsecurity/var/audit/ # -- Miscellaneous ----------------------------------------------------------- # Use the most commonly used application/x-www-form-urlencoded parameter # separator. There's probably only one application somewhere that uses # something else so don't expect to change this value. # SecArgumentSeparator & # Settle on version 0 (zero) cookies, as that is what most applications # use. Using an incorrect cookie version may open your installation to # evasion attacks (against the rules that examine named cookies). # SecCookieFormat 0 # Specify your Unicode Code Point. # This mapping is used by the t:urlDecodeUni transformation function # to properly map encoded data to your language. Properly setting # these directives helps to reduce false positives and negatives. # SecUnicodeMapFile unicode.mapping 20127 # Improve the quality of ModSecurity by sharing information about your # current ModSecurity version and dependencies versions. # The following information will be shared: ModSecurity version, # Web Server version, APR version, PCRE version, Lua version, Libxml2 # version, Anonymous unique id for host. SecStatusEngine On 这个配置文件中,有开放别的服务器去访问吗
06-25
I am unable to try/install Ubuntu 22.04 using USB. I use the guideline provided by Ubuntu official website, the USB installer is created using balenaEtcher. I try to boot using the way provided by Lenovo official website (restart and press F12 while having USB plugged in). My laptop is Lenovo 310-14IKB Laptop (ideapad) - Type 80TU, Windows 10. I tried turning off fast startup/ changing boot mode to legacy/changing boot priority from UEFI to legacy/disabling safe booting mode, but none of them works. lenovousb-installation Share Improve this question Follow edited Oct 17, 2022 at 18:03 Pablo Bianchi's user avatar Pablo Bianchi 17.6k55 gold badges9191 silver badges129129 bronze badges asked Apr 30, 2022 at 9:08 Keus's user avatar Keus 9111 gold badge11 silver badge55 bronze badges 2 Please edit your original question to tell us more: Did you check the sha256sum of the iso file (that it was downloaded correctly)? What tool did you use to create the USB installer drive? How did you try to boot into the USB drive? - I see 'noveau' in the output list. It indicates that there is an nvidia graphics chip/card, and I suggest that you try booting with the boot option nomodeset. There is detailed help about it at this link. If that works, you can install a proprietary nvidia graphics driver later on. – sudodus CommentedApr 30, 2022 at 9:21 2 Your edits to the original question indicate that you are doing things correctly. You might check the sha256sum too (check versus the published value), but I am more convinced now, that you have a graphics problem, so please try booting with nomodeset (or simply select 'Ubuntu (safe graphics)' in the grub menu. – sudodus CommentedApr 30, 2022 at 10:03 If still no luck, we need new ideas to test, for example, have you tested with the previous but still supported LTS version Ubuntu 20.04.4? – sudodus CommentedApr 30, 2022 at 10:15 Thank you everyone!!!!!!! I made it! – Keus CommentedApr 30, 2022 at 12:06 Congratulations, and welcome back, if you have other questions in the future :-) – sudodus CommentedApr 30, 2022 at 12:26 Show 1 more comment 4 Answers Sorted by: Highest score (default) 4 Hope my little experience can help anyone using Lenovo laptop in future. I change to using Rufus to create the USB using the GPT option. I disabled the fast startup option but didn't disable the safe booting option. Then I boot the laptop using NOVO button (option 2 in Lenovo official guidelines) instead of using legacy bootmode. And lastly add in the nomodeset option Share Improve this answer Follow answered Apr 30, 2022 at 12:16 Keus's user avatar Keus 9111 gold badge11 silver badge55 bronze badges I have Dell Latitude E6530. I followed using Rufus v 3.20, GPT partition scheme, UEFI (non CSM) target system. Then, boot in UEFI mode (safe graphics) option. And finally! No black screen and I can progress the Ubuntu 22.04 installation. – Joshua T CommentedOct 5, 2022 at 13:32 Add a comment 2 dont use Try install bla bla use Safe GUI bla bla Share Improve this answer Follow answered Aug 17, 2023 at 5:46 Jonry Simbolon's user avatar Jonry Simbolon 2111 bronze badge Add a comment 2 My computer use RTX3090 and RTX2080, show the message the same. I selected Safe Graphic, it worked fine. Share Improve this answer Follow answered Jul 20, 2024 at 12:42 John's user avatar John 2122 bronze badges That was already said in the answers. You have added noting new. Sorry not an answer. – David DE CommentedJul 20, 2024 at 13:44 Add a comment 0 I was firing the USB from terminal command line and I was getting this error. When I switched to BalenaEtcher, in addition to change the USB port and sticker. it worked like a charm!详细解释一下
10-11
【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值