用 Happy 在手机上控制 Claude Code:从安装到自建服务器

<p>VibeCoding 大半年,最大的感受是:<strong>慢</strong>。一个需求跑大半天,高峰期 API 限速更是雪上加霜。你想走开干点别的,又怕 AI 卡在权限弹窗上等你审批——走也不是,守也不是。</p> <p>实践久了之后会发现: VibeCoding 需要的不是持续盯盘,而是一种<strong>间歇性、片段化的持续注意力</strong>。<br>AI 自己跑着就行,你只在关键节点出现——审批权限、纠正方向、拍板决策。<strong>你不是监控器,你是把关人。</strong></p> <p><span class="exturl" data-url="aHR0cHM6Ly9oYXBweS5lbmdpbmVlcmluZy8=">Happy Coder<i class="fa fa-external-link-alt"></i></span> 恰好解决了两个问题:</p> <ul> <li><strong>“守”</strong>——手机随时查看进度、审批、发指令,不用守在电脑前。</li> <li><strong>“等”</strong>——通勤路上掏出手机接着推需求,碎片时间变生产力。</li> </ul> <p>这篇文章分享一下我从零开始用 Happy 的全过程,覆盖日常使用、后台常驻、开机自启、以及自建服务器。</p>

2026/5/13
阅读更多

人生周报 - 202602

<h3 id="资源"><a href="#资源" class="headerlink" title="资源"></a>资源</h3><ul> <li><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2FudGhyb

2026/1/20
阅读更多

人生周报 - 202601

<ul> <li>购买了 <span class="exturl" data-url="aHR0cHM6Ly93d3cuYmlnbW9kZWwuY24vZ2xtLWNvZGluZz9pYz1ST0VFQUFXTFhP">GLM Coding Plan<i class="fa fa

2026/1/19
阅读更多

善用 MVP 思维,5 天时间零成本搭建小报童排行榜

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>你好,我是小柒。<br>Java 程序员,热衷自动化。</p> <p>前段时间花了 5 天左右,借助 Notion + CloudFlare Workers + Github Actions 零成本搭建了一个支持一键分销的<span class="exturl" data-url="aHR0cHM6Ly94aWFvYm90Lm9zZ3VpZGVyLmNvbS8=">小报童排行榜<i class="fa fa-external-link-alt"></i></span>: <span class="exturl" data-url="aHR0cHM6Ly94aWFvYm90Lm9zZ3VpZGVyLmNvbS8=">https://xiaobot.osguider.com<i class="fa fa-external-link-alt"></i></span>。在这里复盘一下过程,希望能够对你有所启发。</p> <p><strong>善用 MVP 思维,用最小的成本最快地实现最核心的功能,尽早触达用户,尽早获取反馈,不断迭代,不断升级。</strong></p> <h3 id="什么是小报童排行榜?"><a href="#什么是小报童排行榜?" class="headerlink" title="什么是小报童排行榜?"></a>什么是小报童排行榜?</h3><!-- TODO --> <p>小报童排行榜是一个罗列了(几乎)所有小报童专栏的导航网页。可以帮助你<strong>一键分销所有小报童专栏</strong>。</p> <p><img data-src="https://picgo-daily.oss-cn-guangzhou.aliyuncs.com/picgo-daily/2024/983d596c02f675ddcd74cd7261d5f2ef.png" alt="小报童排行榜-最近更新专栏"></p>

2024/7/20
阅读更多

给 eleventy(11ty) 添加 sitemap.xml 和 robots.txt

<h2 id="配置过程"><a href="#配置过程" class="headerlink" title="配置过程"></a>配置过程</h2><ol> <li>添加数据文件 <code>_data/site.json</code>,写入以下内容,定义站点信息和 sitem

2024/6/14
阅读更多

开源服务指南博客文章自动生成

<ol> <li><p><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2ZlYXR1cmVzL2FjdGlvbnM=">GitHub Actions<i class="fa fa-external-link-alt"></i></span> 可以添加运行参数。我只需要设置 filepath 和 content 两个参数,然后配合 shell 脚本就可以自动生成和提交博文到 GitHub 仓库,进而触发自动构建和发布。</p> </li> <li><p>GitHub Actions 提供了 <span class="exturl" data-url="aHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vcmVzdC9hY3Rpb25zL3dvcmtmbG93cz9hcGlWZXJzaW9uPTIwMjItMTEtMjg=">REST API<i class="fa fa-external-link-alt"></i></span> 来触发前面的工作流,这样我就可以通过 HTTP 请求来自动生成和发布博文。</p> </li> <li><p>开源服务指南数据库现在是建立在 Notion 上的,Notion 也提供了 REST API 的交互方式。所以我只需要定时扫描 Notion 数据库,获取状态刚变更为 “已发布” 的博文,提取文章内容,通过第 2 步中提到的 REST API 来触发第 1 步中提到的 GitHub Actions 即可自动生成和发布博文。这里我使用了 <span class="exturl" data-url="aHR0cHM6Ly93b3JrZXJzLmNsb3VkZmxhcmUuY29tLw==">Cloudflare Workers<i class="fa fa-external-link-alt"></i></span> 实现。</p> </li> <li><p>怎么监测 Notion 数据库文章状态变动呢?想要监测状态“变动”,我们需要知道变动前的状态和变动后的状态,进而需要有数据库缓存变动前的状态,能做,但麻烦。所幸,<span class="exturl" data-url="aHR0cHM6Ly9waXBlZHJlYW0uY29tLw==">pipedream<i class="fa fa-external-link-alt"></i></span> 帮我们做好了这个事情。它能够<span class="exturl" data-url="aHR0cHM6Ly9waXBlZHJlYW0uY29tL2FwcHMvbm90aW9uL3RyaWdnZXJzL3VwZGF0ZWQtcGFnZQ==">监测 Notion 数据库变动<i class="fa fa-external-link-alt"></i></span>,并且触发工作流执行。</p> </li> </ol>

2024/4/21
阅读更多

流程引擎技术调研

<h2 id="概念"><a href="#概念" class="headerlink" title="概念"></a>概念</h2><ul> <li>工作流</li> <li><span class="exturl" data-url="aHR0cHM6Ly93d3cuYnBtbi5vcmcv">BPMN<i class="fa fa-external-link-alt"></i></span></li> <li><span class="exturl" data-url="aHR0cHM6Ly93d3cub21nLm9yZy9kbW4v">DMN (Decision Model &amp; Notation)<i class="fa fa-external-link-alt"></i></span></li> <li><span class="exturl" data-url="aHR0cHM6Ly93d3cub21nLm9yZy9jbW1uLw==">CMMN (Case Management Model and Notation)<i class="fa fa-external-link-alt"></i></span></li> </ul> <h2 id="选型"><a href="#选型" class="headerlink" title="选型"></a>选型</h2><h3 id="后端"><a href="#后端" class="headerlink" title="后端"></a>后端</h3><h4 id="Activiti"><a href="#Activiti" class="headerlink" title="Activiti"></a>Activiti</h4><ul> <li><span class="exturl" data-url="aHR0cHM6Ly93d3cuYWN0aXZpdGkub3JnLw==">官网<i class="fa fa-external-link-alt"></i></span></li> <li><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL0FjdGl2aXRpL0FjdGl2aXRp">Github<i class="fa fa-external-link-alt"></i></span> Star 9.1k</li> <li><span class="exturl" data-url="aHR0cHM6Ly9hY3Rpdml0aS5naXRib29rLmlvL2FjdGl2aXRpLTctZGV2ZWxvcGVycy1ndWlkZS8=">Document<i class="fa fa-external-link-alt"></i></span> | <span class="exturl" data-url="aHR0cHM6Ly9hY3Rpdml0aS5naXRib29rLmlvL2FjdGl2aXRpLTctZGV2ZWxvcGVycy1ndWlkZS9nZXR0aW5nLXN0YXJ0ZWQvZ2V0dGluZy1zdGFydGVkLWFjdGl2aXRpLWNvcmU=">Activiti Core<i class="fa fa-external-link-alt"></i></span></li> </ul> <p>activiti 由 Alfresco 软件开发,目前最高版本 <code>activiti 7</code>。<br>activiti 有 5、6、7 几个主流版本。其中 5 和 6 的核心 Leader 是 Tijs Rademakers,后来由于内部分歧,Tijs Rademakers 在 2017 年离开团队,创建了 flowable。<br>现在 activiti 由 Salaboy 团队接管,5 和 6 两个版本已经暂停维护,activiti 7 仍然使用 activiti 6 的内核,并没有开发新的特性。只是在 activiti 上层封装了一些应用。</p> <h4 id="flowable"><a href="#flowable" class="headerlink" title="flowable"></a>flowable</h4><ul> <li><span class="exturl" data-url="aHR0cHM6Ly93d3cuZmxvd2FibGUuY29tL29wZW4tc291cmNl">官网<i class="fa fa-external-link-alt"></i></span></li> <li><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2Zsb3dhYmxlL2Zsb3dhYmxlLWVuZ2luZQ==">Github<i class="fa fa-external-link-alt"></i></span> Star 6k</li> <li><span class="exturl" data-url="aHR0cHM6Ly93d3cuZmxvd2FibGUuY29tL29wZW4tc291cmNlL2RvY3Mvb3NzLWludHJvZHVjdGlvbg==">Document<i class="fa fa-external-link-alt"></i></span> | <span class="exturl" data-url="aHR0cHM6Ly90a2pvaG4uZ2l0aHViLmlvL2Zsb3dhYmxlLXVzZXJndWlkZS8=">文档<i class="fa fa-external-link-alt"></i></span></li> </ul>

2024/1/2
阅读更多

MySQL 数据库数据同步方案调研

<h2 id="名词"><a href="#名词" class="headerlink" title="名词"></a>名词</h2><ul> <li>CDC(Change Data Capture): 数据变化捕获</li> <li>ETL(Extract Transform Load):数据提取、转换、载入</li> </ul> <h2 id="工具"><a href="#工具" class="headerlink" title="工具"></a>工具</h2><table> <thead> <tr> <th align="center">特色</th> <th align="center"><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2FsaWJhYmEvY2FuYWw=">Canal<i class="fa fa-external-link-alt"></i></span></th> <th align="center"><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL1llbHAvbXlzcWxfc3RyZWFtZXI=">mysql_streamer<i class="fa fa-external-link-alt"></i></span></th> <th align="center"><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL3dqNTk2L2dvLW15c3FsLXRyYW5zZmVy">go-mysql-transfer<i class="fa fa-external-link-alt"></i></span></th> <th align="center"><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL3plbmRlc2svbWF4d2VsbA==">Maxwell<i class="fa fa-external-link-alt"></i></span></th> <th align="center"><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2xpbmtlZGluL2RhdGFidXM=">Databus<i class="fa fa-external-link-alt"></i></span></th> <th align="center"><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2FsaWJhYmEvRGF0YVg=">DataX<i class="fa fa-external-link-alt"></i></span></th> </tr> </thead> <tbody><tr> <td align="center">开源方</td> <td align="center">阿里巴巴</td> <td align="center">Yelp</td> <td align="center">-</td> <td align="center">zendesk</td> <td align="center">LinkedIn</td> <td align="center">阿里巴巴</td> </tr> <tr> <td align="center">开发语言</td> <td align="center">Java</td> <td align="center">Python</td> <td align="center">Golang</td> <td align="center">Java</td> <td align="center">Java</td> <td align="center">Java</td> </tr> <tr> <td align="center">活跃</td> <td align="center">是</td> <td align="center">否</td> <td align="center">是</td> <td align="center">是</td> <td align="center">否</td> <td align="center">是</td> </tr> <tr> <td align="center">高可用</td> <td align="center">支持</td> <td align="center">支持</td> <td align="center">支持</td> <td align="center">-</td> <td align="center">支持</td> <td align="center">-</td> </tr> <tr> <td align="center">文档</td> <td align="center"><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2FsaWJhYmEvY2FuYWwvd2lraQ==">详细<i class="fa fa-external-link-alt"></i></span></td> <td align="center"><span class="exturl" data-url="aHR0cHM6Ly9lbmdpbmVlcmluZ2Jsb2cueWVscC5jb20vMjAxNi8wOC9zdHJlYW1pbmctbXlzcWwtdGFibGVzLWluLXJlYWwtdGltZS10by1rYWZrYS5odG1s">还行<i class="fa fa-external-link-alt"></i></span></td> <td align="center"><span class="exturl" data-url="aHR0cHM6Ly93d3cua2FuY2xvdWQuY24vd2o1OTYvZ28tbXlzcWwtdHJhbnNmZXIvMjA2NDQyNQ==">详细<i class="fa fa-external-link-alt"></i></span></td> <td align="center"><span class="exturl" data-url="aHR0cHM6Ly9tYXh3ZWxscy1kYWVtb24uaW8vcXVpY2tzdGFydC8=">详细<i class="fa fa-external-link-alt"></i></span></td> <td align="center"><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2xpbmtlZGluL2RhdGFidXMvd2lraQ==">详细<i class="fa fa-external-link-alt"></i></span></td> <td align="center"><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2FsaWJhYmEvRGF0YVgvYmxvYi9tYXN0ZXIvaW50cm9kdWN0aW9uLm1k">还行<i class="fa fa-external-link-alt"></i></span></td> </tr> <tr> <td align="center">数据源</td> <td align="center">Mysql</td> <td align="center">Mysql</td> <td align="center">Mysql</td> <td align="center">Mysql</td> <td align="center">Mysql <br> Oracle</td> <td align="center">MySQL <br> Oracle <br> OceanBase <br> SQLServer <br> PostgreSQL <br> DRDS <br> ALL_RDBMS <br> ODPS <br> OSS <br> OTS <br> Hbase0.94 <br> Hbase1.1 <br> Phoenix4.x <br> Phoenix5.x <br> MongoDB <br> Hive <br> Cassandra <br> TxtFile <br> FTP <br> HDFS <br> TSDB <br> TDengine <br> OpenTSDB</td> </tr> <tr> <td align="center">接收端</td> <td align="center">编码定制</td> <td align="center">Kafka等(MQ)</td> <td align="center">Redis <br> MongoDB <br> Elasticsearch <br> RabbitMQ <br> Kafka <br> RocketMQ <br> HTTP API <br> 后续支持更多</td> <td align="center">stdout <br> Kafka <br> Kinesis <br> Nats <br> Google Cloud Pub&#x2F;Sub <br> Google Cloud Bigquery <br> RabbitMQ <br> Redis <br> SNS</td> <td align="center">编码定制?</td> <td align="center">MySQL <br> Oracle <br> OceanBase <br> SQLServer <br> PostgreSQL <br> DRDS <br> ALL_RDBMS <br> ODPS <br> OSS <br> OTS <br> Hbase0.94 <br> Hbase1.1 <br> Phoenix4.x <br> Phoenix5.x <br> MongoDB <br> Hive <br> Cassandra <br> TxtFile <br> FTP <br> HDFS <br> TSDB <br> TDengine <br> ADS <br> OCS <br> Elasticsearch</td> </tr> <tr> <td align="center">全量数据初始化</td> <td align="center">不支持</td> <td align="center">支持</td> <td align="center">支持</td> <td align="center">支持(maxwell-bootstrap)</td> <td align="center">-</td> <td align="center">支持</td> </tr> <tr> <td align="center">数据格式</td> <td align="center">编码定制</td> <td align="center">Json(固定格式)</td> <td align="center">Json(规则配置) <br> 模板语法 <br> Lua脚本</td> <td align="center">Json (固定)</td> <td align="center">编码定制?</td> <td align="center">-</td> </tr> <tr> <td align="center">备注</td> <td align="center">需要写代码定制接受端</td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center">可扩展性更强,但是上手难度更高</td> <td align="center">数据同步非实时 <br> 实际使用配合 <span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL1dlaVllLUppbmcvZGF0YXgtd2Vi">datax-web<i class="fa fa-external-link-alt"></i></span> 体验更佳</td> </tr> </tbody></table>

2024/1/2
阅读更多

IC卡、ID卡、CPU卡、RFID 和 NFC 的区别与联系

<h2 id="RFID-卡"><a href="#RFID-卡" class="headerlink" title="RFID 卡"></a>RFID 卡</h2><p>是指<strong>非接触式</strong>类电子卡片&#x2F;标签,包括有ID卡、IC卡和NFC卡以及其它等电子卡&#x2F;标签。他们主要的区别在于工作频段。</p> <h3 id="NFC"><a href="#NFC" class="headerlink" title="NFC"></a>NFC</h3><p>NFC,全称是Near Field Communication,“近距离无线通信”,NFC本质信息双向交换。</p> <p>NFC和RFID都是基于位置相近的两个物体之间的信号传输,NFC技术增加了点对点(P2P)通信功能,NFC设备彼此寻找对方并建立通信连接。P2P通信的双方设备是对等的,而RFID通信的双方设备是主从关系。</p> <p>NFC 的工作频率是 13.56Mhz,所以只能读取和模拟 13.56Mhz 的 IC 卡。</p>

2024/1/2
阅读更多

2023 年终总结

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>每一年都会发生很多很多的事情,能引发我去觉悟的,却寥寥无几。</p> <p>2023,我称之为自己的<strong>开悟元年</strong>。</p> <p>一些故事和感悟,与你共享。</p> <h2 id="见自己、见天地、见众生"><a href="#见自己、见天地、见众生" class="headerlink" title="见自己、见天地、见众生"></a>见自己、见天地、见众生</h2><p>认识了一位新朋友,毫无保留地跟我分享她的世界。音乐、美食、玩乐、世界观,等等等等。给我异常封闭的世界打开了一扇窗。</p> <p>还有一位老朋友,劳心劳力带我四处游玩,没有一丁点怨言。见到了许多从未见过的风水,体验了许多从未体验过的人情。</p> <p>读万卷书不如行万里路,行万里路不如阅人无数。</p> <p>可能多亏了这些朋友们,才能让我愿意打开自己的心门,尝试着去接触这个世界。</p> <p>当然,按照我现在的境况,距离“见自己、见天地、见众生”还相差甚远。但我相信自己终能解开枷锁,释放真我。</p>

2023/12/31
阅读更多

URL 网页截图技术选型

<table> <thead> <tr> <th align="center">平台</th> <th align="center">收费策略</th> <th align="center">API</th> <th align="center">自定义宽高</th> <th a

2023/12/10
阅读更多

