<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>REWINE NOTE</title><link>/</link><description>Recent content on REWINE NOTE</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 03 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml"/><item><title>几个非 NixOS 场景下的 Nix 小技巧：home-manager、system-manager 和 GPU</title><link>/post/nix_home_manager_system_manager_graphics/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>/post/nix_home_manager_system_manager_graphics/</guid><description>从我的 nix-dotfiles 里抽出来的几个实用配置：nix run 启动 home-manager、跨架构复用 flake、system-manager 安装，以及 nix-system-graphics。</description></item><item><title>在 deepin 25 中使用 clangd 的坑：找不到系统头文件</title><link>/post/deepin25-clangd/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>/post/deepin25-clangd/</guid><description>deepin 25 + clangd-19 配置踩坑记录</description></item><item><title>简要介绍 wlroots 的 scene graph</title><link>/post/wlroots-scene-graph/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><guid>/post/wlroots-scene-graph/</guid><description>&lt;p>wlroots 的 scene graph 是 0.15 引入的高层渲染抽象，目标是让 compositor 开发者摆脱手动管理渲染循环、damage tracking 和输入命中测试的繁琐工作。下面从架构、节点类型、坐标系、渲染流程和实际用法等几个维度展开。&lt;/p>
&lt;hr>
&lt;h2 id="整体架构">整体架构&lt;/h2>
&lt;p>scene graph 的核心思想是把“要渲染什么”和“如何渲染”解耦。Compositor 只需构建一棵节点树来描述场景，wlroots 负责把这棵树翻译成 GPU 命令并处理 damage。&lt;/p></description></item><item><title>在 nixos 中使用 telega 进行聊天</title><link>/post/use_telega_in_nixos/</link><pubDate>Wed, 27 Oct 2021 00:00:00 +0000</pubDate><guid>/post/use_telega_in_nixos/</guid><description>&lt;p>telega 是一个 emacs 上的 Telegram 客户端，在 nixos 中，telega 包过于老旧，在 unstable 中已经无了，下面尝试使用传统方法安装 telega。&lt;/p>
&lt;h3 id="下载源代码">下载源代码&lt;/h3>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>cd ~/.emacs.d/site-lisp
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>git clone git@github.com:zevlg/telega.el.git
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>参考&lt;a href="https://zevlg.github.io/telega.el/">文档&lt;/a>进行配置&lt;/p></description></item><item><title>简单介绍下如何给 Peony 写插件</title><link>/post/how_to_write_a_peony_extensions/</link><pubDate>Mon, 04 Oct 2021 00:00:00 +0000</pubDate><guid>/post/how_to_write_a_peony_extensions/</guid><description>&lt;p>peony 是优麒麟的文件管理器，我之前在 &lt;a href="https://summer.iscas.ac.cn/#/org/prodetail/210120164">开源软件供应链点亮计划&lt;/a> 活动中中选了实现预览插件的项目，今天稍微总结下。&lt;/p>
&lt;h2 id="可以先看看参考资料">可以先看看参考资料&lt;/h2>
&lt;p>&lt;a href="https://zhuanlan.zhihu.com/p/373677523">如何编写 Peony 插件&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://github.com/Yue-Lan/peony-qt_development_document">Peony-Qt的开发者手册（中文版）&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://github.com/ukui/peony/wiki">Peony 的 wiki&lt;/a>&lt;/p></description></item><item><title>Onlyoffice Document Server 搭建</title><link>/post/onlyoffice-docker-documentserver/</link><pubDate>Mon, 23 Aug 2021 00:00:00 +0000</pubDate><guid>/post/onlyoffice-docker-documentserver/</guid><description>&lt;p>&lt;strong>Document Server&lt;/strong> 是一个在线办公套件，包括用于文本，电子表格和演示文稿的查看器和编辑器，与Office Open XML格式完全兼容：.docx，.xlsx，.pptx，并支持实时协作编辑。&lt;/p>
&lt;p>支持所有流行的格式：DOC，DOCX，TXT，ODT，RTF，ODP，EPUB，ODS，XLS，XLSX，CSV，PPTX，HTML&lt;/p>
&lt;p>项目地址是：https://github.com/ONLYOFFICE&lt;/p></description></item><item><title>QtPDF 的编译与试用</title><link>/post/qtpdf_make/</link><pubDate>Mon, 23 Aug 2021 00:00:00 +0000</pubDate><guid>/post/qtpdf_make/</guid><description>&lt;p>QtPDF 是 Qt 封装的 pdfium 模块，以 &lt;a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3/&lt;/a>&lt;a href="https://www.gnu.org/licenses/lgpl-3.0.html">LGPLv3&lt;/a> 协议分发，也可以在 QT marketplace 购买可商业版本&lt;/p>
&lt;h3 id="下载源代码">下载源代码&lt;/h3>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>git clone &amp;lt;https://code.qt.io/qt/qtwebengine.git&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd qtwebengine
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>git checkout 5.12.8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>git submodule update --init --recursive
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>注意：git checkout 选择自己 qt 的版本&lt;/p></description></item><item><title>Codeworld: 使用Haskell实现一个贪吃蛇小游戏</title><link>/post/haskell_snake_game/</link><pubDate>Fri, 20 Aug 2021 00:00:00 +0000</pubDate><guid>/post/haskell_snake_game/</guid><description>&lt;p>haskell 的一些教学可以参考：&lt;/p>
&lt;p>&lt;a href="https://www.seas.upenn.edu/~cis194/fall16/index.html">https://www.seas.upenn.edu/~cis194/fall16/index.html&lt;/a>&lt;/p>
&lt;p>CodeWorld：可以在线运行hs代码，基于ghc.js，&lt;del>四舍五入还是在本地跑&lt;/del>&lt;/p>
&lt;p>&lt;a href="https://code.world/haskell#">https://code.world/haskell&lt;/a>&lt;/p>
&lt;p>下面是利用 CodeWorld 画圆的小例子&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-haskell" data-lang="haskell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">import&lt;/span> CodeWorld
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">main&lt;/span> &lt;span style="color:#f92672">::&lt;/span> &lt;span style="color:#66d9ef">IO&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">main&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> drawingOf &lt;span style="color:#f92672">$&lt;/span> circle &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>Haskell 常用函数笔记</title><link>/post/leran_haskell_01/</link><pubDate>Mon, 21 Jun 2021 00:00:00 +0000</pubDate><guid>/post/leran_haskell_01/</guid><description>&lt;h3 id="运算符函数">运算符函数&lt;/h3>
&lt;h6 id="-取第n个元素">(!!) 取第n个元素&lt;/h6>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-haskell" data-lang="haskell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">Prelude&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> &lt;span style="color:#66d9ef">:&lt;/span>t (&lt;span style="color:#f92672">!!&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(&lt;span style="color:#f92672">!!&lt;/span>) &lt;span style="color:#f92672">::&lt;/span> [a] &lt;span style="color:#f92672">-&amp;gt;&lt;/span> &lt;span style="color:#66d9ef">Int&lt;/span> &lt;span style="color:#f92672">-&amp;gt;&lt;/span> a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">Prelude&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> [&lt;span style="color:#ae81ff">0&lt;/span>,&lt;span style="color:#ae81ff">1&lt;/span>,&lt;span style="color:#ae81ff">2&lt;/span>,&lt;span style="color:#ae81ff">3&lt;/span>,&lt;span style="color:#ae81ff">4&lt;/span>]&lt;span style="color:#f92672">!!&lt;/span>&lt;span style="color:#ae81ff">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">Prelude&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> [&lt;span style="color:#ae81ff">0&lt;/span>,&lt;span style="color:#ae81ff">1&lt;/span>,&lt;span style="color:#ae81ff">2&lt;/span>,&lt;span style="color:#ae81ff">3&lt;/span>,&lt;span style="color:#ae81ff">4&lt;/span>]&lt;span style="color:#f92672">!!&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h6 id="乘方--">乘方 (^), (^^),(**)&lt;/h6>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-haskell" data-lang="haskell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">Prelude&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> &lt;span style="color:#66d9ef">:&lt;/span>t (&lt;span style="color:#f92672">^&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(&lt;span style="color:#f92672">^&lt;/span>) &lt;span style="color:#f92672">::&lt;/span> (&lt;span style="color:#66d9ef">Integral&lt;/span> b, &lt;span style="color:#66d9ef">Num&lt;/span> a) &lt;span style="color:#f92672">=&amp;gt;&lt;/span> a &lt;span style="color:#f92672">-&amp;gt;&lt;/span> b &lt;span style="color:#f92672">-&amp;gt;&lt;/span> a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">Prelude&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> &lt;span style="color:#ae81ff">54.5&lt;/span>&lt;span style="color:#f92672">^&lt;/span>&lt;span style="color:#ae81ff">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">4.8081998590625e8&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">Prelude&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> &lt;span style="color:#66d9ef">:&lt;/span>t (&lt;span style="color:#f92672">^^&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(&lt;span style="color:#f92672">^^&lt;/span>) &lt;span style="color:#f92672">::&lt;/span> (&lt;span style="color:#66d9ef">Fractional&lt;/span> a, &lt;span style="color:#66d9ef">Integral&lt;/span> b) &lt;span style="color:#f92672">=&amp;gt;&lt;/span> a &lt;span style="color:#f92672">-&amp;gt;&lt;/span> b &lt;span style="color:#f92672">-&amp;gt;&lt;/span> a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">Prelude&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> &lt;span style="color:#ae81ff">5.6&lt;/span>&lt;span style="color:#f92672">^^&lt;/span>&lt;span style="color:#ae81ff">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">30840.979455999986&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">Prelude&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> &lt;span style="color:#66d9ef">:&lt;/span>t (&lt;span style="color:#f92672">**&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(&lt;span style="color:#f92672">**&lt;/span>) &lt;span style="color:#f92672">::&lt;/span> &lt;span style="color:#66d9ef">Floating&lt;/span> a &lt;span style="color:#f92672">=&amp;gt;&lt;/span> a &lt;span style="color:#f92672">-&amp;gt;&lt;/span> a &lt;span style="color:#f92672">-&amp;gt;&lt;/span> a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">Prelude&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> &lt;span style="color:#ae81ff">0.2&lt;/span>&lt;span style="color:#f92672">**&lt;/span>&lt;span style="color:#ae81ff">0.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">0.8513399225207846&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>软件工程知识点总结</title><link>/post/softwareengineeringnote/</link><pubDate>Mon, 10 May 2021 00:00:00 +0000</pubDate><guid>/post/softwareengineeringnote/</guid><description>&lt;h2 id="第1章-软件与软件工程的概念">第1章 软件与软件工程的概念&lt;/h2>
&lt;h5 id="了解与软件相关的基本概念包括软件程序数据文档">了解与软件相关的基本概念，包括软件、程序、数据、文档。&lt;/h5>
&lt;p>软件是计算机系统中与硬件相互依存的另一部分，它是包括程序，数据及其相关文档的完整集合。&lt;/p>
&lt;ul>
&lt;li>软件 = 程序+数据+文档&lt;/li>
&lt;/ul>
&lt;p>程序是按事先设计的功能和性能要求执行的指令序列。&lt;/p>
&lt;ul>
&lt;li>程序 = 数据结构+算法&lt;/li>
&lt;/ul>
&lt;p>数据是使程序能正常操纵信息的数据结构。
文档是与程序开发，维护和使用有关的图文材料。&lt;/p></description></item><item><title>整理一下图灵奖得主们都干了什么</title><link>/post/turing_award/</link><pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate><guid>/post/turing_award/</guid><description>&lt;p>前不久，2020图灵奖今日出炉，龙书作者 Alfred Vaino Aho 和 Jeffrey David Ullman 获奖，作为计算机界的最高荣誉，图灵奖获得者及其成果对计算机学科意义非凡，以前只是大概知道几个人，今天，特地翻了翻维基，看看得奖的都有谁。&lt;/p></description></item><item><title>使用c++解决leetcode多线程题题目（之一）semaphore</title><link>/post/leetcode_cpp_sem/</link><pubDate>Fri, 09 Apr 2021 00:00:00 +0000</pubDate><guid>/post/leetcode_cpp_sem/</guid><description>&lt;p>通过 &lt;code>man sem_init&lt;/code> 可以查看具体文档。
或者使用： &lt;a href="https://man7.org/linux/man-pages/man3/sem_init.3.html">https://man7.org/linux/man-pages/man3/sem_init.3.html&lt;/a>&lt;/p>
&lt;p>sem_init函数是Posix信号量操作中的函数。sem_init() 初始化一个定位在 sem 的匿名信号量。pshared 参数指明信号量是由进程内共享，还是由进程之间共享。如果 pshared 的值为 0，那么信号量将被进程内的线程共享。value 参数指定的初始值。&lt;/p>
&lt;p>sem_post是给信号量的值加上一个“1”，它是一个“原子操作”－－－即同时对同一个信号量做加“1”操作的两个线程是不会冲突的。&lt;/p>
&lt;p>sem_wait是一个函数，也是一个原子操作，它的作用是从信号量的值减去一个“1”，但它永远会先等待该信号量为一个非零值才开始做减法。也就是说，如果你对一个值为2的信号量调用sem_wait()，线程将会继续执行，将信号量的值将减到1。如果对一个值为0的信号量调用sem_wait()，这个函数就会原地等待直到有其它线程增加了这个值使它不再是0为止。&lt;/p></description></item><item><title>goroutine 的学习之旅</title><link>/post/learn_goroutine/</link><pubDate>Sat, 03 Apr 2021 00:00:00 +0000</pubDate><guid>/post/learn_goroutine/</guid><description>&lt;p>回想起来，我是因为对 goroutine 有兴趣而去了解 Go 的，因为 finger tree 而想学 Haskell，结果坑留了半年了（另一个坑留了快3年，Monad 还没弄明白），今天有时间先填上一个再说。&lt;/p>
&lt;p>goroutine，Go 语言的协程，是一种比线程更轻量的存在，一个cpu可以支持上万的协程。Go 可以通过 goroutine 支持并发。&lt;/p>
&lt;p>Go使用的是并发模型中的 CSP 模型，Communicating Sequential Processes，译为通信顺序进程、七周七并发第六章内容，这本书继续留坑有空再看。&lt;/p></description></item><item><title>我的全平台软件清单</title><link>/post/my_softworks/</link><pubDate>Fri, 12 Feb 2021 00:00:00 +0000</pubDate><guid>/post/my_softworks/</guid><description>my favor softworks</description></item><item><title>关于蓝桥杯等算法竞赛的经验总结</title><link>/post/lanqiaobie/</link><pubDate>Fri, 22 Jan 2021 00:00:00 +0000</pubDate><guid>/post/lanqiaobie/</guid><description>lanqiaobie</description></item><item><title>搭建个人博客记录(github action+hugo)</title><link>/post/hugo_blog/</link><pubDate>Fri, 15 Jan 2021 00:00:00 +0000</pubDate><guid>/post/hugo_blog/</guid><description>hugo blog</description></item><item><title>About Me</title><link>/about/</link><pubDate>Mon, 11 Jan 2021 19:15:32 +0800</pubDate><guid>/about/</guid><description>&lt;p>资浅码农，信安专业学生一枚&lt;/p></description></item><item><title>友链</title><link>/friends/</link><pubDate>Mon, 11 Jan 2021 19:15:32 +0800</pubDate><guid>/friends/</guid><description>&lt;p>目前没有友链，欢迎来加&lt;/p>
&lt;hr>
&lt;p>给巨佬们的单链，Orz:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="http://hzwer.com">hzwer&lt;/a> 黄学长的博客，承载oi记忆&lt;/li>
&lt;li>&lt;a href="https://coolshell.cn">coolshell&lt;/a> 耗子叔的博客，干货比较多(upd: 一路走好)&lt;/li>
&lt;li>&lt;a href="https://manateelazycat.github.io/index.html">manateelazycat&lt;/a> 老王，emacs黑客，前deepin开发者, eaf作者&lt;/li>
&lt;li>&lt;a href="http://www.yinwang.org">yinwang&lt;/a> 王垠，PL领域大神（upd：少扯淡就更好了）&lt;/li>
&lt;li>&lt;a href="https://felixc.at">Felix Yan&lt;/a> Arch打包达人肥猫&lt;/li>
&lt;/ul></description></item><item><title>现代密码学复习总结</title><link>/post/cryptography_review/</link><pubDate>Fri, 04 Dec 2020 00:00:00 +0800</pubDate><guid>/post/cryptography_review/</guid><description>cryptography review</description></item><item><title>初步认识c++1x的新特性</title><link>/post/cplusplus1x_base/</link><pubDate>Wed, 19 Aug 2020 00:00:00 +0000</pubDate><guid>/post/cplusplus1x_base/</guid><description>c++11</description></item><item><title>记录一个有趣的dp题目-leetcode 546 移除盒子</title><link>/post/leetcode_546_dp/</link><pubDate>Sat, 15 Aug 2020 00:00:00 +0000</pubDate><guid>/post/leetcode_546_dp/</guid><description>&lt;h2 id="题面">题面&lt;/h2>
&lt;blockquote>
&lt;p>给出一些不同颜色的盒子，盒子的颜色由数字表示，即不同的数字表示不同的颜色。&lt;/p>&lt;/blockquote>
&lt;blockquote>
&lt;p>你将经过若干轮操作去去掉盒子，直到所有的盒子都去掉为止。每一轮你可以移除具有相同颜色的连续 k 个盒子（k &amp;gt;= 1），这样一轮之后你将得到 k * k 个积分。
当你将所有盒子都去掉之后，求你能获得的最大积分和。&lt;/p>&lt;/blockquote>
&lt;p>来源：力扣（LeetCode）&lt;/p>
&lt;p>链接：https://leetcode-cn.com/problems/remove-boxes
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。&lt;/p></description></item><item><title>[VC++课程设计] 用mfc实现数学函数曲线绘制程序</title><link>/post/cpplab_mfcplot/</link><pubDate>Mon, 20 Jul 2020 00:00:00 +0000</pubDate><guid>/post/cpplab_mfcplot/</guid><description>mfc plot mathematical functions</description></item><item><title>[管理运筹学]线性规划&amp;单纯形法的各种姿势(题目：[NOI2008]志愿者招募)</title><link>/post/cpplab_simplex/</link><pubDate>Sat, 29 Jun 2019 00:00:00 +0800</pubDate><guid>/post/cpplab_simplex/</guid><description>simplex</description></item><item><title>[管理运筹学]指派问题的匈牙利算法及其c++实现 (例:「网络流 24 题」分配问题 )</title><link>/post/cpplab_hungarian_algorithm/</link><pubDate>Fri, 28 Jun 2019 00:00:00 +0800</pubDate><guid>/post/cpplab_hungarian_algorithm/</guid><description>Jiugongge</description></item><item><title>[c语言课程设计] 重排九宫问题</title><link>/post/cpplab_calc_jiugongge/</link><pubDate>Tue, 05 Feb 2019 00:00:00 +0000</pubDate><guid>/post/cpplab_calc_jiugongge/</guid><description>Jiugongge</description></item></channel></rss>