Markdown浅尝 一、勾选框 注意[]前后都要有空格 - [x] 干的漂亮 - [x] 吃饭 - [x] 写代码 - [ ] 睡觉 干的漂亮 吃饭 写代码 睡觉 二、列表 #无序列列表 * -- 更新于2018/10/1 11:05:19 上下标,使用、 y=x2 H2O2 y=x2 H2O2 反斜杠的使用 使用反斜杠可以避免文本中的符号被当作markdown标识符而发生不必要的转换 例如 \! () *不是粗体* # 不是一级标题 使用缩进 不断行的空白格 或 半角的空格 或 全角的空格 或 示例: &ensp今天天气好啊 感觉倍爽啊 今天天气好啊 感觉倍爽啊 不要忘了英文的分号 参考自zhouie
使用编译源码的方式将glibc由2.3升级到2.9,升级完ls命令不好使了。用LD_PRELOAD方法解决了ls命令不好使的问题后还挺有成就感的呢! 有相同版本的Linux系统的iso镜像文件,用来获取rpm 【或者替代方法】 有相同版本的Linux系统的服务器或者虚拟机,用来下载.a文件 【或者替代方法】 准备工作 rpm安装包 将iso文件解压, ,执行pwd和ls可以看到,你所处的目录就是原系统的根目录,账号是原系统的root账号。 装失败的就等把成功的都装完了回头重试,和答卷子题不会一个玩法,都是依赖关系导致失败的。 ❝rpm最好自己重新命名,改成简短的名字(glibccomm.rpm这种),一定要去掉“-”。 亲眼看见过别人把RHEL6.6的glibc升级了没出事。真不知道会出这么严重的问题。 如果没有版本一致的光盘,接近的也可以。我实际用的光盘是RHEL4.6,和原系统差了一个小号。
宜家 IKEA 官网 来自瑞典的全球最大的家具和家居用品零售商 有意思,漂亮的东西很多 家具可以随意体验 宜家餐厅。 周一至周五的免费会员咖啡~ 各种让人觉得舒服的细节 无印良品 MUJI 官网 出售简美注意的生活用品 有意思的,漂亮的东西很多 看那些商品时,心情放松愉悦 ---- 待探索的品牌 JoyStyle 也是日本的。 木智工坊 官网 风格与无印良品相近,主要卖家具。中国的。店主很执着于设计家具。 豆瓣小站 新浪微博
欢迎来到我的代码世界~ 喜欢的小伙伴记得一键三连哦 ૮(˶ᵔ ᵕ ᵔ˶)ა 前言 : 整合学习到的知识,方便以后的复习和使用 目录 一、python的概述 二.python的基本语法 1.缩进: c语言:编译执行 python:翻译执行 二.python的基本语法 1.缩进: 2.注释: 1.单行注释 :在所需注释行前面加上英文#号 或使用crtl + /快捷键进行操作 2.多行注释:按住鼠标左键,选中所需注释的全部行,按住crtl + /快捷键。 3.文档注释(也可以理解为多行注释):是三对英文的双引号或单引号。 不换行输出 (在python中print函数会在最后上换行符) (4)更改间隔字符 4.其他函数 5.结构控制 (1)顺序结构 顺序结构是最简单的结构,从执行方式上看,此结构中的语句从第一条到最后一条完全按从上到下的顺序依次执行 (2)分支结构 (3)循环结构 6.函数化编程 实例: 7.模块化编程 今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!
常规思路 相信第一反应往往是这样写的: console.log("Doing A") setTimeout(() => { console.log("Doing B") }, 1000) 看上去也没什么 那么问题来了,我需要的不是延时做两件事,而是延时做N件事,那又怎么写呢? 解决方案 可以使用ES6提供的async,await来优雅的解决这些问题。 await调用这个函数,就可以达到延时的效果了: (async() => { console.log("Doing A") await sleep(1000) console.log ("Doing B") await sleep(1000) console.log("Doing C") })() 是不是比直接用setTimeout优雅多了呢?
如果你(像我一样)因为网络服务器处理它而优雅地重新启动是理所当然的,你可能会发现这个配方非常方便,因为使用Golang你需要自己动手。 实际上这里有两个问题需要解决。 首先是正常重启的UNIX方面,即进程可以在不关闭侦听套接字的情况下自行重启的机制。第二个问题是确保所有正在进行的请求正确完成或超时。 重新启动而不关闭套接字 fork一个继承侦听套接字的新进程。 分叉一个新的过程 使用Golang lib分支进程的方法不止一种,但对于这种特殊情况, exec.Command是可行的方法。 path如果要升级,变量应该包含新可执行文件的路径(可能与当前运行的路径相同)。 上面代码中的一个重点是netListener.File() 返回 文件描述符的 dup(2)。 net.Conn } func (w gracefulConn) Close() error { httpWg.Done() return w.Conn.Close() } 要开始使用上面优雅的
欢迎来到我的代码世界~ 喜欢的小伙伴记得一键三连哦 ૮(˶ᵔ ᵕ ᵔ˶)ა 前言:整合学习过的知识,方便以后的复习和使用 文章目录 一、数字类型和字符串 1.数字类型 2.数字类型的运算 3.字符串 % number) # 调用函数进行一次游戏 guess_number(10) 三.函数 1.函数的概述 函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段,通过函数的名称表示和调用。 函数是一种功能抽象,它可以完成特定的功能,外界不需要了解其内部的实现原理,只需要了解函数的输入输出方式即可使用,换言之,调用函数时以不同的参数作为输入,执行函数后以函数的返回值作为输出。 包裹传递 函数的解包裹传递 参数的混合传递 6.函数的返回值 结束当前函数 程序返回到函数被调用的位置继续执行 同时将函数中的数据返回给主程序 7.变量作用域 8.匿名函数 匿名函数是一类无需定义标识符的函数 今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!
一个If/Else 不可怕,可怕的是”If/Else 森林”。 广袤的和有深度是 If/Else森林的两个主要特点。 当然,兼具深度和广度就有点类似以前的C语言的混乱大赛,让人神魂颠倒了。 分支对于工程师的是为来说不是最好的,就如同并发/并行对工程师来说也是很难的东西。 真正简单的,易于被我们思维接受的模式是顺序/线性。 他已经深入很多程序员的骨髓。所以我们渐进式的来消解if else. 保持if else 里的代码精简很简单,就是把里面的逻辑都用一个函数封装起来。 这段代码示例来源于我的一个项目 spark-adhoc-kafka 前面提到的几个算是比较高阶的消解方法,其实我平时也会用一些额外的小技巧避免if else,比如提前return就是一种。
通用的参数。 ThreadLocal 维持线程封闭性的一种更规范的方法就是使用 ThreadLocal,这个类能使线程中的某个值与保存的值的对象关联起来。 set()用来设置当前线程中变量的副本 remove()用来移除当前线程中变量的副本 initialValue()是一个 protected方法,一般是用来在使用时进行重写的,如果在没有set的时候就调用 由上看出,放入 map的 key是当前的 ThreadLocal, value是需要存放的内容,所以我们设置属性的时候需要注意存放和获取的是一个 ThreadLocal。 场景 本文应用 ThreadLocal的场景:在调用API接口的时候传递了一些公共参数,这些公共参数携带了一些设备信息,服务端接口根据不同的信息组装不同的格式数据返回给客户端。
前言 虽然现在已经是ES6的时代,但是,还是有必要了解下ES5是怎么写一个类的。 本文详述JavaScript面向对象编程中的类写法,并分步骤讲述如何写出优雅的类。 ; T.show(); 二、类的构成 JavaScript的类,是用函数对象来实现。 类的实例化形式如下: var T = new Toast(); 其中的重点,就是Function的编写。 ,指向的是实例化的类。 **方式,还是私有变量的方式,都是独占的。 所以,在写一个类的时候,需要考虑该新增属性是共享的,还是独占的。以此,决定在构造器还是原型上进行声明。 三、代码规范 类的命名规范,业界有不成文的规定,就是首字母大写。 原型上的私有方法,默认以下划线开始。这种只是团队合作方面有review代码的好处,实际上还是暴露出来的方法。
它的优点是开销小,代码更优雅,以及将发送者和接收者解耦。 通常我们在使用EventBus的时候都是直接需要接收通信的Activity/Fragment中通过EventBus.getDefault().register(this)订阅事件,在需要发起通信的逻辑直接调用 (必须匹配) * 注意:只会接收到最近发送的一次粘性事件,之前的会接受不到。 sendEvent和sendStickyEvent就是具体的发送消息的方法,注意这里发送的是Event。 各位大神有好的建议就告诉我哦。
[image.png] 此时,我们可能会用到EventBus这种全局分发事件的方式来处理,但种感觉不够优雅。 当我看到Google的开源的lifecycle库中的HolderFragment的做法,感觉眼前一亮。在Activity或者Fragment中添加一个空壳的Fragment,作为一个生命周期的监听。 同样的,开源库Glide也有相似的设计。 [image.png] 这种方法挺好的。 所以我产生以下思路:通过给当前的Activity添加一个空壳的Fragment,往空壳的Fragment中传入Listener,然后由该Fragment去启动新的Activity,最终在这个空壳的Fragment ,为了避免各种异步接口带了的“回调地狱”,我们可能可以在这里将接口改成Rxjava的Observable。
作者:等你归去来 原文:https://www.cnblogs.com/yougewe/p/9881874.html 优雅停机? 这个名词我是服的,如果抛开专业不谈,多好的名词啊! 其实优雅停机,就是在要关闭服务之前,不是立马全部关停,而是做好一些善后操作,比如:关闭线程、释放连接资源等。 再比如,就是不会让调用方的请求处理了一增,一下就中断了。而处理完本次后,再停止服务。 很明显,确实是优雅了,虽然最后收到了一关闭信号,但是仍然保证了任务的处理完成。很棒吧! 那么,在实际应用中是如何体现优雅停机呢? 这会给应用杀了个措手不及,没有留给应用任何反应的机会。 所以,无论如何是优雅不起来了。 要优雅,是代码和运维的结合! shutdownNow():尝试停止所有正在执行的任务,停止等待任务的处理,并返回正在等待执行的任务的列表。当从此方法返回时,这些任务将从任务队列中耗尽(删除)。此方法不等待主动执行的任务终止。
+G 无序列表 ctrl+U 有序列表 ctrl+shift+O 水平标尺 ctrl+R 时间戳 ctrl+T 撤销 ctrl+Z 重做 ctrl+Y 插入图片时间可使用MarkdownPad2默认的图床 MarkdownPad2使用的默认图床是imgur 插入视频演示 戳这里
在这一节中我们简单讲述 ctrl+c 背后的信号以及如何在Gin中优雅的重启服务,也就是对 HTTP 服务进行热更新 项目地址:https://github.com/EDDYCJY/go-gin-example SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX 怎样算优雅 目的 不关闭现有连接(正在运行中的程序) 新的进程启动并替代旧进程 新的进程接管新的连接 连接要随时响应用户的请求,当用户仍在请求旧进程时要保持连接,新用户应请求新进程,不可以出现拒绝请求的情况 流程 、旧进程处理完所有旧连接后正常结束 实现优雅重启 endless Zero downtime restarts for golang HTTP and HTTPS servers. ,优雅的重启(热更新)是非常重要的一环。
前言 在我们日常 Web 开发中难免遇到需要把一个参数层层的传递到最内层,然后中间层根本不需要使用这个参数,或者是仅仅在特定的工具类中使用,这样我们完全没有必要在每一个方法里面都传递这样一个 通用的参数 ThreadLocal 维持线程封闭性的一种更规范的方法就是使用 ThreadLocal,这个类能使线程中的某个值与保存的值的对象关联起来。 set()用来设置当前线程中变量的副本 remove()用来移除当前线程中变量的副本 initialValue()是一个 protected方法,一般是用来在使用时进行重写的,如果在没有set的时候就调用 由上看出,放入 map的 key是当前的 ThreadLocal, value是需要存放的内容,所以我们设置属性的时候需要注意存放和获取的是一个 ThreadLocal。 场景 本文应用 ThreadLocal的场景:在调用API接口的时候传递了一些公共参数,这些公共参数携带了一些设备信息,服务端接口根据不同的信息组装不同的格式数据返回给客户端。
如果使用indexPath作为判断条件,如果你的cell顺序有变化,或者有改动,那么你可能至少需要维护以下几个地方: 你的模型数组 cell dequeue的判断条件 事件处理的判断条件 。。。。 维护的东西越多,意味着你出错的概率是越大的。 那有没有什么好的方法处理这类代码? 分析 其实我们仔细想想,无论一个多么复杂的UITableView,与之对应的其实只要一个模型数组。 也就是说每种cell与每种模型是一一配对的,常规的模型与cell绑定是如上述的思路。 上述的思路,显然不是我们想要的,维护起来太不便,而且耦合性也比较大。 缺点: 有很多重复代码,而且后期的改动需要维护的地方,做不到高内聚。 部分,List部分我会在demo中给出 关于Detail和List的概念我会在第三节中介绍,第二节是Swift版的思路,Swift可以用到泛型,代码更优雅。
最近AI行业又现出一款新的产品——Trae,全新的智能协作AI IDE,并且正在改变很多开发者的开发体验。 然后我们按照提示打开网页,就出现了我们想要的这个照片墙应用。说实话和我想象的还是比较切合的。甚至比我描述的还要好,因为我描述的是修改图片路径,这里直接给出了添加图片的输入框,显然比修改更加直观。 最终的效果就是这样: 还能够切换布局: 虽然看起来不是很优雅,但我觉得AI能做到这个程度已经很不错了,后面我也向AI反馈了这个照片有空白的问题,但是再它改完了代码后还是不起作用。 虽然提交git不行,但是像启动项目这种简单的事情还是没问题的: Trae使用后的感受 这次对Trae的体验可以说让我对AI有了更深的认识,不再是简单的AI对话,基于AI的IDE是真正的能够生成一个完整的项目 我在生成项目的过程中可以说几乎没有使用任何的prompt技巧,仅是从开发者的角度组织成的语言描述。 2)在执行指令的过程中可以与人进行交互。
大家好,大家平常写写小公式什么的都会用什么呢?对于大部分小伙伴而言,应该用的都是Word吧~但是说实话word那个公式渲染难用且不说,而且渲染效果还不是特别美观。今天讲讲如何优雅的写写小公式吧~ ? 想我大二的时候没接触过LaTeX,教运筹的老师让我们写报告(有很多数学公式),就是用这个撸的。用起来很顺手啊,基本上LaTeX支持的公式它都能支持。不过就是字写多了就非常卡。 vscode全能王 不过也有小伙伴更喜欢左边写文档右边看预览的模式,可以尝试下最近很火爆的vscode。加装了插件的vscode,用来日常写写文档和公式也是一个非常不错的选择呢。 ? 可以直接输入LaTeX的代码在Word或者ppt上生成公式,而且渲染的公式非常好看呢。 ? 程序猿声的QQ粉丝群有该插件的下载,需要的小伙伴可以下载试试。 不过支持的office版本有限吧,好像只能32位的。 再介绍一款小神器 前两天上bilibili学习的时候,偶然刷到一个叔叔做的视频。
文中涉及的代码可访问 GitHub:https://github.com/UniqueDong/algorithms.git 上次我们说了「单向链表」的代码实现,今天带大家一起玩下双向链表,双向链表的节点比单项多了一个指针引用 首先构建新节点,prev = null,带头大哥业务繁忙,不找前女友,所以 prev = null;next 则指向原先的 first。 如果链表是空的,则还要把尾节点也指向新创建的节点。 一种是在指定节点的前面插入新节点。 在后面添加前面尾巴添加已经说过,对于在指定节点的前面插入需要我们先找到指定位置节点,然后改变他们的 prev next 指向。 ,要考虑当前链表只有一个节点的情况,最后还要把被删除节点的 的 next 指针 ,item 设置 null,便于垃圾回收,防止内存泄漏。 删除指定数据 这里判断下数据是否是 null , 从头节点开始遍历链表,当找到索要删除的节点的时候调用用前面封装好的 unlink 方法实现删除。