月刊-202310

<h2 id="开发技巧"><a href="#开发技巧" class="headerlink" title="开发技巧"></a>开发技巧</h2><ul> <li><span class="exturl" data-url="aHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIvYXJ0aWNsZS8xNTYzNzE3">如何在chrome中实时修改JS<i class="fa fa-external-link-alt"></i></span> 给目标网站持久化注入 JS 脚本</li> <li><span class="exturl" data-url="aHR0cHM6Ly93d3cuc2pramMuY29tL215c3FsLXJlZi8=">MySQL 参考资料<i class="fa fa-external-link-alt"></i></span> 一份还不错的 MySQL 参考资料</li> <li><span class="exturl" data-url="aHR0cHM6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnQtZmxvdw==">UI Events<i class="fa fa-external-link-alt"></i></span> JS 中的事件调度和 DOM 事件流程</li> <li><span class="exturl" data-url="aHR0cHM6Ly93d3cucXVpcmtzbW9kZS5vcmcvanMvZXZlbnRzX29yZGVyLmh0bWwjbGluazQ=">JavaScript 事件顺序<i class="fa fa-external-link-alt"></i></span> JS 中的事件调度顺序</li> <li><span class="exturl" data-url="aHR0cHM6Ly96aC5qYXZhc2NyaXB0LmluZm8vc2VsZWN0aW9uLXJhbmdlI3h1YW4temUtZmFuZy1mYQ==">选择(Selection)和范围(Range)<i class="fa fa-external-link-alt"></i></span> 选择(Selection)和范围(Range)</li> <li><span class="exturl" data-url="aHR0cHM6Ly93d3cuYXJyeWJsb2cuY29tL2ludGVydmlldy9qcy8lRTklOTglQjIlRTYlOEElOTYlRTQlQjglOEUlRTglOEElODIlRTYlQjUlODEuaHRtbA==">防抖与节流<i class="fa fa-external-link-alt"></i></span> 防抖与节流</li> <li><span class="exturl" data-url="aHR0cHM6Ly9vZ3AubWUv">The Open Graph protocol<i class="fa fa-external-link-alt"></i></span> Open Graph 协议,使任何网页都能成为社交图谱中的富文本对象。</li> </ul>

2023/11/13
阅读更多

待办清单:化被动主动

<p>我有一个天赋,脑海时常能蹦出来许许多多的奇思妙想,如漫天星海,美妙无穷。<br>我有一个烦恼,思维总是会迷失在纵横交错的巨大迷宫,似瀚海孤舟,无所适从。</p> <hr> <p>我把事情装在脑子里,经常需要冥思苦想:</p> <ul> <li>接下来要做哪件事?</li>

2023/11/12
阅读更多

<p>“终有一天,我要抛却一切枷锁。踏上旅程,环游世界。”</p> <p>“健康永远是第一要务,是时候好好规划一下了。”</p> <p>“等我调研完所有的时间管理理念并且总结出一套适合自己的方法论再去执行。”</p> <p>“我想开个自媒体帐号分享心得,倒逼自己成长。但是…..等

2023/11/11
阅读更多

记一次 Notion 油猴脚本的编写经历

<h2 id="起因"><a href="#起因" class="headerlink" title="起因"></a>起因</h2><p>最近借助 Notion 作为数据库搭建了《开源服务指南》的工作流,Notion 是真的好用,无奈复制出来的 Markdown 文本中图片部分格式不对(不知道是不是我使用方法有问题),需要手动修正。一回生二回熟三回咱可不就烦了嘛,所以想着写个油猴插件解决 <strong>把 Notion Page 内容复制为标准 Markdown 文本</strong> 这个问题。</p> <h2 id="折腾"><a href="#折腾" class="headerlink" title="折腾"></a>折腾</h2><h3 id="获取页面-HTML,然后-HTML-转-Markdown"><a href="#获取页面-HTML,然后-HTML-转-Markdown" class="headerlink" title="获取页面 HTML,然后 HTML 转 Markdown"></a>获取页面 HTML,然后 HTML 转 Markdown</h3><p>先查了一下资料,在 <span class="exturl" data-url="aHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy96aC1DTg==">GreasyFork<i class="fa fa-external-link-alt"></i></span> 搜索 <code>notion</code> 和 <code>markdown</code> 关键字,找到了这么个脚本:<span class="exturl" data-url="aHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy96aC1DTi9zY3JpcHRzLzM3MDI5OS0lRTUlQTQlOEQlRTUlODglQjYlRTQlQjglQkFtYXJrZG93biVFNiVBMCVCQyVFNSVCQyU4Rg==">复制为Markdown格式<i class="fa fa-external-link-alt"></i></span></p> <p>使用类似的思路,先获取目标 DOM 的 HTML 代码,然后 HTML 转 Markdown。但是理想很丰满,显示很骨感。<br>实际上 Notion Page 内容并不是标准的语义化的 HTML 标签,而是使用了大量的 div 和自定义样式。所以转换效果并不理想,会有很多样式丢失。<br>比如无序列表变成了普通文本,代码块也会变成普通文本等。这个问题也不是不能修复,只是要把对应的 HTML DOM 替换成标准格式,略微繁琐,遂放弃。</p>

2023/10/9
阅读更多

<p>以前的我<br>可能是一把利刃</p> <p>指哪儿打哪儿<br>削金如麻</p> <p>人都说刀客 天下无敌<br>谁能见刀身 斑痕累累</p> <p>现在这把刀有了刀灵<br>开始思索过去和未来<br>开始连接缘因和结果<br>开始想跳脱大道束缚<br>做自己的执刀人<

2023/4/13
阅读更多

裹挟

<p>江河湖泊,<br>每一滴水都在往前走,<br>但它们决定不了自己的流向。</p> <p>或许,<br>我们不应该一直低头猛冲。</p> <p>偶尔抬头看看天,<br>看能否厚积薄发,升华自我,<br>变成一片云。</p> <p>只是,<br>被风裹挟着的云,<br>和被河裹

2023/3/29
阅读更多

蒲公英

<p>我最近突然对自己有了相对来说更加清醒的认知。</p> <p>在互联网的世界里 我把自己比作蒲公英。</p> <p>乘风而行,能比更多人更早地见到更多更新鲜的事物。<br>同时也是随风漂泊,居无定所。风过之后,尽是虚无。</p> <p>能乘风但不能御风,观万物但未能留痕。<b

2023/3/28
阅读更多

月刊-202208

<h2 id="拓认知"><a href="#拓认知" class="headerlink" title="拓认知"></a>拓认知</h2><ul> <li><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY

2023/2/26
阅读更多

免费申请 JetBrains 全家桶开源授权

<h2 id="JetBrains-开源授权"><a href="#JetBrains-开源授权" class="headerlink" title="JetBrains 开源授权"></a>JetBrains 开源授权</h2><p><span class="exturl" data-url="aHR0cHM6Ly93d3cuamV0YnJhaW5zLmNvbS8=">JetBrains<i class="fa fa-external-link-alt"></i></span> 针对部分群体推出了一系列<span class="exturl" data-url="aHR0cHM6Ly93d3cuamV0YnJhaW5zLmNvbS5jbi9zdG9yZS8jZGlzY291bnRz">特惠计划<i class="fa fa-external-link-alt"></i></span>,其中包括 <span class="exturl" data-url="aHR0cHM6Ly93d3cuamV0YnJhaW5zLmNvbS5jbi9jb21tdW5pdHkvb3BlbnNvdXJjZS8jc3VwcG9ydA==">开源开发许可证<i class="fa fa-external-link-alt"></i></span>。通过<span class="exturl" data-url="aHR0cHM6Ly93d3cuamV0YnJhaW5zLmNvbS5jbi9jb21tdW5pdHkvb3BlbnNvdXJjZS8jc3VwcG9ydA==">开源开发许可证<i class="fa fa-external-link-alt"></i></span>,我们可以<strong>免费</strong>使用 JetBrains 旗下<strong>几乎所有</strong>开发工具。<br>本文讲述了如何申请 <span class="exturl" data-url="aHR0cHM6Ly93d3cuamV0YnJhaW5zLmNvbS8=">JetBrains<i class="fa fa-external-link-alt"></i></span> 的 <span class="exturl" data-url="aHR0cHM6Ly93d3cuamV0YnJhaW5zLmNvbS5jbi9jb21tdW5pdHkvb3BlbnNvdXJjZS8jc3VwcG9ydA==">开源开发许可证<i class="fa fa-external-link-alt"></i></span>。</p> <h2 id="申请条件"><a href="#申请条件" class="headerlink" title="申请条件"></a>申请条件</h2><p><img data-src="https://picgo-daily.oss-cn-guangzhou.aliyuncs.com/picgo-daily/2023/b95ab25358c3dc63d7bf62010c2c154e.png" alt="jetbrains-open-source-license-condition"></p>

2022/8/7
阅读更多

使用 dockerfile-maven-plugin 构建 docker 镜像

<h2 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h2><p>本文介绍了 <span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL3Nwb3RpZnkvZG9ja2VyZmlsZS1tYXZlbg==">com.spotify:dockerfile-maven-plugin<i class="fa fa-external-link-alt"></i></span> 的简单使用示例。<br>最终达成的目标是<strong>把 docker 镜像构建</strong>集成在 maven 打包过程中,可以使用 maven 命令构建 docker 镜像。</p> <p>功能相似的插件有三个:</p> <ul> <li><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL3Nwb3RpZnkvZG9ja2VyZmlsZS1tYXZlbg==">com.spotify:dockerfile-maven-plugin<i class="fa fa-external-link-alt"></i></span><br>本文使用的插件,已经停止更新,但功能依旧稳定。</li> <li><del><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL3Nwb3RpZnkvZG9ja2VyLW1hdmVuLXBsdWdpbg==">com.spotify:docker-maven-plugin<i class="fa fa-external-link-alt"></i></span></del><br>本文所用插件的同胞兄弟,官方不推荐使用,已停止更新。</li> <li><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2ZhYnJpYzhpby9kb2NrZXItbWF2ZW4tcGx1Z2lu">io.fabric8io:docker-maven-plugin<i class="fa fa-external-link-alt"></i></span><br>支持在 pom.xml 中配置 Dockerfile 的各项内容,也支持自定义 Dockerfile,支持<strong>操作容器</strong>,功能强大,仍在更新。</li> </ul> <h2 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h2><p>以 spring-boot-web 项目为例:</p> <ol> <li>创建一个 spring-boot-web 项目并确保项目正常;</li> <li>依据项目需要在合适的位置定制一个 Dockerfile,这里把 Dockerfile 放在了 <code>src/main/docker</code> 目录下:</li> </ol> <figure class="highlight dockerfile"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">FROM</span> openjdk:<span class="number">8</span>-jdk-alpine</span><br><span class="line"><span class="comment"># 设置时区</span></span><br><span class="line"><span class="keyword">ENV</span> TZ Asia/Shanghai</span><br><span class="line"><span class="keyword">RUN</span><span class="language-bash"> apk --no-cache add tzdata &amp;&amp; <span class="built_in">cp</span> /usr/share/zoneinfo/<span class="variable">$&#123;TZ&#125;</span> /etc/localtime \</span></span><br><span class="line"><span class="language-bash"> &amp;&amp; <span class="built_in">echo</span> <span class="variable">$&#123;TZ&#125;</span> &gt; /etc/timezone \</span></span><br><span class="line"><span class="language-bash"> &amp;&amp; apk del tzdata</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">VOLUME</span><span class="language-bash"> /tmp</span></span><br><span class="line"><span class="comment"># 定义变量</span></span><br><span class="line"><span class="keyword">ARG</span> JAR_FILE</span><br><span class="line"><span class="keyword">ADD</span><span class="language-bash"> target/<span class="variable">$&#123;JAR_FILE&#125;</span> app.jar</span></span><br><span class="line"><span class="keyword">ENTRYPOINT</span><span class="language-bash"> [<span class="string">&quot;java&quot;</span>,<span class="string">&quot;-Djava.security.egd=file:/dev/./urandom&quot;</span>,<span class="string">&quot;-jar&quot;</span>,<span class="string">&quot;/app.jar&quot;</span>]</span></span><br><span class="line"><span class="comment"># 声明服务以 tcp 协议运行在 8080 端口</span></span><br><span class="line"><span class="keyword">EXPOSE</span> <span class="number">8080</span>/tcp</span><br></pre></td></tr></table></figure>

2022/7/16
阅读更多

学习笔记-专利写作第一课

<p><img data-src="https://picgo-daily.oss-cn-guangzhou.aliyuncs.com/picgo-daily/2023/661057c207a63491996fe4b37e2a221b.jpg" alt="why-how-what"></p>

2022/7/3
阅读更多

Linux + picgo 图床自动化实践

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>因为 PicGo 在 Linux 下的 GUI 体验并不是很好,索性自己通过 Shell 脚本和快捷键的方式实现了较好的用户体验,记录下操作流程,希望能帮到各位。</p> <h2 id="环境"><a href="#环境" class="headerlink" title="环境"></a>环境</h2><p>笔者测试的相关软件环境如下:</p> <ul> <li><span class="exturl" data-url="aHR0cHM6Ly9tYW5qYXJvLm9yZy8=">Manjaro Linux<i class="fa fa-external-link-alt"></i></span>: 5.15.46-1-MANJARO (64位)</li> <li><span class="exturl" data-url="aHR0cHM6Ly9ub2RlanMub3JnL3poLWNuLw==">Node.js<i class="fa fa-external-link-alt"></i></span>: v18.3.0</li> <li><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL1BpY0dvL1BpY0dvLUNvcmU=">picgo<i class="fa fa-external-link-alt"></i></span>: 1.5.0-alpha.0</li> <li>[可选] <span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL3l1a2kteGluL3BpY2dvLXBsdWdpbi13ZWItdXBsb2FkZXI=">picgo-plugin-web-uploader<i class="fa fa-external-link-alt"></i></span>: 1.1.1</li> <li><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL1BpY0dvL3BpY2dvLXBsdWdpbi1hdXRvY29weQ==">picgo-plugin-autocopy<i class="fa fa-external-link-alt"></i></span>: 1.0.5</li> <li>xclip: 0.13</li> <li>notify-send: 0.7.12</li> <li>[可选] espeak: eSpeak text-to-speech: 1.48.03 04.Mar.14</li> </ul>

2022/6/15
阅读更多

使用 git 备份和恢复 dotfiles

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>Unix 用户的配置文件一般存储在以 <code>.</code> 开头的文件中,这些文件被统称为 “dotfiles”。</p> <p>本文讲述了一种极其优雅的通过 git 备份和恢复 dotfiles 的方法。</p> <h2 id="备份"><a href="#备份" class="headerlink" title="备份"></a>备份</h2><ol> <li><p>初始化 git 仓库</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_"># </span><span class="language-bash">初始化 git 仓库</span></span><br><span class="line">git init --bare $HOME/.dotfiles</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">指定 git 仓库和工作树路径并创建指令别名,简化操作</span></span><br><span class="line">cp -a .bashrc&#123;,.bak&#125; &amp;&amp; echo &quot;alias dotfiles=&#x27;git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME&#x27;&quot; &gt;&gt; .bashrc &amp;&amp; source .bashrc</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">git status 不显示未跟踪的文件</span></span><br><span class="line">dotfiles config status.showUntrackedFiles no</span><br></pre></td></tr></table></figure> </li> <li><p>创建远程仓库,比如 <code>git@github.com/seven/dotfiles</code></p> </li> <li><p>添加文件</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">dotfiles add .zshrc</span><br><span class="line">dotfiles commit -m &quot;add .zshrc&quot;</span><br><span class="line">dotfiles remote add origin $&#123;git_repo&#125;</span><br><span class="line">dotfiles push</span><br></pre></td></tr></table></figure></li> </ol>

2022/3/12
阅读更多

学习笔记-持续交付 36 讲

<h1 id="持续交付-36-讲"><a href="#持续交付-36-讲" class="headerlink" title="持续交付 36 讲"></a><span class="exturl" data-url="aHR0cDovL2drLmxpbmsvYS8xMTBaRA==">持续交付 36 讲<i class="fa fa-external-link-alt"></i></span></h1><p>持续交付是提升软件交付速率的一套工程方法和一系列最佳实践的集合。它的关注点可以概括为:持续集成构建、测试自动化和部署流水线。<br>持续交付最核心的几个部分包括:配置管理、环境管理、构建集成、发布及监控、测试管理。</p> <h2 id="基本概念"><a href="#基本概念" class="headerlink" title="基本概念"></a>基本概念</h2><h3 id="持续集成、持续交付和持续部署的关系"><a href="#持续集成、持续交付和持续部署的关系" class="headerlink" title="持续集成、持续交付和持续部署的关系"></a>持续集成、持续交付和持续部署的关系</h3><ul> <li><p>持续集成</p> <p>从编码到构建再到测试的反复持续过程。“持续集成”一旦完成,代表产品处在一个可交付但并不是最优的状态。</p> </li> <li><p>持续交付</p> <p>在“持续集成”之后,获取外部对软件的反馈,再通过“持续集成”进行优化的过程叫作“持续交付”。“持续交付”是“持续集成”的自然延续。</p> </li> <li><p>持续部署</p> <p>将可交付的产品,快速且安全地交付用户使用的一套方法和系统。它是“持续交付”的最后一公里。</p> </li> </ul> <p>“持续交付”是一个承上启下的过程,它使“持续集成”形成闭环,有了实际业务价值;又为将来达到“持续部署”的高级目标做好了铺垫。</p> <p>持续交付的价值不仅仅局限于简单的提高产品交付的效率,它还通过统一标准、规范流程、工具化、自动化等等方式,影响着整个研发生命周期。</p>

2022/1/2
阅读更多

IntelliJ IDEA 最佳实践 - 精选插件

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>IntelliJ IDEA 提供了强大的插件系统,并且有着完善的插件生态。</p> <p>成千上万追求极致的开发者们为 IDEA 开发了不计其数的插件,可以极大程度地帮助开发者提升开发速度、代码质量、以及开发的舒适度等等。</p> <p>本文收集了最受开发者喜欢的一些插件,罗列至此,希望能够对你有所帮助。</p> <p><em>插件的安装和卸载章节被我放在了文章较后的位置,如果你需要查看这些内容,翻看文章后面的 <strong><a href="#%E5%AE%89%E8%A3%85">安装</a></strong> 和 <strong><a href="#%E5%8D%B8%E8%BD%BD">卸载</a></strong> 章节即可。</em></p> <h2 id="精选插件"><a href="#精选插件" class="headerlink" title="精选插件"></a>精选插件</h2><h3 id="Rainbow-Brackets"><a href="#Rainbow-Brackets" class="headerlink" title="Rainbow Brackets"></a><span class="exturl" data-url="aHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzEwMDgwLXJhaW5ib3ctYnJhY2tldHM=">Rainbow Brackets<i class="fa fa-external-link-alt"></i></span></h3><p>这款插件名为彩虹括号,可以帮助我们更好地匹配括号和定位代码块。<br>主要功能包括:</p> <ul> <li>使用不同颜色渲染多层嵌套的括号;</li> <li>通过高亮显示帮助我们更好地定位代码块(ctrl + 鼠标右键单击 触发);</li> </ul> <p><img data-src="https://picgo-daily.oss-cn-guangzhou.aliyuncs.com/picgo-daily/2023/9bc9ff99f0fa2a2daf641f21d47988e7.png" alt="idea-plugin-rainbow-brackets-highlines"></p>

2021/8/2
阅读更多

Intellij IDEA 最佳实践-注释模板

<p>IDEA 的设置项中提供了 Live Templates 和 File and Code Templates 的设置。其中:</p> <ul> <li>Live Templates 用于配置方法注释模板和代码模板,这类模板需要在写代码的过程中通过关键字手动触发;</li> <li>File and Code Templates 用于配置文件模板,新建文件时 IDEA 会自动填入我们配置的模板内容。常用于配置类注释、接口注释等。</li> </ul>

2021/8/1
阅读更多

使用 Intellij IDEA 创建 maven 多模块项目

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>之前接触过的项目大都是单体应用,各应用之间有功能重合但无代码共用。同样的功能,要么重复开发,要么代码拷贝,开发繁琐且效率低下。一但在多个应用中均有使用的相同的代码出现了 bug,开发人员更是要在多个应用中逐个修复,劳神伤身。</p> <p>故引入模块化开发概念,把相对独立的功能抽离成组件开发,完成之后再组合到一起服务业务。一来开发有了积淀,新项目不必从零开发;二来 bug 的修复也会简单很多,只需修复一次,升级版本即可。提高了工作效率,才会有更多的时间去做技术研究和价值创造。</p> <p>简单查询了使用 Intellij IDEA 进行 maven 多模块项目的创建过程,只是模块化开发中很小的一部分,记录于此,用以备忘。</p>

2021/7/3
阅读更多

通过代理连接 ssh 服务器

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>碍于各种复杂的网络环境,有些情况下我们并不能直接访问 SSH 服务器。</p> <p>这时,网络代理和 SSH 隧道就成了救命稻草。</p> <p>本文记录了通过网络代理和 SSH 隧道连接远程服务器的几种方法,希望对你有所帮助。</p> <h2 id="稻草堆"><a href="#稻草堆" class="headerlink" title="稻草堆"></a>稻草堆</h2><h3 id="使用-SSH-隧道连接服务器"><a href="#使用-SSH-隧道连接服务器" class="headerlink" title="使用 SSH 隧道连接服务器"></a>使用 SSH 隧道连接服务器</h3><p>常用于跳板机场景。</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh $&#123;ssh-user&#125;@$&#123;ssh-host&#125; -o ProxyCommand=&quot;ssh $&#123;jump-host-user&#125;@$&#123;jump-host&#125; -p $&#123;jump-host-port&#125; -W %h:%p&quot;</span><br></pre></td></tr></table></figure> <h3 id="SSH-ncat-使用-HTTP-s-代理连接服务器"><a href="#SSH-ncat-使用-HTTP-s-代理连接服务器" class="headerlink" title="SSH + ncat 使用 HTTP(s) 代理连接服务器"></a>SSH + ncat 使用 HTTP(s) 代理连接服务器</h3><ol> <li><p>安装 ncat</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt install ncat</span><br></pre></td></tr></table></figure> </li> <li><p>通过代理连接远程服务器</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh $&#123;ssh-user&#125;@$&#123;ssh-host&#125; -o ProxyCommand=&quot;ncat --proxy $&#123;proxy-ip&#125;:$&#123;proxy-port&#125; --proxy-type http --proxy-auth $&#123;proxy-account&#125;:$&#123;proxy-password&#125; %h %p&quot;</span><br></pre></td></tr></table></figure></li> </ol> <h3 id="SSH-ncat-使用-Socks-代理连接服务器"><a href="#SSH-ncat-使用-Socks-代理连接服务器" class="headerlink" title="SSH + ncat 使用 Socks 代理连接服务器"></a>SSH + ncat 使用 Socks 代理连接服务器</h3><ol> <li><p>安装 ncat</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt install ncat</span><br></pre></td></tr></table></figure> </li> <li><p>通过代理连接远程服务器</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh $&#123;ssh-user&#125;@$&#123;ssh-host&#125; -o ProxyCommand=&quot;ncat --proxy $&#123;proxy-ip&#125;:$&#123;proxy-port&#125; --proxy-type socks5 --proxy-auth $&#123;proxy-account&#125;:$&#123;proxy-password&#125; %h %p&quot;</span><br></pre></td></tr></table></figure></li> </ol>

2021/6/7
阅读更多

Java 清空控制台输出

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>本文通过两种方法讲述了 Java 如何清空控制台输出,达到类似 Linux 中 <code>top</code> 命令的效果。</p> <p>两种方法均在 Linux 环境中测试通过,Windows 环境请自行测试,理论可行。</p> <p>下列代码需要在控制台执行才会有清除控制台效果,在 IDE 中执行无效。</p> <h2 id="使用-ASCI-控制码清空控制台"><a href="#使用-ASCI-控制码清空控制台" class="headerlink" title="使用 ASCI 控制码清空控制台"></a>使用 ASCI 控制码清空控制台</h2><p>通过<strong>输出 ASCI 控制码</strong>清空控制台,代码如下:</p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * ConsoleClear</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@author</span> seven</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@date</span> 2021-04-14 21:49</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"><span class="keyword">public</span> <span class="keyword">class</span> <span class="title class_">ConsoleClear</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="title function_">main</span><span class="params">(String[] args)</span> &#123;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">0</span>; i &lt; <span class="number">100</span>; i++) &#123;</span><br><span class="line"> System.out.println(i);</span><br><span class="line"> &#125;</span><br><span class="line"> <span class="comment">// 清空控制台并把光标停留在起始位置</span></span><br><span class="line"> System.out.print(<span class="string">&quot;\033[H\033[2J&quot;</span>);</span><br><span class="line"> <span class="comment">// 效果同上</span></span><br><span class="line"> <span class="comment">// System.out.print(&quot;\033[0;0H\033[2J&quot;);</span></span><br><span class="line"> System.out.fulsh();</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p>另外,ASCI 控制码还可以实现前景色、背景色、下划线、消隐、闪烁效果的设置以及光标控制,具体方法请阅读参考文档。</p>

2021/4/14
阅读更多

红米 K40 Pro 安装 Magisk(非 TWRP)

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>这篇文章记录了 RedMi K40 Pro 手机非 TWRP 方式刷入 Magisk 的过程、OTA 升级的注意事项和一些常用 Magisk 模块推荐。希望能够对你有所帮助。</p> <h2 id="安装-Magisk"><a href="#安装-Magisk" class="headerlink" title="安装 Magisk"></a>安装 Magisk</h2><ol> <li><p>解锁 BL,参照 <span class="exturl" data-url="aHR0cHM6Ly93d3cubWl1aS5jb20vdW5sb2NrL2luZGV4Lmh0bWw=">官网教程<i class="fa fa-external-link-alt"></i></span> 操作即可。</p> <p><img data-src="https://picgo-daily.oss-cn-guangzhou.aliyuncs.com/picgo-daily/2023/d524f17b2ebf689388050f836478d52f.jpg" alt="解锁BL"></p> </li> <li><p>找到与当前手机 MIUI <strong>版本相同</strong> 的卡刷包或者线刷包。</p>

2021/4/3
阅读更多

Hexo + Typora + PicGo-Core 写作三件套

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>使用 <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL3poLWNuLw==">Hexo<i class="fa fa-external-link-alt"></i></span> 写博客已经很久了,各方面体验还算顺滑,唯一感觉不是那么爽的地方在于图床的使用。</p> <p>如果在写作的过程中需要插入图片,我需要先中断写作,打开图床 web 页面,上传图片,复制图片链接,再回到编辑器粘贴图片链接。整个过程极其繁琐,令人苦不堪言。直到我遇到了 <span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL1BpY0dvL1BpY0dvLUNvcmU=">PicGo-Core<i class="fa fa-external-link-alt"></i></span>。</p> <p>PicGo-Core 可以和 <span class="exturl" data-url="aHR0cHM6Ly90eXBvcmEuaW8v">Typora<i class="fa fa-external-link-alt"></i></span> 无缝连接,在几乎无感的情况下完成图片的上传与 markdown 格式的转换,极大得提高了写作的流畅程度。</p> <p>本文将结合我的自身实践,讲述 Hexo + Typora + PicGo-Core 的联合配置过程,希望能够对你有所帮助。</p> <p>文章适合已经把玩过 Hexo 或者对 Node 有所了解的用户理解,如果您没有接触过对应知识,还请自行补充。</p> <p>文中 “Hexo + Typora 联动” 章节与 “Typora + PicGo-Core 联动” 章节并无关联,可以只阅读自己感兴趣的部分。</p>

2020/12/20
阅读更多

月刊-202012

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3MvcE5ieWczQlBGMWlhSEJlTVlXYzh6UQ==">和软件开发相关的一些思考<i class="fa fa-external-link-alt"></i></span></p> <ol> <li>deadline 带来的生产力一定程度上是以牺牲质量为代价的;</li> <li>在软件开发或者是学习过程中,需要不断地根据实际情况去调整计划。不要一刀切得使用固定的 ddl;</li> <li>大多数开发者都会高估自己的开发速度,低估软件工程的复杂程度;</li> <li>单一技术不能解决所有问题,争论某种技术最好并没有实际意义。关键是什么工具和技术更适合解决你现在的问题;</li> <li>技术总归是要为人服务的,产品的出发点应该是“人”。“人”需要什么功能,什么技术更适合完成这个功能;</li> <li>多和人沟通,了解不同人的想法、不同人思维的差异,可以让我们更容易地去接受这个世界存在着的不同,让我们更谦虚。</li> </ol> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpVNE5URXdOemd5TkE9PSZtaWQ9MjI0NzQ4NDQwNyZpZHg9MSZzbj00YmJhZTUwY2UxYTg4NjgyYmM3OGQ5ODZmOWVjMDU2MSZjaGtzbT1mZDhlZDNlOGNhZjk1YWZlMWQxYTE0N2MxZGY2MDlkM2YxMzE4MzAzNDdiZWNkY2FhZWQyYTg2YTNmYTBlMmNhOTgyNzAwMGI5ZDFhJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPTEwMjNSOFdHT0JZNk5zdENGUWpVVXZ0TyZzaGFyZXJfc2hhcmV0aW1lPTE2MDM0MjAyODgzOTcmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQma2V5PWRmZmFkNGJlYmJjMDVmN2Q1NzIwOTcyYjM1ODU2Y2YzNmZlMzE0OGZlZjY4NmEyZDExYWM5MDE2YTQwYmQ1ZTc0ODY5NDVjYTU4ZGE4NWE5N2RlY2YyYzlhYjFlMjlkNDk4MGY5MjAyM2UyZDY4Y2EzMTJkNDhkMmEwMTRhNzdhMjFhMzkwODZiMDg3NTMwYzhlOTVkYzkzNjhjMWQ1YmJjY2E2YTUwYTMzY2Y2ZDFkNDAxMzg1MjY0MzdiNGM4NWQ5NWNlZWNhYWViNTlkYjE4Y2RmOWUyNDc5YjE2NDJlMjhlNTJhZWMzYmQ2OTViMTg1OWUwYWE3M2U0NWE4YTMmYXNjZW5lPTEmdWluPU1qTXhORGMzT0RBMk1RPT0mZGV2aWNldHlwZT1XaW5kb3dzK1hQJnZlcnNpb249NjIwNjA4NDEmbGFuZz16aF9DTiZleHBvcnRrZXk9QS9BWmE2dFZNWGV2MkR5Umg2Q0NsZnM9JnBhc3NfdGlja2V0PXlrcGsvenorVDBGM1NaRjN6UFhRY3laTUtyWlk3NmVBaUNyS25UVmwxMXVmYkVCbTN1dG1Qa3JjbFJNS2hCcmQmd3hfaGVhZGVyPTA=">给你一份时间管理秘籍<i class="fa fa-external-link-alt"></i></span></p> <p>无事心不空,有事心不乱,大事心不畏,小事心不慢。</p> <p>专注可以解决世上绝大多数问题,剩下的需要一点运气。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9EUTJNREl5TUE9PSZtaWQ9MjY1MDcxODA1OSZpZHg9MSZzbj1iN2M3NzJmMTJlOTRjYjdmYWEzYTRhY2FlYzNiOGM1ZCZjaGtzbT1iZWMwNzEzODg5YjdmODJlZTEwYzdiMmEyOWZjMzJiMTAyMTc0ZTI0MjIyZWM0ZDc1N2ZhMDk5ZGI3MDI2MmU2Mzk0ODU3NDcyNzMzJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPTExMDZuSjFyazNsM3AxeXZiTEE1N3p2bCZzaGFyZXJfc2hhcmV0aW1lPTE2MDQ2Mzg5NzI3NjUmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQma2V5PWU2MTRmNzA1ODM3OTM5NDVjZTgyNjAwZWY1ODBjNmVhZmE0YTBkYTg3MGMxODlkZWI5NTZhYjQ2MTcwYjU5YTkwYzZhYmMxODkxZGMxY2Y1NDlmMGQwMTBmM2IyMWI4NWYyNzRlMWMzNTc1NGU2NWQ4NjkxZWI0NDMyM2NjYmZiODdlOTc2NTM5ZDY3MDUwMTQ0MGNiZDQ2OWUyOTIzZTdmZGY3YmE1MTZjZWU4OGNkNDcxMGIyNWVhNjZiMmI1MTZhYjhiN2RhYTQ1YTAxNzE4ZTZlNGQ1ZTY3NTg2ZThjY2EzMzdiMGFkZmM0NmI2OTEzNzRlYmIzZjgyZjZjYmQmYXNjZW5lPTEmdWluPU1qTXhORGMzT0RBMk1RPT0mZGV2aWNldHlwZT1XaW5kb3dzK1hQJnZlcnNpb249NjIwNjA4NDEmbGFuZz16aF9DTiZleHBvcnRrZXk9QTFNWXR0MVg0L0pudDlpamRzSFZnYWM9JnBhc3NfdGlja2V0PXlrcGsvenorVDBGM1NaRjN6UFhRY3laTUtyWlk3NmVBaUNyS25UVmwxMXVmYkVCbTN1dG1Qa3JjbFJNS2hCcmQmd3hfaGVhZGVyPTA=">合理合法地多赚钱<i class="fa fa-external-link-alt"></i></span></p> <p>关于金钱,说到底也是一种资源,这种资源和其他的资源没有太大区别,资源越多,你的自由度越大。</p> </li> </ul>

2020/12/9
阅读更多

月刊-202009

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3Mvd1Z6YmZLM2NtaFAzdnRtVXZadzRWdw==">不行<i class="fa fa-external-link-alt"></i></span> </p> <p>得不到就是得不到,别说自己不想要。<br>不学就是不学,别说自己没时间。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3MvVWdZRDBPVUk0Tnk1OTVGYlZqR25tQQ==">别给年轻人提建议<i class="fa fa-external-link-alt"></i></span></p> <p>每个人最终都将成为自己。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpJME1qQTFNamcyTmc9PSZtaWQ9MjY0OTg2OTIwNSZpZHg9MSZzbj04ODg4ZjRjODZhNDQ1ZjQzNzIzM2QxZmRmNjkxZDliNCZjaGtzbT1mMTA3NTFmOGM2NzBkOGVlMzkzNGE0NzAxNWQzOWVhMzA1YTZkNDA0MTM4NzdhOTUyNTA1YmI3ODQ1MTQ0ZjMyYWJiMjY1NmI2MGIwJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1NzgwOTczNDUxMzkmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">如何理解所谓的压力与红利<i class="fa fa-external-link-alt"></i></span></p> <blockquote> <p>不要稀里糊涂的随波逐流,红利到来的时候,要知道红利是从哪里来的,怎么来的,这样才能更好的把握机会,争取实现自我突破和提升。挤压到来的时候,要知道挤压是怎么来的,这样才能未雨绸缪,更好的规避,更好的让自己处于相对安全和健康的位置。</p> </blockquote> <blockquote> <p>学会真正的理解因果,理解逻辑,理解世界。</p> </blockquote> <blockquote> <p>多读一点经济学的书,多理解相关经济学的逻辑,多关注政策面的新闻,更好的认识这个世界,认识自己所处的环境,不要简单归因,不要只看到表面,你会自己找到答案和真正的因果。</p> </blockquote> <blockquote> <p>如果你不知道如何把握红利,不知道如何规避压力,唯一能做的,是不断提升自己的职场竞争力,提升自己的信用,口碑和影响力。永远不要认为,做对一次选择,就可以安稳一生。</p> </blockquote> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3MvbVVBUVhfMmIwVXQzQVBXQi1weVlTUQ==">快速学习秘诀:费曼学习法<i class="fa fa-external-link-alt"></i></span> </p> <p>确定目标、模拟教学、反复理解、复习简化。</p> </li> </ul>

2020/9/1
阅读更多

monthly-202005

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3MvM1pfbG9OZFVUUy12TjVLamdlbUVYQQ==">去一个自带流量的团队真的不一样 No.189<i class="fa fa-external-link-alt"></i></span> </p> <p>没有谁的成功是一蹴而就的。以前我总是纳闷儿,为什么别人就可以这么厉害?看完这篇文章,我有了些许答案。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9EUTJNREl5TUE9PSZtaWQ9MjY1MDcxNjgxNyZpZHg9MSZzbj0yNzI0ZDlkNDhiYzdmNjQ5MmRiNDNiMGU4ODc5NWY2YSZjaGtzbT1iZWMwNzRjMjg5YjdmZGQ0ODllNzFhMGNjNzk3ZjY1MDkwZjNkYWE1OTQyZDlkMjk4MjZmYjY4ZDMyOTA1NjYwYzRiNjM5OTllMjQxJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1ODM2NjYyNzE2MjYmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">巨头过处,寸草不生<i class="fa fa-external-link-alt"></i></span> </p> <p>在某个成熟领域,做得比别人好一点点,UI 巧妙一点,是没用的。得好一百倍才有可能。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9EUTJNREl5TUE9PSZtaWQ9MjY1MDcxNzA4MiZpZHg9MSZzbj00MmVkNWY3NDhiNWU3ZWJjYTBhODk3NDIwMDA1MTcyOSZjaGtzbT1iZWMwNzVjOTg5YjdmY2RmOTU2ZjJmODkzNGIyZTU4YjI4MWRkMWIwOGJmOGY1YjE2YTVhNzRkMjkwN2EwZGQxOGFkNjcxNzhkNzI3Jnh0cmFjaz0xJnNjZW5lPTkwJnN1YnNjZW5lPTkzJnNlc3Npb25pZD0xNTg5OTUwNDQ4JmNsaWNrdGltZT0xNTg5OTUwNDU5JmVudGVyaWQ9MTU4OTk1MDQ1OSZhc2NlbmU9NTYmZGV2aWNldHlwZT1hbmRyb2lkLTI5JnZlcnNpb249MjcwMDBmMTEmbmV0dHlwZT1XSUZJJmFidGVzdF9jb29raWU9QUFBQ0FBPT0mbGFuZz16aF9DTiZleHBvcnRrZXk9QTZ5QzVXeTR4SVhZMkVBcWp0bEhJK2s9JnBhc3NfdGlja2V0PXVPNU0vM1RoRWs3UVpwN2dtL2ZQZlN5R1d4VXYySkxOb3U1eGlQK0M0QjRNUzkrbWQrcWlDM1RTVnVPWk5PQ2gmd3hfaGVhZGVyPTE=">任何事物当中的百分之九十都是垃圾?<i class="fa fa-external-link-alt"></i></span></p> <p>在摄入信息时,我们要像对待食物和药物一样挑剔、严格、谨慎。</p> </li> </ul>

2020/5/30
阅读更多

Ubuntu 20.04 装机手册

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>期待已久的 Ubuntu 20.04 终于发布了,对其朝思暮想的我当然要前来尝试一番。</p> <p>这篇文章是我从 16.04 至今一直在使用的装机手册,致力于让 Ubuntu 使用起来更加顺手。整理至此,供君采撷。</p> <p>附装机图一张:</p> <p><img data-src="https://picgo-daily.oss-cn-guangzhou.aliyuncs.com/picgo-daily/2023/b5932f7359cb2e2a2e6debf92d988539.png" alt="Ubuntu20.04装机图"></p>

2020/5/2
阅读更多

Python 兴趣小组第十周作业

<h1 id="学习目标"><a href="#学习目标" class="headerlink" title="学习目标"></a>学习目标</h1><p>第十周的部分目标在第九周提前完成了,第十周实战章节的教程与我目前的能力不太符合。索性调整了计划,自己设计实现了一个简单地新闻爬取程序。</p> <p>利用了第三方现有的接口,综合使用了之前学到的许多知识,勉强能让自己满意吧。</p>

2020/4/25
阅读更多

愿世间美好与你环环相扣

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>我是一个有着轻微强迫症的人,万事万物都想追求尽善尽美。</p> <p>对于工具,亦是如此。欲善其事,先利其器。我一直在寻找更加得心应手的工具。</p> <p>所幸、这样的工具并不少见;可惜,很多工具鲜为人知。</p> <p>所以,我做了一个网站,罗列了一些我个人认为很好的值得与大家分享的东西。</p> <p>愿世间美好,皆与你环环相扣。</p>

2020/4/18
阅读更多

Python 兴趣小组第九周作业

<h1 id="学习目标"><a href="#学习目标" class="headerlink" title="学习目标"></a>学习目标</h1><p>完成 <span class="exturl" data-url="aHR0cHM6Ly93d3cubGlhb3h1ZWZlbmcuY29tL3dpa2kvMTAxNjk1OTY2MzYwMjQwMA==">Python 教程 - 廖雪峰的官方网站<i class="fa fa-external-link-alt"></i></span> 以下章节的学习并输出学习笔记:</p> <ul> <li>访问数据库(MySQL 部分)</li> <li>Web 开发</li> <li>异步 IO</li> </ul>

2020/4/10
阅读更多

Python 兴趣小组第八周作业

<h1 id="学习目标"><a href="#学习目标" class="headerlink" title="学习目标"></a>学习目标</h1><p>完成 <span class="exturl" data-url="aHR0cHM6Ly93d3cubGlhb3h1ZWZlbmcuY29tL3dpa2kvMTAxNjk1OTY2MzYwMjQwMA==">Python 教程 - 廖雪峰的官方网站<i class="fa fa-external-link-alt"></i></span> 以下章节的学习并输出学习笔记:</p> <ul> <li>图形界面</li> <li>网络编程</li> <li>电子邮件</li> </ul>

2020/4/9
阅读更多

Python 兴趣小组第七周作业

<h1 id="学习目标"><a href="#学习目标" class="headerlink" title="学习目标"></a>学习目标</h1><p>完成 <span class="exturl" data-url="aHR0cHM6Ly93d3cubGlhb3h1ZWZlbmcuY29tL3dpa2kvMTAxNjk1OTY2MzYwMjQwMA==">Python 教程 - 廖雪峰的官方网站<i class="fa fa-external-link-alt"></i></span> 以下章节的学习并输出学习笔记:</p> <ul> <li>常用内建模块</li> <li>常用第三方模块</li> <li>virtualenv</li> </ul>

2020/4/4
阅读更多

围墙

<h2 id="围墙"><a href="#围墙" class="headerlink" title="围墙"></a>围墙</h2><p>**温饱有余,奢侈不足。**从小到大,我的家境一直是这样的一种境况。</p> <p>凭借勤俭节约,我们能过上“还不错”的生活。所以,我一直不太理解“有钱人”的生活。</p> <p>千元左右的安卓手机也能打电话玩游戏,为什么要花四五倍的价格去买 iPhone?</p> <p>淘宝上遍地都是十几块钱的线控耳机,为什么要花几千块钱去买 AirPods、Sony?</p> <p>都是打字,薄膜键盘凭啥就不如机械键盘?</p> <p>……</p> <p>大学之后,这些问题便常伴随我左右。</p> <p>因为在自己的小天地里过得“还不错”,所以简简单单地把答案归结为“钱多没地方花”或者“打肿脸充胖子”。</p> <p>从未去深究,从未去探寻围墙外的世界。</p>

2020/4/2
阅读更多

月刊-202004

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpVeE1EQXdORE0wT0E9PSZtaWQ9MjI0NzQ4NTEwNyZpZHg9MSZzbj1mYWNkNzg1MmUxZmI5M2E4MzBhZGRmYmFmZmQyYzk4MyZjaGtzbT1mOTA4ZGJhMGNlN2Y1MmI2ZmEwMmI0YzZjZTVkNTM0NDljODcxMjE4ZGVmOGY2NjI1MjEyNGRlY2Y3OWQzYWQwOGY3MDIyYTRiYjAyJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1ODM2ODIxMDQ2MzImc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">聊聊人怎么更值钱这个事情 No.184<i class="fa fa-external-link-alt"></i></span> </p> <p>最好的投资就是投资你自己。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9EUTJNREl5TUE9PSZtaWQ9MjY1MDcxNjYyNSZpZHg9MSZzbj1mMjdiYmJiNTJiZGMzNzI3YTI5MzdkNThlM2Y4NmYxZSZjaGtzbT1iZWMwNzc4Mjg5YjdmZTk0NzIxNDQ2NGM2M2Q4Mzk1MWVlZGFkNzM5NzE4OGRkOGM4ZDBlODg2YTQyYzkwZjNhZDQwNGYzNDM4Y2IzJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1Nzc0NDMwMzgzNzcmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">高效程序员的6个习惯<i class="fa fa-external-link-alt"></i></span> </p> <blockquote> <p>找一个你崇拜或者最想成为的偶像,从他身上找出你最欣赏的特质,然后开始学习和模仿他,把这些特质变成你自己的习惯。</p> </blockquote> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9ESXlNVEUwTUE9PSZtaWQ9MjY1MDk3NDQ0NSZpZHg9MSZzbj0xZWNkOTY5N2IxNWQ2ZTJmZDI5MzFkZGY1ZmM5ZDFiMiZjaGtzbT1iZDM4MGNkNjhhNGY4NWMwMDY3NWEwNmE1NGM0MDUxNzBlMzY0MzlhMWY3ZTY3MTg2NzNiZGY1NTFjNzg5ZDljNzk3ZTBjZTg5MjcwJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1ODU2MTI0Nzc4MTImc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">创业者的孤独感<i class="fa fa-external-link-alt"></i></span> </p> <blockquote> <p>自己选择走哪条路之前,仔细想好,一旦想好,就不要后悔。患得患失才会让人更痛苦。</p> </blockquote> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9EUTJNREl5TUE9PSZtaWQ9MjY1MDcxNjkwMyZpZHg9MSZzbj0wNzYyOTQ5MmMzYjdkZTVhMDljYzRkZDU2YjE5M2RkYyZjaGtzbT1iZWMwNzRiNDg5YjdmZGEyZWMzMDkzNGExMzEzNDgzOTBjZTViNWQ5ODc0NDU4MDRmMzViNjZlNWQ0NzdiMDRjZDIwZjg4NGEzMWRiJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1ODY5MjcyOTYwNDYmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">巴菲特老爷子说,你们这样不好…<i class="fa fa-external-link-alt"></i></span> </p> <p>文中有三个归纳很不错:</p> <ul> <li>长期坚持,保持耐心。</li> <li>不断自我进化,拥抱变化。</li> <li>知道自己能力的边界,认识自己的“愚蠢”。</li> </ul> </li> </ul>

2020/4/1
阅读更多

Python 兴趣小组第六周作业

<h1 id="学习目标"><a href="#学习目标" class="headerlink" title="学习目标"></a>学习目标</h1><p>完成 <span class="exturl" data-url="aHR0cHM6Ly93d3cubGlhb3h1ZWZlbmcuY29tL3dpa2kvMTAxNjk1OTY2MzYwMjQwMA==">Python 教程 - 廖雪峰的官方网站<i class="fa fa-external-link-alt"></i></span> 以下章节的学习并输出学习笔记:</p> <ul> <li>进程和线程</li> <li>正则表达式</li> </ul>

2020/3/29
阅读更多

Python 兴趣小组第五周作业

<h1 id="学习目标"><a href="#学习目标" class="headerlink" title="学习目标"></a>学习目标</h1><p>完成 <span class="exturl" data-url="aHR0cHM6Ly93d3cubGlhb3h1ZWZlbmcuY29tL3dpa2kvMTAxNjk1OTY2MzYwMjQwMA==">Python 教程 - 廖雪峰的官方网站<i class="fa fa-external-link-alt"></i></span> 以下章节的学习并输出学习笔记:</p> <ul> <li>面向对象高级编程</li> <li>错误、调试和测试</li> <li>IO 编程</li> </ul>

2020/3/27
阅读更多

反思

<h1 id="堕"><a href="#堕" class="headerlink" title="堕"></a>堕</h1><p>我是一个很纠结的人。</p> <p><strong>不安于现状,不付诸改变。</strong></p> <p>退一步安于现状,可得温饱安逸;进一步付诸改变,可得蜕变升华。但我恰恰就身处这夹缝之间,不愿退,不易进。循环往复,无法自拔。庸人自扰,说的大概就是我现在的状态罢。</p> <h1 id="惑"><a href="#惑" class="headerlink" title="惑"></a>惑</h1><p>我大多数时候的生活状态是这样的:<strong>忙时碌碌无为,闲时无所事事。</strong></p> <p>忙到尽头,便是自怨自艾;闲到极致,皆是胡思乱想。</p> <p>为什么?我会成为这样的自己?</p>

2020/3/22
阅读更多

Python 兴趣小组第四周作业

<h1 id="学习目标"><a href="#学习目标" class="headerlink" title="学习目标"></a>学习目标</h1><p>完成 <span class="exturl" data-url="aHR0cHM6Ly93d3cubGlhb3h1ZWZlbmcuY29tL3dpa2kvMTAxNjk1OTY2MzYwMjQwMA==">Python 教程 - 廖雪峰的官方网站<i class="fa fa-external-link-alt"></i></span> 以下章节的学习并输出学习笔记:</p> <ul> <li>函数式编程</li> <li>模块</li> <li>面向对象编程</li> </ul>

2020/3/20
阅读更多

Python 兴趣小组第三周作业

<h1 id="学习目标"><a href="#学习目标" class="headerlink" title="学习目标"></a>学习目标</h1><p>完成 <span class="exturl" data-url="aHR0cHM6Ly93d3cubGlhb3h1ZWZlbmcuY29tL3dpa2kvMTAxNjk1OTY2MzYwMjQwMA==">Python 教程 - 廖雪峰的官方网站<i class="fa fa-external-link-alt"></i></span> 以下章节的学习并输出学习笔记:</p> <ul> <li>安装 Python</li> <li>第一个 Python 程序</li> <li>Python 基础</li> <li>函数</li> <li>高级特性</li> </ul>

2020/3/13
阅读更多

《寄生虫》观后感

<h2 id="电影信息"><a href="#电影信息" class="headerlink" title="电影信息"></a>电影信息</h2><p><strong><span class="exturl" data-url="aHR0cHM6Ly9tb3ZpZS5kb3ViYW4uY29tL3N1YmplY3QvMjcwMTA3Njgv">寄生虫 기생충 (2019)<i class="fa fa-external-link-alt"></i></span></strong></p> <p><img data-src="https://picgo-daily.oss-cn-guangzhou.aliyuncs.com/picgo-daily/2023/624f7fdbdb4aeb70ab8322093e4a7762.png" alt="寄生虫.png"></p> <h2 id="电影简介"><a href="#电影简介" class="headerlink" title="电影简介"></a>电影简介</h2><!-- 电影《寄生虫》讲述了一个韩国贫苦人家的儿子基宇因为一次偶然的机会来到一户富贵人家(朴社长)家中担任家教并伙同家人合谋一步步把自己的四口之家全部安排到朴社长家中工作,最后和之前寄生于此的前帮佣一家发生冲突并导致真相败露的故事。--> <p>电影《寄生虫》讲述了一个韩国贫苦人家凭借机遇、能力和心机把自己一家四口安排到一个富贵人家工作,最后因被前帮佣一家发现而引起冲突并导致真相败露的故事。</p>

2020/3/3
阅读更多

月刊-202003

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3MvOG5YTU53QzlKQWxldUUtd09BX2V1UQ==">沟通中几个常见的盲区<i class="fa fa-external-link-alt"></i></span> </p> <p>文章介绍了关于沟通的几个建议,很是受用。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpBM05qVTJNRFV6TUE9PSZtaWQ9MjY3MzAzMjgxNCZpZHg9MSZzbj03ZDAyMmY4OTNiMjBjZmUzY2U4MzhhNGNkZjJmNzA0OCZjaGtzbT04NWY4ZmY5M2IyOGY3Njg1ZDI4MTVhZTcxMmEzYWQ4ZDQzNmVjOWNjMmRhZTVhNzMxNjIxNzJhMjhkMjhkYmI2NTRhMjdlZTY4ZjFlJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1ODUxNzkzNjUxNjAmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">不要跟着平庸的老板<i class="fa fa-external-link-alt"></i></span> </p> <ul> <li>凡是按时间或件数来计酬的工作,都别做太久;</li> <li>职场政治是这样一个东西,你可以不去碰,但不能不去懂;</li> <li>分清楚“我不适合”和“我不行”;</li> <li>不要跟着平庸的老板;</li> <li>平台能级永远大于个人奋斗。</li> </ul> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9EUTJNREl5TUE9PSZtaWQ9MjY1MDcxNjg1NCZpZHg9MSZzbj1hZjYyNGU3MjhiNDI1NTUyNzE1MWU5ZTFmZmQ2ZWZlYyZjaGtzbT1iZWMwNzRlNTg5YjdmZGYzYjEzNjBkNjljMmI1NjUyODIwZTUwNmUzNTFmZTYxZjlkYmMyMjc4NDFkM2Y5NTA3Y2E5MmQwMzhmMjQzJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1ODUzMDE2NTIzMDImc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">如何避免自己成为一个傻叉<i class="fa fa-external-link-alt"></i></span> </p> <blockquote> <p>思维模式差距太大其实是无法交流的。如果你觉得一个人和谁交流都让人如沐春风还有收获,那说明那人要么是随意附和,要么情商智商双高,能降维和你交流。</p> <p>当傻叉效应出现的时候,不要忘了,你在对方眼里,也可能是同样的形象。</p> </blockquote> </li> </ul>

2020/3/1
阅读更多

Python 兴趣小组第二周作业

<h1 id="目标"><a href="#目标" class="headerlink" title="目标"></a>目标</h1><p>系统学习 Python 知识,简单入门 Python 编程。</p> <h2 id="验收标准"><a href="#验收标准" class="headerlink" title="验收标准"></a>验收标准</h2><p>学完 <span class="exturl" data-url="aHR0cHM6Ly93d3cubGlhb3h1ZWZlbmcuY29tL3dpa2kvMTAxNjk1OTY2MzYwMjQwMA==">Python 教程 - 廖雪峰的官方网站<i class="fa fa-external-link-alt"></i></span> 系列教程。</p> <h1 id="Python-入门学习计划"><a href="#Python-入门学习计划" class="headerlink" title="Python 入门学习计划"></a>Python 入门学习计划</h1><p>本计划依据 <span class="exturl" data-url="aHR0cHM6Ly93d3cubGlhb3h1ZWZlbmcuY29tL3dpa2kvMTAxNjk1OTY2MzYwMjQwMA==">Python 教程 - 廖雪峰的官方网站<i class="fa fa-external-link-alt"></i></span> 制定。</p>

2020/2/29
阅读更多

Python 兴趣小组第一周作业

<h1 id="Python-是什么?"><a href="#Python-是什么?" class="headerlink" title="Python 是什么?"></a>Python 是什么?</h1><p>Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。由 Guido van Rossum 于 1989 年底发明。Python 的第一个公开发行版发行与 1991 年,源代码遵循 GPL(GNU General Public License)协议。Python 语法简洁而清晰,具有丰富和强大的类库。它常被称为胶水语言,能够把用其他语言制作的各种模块(尤其是 C&#x2F;C++)很轻松地联结在一起。</p> <h1 id="为什么会出现-Python-这种语言?"><a href="#为什么会出现-Python-这种语言?" class="headerlink" title="为什么会出现 Python 这种语言?"></a>为什么会出现 Python 这种语言?</h1><p>Python 由 Guido van Rossum 于 1989 年年底出于某种娱乐目的而开发,Python 语言是基于 ABC 教学语言的,而 ABC 这种语言非常强大,是专门为非专业程序员设计的。但 ABC 语言并没有获得广泛的应用,Guido 认为这是非开放造成的。</p> <p>Gudio 在 Python 中避免了 ABC 不够开放的劣势,加强了 Python 和其他语言如 C、C++ 和 Java 的结合性。此外,Python 还实现了许多 ABC 中未曾实现的东西,这些因素大大提高了 Python 的流行程度。</p>

2020/2/20
阅读更多

实验 - Python 兴趣小组

<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>受 <span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpVeE1EQXdORE0wT0E9PSZtaWQ9MjI0NzQ4NDM5NSZpZHg9MSZzbj00YjVkOTk0ZDAwMjBlZDkwOTlmNTNlYjI4YjlmNjI4MCZjaGtzbT1mOTA4ZGVmOGNlN2Y1N2VlYWQ3MDIyNGY3YWE1MzY1OWU0ZjFmYWRlNDExZDAwNzgyNDRjMzIyZGQ0Yzk4Yzk4M2ZhZTc5ZGEzNzVmJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPTAyMjB0OHVta21ieEFPaWFhSkhBalBnTiZzaGFyZXJfc2hhcmV0aW1lPTE1ODIxNjQ2MjE0MDgmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQma2V5PThlZWUwYjUwOTQ2ZjdmYTFiZTAzMTFjNDIyYTBjNGViNjg2OGE2MzJhYmFjNzAwZmZjMDg1NDAxMGFmMjc3ZmE0NWZjNzdmM2JjODU4ZjAzZWZkMDViZjUwZjBkM2FhZDI5MDYzM2Y4YjRiM2EyZTZmODU1YTRiNzkxYzJlODlkNmIxNjY2MjZhZjVkYjhkNzllOTU0NDViNjZlZGNiOWUmYXNjZW5lPTEmdWluPU1qTXhORGMzT0RBMk1RPT0mZGV2aWNldHlwZT1XaW5kb3dzK1hQJnZlcnNpb249NjIwNjA4NDEmbGFuZz16aF9DTiZleHBvcnRrZXk9QTFqZWQvNlhaYk5GQjl5UnJjZDdjdG89JnBhc3NfdGlja2V0PXhML2lINjZzQ3VETE5WR1pCSGdmWmw2UDhvRzloOVRoTytRQlp6bndVY0E1M1lvU0hGRTdPbllhTjNabWpuMnc=">一名叫大蕉的程序员<i class="fa fa-external-link-alt"></i></span> 的影响,我在过去一年里获得了比较大的成长。我也一直在想,自己能不能像他一样,帮助周围的人一起成长。</p> <p>两个月前组建了一个写作群,虽发展不及预期,但效果还不错,群员都有自己的成长。亲眼看着有的人从一直有兴趣写作但几乎从未动笔到几乎周周更文并且还能获得班主任和辅导员的点赞转发;亲眼看着有人写出了比我更深刻的对于乡情的认识;亲眼看着有人可以用“我不想长高”切入,讲述让我眼眶发热的关于父爱的故事……</p> <p>到最后我只能惊叹道:“你们真是一群宝藏男 &#x2F; 女孩”。他们的文字,让我收获良多。</p> <p>一开始只想着看看自己能不能帮到别人什么。没曾想,在收获面前,我的付出根本不值一提。</p> <p>在学校同乡会的群聊中,我曾不止一次看到不止一人说想学 Python,但之后貌似都没了下文。恰巧前几日群里又有人说起了这个话题,心想着我或许可以给他们一个开始的理由和坚持下去的动力及约束。</p> <p>于是,“Python 兴趣小组”群应运而生。谨以此文,记录建群历程,供以后借鉴。</p>

2020/2/16
阅读更多

月刊-202002

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9ibG9nLnVzZWpvdXJuYWwuY29tLzEwLXNpZ25zLXlvdS13aWxsLXN1Y2stYXQtcHJvZ3JhbW1pbmctNTQ5N2E2YTUyYzVj">10 Signs You Will Suck at Programming<i class="fa fa-external-link-alt"></i></span> </p> <p>成为优秀程序员需要避免的 10 个误区。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9ESXlNVEUwTUE9PSZtaWQ9MjY1MDk3NDE4NyZpZHg9MSZzbj0xMWE4NjJmZDYyMDc4ZDA4OGNhOGE1MjE5YTBjYjhmNSZjaGtzbT1iZDM4MDNkMDhhNGY4YWM2ZTY5NDY0ZTg4OTQ4YWNlNjg0NWFjZDMzN2Q5MWRlYzRiYjIyMzBlZDk1MTljNjRjMWI3NTcyNWQ5Y2Q3Jm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1ODA2NTQwMDc1MDEmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">给现在那些低学历的年轻人一点建议<i class="fa fa-external-link-alt"></i></span></p> <p>持续学习,终身学习。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpVek1EZ3lNVFUxTXc9PSZtaWQ9MjI0NzQ4NDk4MyZpZHg9MSZzbj00MjliMTZiMGViNTM2ODZkN2M1NTAxNDgzMjY0NGVkMyZjaGtzbT1mYTRhYmVlOWNkM2QzN2ZmYWVmY2ZmY2FiMGViODc4YTJhZjYzMDJkZjgzOGMwNGY0YTM5M2MxY2U2ZDgxODExMmJmOTAzM2E1OGQ5Jm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPTAxMTZQNVFGUUlSU3NGUGdmU3pEUlpNRSZzaGFyZXJfc2hhcmV0aW1lPTE1NzkxNzY2MTkzMTYmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">2020年,过来人给职场新人的建议<i class="fa fa-external-link-alt"></i></span></p> <blockquote> <ul> <li>修炼硬核业务能力,在此基础上用软技能加分</li> <li>挖掘公司给你带来除工资外的附加价值,利用公司资源优势找到和壮大自己</li> <li>职场新人打造个人品牌是稳赚不赔的生意,从现在起重视个人品牌势能的积累</li> </ul> </blockquote> </li> </ul>

2020/2/2
阅读更多

<p>2020,果真是多事之秋,开年便有诸多不顺。</p> <p>最近经常听到别人说庚子年是灾年。但是我觉得吧,好事和坏事每天都在发生,只是有时候坏事恰巧发生在了庚子年,特别惹人注意,仅此而已。</p> <p>作为一个 30% 的唯心主义者,我认为逆天改命最大的因素在于自身。管它大环境如何,做好自己,便是成功的开始。</p> <p>虽然说环境的势能也不可忽略,但那都是后话。成就更好的自己,才能更好地利用势能。</p>

2020/1/29
阅读更多

我的 2019 总结和 2020 计划

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p><strong>碌碌无为。</strong></p> <p>人生中的前 20 多年,似乎都是这同样的一种状态。</p> <p>每一天都在学习,每一刻都在做事。但是一天下来,却想不起当天做了什么;一年过去,依旧停留在原地踏步。</p> <p>可能,这是因为没有计划吧。</p> <p>朝菌不知晦朔,蟪蛄不知春秋。漫无目的,得过且过,大局难定,大器难成。</p> <p>上古大椿,八千春秋。知途知径,浑然天成。</p> <p>姑且尝试着对自己的人生进行简单的总结与规划,若有裨益,幸甚至哉。</p>

2020/1/24
阅读更多

月刊-202001

<h1 id="资源推荐"><a href="#资源推荐" class="headerlink" title="资源推荐"></a>资源推荐</h1><ul> <li><p>两个优秀的后台管理系统模板</p> <ul> <li><span class="exturl" data-url="aHR0cHM6Ly9wYW5qaWFjaGVuLmdpdGh1Yi5pby92dWUtZWxlbWVudC1hZG1pbi1zaXRlLw==">vue-element-admin<i class="fa fa-external-link-alt"></i></span> </li> <li><span class="exturl" data-url="aHR0cHM6Ly9wcm8uYW50LmRlc2lnbi8=">Ant Design Pro<i class="fa fa-external-link-alt"></i></span></li> </ul> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly93d3cuYWRkb2cudmlwLw==">addog<i class="fa fa-external-link-alt"></i></span> </p> <p>广告创意 &#x2F; 设计 &#x2F; 文案 &#x2F; PPT 模板 &#x2F; 营销策略大全网址导航。</p> </li> </ul>

2020/1/1
阅读更多

ARTS-16

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="1299-将每个元素替换为右侧最大元素"><a href="#1299-将每个元素替换为右侧最大元素" class="headerlink" title="1299. 将每个元素替换为右侧最大元素"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvcmVwbGFjZS1lbGVtZW50cy13aXRoLWdyZWF0ZXN0LWVsZW1lbnQtb24tcmlnaHQtc2lkZS8=">1299. 将每个元素替换为右侧最大元素<i class="fa fa-external-link-alt"></i></span></h2><p>解法一:</p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span>[] replaceElements(<span class="type">int</span>[] arr) &#123;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">0</span>; i &lt; arr.length - <span class="number">1</span>; i++) &#123;</span><br><span class="line"> <span class="type">int</span> <span class="variable">maxRight</span> <span class="operator">=</span> arr[i + <span class="number">1</span>];</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">j</span> <span class="operator">=</span> i + <span class="number">1</span>; j &lt; arr.length; j++) &#123;</span><br><span class="line"> <span class="keyword">if</span> (arr[j] &gt; maxRight) &#123;</span><br><span class="line"> maxRight = arr[j];</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"> arr[i] = maxRight;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> arr[arr.length - <span class="number">1</span>] = -<span class="number">1</span>;</span><br><span class="line"> <span class="keyword">return</span> arr;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时:137ms,内存消耗:39.6MB。</em></p>

2019/12/31
阅读更多

ARTS-15

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="283-移动零"><a href="#283-移动零" class="headerlink" title="283. 移动零"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvbW92ZS16ZXJvZXMv">283. 移动零<i class="fa fa-external-link-alt"></i></span></h2><h3 id="解法一:"><a href="#解法一:" class="headerlink" title="解法一:"></a>解法一:</h3><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">void</span> <span class="title function_">moveZeroes</span><span class="params">(<span class="type">int</span>[] nums)</span> &#123;</span><br><span class="line"> <span class="type">int</span> <span class="variable">loopTimes</span> <span class="operator">=</span> nums.length, zeroCount = <span class="number">0</span>, insertIndex = <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">scanIndex</span> <span class="operator">=</span> <span class="number">0</span>; scanIndex &lt; loopTimes; scanIndex++) &#123;</span><br><span class="line"> <span class="keyword">if</span> (nums[scanIndex] != <span class="number">0</span>) &#123;</span><br><span class="line"> nums[insertIndex++] = nums[scanIndex];</span><br><span class="line"> &#125; <span class="keyword">else</span> &#123;</span><br><span class="line"> zeroCount++;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> nums.length - <span class="number">1</span>; zeroCount &gt; <span class="number">0</span>; zeroCount--, i--) &#123;</span><br><span class="line"> nums[i] = <span class="number">0</span>;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时:0ms,内存消耗:37.7MB。</em></p>

2019/12/30
阅读更多

ARTS-14

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h4 id="832-翻转图像"><a href="#832-翻转图像" class="

2019/12/29
阅读更多

月刊-201912

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9EUTJNREl5TUE9PSZtaWQ9MjY1MDcxNjYwNyZpZHg9MSZzbj1mZGFlY2Y1NDFiYjAyODg4ZmQ5MTM3ZDZmMjg2YmQ5ZCZjaGtzbT1iZWMwNzdlYzg5YjdmZWZhMDkxY2ExZDEyOWJkZjI1MWY5ZTA1NTVjMTU0N2JlMjQ3YTExN2I5ZDNiZDZkZDc0MjFlMmFjMTVkYjJjJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1NzcxMTA1NTAzNTkmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">Kindle 盖泡面,单反爱吃灰<i class="fa fa-external-link-alt"></i></span> </p> <p>池建强老师经常会给极客时间很多课程写推荐文章。不像其他广告, 池老师的推广文章我是很喜欢阅读的。字里行间,无不透露着他对课程的喜爱与雕琢。用心做内容,并且为自己的产品自豪,达到这种境界,并不简单。</p> <p>借用池老师的一句话:“如果连我自己都不好意思推荐我自己的产品,那它一定是有问题的”。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpJME1qQTFNamcyTmc9PSZtaWQ9MjY0OTg2OTE4NiZpZHg9MSZzbj1iYmM4ODkzY2IyM2E3ZGE5MjNiMDdmZGY0YmVjMWM4YyZjaGtzbT1mMTA3NTFlZmM2NzBkOGY5OTJlM2I5ZjMyMTI0MGMzYTE1YWYyNjZkZDkxZmVlNjBlYjRmNGEzM2Y2ZDhiZDk1OGUyNDMzMDJjNWJkJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1Nzc0NDMyNzkzMDEmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">搭便车的时候,请别把车砸了。<i class="fa fa-external-link-alt"></i></span> </p> <blockquote> <p>仁慈和善良的人,实际上是被那些不够仁慈,不够善良的人所保护的。</p> </blockquote> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpJME1qQTFNamcyTmc9PSZtaWQ9MjY0OTg2OTE3NCZpZHg9MSZzbj1lOGI1YTI5YWE1MWQxZmVhZmQ0MWI4NTQ0OWEyM2I5MiZjaGtzbT1mMTA3NTExYmM2NzBkODBkMDJjZThmMTNlZjU0YzJlZDIwNThiODNhNjA4ZDI3MDExNWI1NjVmOGI1ZjI3OTQ0YWE2OTE2YTI0YjgxJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1NzczMzgzNTczODgmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">听说你想过上流生活<i class="fa fa-external-link-alt"></i></span> </p> <p>关于消费观的一些见解。</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpJMk16RTJORGN6TXc9PSZtaWQ9MjY0OTczOTE2MyZpZHg9MSZzbj00NjVmMDk5NjZmYjRiZTc4ZTMyYmUwZDk3MTg3Yjg5YiZjaGtzbT1mMjViNjljOWM1MmNlMGRmOTBmNDA3MDE5ZDBmYjVjNTZkYWVmZmU3YmIxZDJiM2VlNmMyNWZhY2UxNmJmZmFjMGRjOTU4MzQ2YzljJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1Nzc0NDMwNzAwNTImc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">微信搜一搜迈出新的一步,好戏来了<i class="fa fa-external-link-alt"></i></span> </p> <p>人无我有,人有我优,人优我便利。微信的布局着实可怕。</p> </li> </ul>

2019/12/26
阅读更多

ARTS-13

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="1313-解压缩编码列表"><a href="#1313-解压缩编码列表" class="headerlink" title="1313. 解压缩编码列表"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvZGVjb21wcmVzcy1ydW4tbGVuZ3RoLWVuY29kZWQtbGlzdC8=">1313. 解压缩编码列表<i class="fa fa-external-link-alt"></i></span></h2><p>解法一:</p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span>[] decompressRLElist(<span class="type">int</span>[] nums) &#123;</span><br><span class="line"> <span class="type">int</span> <span class="variable">resultLength</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="type">int</span> <span class="variable">loop</span> <span class="operator">=</span> nums.length / <span class="number">2</span>;</span><br><span class="line"> <span class="comment">// 计算目标数组的长度</span></span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">0</span>; i &lt; loop; i++) &#123;</span><br><span class="line"> resultLength += nums[<span class="number">2</span> * i];</span><br><span class="line"> &#125;</span><br><span class="line"> <span class="comment">// 执行解码操作</span></span><br><span class="line"> <span class="type">int</span>[] result = <span class="keyword">new</span> <span class="title class_">int</span>[resultLength];</span><br><span class="line"> <span class="type">int</span> <span class="variable">resultIndex</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">0</span>; i &lt; loop; i++) &#123;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">j</span> <span class="operator">=</span> <span class="number">0</span>; j &lt; nums[<span class="number">2</span> * i]; j++) &#123;</span><br><span class="line"> result[resultIndex] = nums[<span class="number">2</span> * i + <span class="number">1</span>];</span><br><span class="line"> resultIndex++;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"> <span class="keyword">return</span> result;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时:1ms,内存消耗:37.8MB。</em> </p>

2019/12/24
阅读更多

ARTS-12

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="1295-统计位数为偶数的数字"><a href="#1295-统计位数为偶数的数字" class="headerlink" title="1295. 统计位数为偶数的数字"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvZmluZC1udW1iZXJzLXdpdGgtZXZlbi1udW1iZXItb2YtZGlnaXRzLw==">1295. 统计位数为偶数的数字<i class="fa fa-external-link-alt"></i></span></h2><p>题解:</p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span> <span class="title function_">findNumbers</span><span class="params">(<span class="type">int</span>[] nums)</span> &#123;</span><br><span class="line"> <span class="type">int</span> <span class="variable">count</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> num : nums) &#123;</span><br><span class="line"> <span class="type">int</span> <span class="variable">bits</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">do</span> &#123;</span><br><span class="line"> num = num / <span class="number">10</span>;</span><br><span class="line"> bits++;</span><br><span class="line"> &#125; <span class="keyword">while</span> (num != <span class="number">0</span>);</span><br><span class="line"></span><br><span class="line"> <span class="keyword">if</span> (bits % <span class="number">2</span> == <span class="number">0</span>) &#123;</span><br><span class="line"> count++;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">return</span> count;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时:1ms,内存消耗:38.7MB。</em> </p>

2019/12/22
阅读更多

ARTS-11

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="1304-和为零的N个唯一整数"><a href="#1304-和为零的N个唯一整数" class="headerlink" title="1304. 和为零的N个唯一整数"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvZmluZC1uLXVuaXF1ZS1pbnRlZ2Vycy1zdW0tdXAtdG8temVyby8=">1304. 和为零的N个唯一整数<i class="fa fa-external-link-alt"></i></span></h2><p>解法一:</p> <p>钻了个漏洞。</p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span>[] sumZero(<span class="type">int</span> n) &#123;</span><br><span class="line"> <span class="keyword">if</span> (n &lt;= <span class="number">1</span>) &#123;</span><br><span class="line"> <span class="keyword">return</span> <span class="keyword">new</span> <span class="title class_">int</span>[]&#123;<span class="number">0</span>&#125;;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="type">int</span>[] result = <span class="keyword">new</span> <span class="title class_">int</span>[n];</span><br><span class="line"> <span class="type">int</span> <span class="variable">initNumber</span> <span class="operator">=</span> <span class="number">1</span>, sum = <span class="number">0</span>;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">0</span>; i &lt; n - <span class="number">1</span>; i++) &#123;</span><br><span class="line"> result[i] = initNumber;</span><br><span class="line"> sum += initNumber;</span><br><span class="line"> initNumber++;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> result[n - <span class="number">1</span>] = -sum;</span><br><span class="line"> <span class="keyword">return</span> result;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时:0ms,内存消耗:34.9MB。</em> </p>

2019/12/21
阅读更多

不尝试一下, 你怎么知道自己不行?

<p>打卡这么简单的事, 真的能影响到我? </p> <h3 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h3><p><em>ARTS 起源于 <span class="exturl" data-url="aHR0cHM6Ly93ZWliby5jb20vaGFvZWw=">陈皓<i class="fa fa-external-link-alt"></i></span> 老师的 <span class="exturl" data-url="aHR0cDovL2drLmxpbmsvYS8xMGY4aQ==">左耳听风<i class="fa fa-external-link-alt"></i></span> 课程, 我们在其基础上做了一丢丢改造, 感谢 <span class="exturl" data-url="aHR0cHM6Ly93ZWliby5jb20vaGFvZWw=">陈皓<i class="fa fa-external-link-alt"></i></span> 老师.</em> </p> <p>两个月前, 我的朋友 <span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpVeE1EQXdORE0wT0E9PSZtaWQ9MjI0NzQ4NTA1MCZpZHg9MSZzbj1mOTdjYzQ1ZTk0Nzk3YjJjN2JjZTQ3MTBkOWIxMzQ1YiZjaGtzbT1mOTA4ZGI2OWNlN2Y1MjdmMmZkYmU4YzBlZWMxZTZlZmE5MjNiMmQzNTg0NDlmNGFmOTk2ZThmNWVhZDM4ZGExZmI3NjMyZThiNTFjJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1NzY4OTgzOTg2NDYmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQma2V5PTBjMzYzZGZlMGQ5MmRkNzQ4MmMwZGE3MWEzYTNlOTc0MzRmMWJhZGQ2YjgwMzYxNDBiMTVjYjNjZGY4NWNmY2VmY2VhZGM0ZDVlZGNjYWQxOTMwODViODU0ZjhhNTc2NzgzMmRlODFmY2YwNjBlNzUwOTVmMzllMTE4ODdlMTFhOGMyZDUzNWExYjAwZDlmNTBkYWVhYzQ4NzFjMTg0MDkmYXNjZW5lPTEmdWluPU1qTXhORGMzT0RBMk1RPT0mZGV2aWNldHlwZT1XaW5kb3dzK1hQJnZlcnNpb249NjIwNjA4NDEmbGFuZz16aF9DTiZleHBvcnRrZXk9QS90OVdicjhZTUEyZmdBaENZTzFHN2c9JnBhc3NfdGlja2V0PUFyckxxZVdvSEdkT3Z3b21HbWZTWkY2L21PUm41RFk2bUdwTm5kd2hYc0hFeTllOHE1S2xacy80N0M5aHJBOVA=">大蕉<i class="fa fa-external-link-alt"></i></span> 发起了一个为期 8 周的 ARTS 打卡活动: </p> <blockquote> <p>每周打卡,自行创建一个博客地址。</p> <p>打卡要求:<br>8人8周为一个小组。入群门槛188,8周完成全额退款,若全员完成,大蕉发188红包。</p> <p>一周没打卡,请发10*当前人数红包一个。<br>两周没打卡,请退群。</p> <p>打卡条件:<br>大家自发每周完成一个ARTS:<br>(也就是 Algorithm、Review、Tip、Share 简称ARTS)</p> <p>(高级打卡组)<br>1.每周至少做一个 leetcode 的算法题<br>2.阅读并点评至少一篇英文技术文章<br>3.学习至少一个技术技巧(编程或其他)<br>4.编写一篇有观点和思考的技术文章(500字以内)</p> <p>(初级打卡组)<br>1.每周至少做一个 leetcode 的算法题或者小玩具代码<br>2.阅读至少一篇英文技术文章<br>4.编写一篇文章(500字以内)</p> <p>入群流程:<br>转账即报名,请描述自己想进入初级还是高级组</p> <p>承诺:<br>我不承诺你一定能坚持下去,但我承诺你坚持下去肯定会看见不一样的自己</p> </blockquote> <p>乍一看, 似乎很简单, 也似乎很难. </p> <p>一咬牙, 我加入了这个计划. </p>

2019/12/21
阅读更多

ARTS-10

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="1252-奇数值单元格的数目"><a href="#1252-奇数值单元格的数目" class="headerlink" title="1252. 奇数值单元格的数目"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvY2VsbHMtd2l0aC1vZGQtdmFsdWVzLWluLWEtbWF0cml4Lw==">1252. 奇数值单元格的数目<i class="fa fa-external-link-alt"></i></span></h2><h3 id="解法一"><a href="#解法一" class="headerlink" title="解法一"></a>解法一</h3><p>思路:</p> <p>因为题目中行列式每次数据变换都是整行或者整列同时进行的, 所以只需要统计每一行和每一列会被自增多少次即可. 最后对应行和列的统计结果相加即为对应坐标的数值.</p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span> <span class="title function_">oddCells</span><span class="params">(<span class="type">int</span> n, <span class="type">int</span> m, <span class="type">int</span>[][] indices)</span> &#123;</span><br><span class="line"> <span class="type">int</span>[] rows = <span class="keyword">new</span> <span class="title class_">int</span>[n];</span><br><span class="line"> <span class="type">int</span>[] columns = <span class="keyword">new</span> <span class="title class_">int</span>[m];</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span>[] axis : indices) &#123;</span><br><span class="line"> rows[axis[<span class="number">0</span>]]++;</span><br><span class="line"> columns[axis[<span class="number">1</span>]]++;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="type">int</span> <span class="variable">oddNumber</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> row : rows) &#123;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> column : columns) &#123;</span><br><span class="line"> <span class="keyword">if</span> ((row + column) % <span class="number">2</span> == <span class="number">1</span>) &#123;</span><br><span class="line"> oddNumber++;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">return</span> oddNumber;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时: 1ms, 内存消耗: 38.7MB.</em></p>

2019/12/15
阅读更多

我一个程序员, 心血来潮建了个写作群

<p>没错, 我一个程序员, 心血来潮建了个写作群.</p> <h2 id="大学"><a href="#大学" class="headerlink" title="大学"></a>大学</h2><p>大学生涯, 我经历的似乎只有失败二字.</p> <p>大一上学期就开始挂科, 一直持续到毕业. 40 学分劝退, 曾一度挂到了 39 个学分. 学习上, 我无疑是失败的.</p> <p>同班 29 人, 与我交好的只有 4 人. 同校 4 万人, 毕业后还有联系的, 屈指可数. 大学前, 整个学校都是我的好朋友, 大学后, 却和他们越走越远. 交际上, 我依然是失败的.</p> <p>大学前, 我可以很自豪地说自己喜欢计算机, 说自己喜欢 DIY, 说自己喜欢轮滑. 大学后, 却一事无成. 就连兴趣爱好, 我都是失败的.</p> <p>摸爬滚打两个月, 找到了全班最差的工作; 无可奈何签合同, 拿了同岗位最低的薪水. 甚至还被忽悠着贷款购买了两万块的 Python 课程. 找工作, 当然还是失败的.</p>

2019/12/12
阅读更多

ARTS-No.8

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="1266-访问所有点的最小时间"><a href="#1266-访问所有点的最小时间" class="headerlink" title="1266. 访问所有点的最小时间"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvbWluaW11bS10aW1lLXZpc2l0aW5nLWFsbC1wb2ludHMv">1266. 访问所有点的最小时间<i class="fa fa-external-link-alt"></i></span></h2><h3 id="思路"><a href="#思路" class="headerlink" title="思路:"></a>思路:</h3><p>这其实更像是一个数学问题. </p> <p>因为需要<strong>按顺序</strong>访问所有点, 所以可以把问题简化为计算两个点之间的最小距离, 最后把每两个点之间的最小距离累加, 问题得解. </p> <p>接下来要计算两个点之间的最小距离, 因为走对角线的效率是分别走横竖的两倍, 所以我们要尽可能多地走对角线. 那么两个点之间势必会形成一块而走对角线的正方形区域, 正方形的边长就是以两点为对角形成的长方形的较短的一条边. 剩余的距离一直横着或者竖着走即可. 问题得解. </p> <h3 id="代码"><a href="#代码" class="headerlink" title="代码:"></a>代码:</h3><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span> <span class="title function_">minTimeToVisitAllPoints</span><span class="params">(<span class="type">int</span>[][] points)</span> &#123;</span><br><span class="line"> <span class="keyword">if</span> (points.length &lt;= <span class="number">1</span>) &#123;</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="type">int</span> <span class="variable">total</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="type">int</span>[] last = points[<span class="number">0</span>];</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">1</span>; i &lt; points.length; i++) &#123;</span><br><span class="line"> <span class="type">int</span>[] current = points[i];</span><br><span class="line"> <span class="type">int</span> <span class="variable">x</span> <span class="operator">=</span> Math.abs(current[<span class="number">0</span>] - last[<span class="number">0</span>]);</span><br><span class="line"> <span class="type">int</span> <span class="variable">y</span> <span class="operator">=</span> Math.abs(current[<span class="number">1</span>] - last[<span class="number">1</span>]);</span><br><span class="line"></span><br><span class="line"> <span class="type">int</span> <span class="variable">italic</span> <span class="operator">=</span> Math.min(x, y);</span><br><span class="line"> <span class="type">int</span> <span class="variable">straight</span> <span class="operator">=</span> Math.max(x, y) - italic;</span><br><span class="line"> <span class="type">int</span> <span class="variable">move</span> <span class="operator">=</span> italic + straight;</span><br><span class="line"> total += move;</span><br><span class="line"></span><br><span class="line"> last = current;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">return</span> total;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时: 1ms, 内存消耗: 41.4MB.</em> </p>

2019/12/9
阅读更多

ARTS-No.9

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="66-加一"><a href="#66-加一" class="header

2019/12/9
阅读更多

实验-时间梳理

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>毕业差不多一年了, 一年之中似乎每天都在寻求着进步, 一年之后又觉得其实自己并没有进步. 碌碌无为, 好像就是我每天不断重复的循环.</p> <p>意识到这个问题之后便开始尝试破除当下的困境, 恰巧上周看到一篇文章: <span class="exturl" data-url="aHR0cHM6Ly9naXRib29rLmNuL2Jvb2tzLzVjZjc0OTc2NTE0MGZmNDU0Yzg0ZDRlMy9pbmRleC5odG1sIzM=">如何利用碎片时间,提升自己的职场竞争优势<i class="fa fa-external-link-alt"></i></span>, 感觉应该有用, 不仿就先试试文章中提到的时间梳理吧.</p> <h2 id="时间梳理-现状"><a href="#时间梳理-现状" class="headerlink" title="时间梳理-现状"></a>时间梳理-现状</h2><p>以半小时为时间片段进行分割, 现阶段我的时间使用情况如下:</p>

2019/12/8
阅读更多

ARTS-No.7

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="35-搜索插入位置"><a href="#35-搜索插入位置" class="headerlink" title="35. 搜索插入位置"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvc2VhcmNoLWluc2VydC1wb3NpdGlvbi8=">35. 搜索插入位置<i class="fa fa-external-link-alt"></i></span></h2><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span> <span class="title function_">searchInsert</span><span class="params">(<span class="type">int</span>[] nums, <span class="type">int</span> target)</span> &#123;</span><br><span class="line"> <span class="keyword">if</span> (nums == <span class="literal">null</span>) &#123;</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">0</span>; i &lt; nums.length; i++) &#123;</span><br><span class="line"> <span class="keyword">if</span> (target &lt;= nums[i]) &#123;</span><br><span class="line"> <span class="keyword">return</span> i;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">return</span> nums.length;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时: 0ms, 内存消耗: 38.5MB.</em> </p>

2019/11/22
阅读更多

ARTS-No.6

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="27-移除元素"><a href="#27-移除元素" class="headerlink" title="27. 移除元素"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvcmVtb3ZlLWVsZW1lbnQv">27. 移除元素<i class="fa fa-external-link-alt"></i></span></h2><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span> <span class="title function_">removeElement</span><span class="params">(<span class="type">int</span>[] nums, <span class="type">int</span> val)</span> &#123;</span><br><span class="line"> <span class="keyword">if</span> (nums == <span class="literal">null</span>) &#123;</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="type">int</span> <span class="variable">insertIndex</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">0</span>; i &lt; nums.length; i++) &#123;</span><br><span class="line"> <span class="keyword">if</span> (nums[i] != val) &#123;</span><br><span class="line"> nums[insertIndex] = nums[i];</span><br><span class="line"> insertIndex++;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">return</span> insertIndex;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时: 0ms, 内存消耗: 35.3MB.</em> </p>

2019/11/22
阅读更多

修复 wine 微信黑色色块问题

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>如果你看不懂标题, 那么恭喜你, 没有遇到这个心烦的问题.</p> <p>Linux 下使用 wine 微信有一定概率会出现烦人的黑色色块, 看它不爽, 却又无可奈何, 极大地影响了用户体验. 刚好在 github 看到了一个解决方案, 整理记录至此.</p> <h2 id="环境"><a href="#环境" class="headerlink" title="环境"></a>环境</h2><p>编辑本文时笔者电脑的环境是:</p> <ul> <li>Ubuntu 19.10</li> <li>deepin-wine-ubuntu 2018-12-ubuntu3</li> <li>deepin-wine-wechat</li> </ul> <p>其他环境请自行举一反三.</p>

2019/11/19
阅读更多

ARTS-No.5

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="26-删除排序数组中的重复项"><a href="#26-删除排序数组中的重复项" class="headerlink" title="26. 删除排序数组中的重复项"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvcmVtb3ZlLWR1cGxpY2F0ZXMtZnJvbS1zb3J0ZWQtYXJyYXkv">26. 删除排序数组中的重复项<i class="fa fa-external-link-alt"></i></span></h2><h3 id="解法一:"><a href="#解法一:" class="headerlink" title="解法一:"></a>解法一:</h3><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span> <span class="title function_">removeDuplicates</span><span class="params">(<span class="type">int</span>[] nums)</span> &#123;</span><br><span class="line"> <span class="keyword">if</span> (nums.length &lt;= <span class="number">1</span>) &#123;</span><br><span class="line"> <span class="keyword">return</span> nums.length;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="type">int</span> scanIndex;</span><br><span class="line"> <span class="type">int</span> <span class="variable">insertIndex</span> <span class="operator">=</span> <span class="number">1</span>;</span><br><span class="line"> <span class="type">int</span> <span class="variable">compareIndex</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="type">int</span> <span class="variable">length</span> <span class="operator">=</span> <span class="number">1</span>;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">for</span> (scanIndex = <span class="number">1</span>; scanIndex &lt; nums.length; scanIndex++) &#123;</span><br><span class="line"> <span class="keyword">if</span> (nums[scanIndex] != nums[compareIndex]) &#123;</span><br><span class="line"> nums[insertIndex] = nums[scanIndex];</span><br><span class="line"> insertIndex++;</span><br><span class="line"> length++;</span><br><span class="line"> compareIndex = scanIndex;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">return</span> length;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时: 1ms, 内存消耗: 41.5MB.</em> </p>

2019/11/17
阅读更多

ARTS-No.4

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="1108-IP-地址无效化"><a href="#1108-IP-地址无效化" class="headerlink" title="1108. IP 地址无效化"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvZGVmYW5naW5nLWFuLWlwLWFkZHJlc3Mv">1108. IP 地址无效化<i class="fa fa-external-link-alt"></i></span></h2><ul> <li><p>解法一: </p> <p>直接调用 Java String 的 replaceAll() 方法, 因为该方法内部实现使用了正则匹配, 所以执行效率不高. </p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> String <span class="title function_">defangIPaddr</span><span class="params">(String address)</span> &#123;</span><br><span class="line"> <span class="keyword">return</span> address == <span class="literal">null</span> ? <span class="literal">null</span> : address.replaceAll(<span class="string">&quot;\\.&quot;</span>, <span class="string">&quot;[\\.]&quot;</span>);</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时: 3ms, 内存消耗: 34.4MB.</em> </p>

2019/11/13
阅读更多

wine 应用程序全局快捷键无效的解决方案

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>在 Ubuntu 下我们经常会使用 Wine 或者 Crossover 运行 Windows 应用程序. 当应用程序切换到后台时, 是无法响应预设的全局快捷键的. 比如”打开微信”的快捷键 <code>ctrl</code> + <code>alt</code> + <code>w</code> 在这种情况下就无法响应.</p> <p>我们可以借助一个小工具 xdotool 来解决这个问题.</p> <p>注:</p> <ul> <li>此方法在 Ubuntu 17, 18, 19 全系列测试通过, 其他平台未作测试, 理论通用;</li> <li>本文以 “打开微信” 快捷键为例, 其他应用以此类推;</li> </ul> <h2 id="方法"><a href="#方法" class="headerlink" title="方法"></a>方法</h2><h3 id="1-安装-xdotool"><a href="#1-安装-xdotool" class="headerlink" title="1. 安装 xdotool"></a>1. 安装 xdotool</h3><p>直接在命令行运行以下命令即可:</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt install --no-install-recommends xdotool</span><br></pre></td></tr></table></figure>

2019/11/9
阅读更多

ARTS-No.3

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h4 id="771-宝石与石头"><a href="#771-宝石与石头" class="headerlink" title="771. 宝石与石头"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvamV3ZWxzLWFuZC1zdG9uZXMv">771. 宝石与石头<i class="fa fa-external-link-alt"></i></span></h4><ul> <li><p>解法一: </p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span> <span class="title function_">numJewelsInStones</span><span class="params">(String J, String S)</span> &#123;</span><br><span class="line"> <span class="type">int</span> <span class="variable">total</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="type">StringBuffer</span> <span class="variable">oldString</span> <span class="operator">=</span> <span class="keyword">new</span> <span class="title class_">StringBuffer</span>(S), newString = <span class="keyword">new</span> <span class="title class_">StringBuffer</span>();</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">j</span> <span class="operator">=</span> <span class="number">0</span>; j &lt; J.length(); j++) &#123;</span><br><span class="line"> <span class="type">char</span> <span class="variable">current</span> <span class="operator">=</span> J.charAt(j);</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">s</span> <span class="operator">=</span> <span class="number">0</span>; s &lt; oldString.length(); s++) &#123;</span><br><span class="line"> <span class="type">char</span> <span class="variable">stone</span> <span class="operator">=</span> oldString.charAt(s);</span><br><span class="line"> <span class="keyword">if</span> (stone == current) &#123;</span><br><span class="line"> total += <span class="number">1</span>;</span><br><span class="line"> <span class="keyword">continue</span>;</span><br><span class="line"> &#125;</span><br><span class="line"> newString.append(stone);</span><br><span class="line"> &#125;</span><br><span class="line"> oldString = <span class="keyword">new</span> <span class="title class_">StringBuffer</span>(newString);</span><br><span class="line"> newString = <span class="keyword">new</span> <span class="title class_">StringBuffer</span>();</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">return</span> total;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时: 4ms, 内存消耗: 35.7MB.</em></p> </li> </ul>

2019/11/5
阅读更多

月刊-201911

<h1 id="见闻"><a href="#见闻" class="headerlink" title="见闻"></a>见闻</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpBNU16VXdOalV6TUE9PSZtaWQ9MjY1MDI1NzU0NyZpZHg9MSZzbj1iOWM4NjMzODQ2OGEzMDQ5MGU5MmUyOTMwMzU4Njk2MSZjaGtzbT04ODVmYzYwNmJmMjg0ZjEwNDE1NGY5NTdlNmU4NmYwYzY5YTYwMTFhZjZiZGU0YjljNzI2MjZiM2JhMWJlNjU0MDJlYWVmNDU3YWM5Jm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1NzI3NzQ3MzgyODMmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">61岁中国大爷靠“玩”木头火了,网友:简直是宝藏爷爷!<i class="fa fa-external-link-alt"></i></span> </p> <p>文章介绍了一位把传统手艺玩成精的木工爷爷. 当擅长和热爱指向一处, 往往能发挥出无穷潜力. </p> <p>另, 网络以及自媒体的普及, 确实让真正有才华的人被看见. </p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9EUTJNREl5TUE9PSZtaWQ9MjY1MDcxNjQyOCZpZHg9MSZzbj04ZTdmYjhhZGZmMzM2N2I2NzdkYTI5MjNlZjM0ODU1NCZjaGtzbT1iZWMwNzc1Zjg5YjdmZTQ5NmNkYTcyMDhiN2E3ZmUzZTc1NDBkMDNjNDQzN2Y0ODg2YmY5ZjdhN2ZkOTA5NGRkNWNjM2NhOTg1OGQwJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZzaGFyZXJfc2hhcmV0aW1lPTE1NzI3NjE3OTM0NjQmc2hhcmVyX3NoYXJlaWQ9OTI0MjkyNjcxNzExNDFmYTM4NzJkYjRlNjVkNjViZDQjcmQ=">Java 之父:你至少得会两门语言<i class="fa fa-external-link-alt"></i></span> </p> <p>文章介绍了 Java 之父 James Gosling 的传奇经历, 文中有段话我觉得十分优秀: </p> <blockquote> <p>你投入到程序中的精力越多,用户使用时遇到麻烦和折腾的精力就会越少,程序员要做的,正是在开发端和用户端之间尽量平衡开发和用户使用的复杂度。</p> </blockquote> </li> </ul>

2019/11/3
阅读更多

部署 Hexo 博客到 VPS

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>Hexo + Github Pages 本是绝顶搭配, 无奈最近国内访问速度越来越慢, 实在不忍直视.</p> <p>虽说国内也有 Gitee.com 和 Coding.net 提供类似服务, 但都不完全免费, 甚至还有广告, 不在考虑范围之内.</p> <p>最终只好忍痛买了个云主机, 开启博客搬迁之旅.</p>

2019/11/2
阅读更多

ARTS-No.2

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="整数反转"><a href="#整数反转" class="headerlink" title="整数反转"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvcmV2ZXJzZS1pbnRlZ2VyLw==">整数反转<i class="fa fa-external-link-alt"></i></span></h2><p>题解: </p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span> <span class="title function_">reverse</span><span class="params">(<span class="type">int</span> x)</span> &#123;</span><br><span class="line"> <span class="type">int</span> <span class="variable">result</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="type">int</span> temp;</span><br><span class="line"> <span class="keyword">while</span> (x != <span class="number">0</span>) &#123;</span><br><span class="line"> temp = x % <span class="number">10</span>;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">if</span> (result &gt; Integer.MAX_VALUE / <span class="number">10</span> || (result == Integer.MAX_VALUE / <span class="number">10</span> &amp;&amp; Integer.MAX_VALUE - result &lt; temp)) &#123;</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">if</span> (result &lt; Integer.MIN_VALUE / <span class="number">10</span> || (result == Integer.MIN_VALUE / <span class="number">10</span> &amp;&amp; Integer.MIN_VALUE - result &gt; temp)) &#123;</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> result *= <span class="number">10</span>;</span><br><span class="line"> result += temp;</span><br><span class="line"></span><br><span class="line"> x = x / <span class="number">10</span>;</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> <span class="keyword">return</span> result;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行用时: 1ms, 内存消耗: 33.7MB</em> </p>

2019/11/2
阅读更多

Windows 软件推荐

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>分享一些自己喜欢的 Windows 软件, 希望能够帮助大家提高工作 &#x2F; 学习效率.</p> <h2 id="系统安装"><a href="#系统安装" class="headerlink" title="系统安装"></a>系统安装</h2><p>这里只介绍我喜欢用的工具, 不作深入探讨.</p> <ul> <li><p><span class="exturl" data-url="aHR0cDovL3d3dy53ZXBlLmNvbS5jbi8=">WePE<i class="fa fa-external-link-alt"></i></span></p> <p>简洁纯净的 PE 系统.</p> </li> <li><p><span class="exturl" data-url="aHR0cDovL21zZG4uaXRlbGx5b3UuY24v">系统<i class="fa fa-external-link-alt"></i></span></p> <p>纯净 Windows 镜像.</p> </li> <li><p>驱动</p> <p>建议到主板官网下载, 不推荐使用 驱动精灵, 驱动人生 等流氓软件.</p>

2019/10/26
阅读更多

ARTS-No.1

<h1 id="Algorithm"><a href="#Algorithm" class="headerlink" title="Algorithm"></a>Algorithm</h1><h2 id="Two-Sum"><a href="#Two-Sum" class="headerlink" title="Two Sum"></a><span class="exturl" data-url="aHR0cHM6Ly9sZWV0Y29kZS1jbi5jb20vcHJvYmxlbXMvdHdvLXN1bS8=">Two Sum<i class="fa fa-external-link-alt"></i></span></h2><ul> <li><p>解法一: 暴力循环</p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> &#123;</span><br><span class="line"> <span class="keyword">public</span> <span class="type">int</span>[] twoSum(<span class="type">int</span>[] nums, <span class="type">int</span> target) &#123;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">0</span>; i &lt; nums.length - <span class="number">1</span>; i++) &#123;</span><br><span class="line"> <span class="type">int</span> <span class="variable">temp</span> <span class="operator">=</span> target - nums[i];</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">j</span> <span class="operator">=</span> i + <span class="number">1</span>; j &lt; nums.length; j++) &#123;</span><br><span class="line"> <span class="keyword">if</span> (nums[j] == temp) &#123;</span><br><span class="line"> <span class="keyword">return</span> <span class="keyword">new</span> <span class="title class_">int</span>[]&#123;i, j&#125;;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"> <span class="keyword">return</span> <span class="literal">null</span>;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure> <p><em>执行耗时: 17ms, 内存消耗: 37.4MB</em></p>

2019/10/24
阅读更多

月刊-201907

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpJeE1qSTFNRGN5TVE9PSZtaWQ9MjI0NzUxNTQ5MCZpZHg9MyZzbj03NWIxMmNkOGJlMTcxOGU1M2EzYzRkMDllYzRjNDFhYiZjaGtzbT05NzRhMDQ2Y2EwM2Q4ZDdhYWNlN2U4MzRkNWEyYTgwNmMyNGM3ZTI5MjAzMjVkYmViZjk3OTZhOGE1ZDM1MDc4NjAwMDBhOGNmN2E1Jm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSNyZA==">这十七个学习网站,值得你去浪费时光<i class="fa fa-external-link-alt"></i></span> </p> <p>文章总结了一些优秀的学习网站. </p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vYW5ha2luL3AvNzc0Mjc3OS5odG1s">Java8 lambda表达式10个示例<i class="fa fa-external-link-alt"></i></span> </p> <p>关于 Java lambda 表达式的一篇文章.</p> </li> </ul>

2019/7/7
阅读更多

月刊-201906

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9EUTJNREl5TUE9PSZtaWQ9MjY1MDcxNTk4NSZpZHg9MSZzbj03MDUxZGIwN2IyZTI1YzkzY2NjZWZhMjNiN2QzMTA3MCZjaGtzbT1iZWMwNzkwMjg5YjdmMDE0MzE3ZjUxODE0NDVhNmJkYmViNDc1MGY0NTE5MjhjODg3ZWYwYzcxZTJlODRiZGRmNmFlZWM3ZTcxMDE1Jm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPTA2MTk0cUkyRExWdENiNTdvS1ozdWp6QSNyZA==">YC 掌门人 Sam:7 种特质帮你成功<i class="fa fa-external-link-alt"></i></span> </p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9ibG9nLnQ5dC5pby90cmFuc3BhcmVudC1zdGFydHVwLWV4cGVyaW1lbnQtMjAxOS0wNS0yMC8=">我的透明创业实验<i class="fa fa-external-link-alt"></i></span> </p> <blockquote> <p>一个正在进行的创业实验,一年时间做10个小产品,看看能否达到每月被动收入1000美元的目标。</p> </blockquote> </li> </ul>

2019/6/19
阅读更多

月刊-201905

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpnNU16RTJPRE01TlE9PSZtaWQ9MjI0NzQ4NDIxMCZpZHg9MSZzbj1hZDJmYTcwZjQ2NzY3MGViMDY1NWQ4MjA5ZDQyYjQ1ZSZjaGtzbT1jMDMzYmQ1NmY3NDQzNDQwOTVlMGE4YmM2YmM4MDRhODNkNTgwYWU5ZjY5OTMxNTEyNjNhYWVlZTQ1NjMwZDlmNGFiZDYwODc1NmI4Jm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSNyZA==">电子邮件,应该是这样写滴(n个好习惯让我们避免互相伤害)<i class="fa fa-external-link-alt"></i></span> </p> <p>写邮件的一些注意事项, 算是基础的办公技能 &#x2F; 礼仪吧. </p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpJM09EY3hNelF6TXc9PSZtaWQ9MjI0NzQ4OTM0NiZpZHg9MiZzbj1mNGRhMjlmNTMyMDdhNDQyMDc5YTZlZjY5MjM4MjIxMSZjaGtzbT1lYjUzOTI3NGRjMjQxYjYyN2QxMjI4NGE1ZTNjYzUzNjIyYjBhM2JiYzlkNTQzNDYwYjhiOTFjOTA0ZWYxZjk1NjFkZGVkNmE3YjJlJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSZrZXk9MzkyMTJlMGExOWE1Nzc4N2ViNjFlOTg5ZjkzNDc0NThmNjNjZmFjZjUyMTA5YzY4ZGUxZmQ0YzIwNzNlYzAyMzgwNDQwMjU0M2UyMWJmN2YyOWQ3MTdjMzhmZDE1NDdhOGY5NmRmZTJjZGRkNjIzZTFlZGZjODhlM2U0NWMzY2Q4OWE1ZGFlNTFmNGJlNDIzNDgxNGUwY2M3NTYxYjlhNSZhc2NlbmU9MSZ1aW49TWpNeE5EYzNPREEyTVE9PSZkZXZpY2V0eXBlPVdpbmRvd3MrMTAmdmVyc2lvbj02MjA2MDczOSZsYW5nPXpoX0NOJnBhc3NfdGlja2V0PUkwUkVmKzZkc213aGFXT2VxaHE0cUo0eXRlSitBTDVIeUd3OEpNT0Y2TkFQZHIvUTJkb2tZMlV3bEJPZmFCYWs=">数据库怎么分库分表,垂直?水平?<i class="fa fa-external-link-alt"></i></span> </p> <p>文章分享了一些数据库分库分表的看法. </p> </li> <li><p><span class="exturl" data-url="aHR0cDovL3d3dy5jbmJsb2dzLmNvbS94eWJhYnkvcC85MDU1NzM0Lmh0bWw=">性能优化指南:性能优化的一般性原则与方法<i class="fa fa-external-link-alt"></i></span> </p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpBeE1qY3lOakU1TVE9PSZtaWQ9MjY1MDQ4ODc1MiZpZHg9MSZzbj0xMWNmYjFkMzdkNWM0YWZiZmM1YzA0OTRmNmNlYzM1NCZjaGtzbT04M2EyZTU3MGI0ZDU2YzY2ODdjNmU2ZDY1YWM5OTk3M2U0ZWYwNmJlNzRhM2EyYzQzZmFmMjgwYWQzMThiZjNjYzJkNDk2MjE2MTY3Jm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPTA0MjhWUW5EbE5uZ3VseFVDYVdqRURBUSZrZXk9ZmFhNWJjYzg0MjcxZDZiMTJmYTFkYWFkMjJmZDEwZTFhODY3MGEyNmJiMDdmNmZhNTllNzYwNWRjYzc2NTZjYTI2OTVkM2QzMDIzZmVjN2M3ZmNiZWNjYmVkOTBmN2M4NzFlYTQ2MzM5MDExZDFjZWJlYjQyNjM2YzkxNjQ5MjEwOTY5ZWY4NTkzZDU0MjU5MWI2N2MyNjc1MTIwNzFhZiZhc2NlbmU9MSZ1aW49TWpNeE5EYzNPREEyTVE9PSZkZXZpY2V0eXBlPVdpbmRvd3MrMTAmdmVyc2lvbj02MjA2MDczOSZsYW5nPXpoX0NOJnBhc3NfdGlja2V0PXI3Q2o3VEdEM3hYdTVwQUhNUkswaUUzeGN4VHp6aW8zNHllS2x3MlhValFWdEFIN0R3dnlFajZsQ1VVQkUxbzY=">完备的 AI 学习路线,最详细的资源整理!<i class="fa fa-external-link-alt"></i></span></p> </li> </ul>

2019/5/2
阅读更多

月刊-201904

<h1 id="优秀文章"><a href="#优秀文章" class="headerlink" title="优秀文章"></a>优秀文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpBd05ERTJOVGd6TlE9PSZtaWQ9MjI0NzQ4NTYwNCZpZHg9MSZzbj1iMzNjMDc0MjcyMTU3YzVhMDYyNzAyZWVkMDQxNmIwMiZjaGtzbT05YjMxNTEwMGFjNDZkODE2NGI3NzQ0NjY0YjYxZjg0ZmYyZDQ0NzAwMzRmNjNkYWQzYzM0NWFkZjFkNTk5MWUxZWZlNmVkM2RmOWEzJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPTAxMjhvbWpxNm5aVnRabmthb253WGVPaCNyZA==">基于MySQL数据库下亿级数据的分库分表<i class="fa fa-external-link-alt"></i></span> </p> <p>文章结合具体业务场景介绍了 MySQL 数据库下亿级数据的分库分表方案. </p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpJNE5qYzVOak0xTlE9PSZtaWQ9MjI0NzQ4Nzk5MiZpZHg9MSZzbj1mMWI3NjAwYzExYzE5ZDA4ODE0MDcyOGQ3OWM1OGQyMiZjaGtzbT1lYmQ2MmVkNGRjYTFhN2MyYjhmOGM5N2QyNjYwZWRiYzhmZTczYzBlNmU4N2FkZmQzOWQwZmM1OTZiOGFhYTdjMTQ3MzgxNGMyYzYxJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSNyZA==">Mysql高性能优化规范建议<i class="fa fa-external-link-alt"></i></span> </p> <p>如题. </p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpJNE1ERXdOekF6Tmc9PSZtaWQ9MjY0OTQ0NTQ2MCZpZHg9MSZzbj1lNmFlODhlNmEyMGQzMWUzZmY1ZDczODI5ZmQyYmRlNSZjaGtzbT1mM2EyNzUyN2M0ZDVmYzMxYTFiODdhMWM3MDg1MjA4MmRlODk5ODQ0NWRhYjE2MDk1ZjliYjM3ZTNhOTA5MWU5NTY2N2JmM2FlYjA5Jm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSNyZA==">Linux发行版该如何选择<i class="fa fa-external-link-alt"></i></span> </p> <p>关于 Linux 各种发行版的一篇科普文章.</p> </li> </ul>

2019/4/2
阅读更多

月刊-201903

<ul> <li></li> </ul> <h1 id="优质文章"><a href="#优质文章" class="headerlink" title="优质文章"></a>优质文章</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpBNU9EVXpPVEEwT1E9PSZtaWQ9MjY1MTY4OTk0MyZpZHg9MSZzbj01M2I1YzJkMTg2OGU2YTcyOGZlOTQ4MGI3ZTNkMTNlNyZjaGtzbT04YjY5MzA5MWJjMWViOTg3NTJlOGVlZWQwZTllNWVhZmUyZWNhOWM0NjRlNDI0NjExODc3ZDEyYTdiMTZmNGI4MzU0MGZjMjg2MGY5Jm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSNyZA==">为什么Python不用设计模式?<i class="fa fa-external-link-alt"></i></span> </p> <p>文章用故事的形式, 幽默诙谐地道明了 python 与 java 的不同之处. 看完之后最大的感悟是: 学设计模式, 一定要透彻理解其精髓, 运用了什么方法, 解决了什么问题. 只有明白了原理, 才能活学活用. 其他知识也是如此. </p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TWpNNU9EUTJNREl5TUE9PSZtaWQ9MjY1MDcxNTUzNCZpZHg9MSZzbj04ZjdmZjM4Y2I2YjBmNzllNWEzNmZlOGI1ODBhMTRiMyZjaGtzbT1iZWMwN2JkZDg5YjdmMmNiMDg3ZWZmOWQ4OTkyYWRlMTE1MGRiOTU5YzgwNjIxMTI5MzIxYmRiYTEwMjc3NzFhMDZiNDg3MWI3MmU2Jm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPTAzMDVQYUV5NklnVUk5QnF4OGVjb1NtRyZrZXk9NjBmOTMyZGQ1YmM2ODAzOTExNjQyMTI5NjNmMDYyYTE2NTA3ZDAyZTU2NGU2OWI3ZDY4ZWVlNTQxNmQ5NmRjZWU4NGYzZGE5NGRlYmM1NTlmY2NiOTRmYzg0NDYxMjNjM2UwODIxYWU5ODYzOGFmMjkxNWQxOWUxNGE5MzJiZDA0YzBiYmJjY2JkYTNiMGZhM2JiYjhiYWYyZTQ5YjU5ZCZhc2NlbmU9MSZ1aW49TWpNeE5EYzNPREEyTVE9PSZkZXZpY2V0eXBlPVdpbmRvd3MrMTAmdmVyc2lvbj02MjA2MDcyOCZsYW5nPXpoX0NOJnBhc3NfdGlja2V0PTczekJYdXhGbW5WdWNpMW1SKzUvSnUvdFNpcDZqdTRuTmhqR1V3dTVSZnJXVVdIZ1Y1R1pIOHhTQk4yZTBQdFA=">阿里毕玄现身说法:程序员成长路线<i class="fa fa-external-link-alt"></i></span> </p> <p>阿里大神毕玄分享的成长路线, 可以参考. </p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpBNE5UUXdORGN5TUE9PSZtaWQ9MjY1MDY2NTY2NyZpZHg9MSZzbj02MGQzZTg0NGE1Njk2ZjRhMWRjNDM4MTJlMGU1OWQ4MyZjaGtzbT04N2QxMmY5Y2IwYTZhNjhhNjc3ZTAwYjk4MWViNjk2NjEwMjMxMjc5NmM1MTVkNzBlN2IzNzIwNWJmMmFhMjczZDViOWY0MjY2NmIyJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPTAzMjdTa08zRTVTckptc1ZSWWJYNXhqMiNyZA==">苹果发布会预示了什么?<i class="fa fa-external-link-alt"></i></span> </p> <blockquote> <p>苹果推出订阅式内容服务,而且特别强调,不会根据你的喜好和算法来给你个性化推荐,这其实表明了一种态度,对于有明辨能力的,对于相对高层次的人群,有能力知晓自己感兴趣的点,自己选择优质渠道订阅优质信息,而不用接受平台给你推荐的垃圾爽文,不用沉浸于不用思考就获取的自我满足感,这才是对自我提升有要求,对渴望获取优质信息人群的一种正确方式。</p> </blockquote> <p>这才是推荐算法该有的样子. </p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly93d3cuamlhbnNodS5jb20vcC81OGIzNDBhMDM3ZWE=">【CSS】渐变背景(background-image)<i class="fa fa-external-link-alt"></i></span> </p> <p>文章很详细地介绍了 CSS 渐变背景的各种知识.</p> </li> </ul>

2019/3/30
阅读更多

使用 yarn 安装 packages 之后出现 command not found 问题的解决办法

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>最近了解到 nodejs 的一款新的包管理器 yarn, 据说相对于 npm 来说有许多优点. 遂果断开启试用流程, 无奈遇到使用 yarn 安装 packages 之后出现 command not found 的问题, 这里写出我自己的解决方法.</p> <h2 id="解决"><a href="#解决" class="headerlink" title="解决"></a>解决</h2><ol> <li><p>工作环境</p> <figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">OS: Ubuntu 18.10 x86_64</span><br><span class="line">Kernel: 4.18.0-16-generic</span><br><span class="line">Shell: zsh 5.5.1</span><br></pre></td></tr></table></figure> <p>非 root 用户登录.</p> </li> <li><p>问题重现</p> <ul> <li><p>使用 yarn 安装 Angular CLI</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yarn global add @angular/cli</span><br></pre></td></tr></table></figure> <p><img data-src="https://picgo-daily.oss-cn-guangzhou.aliyuncs.com/picgo-daily/2023/0f5daeaa4f66909f26c441779dd8d3d1.png" alt="yarn-gloabl-add-angular-cli"></p>

2019/3/15
阅读更多

IDEA 下为 Spring Boot 项目开启热部署

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>因为最近接触了一丢丢 Spring Boot 下的 Web 开发工作, 每次进行一丢丢改动都要重启项目甚是麻烦. 所以查了一下 IDEA 下 Spring 项目开启热部署的方法, 特此记录, 以便查阅.</p> <h2 id="修改-pom-文件"><a href="#修改-pom-文件" class="headerlink" title="修改 pom 文件"></a>修改 pom 文件</h2><ol> <li><p>在 dependency 中添加 optional 属性并设置为 true:</p> <figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"> <span class="tag">&lt;<span class="name">dependencies</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">dependency</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">groupId</span>&gt;</span>org.springframework.boot<span class="tag">&lt;/<span class="name">groupId</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">artifactId</span>&gt;</span>spring-boot-devtools<span class="tag">&lt;/<span class="name">artifactId</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">optional</span>&gt;</span>true<span class="tag">&lt;/<span class="name">optional</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">dependency</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">dependencies</span>&gt;</span></span><br></pre></td></tr></table></figure>

2019/3/3
阅读更多

月刊-201902

<h1 id="资源推荐"><a href="#资源推荐" class="headerlink" title="资源推荐"></a>资源推荐</h1><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2Fvc2Fib29rLzUwMGxpbmVz">500 Lines or Less<i class="fa fa-external-link-alt"></i></span> | <span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL0hUNTI0LzUwMExpbmVvckxlc3NfQ04=">500 Lines or Less CN<i class="fa fa-external-link-alt"></i></span></p> <p>Python 入门神书, 中文翻译工作进行中.</p> </li> <li><p><span class="exturl" data-url="aHR0cDovL3poYW5nd2VubGkuY29tL2xpcHN0aWNrLw==">口红颜色可视化<i class="fa fa-external-link-alt"></i></span> | <span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL092aWxpYS9saXBzdGljaw==">Ovilia&#x2F;lipstick<i class="fa fa-external-link-alt"></i></span></p> <p>项目收集了上百种口红色号, 很是有趣.</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpBM056QTJNRE15TkE9PSZtaWQ9MjY1MDM1MDIwOSZpZHg9MSZzbj1lMjFmMzhkYjVhN2ZlOTcyNzlkYzljMDU4MWYxYWRhYyZjaGtzbT04NzVhNDMwYWIwMmRjYTFjZDc4ZGY3MjcxN2JjNDc0YzVkYmVjYzMzM2NlNzg4MmU3MzlmYjg2NTRkNTI4OTY0YWJhOGYyMzllZThkJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPSNyZA==">1月份GitHub上最热门的Java开源项目<i class="fa fa-external-link-alt"></i></span></p> <p>文中整理了数十个优秀的 Java 开源项目, 值得关注.</p>

2019/1/31
阅读更多

Java 逐行读取文本文件的几种方式以及效率对比

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>上周负责的模块中需要逐行读取文件内容, 写完之后对程序执行效率不太满意, 索性上网查了一下 Java 逐行读取文件内容的各种方法, 并且简单地比对了一下执行效率. 在此记录, 希望能够帮到有需要的人.</p> <p><strong>注意: 本文比对的项目为 <em>逐行读取文本内容</em>, 并不能代表其他方式的文件读取效率优劣!!!</strong></p> <p>文末有完整代码.</p> <h2 id="先放结果"><a href="#先放结果" class="headerlink" title="先放结果"></a>先放结果</h2><p>1000000 行文本读取结果比对:</p> <figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">BufferedReader 耗时: 49ms</span><br><span class="line">Scanner 耗时: 653ms</span><br><span class="line">Apache Commons IO 耗时: 44ms</span><br><span class="line">InputStreamReader 耗时: 191ms</span><br><span class="line">FileInputStream 耗时: 3171ms</span><br><span class="line">BufferedInputStream 耗时: 70ms</span><br><span class="line">FileUtils 耗时: 46ms</span><br><span class="line">Files 耗时: 99ms</span><br></pre></td></tr></table></figure>

2019/1/23
阅读更多

巧用 python 随时随地开启 http 服务器

<h3 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h3><p>近来发现 Python 中内置了一个小巧的 HTTP 服务器, 轻微使用的话及其方便. 特撰此文, 作为记录.</p> <h3 id="方法"><a href="#方法" class="headerlink" title="方法"></a>方法</h3><ol> <li><p>进入到自己想要开启 HTTP 服务器的目录;</p> </li> <li><p>输入对应命令即可:</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># python3</span></span><br><span class="line">python -m http.server</span><br></pre></td></tr></table></figure> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># python3 指定端口</span></span><br><span class="line">python -m http.server <span class="number">8000</span></span><br></pre></td></tr></table></figure> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># python2</span></span><br><span class="line">python -m SimpleHTTPServer</span><br></pre></td></tr></table></figure> <p>此时, HTTP 服务器就启动在本机的 8000 端口了.</p> </li> </ol>

2019/1/16
阅读更多

月刊-201901

<h3 id="精选文章"><a href="#精选文章" class="headerlink" title="精选文章"></a>精选文章</h3><ul> <li><p><span class="exturl" data-url="aHR0cHM6Ly9kZWNvZGV6cC5naXRodWIuaW8vMjAxOC8xMi8xMi9lbmctdGFsazEtZmFzdC1sZWFybi8=">5分钟经典英文技术演讲1:如何快速掌握新技术 - Kathy Sierra<i class="fa fa-external-link-alt"></i></span></p> <p>如何快速掌握新技术, 除了一些小技巧, 文中还提到了一个很好地观点: 高质量的例子.</p> <p>这一点我很赞同, 高质量的例子往往会给人最直观的感受, 这或许是我们开发者努力的一个方向.</p> <p>此外, 作者博客中的其他文章也值得阅读, 貌似博主总能以最精简的语言表述最核心的内容. 博客地址: <span class="exturl" data-url="aHR0cHM6Ly9kZWNvZGV6cC5naXRodWIuaW8v">DecodeZ<i class="fa fa-external-link-alt"></i></span></p> </li> <li><p><a href="https://mp.weixin.qq.com/s?__biz=MzIxMjI1MDcyMQ==&mid=2247509129&idx=1&sn=9eef01dc7e647e42acf4cc6900b31837&chksm=974a1d87a03d94919006efaf52ab507975e31a1060d6a5ecd1965e1d6994a61d3687ace470e5&mpshare=1&scene=1&srcid=0116P7D0NzcrCgiREzRfbchO#rd"><strong>10000字干货!这可能是最全的英语学习方法了</strong> </a></p> <p>作者总结了一些学习英语的心得, 方法和资源, 个人感觉很是受用.</p> </li> <li><p><a href="https://mp.weixin.qq.com/s?__biz=MzI4MDYzNzg4Mw==&mid=2247488799&idx=1&sn=f8f7395af3a94aa7ac7f5148574c738d&chksm=ebb42dcbdcc3a4ddb1191a017e0f7499dbf555cf266e015d1e06d3ad10d7c4518b6c28d09fcc&mpshare=1&scene=1&srcid=0119BItujCYLxDy7DxILvpJ5#rd"><strong>任正非万字采访昨夜刷屏!这20句话让全世界振聋发聩</strong></a></p> <p>这是我第一次认识任正非, 也是我第一次被他的大智慧, 大心胸, 大眼界所折服. 这是一篇值得我们反复品读的文章.</p> </li> </ul>

2019/1/3
阅读更多

Linux 命令 --- echo

<h3 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h3><p><code>echo</code> 命令用于在 shell 中打印 shell 变量的值, 或者直接输出指定的字符串. </p> <p>linux 的 echo 命令在 shell 编程中极为常用, 在终端下打印变量 value 的时候也是常常用到的, 因此有必要了解下 echo 的用法. </p>

2018/12/31
阅读更多

月刊-201812

<ul> <li><p><span class="exturl" data-url="aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9tYXliZTIwMzAvcC80NzE1MDM1Lmh0bWw=">七大查找算法<i class="fa fa-external-link-alt"></i></span><br>作者详细介绍了顺序查找, 二分查找, 插值查找, 斐波那契查找, 数表查找, 分块查找, 哈希查找 等查找算法.</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3M/X19iaXo9TXpJeU5EVXlORGN6Tmc9PSZtaWQ9MjI0NzQ4NjE4MyZpZHg9MiZzbj0wMjZmNzJhZTc0MzIzNWZjYjc5NDJhNTI3ZWJmNTQ0ZCZjaGtzbT1lODBjZWE0OGRmN2I2MzVlYmZiZTI4NDk2OTkyNTE5ZDE2YzgzYzZkN2M4ZTljNjA1ZTZjY2YyOTc3YmVhMjUzM2QzN2M0OTliZmQxJm1wc2hhcmU9MSZzY2VuZT0xJnNyY2lkPTEyMDZ0bFdETkVXRWpmY0g3eG1VQnNicyNyZA==">一些工作娱乐网站推荐<i class="fa fa-external-link-alt"></i></span><br>内容包含图片压缩网站 Squoosh, 视频下载网站 ParseVideo, 公益网站 大象孤儿院, 在线格式转换网站 cloudconvert, 设计网站 dribbble 等.</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly93d3cubWF0aHNpc2Z1bi5jb20v">Math is Fun<i class="fa fa-external-link-alt"></i></span> | <span class="exturl" data-url="aHR0cDovL3d3dy5zaHV4dWVsZS5jb20vaW5kZXguaHRtbA==">数学乐<i class="fa fa-external-link-alt"></i></span><br>科普网站, 生动有趣地介绍了各种理科知识.</p> </li> <li><p><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2pheXdjamxvdmUvYXdlc29tZS1tYWMvYmxvYi9tYXN0ZXIvUkVBRE1FLXpoLm1k">awesome-mac<i class="fa fa-external-link-alt"></i></span><br>各种非常好用的 Mac 应用程序, 软件以及工具列表.</p>

2018/12/31
阅读更多

Linux 命令 --- whereis

<h2 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h2><p>“whereis” 命令常用来定位指令的二进制程序, 源代码文件和 man 手册页相关文件的路径.</p> <p>“whereis” 命令只能用于程序名的搜索, 而且只搜索二进制文件 (参数 -b), man 说明文件 (参数 -m) 和源代码文件 (参数 -s), 如果省略参数, 则返回上述所有信息.</p>

2018/12/17
阅读更多

为 Hexo 主题 next 添加图片背景

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>next 主题默认背景是白色, 看多了难免感觉乏味. 我们可以通过自定义样式为其添加背景图片.</p> <h2 id="操作流程"><a href="#操作流程" class="headerlink" title="操作流程"></a>操作流程</h2><p>我们直接在 NEXT 预留的自定义样式文件 “themes&#x2F;next&#x2F;source&#x2F;css&#x2F;_custom&#x2F;custom.styl” 中添加自己的样式即可, 在自定义样式文件中写入以下代码:</p> <figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">// 添加背景图片</span><br><span class="line"><span class="selector-tag">body</span> &#123;</span><br><span class="line"> <span class="attribute">background</span>: <span class="built_in">url</span>(<span class="string">https://source.unsplash.com/random/1600x900?wallpapers</span>);</span><br><span class="line"> <span class="attribute">background-size</span>: cover;</span><br><span class="line"> <span class="attribute">background-repeat</span>: no-repeat;</span><br><span class="line"> <span class="attribute">background-attachment</span>: fixed;</span><br><span class="line"> <span class="attribute">background-position</span>: <span class="number">50%</span> <span class="number">50%</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">// 修改主体透明度</span><br><span class="line"><span class="selector-class">.main-inner</span> &#123;</span><br><span class="line"> <span class="attribute">background</span>: <span class="number">#fff</span>;</span><br><span class="line"> <span class="attribute">opacity</span>: <span class="number">0.8</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">// 修改菜单栏透明度</span><br><span class="line"><span class="selector-class">.header-inner</span> &#123;</span><br><span class="line"> <span class="attribute">opacity</span>: <span class="number">0.8</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure>

2018/12/5
阅读更多

Ubuntu 18.10 开机自动打开数字键盘

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>可能是为了照顾程序员? Ubuntu 开机默认是不打开数字键盘的, 本文主要描述如何让 Ubuntu 开机自动打开小键盘.</p> <h2 id="步骤"><a href="#步骤" class="headerlink" title="步骤"></a>步骤</h2><ol> <li><p>同时按下 “ctrl + alt + T” 打开终端;</p> </li> <li><p>获取 root 权限:</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo -i</span><br></pre></td></tr></table></figure> </li> <li><p>允许 gdm 和 X 服务建立连接:</p> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">xhost +SI:localuser:gdm</span><br></pre></td></tr></table></figure>

2018/12/1
阅读更多

获取 Linux 登录页面截图

<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>这两天心血来潮, 想办法美化了自己 Ubuntu 系统的登录界面. 进而找到了获取 Linux 登录页面截图的方法. 这里记录一下流程, 以作日后查验之用. </p> <p><img data-src="https://picgo-daily.oss-cn-guangzhou.aliyuncs.com/picgo-daily/2023/ba4cbe3a3f121292b7e2765d80c32e22.png" alt="登录界面"></p>

2018/11/30
阅读更多

Linux 命令 --- pwd

<h2 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h2><p><code>pwd</code> 命令全称 “print working directory”, 是 Linux 的基础命令之一, 用来打印当前工作目录.</p>

2018/11/29
阅读更多