<?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>念闻轩</title><link>https://www.siyuanxu.com/</link><description>Recent content on 念闻轩</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 03 Sep 2020 15:52:19 +0800</lastBuildDate><atom:link href="https://www.siyuanxu.com/index.xml" rel="self" type="application/rss+xml"/><item><title>可能是日子过得太好了</title><link>https://www.siyuanxu.com/%E5%8F%AF%E8%83%BD%E6%98%AF%E6%97%A5%E5%AD%90%E8%BF%87%E5%BE%97%E5%A4%AA%E5%A5%BD%E4%BA%86/</link><pubDate>Thu, 03 Sep 2020 15:51:57 +0800</pubDate><guid>https://www.siyuanxu.com/%E5%8F%AF%E8%83%BD%E6%98%AF%E6%97%A5%E5%AD%90%E8%BF%87%E5%BE%97%E5%A4%AA%E5%A5%BD%E4%BA%86/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;这不是一首欢快的歌&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;下面的东西我得就两瓶酒来喝&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;我过着没有欲望的幸福生活&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;好像看透了 留下绝望的颜色&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;星星在走远 世界在变坏&lt;/p&gt;</description><content:encoded><![CDATA[<!-- wp:paragraph -->
<p>这不是一首欢快的歌</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>下面的东西我得就两瓶酒来喝</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我过着没有欲望的幸福生活</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>好像看透了 留下绝望的颜色</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>星星在走远 世界在变坏</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>只能用熵增来解释我的宇宙心得</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我没法像黑洞 吞下一切 包括不快乐</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>也没法像重力 连接所有 不管多隔阂</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>上面的话让我特别难过</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我想找个人抱怨 可是却发现</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我可能是日子过的太好了</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>一切都实在是太轻松了</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我老婆是学妹 主动追我的</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我哥们是舍友 随机分配的</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我找了一个导师 对我挺好的</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我还有一个乐队 名字我取的</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我可能是日子过的太好了</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>所有人都对我太宽容了</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>现在还没赚钱 妈退休金够花</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>现在还没买房 你住哪我跟哪</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我论文拖了俩月没写完</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>老师还问我 你在国外生活还好吧</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我什么都不害怕 感觉像是开了挂</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我不怕没有工作 不怕不能生活</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>不怕博士不能毕业 不怕人生出现波折</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>可是这不害怕到底是真的还是假的</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我看透世界的双眼 是亮的 还是瞎的</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>这世界 会不会 就是 我 画 的</p>
<!-- /wp:paragraph -->
]]></content:encoded></item><item><title>伞骨</title><link>https://www.siyuanxu.com/%E4%BC%9E%E9%AA%A8/</link><pubDate>Tue, 01 Sep 2020 11:52:07 +0800</pubDate><guid>https://www.siyuanxu.com/%E4%BC%9E%E9%AA%A8/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一个小孩 从右面的窗口跑来&lt;br&gt;大喊着是错愕 惊恐 和绝望的颜色&lt;br&gt;一栋大楼 在不远的地方倒下&lt;br&gt;飞来的石头 砸伤了我的脚踝&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;看不见乌云和闪电&lt;br&gt;雷声却不断出现&lt;br&gt;稀疏的雨滴落下&lt;br&gt;变成了黄色黑色的花瓣&lt;/p&gt;</description><content:encoded><![CDATA[<!-- wp:paragraph -->
<p>一个小孩 从右面的窗口跑来<br>大喊着是错愕 惊恐 和绝望的颜色<br>一栋大楼 在不远的地方倒下<br>飞来的石头 砸伤了我的脚踝</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>看不见乌云和闪电<br>雷声却不断出现<br>稀疏的雨滴落下<br>变成了黄色黑色的花瓣</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>那个小孩牵着一只大手<br>那栋高楼埋下了许多钮扣<br>我不知道该跑向哪里<br>我不知道要钻到谁的怀里</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我想变成一把雨伞悬浮在空中<br>拦下坚硬的雨滴 挡住炽热的狂风<br>可我不知道跑向我的人在哪里<br>寻找我怀抱的人他们还来不来得及</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>当我飘荡在我最熟悉的地方<br>望向一条陌生的小巷<br>生疏的光亮中<br>看不到慌张</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>可能我不用那么坚强<br>可是生锈的伞骨 再也变不回翅膀</p>
<!-- /wp:paragraph -->
]]></content:encoded></item><item><title>Bad Bone</title><link>https://www.siyuanxu.com/bad-bone/</link><pubDate>Sun, 23 Aug 2020 23:51:17 +0800</pubDate><guid>https://www.siyuanxu.com/bad-bone/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;看着抄送复制繁衍的邮件&lt;br&gt;躲在被窝里时间又长了一些&lt;br&gt;陌生的眼睛看了一片又一片&lt;br&gt;熟悉就剩下妈妈的旧拖鞋&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;你问我为什么每天晚归&lt;br&gt;因为那儿柔软的只有棉被&lt;br&gt;给自己倒了一杯热水&lt;br&gt;等到凉透了也还要自己喂&lt;/p&gt;</description><content:encoded><![CDATA[<!-- wp:paragraph -->
<p>看着抄送复制繁衍的邮件<br>躲在被窝里时间又长了一些<br>陌生的眼睛看了一片又一片<br>熟悉就剩下妈妈的旧拖鞋</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>你问我为什么每天晚归<br>因为那儿柔软的只有棉被<br>给自己倒了一杯热水<br>等到凉透了也还要自己喂</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>哦哦哦<br>hai sensei 好的前辈<br>下次我打印一定发给两位<br>狗们那塞 课长 松尾<br>明天居酒屋我一定不醉不归</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>盖住脸上两道透明的线<br>那个乖宝宝再次出现<br>她看着别人快乐的一天<br>哎 我觉得 这个世界上的快乐 都离我特别远 生而为人 我很抱歉 我是不是不行啊 可能我就没有办法获得幸福啊</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>人不只有难过和高兴两种情绪</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>我的bad bone<br>它蠢蠢欲动<br>今晚的被窝中<br>有了一个新的物种</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>嘿嘿嘿 fuck off 马鹿 滚蛋 丑猪<br>等会就用图钉扎你的屁股<br>嘿嘿嘿 拥抱bad bone 打开愤怒<br>走路用上章鱼的脚步</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>哈哈哈哈哈哈哈 我前天 我前天看到社长穿了华歌尔的丁字裤 啊啊啊哈哈哈哈</p>
<!-- /wp:paragraph -->
]]></content:encoded></item><item><title>Amiya</title><link>https://www.siyuanxu.com/amiya/</link><pubDate>Sat, 22 Aug 2020 23:45:27 +0800</pubDate><guid>https://www.siyuanxu.com/amiya/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;I cried for my missing bone &lt;br&gt;I have to use that ugly stone &lt;br&gt;Amiya Amiya Amiya Amiya &lt;br&gt; &lt;br&gt;I say notice me &lt;br&gt;I tell you to notice me &lt;br&gt;Can't you see me bleed &lt;br&gt;I thought you know that's me &lt;br&gt; &lt;br&gt;I sailed a lot of miles &lt;br&gt;come back with a silly smile &lt;br&gt;I write this miya song &lt;br&gt;to make my memory warm &lt;br&gt;&lt;guitar solo=""&gt; &lt;br&gt;She has a shining bomb &lt;br&gt;Beside the crying Tom &lt;br&gt; &lt;br&gt;So miya, so miya, you see her, the Jaguar &lt;br&gt; &lt;br&gt;I said notice me &lt;br&gt;I tell her to notice me &lt;br&gt;Can't you see me bleed &lt;br&gt;She was biting me &lt;br&gt; &lt;br&gt;I sailed a lot of miles &lt;br&gt;come back with a silly smile &lt;br&gt; &lt;br&gt;I wrote this miya song &lt;br&gt;Feel like being strong &lt;br&gt; &lt;br&gt;In the dark, I pray, praying miya coming down &lt;br&gt;I see I see I see I see &lt;br&gt;I see you miya coming down &lt;br&gt;I can feel you, I can smell you &lt;br&gt;I can touch you, I can fuck you. &lt;br&gt;I see I see I see I see &lt;br&gt; &lt;br&gt;I hold the miya palm &lt;br&gt;She says I know you Tom. &lt;br&gt;&lt;/guitar&gt;&lt;/p&gt;</description><content:encoded><![CDATA[<!-- wp:paragraph -->
<p>I cried for my missing bone <br>I have to use that ugly stone <br>Amiya Amiya Amiya Amiya <br> <br>I say notice me <br>I tell you to notice me  <br>Can't you see me bleed <br>I thought you know that's me <br> <br>I sailed a lot of miles <br>come back with a silly smile <br>I write this miya song <br>to make my memory warm <br><guitar solo=""> <br>She has a shining bomb <br>Beside the crying Tom <br> <br>So miya,  so miya,  you see her,  the Jaguar <br> <br>I said notice me <br>I tell her to notice me  <br>Can't you see me bleed <br>She was biting me <br> <br>I sailed a lot of miles <br>come back with a silly smile <br> <br>I wrote this miya song <br>Feel like being strong <br> <br>In the dark,  I pray,  praying  miya coming down <br>I see I see I see I see <br>I see you miya coming down <br>I can feel you, I can smell you <br>I can touch you,  I can fuck you.  <br>I see I see I see I see <br> <br>I hold the miya palm <br>She says I know you Tom.  <br></guitar></p>
<!-- /wp:paragraph -->
]]></content:encoded></item><item><title>vibe</title><link>https://www.siyuanxu.com/vibe/</link><pubDate>Wed, 19 Aug 2020 03:59:32 +0800</pubDate><guid>https://www.siyuanxu.com/vibe/</guid><description>&lt;h3&gt;&lt;strong&gt;完成的&lt;/strong&gt;&lt;/h3&gt;
&lt;div class="wp-block-group has-background" style="background-color:#eff5e4"&gt;&lt;div class="wp-block-group__inner-container"&gt;
&lt;p&gt;封城期间度过了伦敦的春天和夏天，摄政公园让心情并没有变得很糟糕，不过如果没有那么多鸟屎就好了。（2020年6月21日）&lt;/p&gt;
&lt;p class="audio-placeholder"&gt;&lt;strong&gt;音频：51°55N.mp3（待补）&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class="wp-block-group has-background" style="background-color:#9fa7ad"&gt;&lt;div class="wp-block-group__inner-container"&gt;
&lt;p class="has-text-color has-white-color"&gt;陪老婆追完剧后写的，从头到尾就一个小时可能？不知道自己在音乐这条路上，还有机会么（狗头）。（2020年6月28日）&lt;/p&gt;</description><content:encoded><![CDATA[<h3><strong>完成的</strong></h3>
<div class="wp-block-group has-background" style="background-color:#eff5e4"><div class="wp-block-group__inner-container">
<p>封城期间度过了伦敦的春天和夏天，摄政公园让心情并没有变得很糟糕，不过如果没有那么多鸟屎就好了。（2020年6月21日）</p>
<p class="audio-placeholder"><strong>音频：51°55N.mp3（待补）</strong></p>
</div></div>
<div class="wp-block-group has-background" style="background-color:#9fa7ad"><div class="wp-block-group__inner-container">
<p class="has-text-color has-white-color">陪老婆追完剧后写的，从头到尾就一个小时可能？不知道自己在音乐这条路上，还有机会么（狗头）。（2020年6月28日）</p>
<p class="audio-placeholder"><strong>音频：木船.mp3（待补）</strong></p>
</div></div>
<h3 class="has-dark-gray-color has-text-color">Demo, mini-demo, garbage-music, not trash-metal, just garbage.</h3>
<p>这个垃圾场里大部分都是自己吉他jam玩的，没什么“歌唱性”，留在这里有缘的话可能会成一两个动机吧。</p>
<div class="wp-block-group has-light-gray-background-color has-background"><div class="wp-block-group__inner-container">
<p>1- 我很不喜欢自己写了大量只有1级和4级和弦的“音乐”。我不喜欢自己 也不喜欢这个世界，人类的年龄很小 现在的世界很糟糕（2020年8月18日）</p>
<p class="audio-placeholder"><strong>音频：俩和弦系列-我不喜欢的.mp3（待补）</strong></p>
</div></div>
<hr class="wp-block-separator"/>
<div class="wp-block-group has-light-gray-background-color has-background"><div class="wp-block-group__inner-container">
<p>2- “用我的琴声催你入眠”--长期失眠患者对配偶的浪漫。然而助了我自己的眠，对别人好像并没有什么作用的样子。（2020年6月6日）</p>
<p class="audio-placeholder"><strong>音频：sleep.mp3（待补）</strong></p>
</div></div>
<hr class="wp-block-separator"/>
<div class="wp-block-group has-light-gray-background-color has-background"><div class="wp-block-group__inner-container">
<p>3- 所以睡前想那些有的没的，果然会做噩梦的啊。（2020年6月17日）</p>
<p>2020年9月2日，在rocky的旋律基础上做了一版新的小样，改了一些和弦。</p>
<p class="audio-placeholder"><strong>音频：nightmare.mp3（待补）</strong></p>
</div></div>
<p class="audio-placeholder"><strong>音频：nightmare-night-escape.mp3（待补）</strong></p>
<hr class="wp-block-separator"/>
<div class="wp-block-group has-light-pink-background-color has-background"><div class="wp-block-group__inner-container">
<p>4- Please notice me! Feel my touch! Don't just hush!（2020年7月28日）</p>
<p>写的歌词在 <a href="https://www.siyuanxu.com/amiya/">amiya</a> </p>
<p class="audio-placeholder"><strong>音频：awake.mp3（待补）</strong></p>
</div></div>
<hr class="wp-block-separator"/>
<div class="wp-block-group has-light-gray-background-color has-background"><div class="wp-block-group__inner-container">
<p>5- 它们站在一起，谨慎保持距离，刺穿寒冷空气，暖和自己的屁屁（2020年7月29日）</p>
<p class="audio-placeholder"><strong>音频：awake2.mp3（待补）</strong></p>
</div></div>
<hr class="wp-block-separator"/>
<div class="wp-block-group has-light-gray-background-color has-background"><div class="wp-block-group__inner-container">
<p>6- 能不能整点阳间的，正能量的，积极向上的，脍炙人口的音乐？好的😢（2020年8月19日）</p>
<p class="audio-placeholder"><strong>音频：awake3.mp3（待补）</strong></p>
</div></div>
<hr class="wp-block-separator"/>
<div class="wp-block-group has-light-gray-background-color has-background"><div class="wp-block-group__inner-container">
<p>7- 80（☞年代），讲真 这riff可以的 但是建议跳过去 因为  “It rocks, but not Rocky”  （2020年8月9日）</p>
<p class="audio-placeholder"><strong>音频：大锤80.mp3（待补）</strong></p>
</div></div>
<hr class="wp-block-separator"/>
<div class="wp-block-group has-light-gray-background-color has-background"><div class="wp-block-group__inner-container">
<p>8- 老板，为什么我买了爵士琴弹出来还是blues味？是因为它不喜欢我么？对啊，251，7和弦。（2020年8月13日）</p>
<p class="audio-placeholder"><strong>音频：new-guitar.mp3（待补）</strong></p>
</div></div>
<hr class="wp-block-separator"/>
<div class="wp-block-group has-light-gray-background-color has-background"><div class="wp-block-group__inner-container">
<p>9- 看到你衣服的颜色  好像心情还不错</p>
<p>开口是老的有的没的  话题依旧不算多 （2020年7月10日）</p>
<p class="audio-placeholder"><strong>音频：berry-cookie.mp3（待补）</strong></p>
</div></div>
<hr class="wp-block-separator"/>
<p>10- Bad-bone 歌词：<a href="https://www.siyuanxu.com/bad-bone/">bad-bone</a>  细心体会图钉扎屁股</p>
<p class="audio-placeholder"><strong>音频：bad-bone.mp3（待补）</strong></p>
]]></content:encoded></item><item><title>Chrome/new edge 浏览器黑屏</title><link>https://www.siyuanxu.com/chrome-new-edge-%E6%B5%8F%E8%A7%88%E5%99%A8%E9%BB%91%E5%B1%8F/</link><pubDate>Sun, 19 Apr 2020 01:03:15 +0800</pubDate><guid>https://www.siyuanxu.com/chrome-new-edge-%E6%B5%8F%E8%A7%88%E5%99%A8%E9%BB%91%E5%B1%8F/</guid><description>&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: 12pt;"&gt;Update
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="font-family: 等线;"&gt;关闭硬件加速后，其实对体验还是有影响，比如在&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;youtube&lt;/span&gt;&lt;span style="font-family: 等线;"&gt;上打开&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;8k&lt;/span&gt;&lt;span style="font-family: 等线;"&gt;视频，&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;cpu&lt;/span&gt;&lt;span style="font-family: 等线;"&gt;直接飙到&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;100%&lt;/span&gt;&lt;span style="font-family: 等线;"&gt;，严重卡顿。不过终于找到了解决方法，清理掉&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;gpucache &lt;/span&gt;&lt;span style="font-family: 等线;"&gt;就好了。&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><content:encoded><![CDATA[<p><span style="font-family: Times New Roman; font-size: 12pt;">Update
</span></p>
<p><span style="font-size: 12pt;"><span style="font-family: 等线;">关闭硬件加速后，其实对体验还是有影响，比如在</span><span style="font-family: Times New Roman;">youtube</span><span style="font-family: 等线;">上打开</span><span style="font-family: Times New Roman;">8k</span><span style="font-family: 等线;">视频，</span><span style="font-family: Times New Roman;">cpu</span><span style="font-family: 等线;">直接飙到</span><span style="font-family: Times New Roman;">100%</span><span style="font-family: 等线;">，严重卡顿。不过终于找到了解决方法，清理掉</span><span style="font-family: Times New Roman;">gpucache </span><span style="font-family: 等线;">就好了。</span><span style="font-family: Times New Roman;">
</span></span></p>
<span style="font-family: Times New Roman; font-size: 12pt;">
</span>
<p><span style="font-size: 12pt;"><span style="font-family: 等线;">方法来自这条视频：</span><a href="https://www.youtube.com/watch?v=iKIh2uot42A"><span style="font-family: Times New Roman;"><a href="https://www.youtube.com/watch?v=iKIh2uot42A">https://www.youtube.com/watch?v=iKIh2uot42A</a>
</span></a></span></p>
<p><span style="font-family: Times New Roman; font-size: 12pt;">&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash;
</span></p>
<p><span style="font-size: 12pt;"><span style="font-family: 等线;">说起来这已经是第三次经历这样的事件了，打开浏览器出来的是一个全黑的窗口，包括页面和</span><span style="font-family: Times New Roman;">windows</span><span style="font-family: 等线;">栏。</span><span style="font-family: Times New Roman;">
</span></span></p>
<p><span style="font-size: 12pt;"><span style="font-family: 等线;">第一次遭遇的时候正好要重装系统，所以直接重装完事。</span><span style="font-family: Times New Roman;">
</span></span></p>
<p><span style="font-size: 12pt;"><span style="font-family: 等线;">第二次遭遇后，网上发现了</span><span style="font-family: Times New Roman;">kinza</span><span style="font-family: 等线;">浏览器，日本的浏览器，具有完整的</span><span style="font-family: Times New Roman;">google account</span><span style="font-family: 等线;">同步功能。</span><span style="font-family: Times New Roman;">
</span></span></p>
<p><span style="font-size: 12pt;"><span style="font-family: 等线;">这次是载在微软的</span><span style="font-family: Times New Roman;">New edge </span><span style="font-family: 等线;">浏览器上了，用了</span><span style="font-family: Times New Roman;">chromium</span><span style="font-family: 等线;">内核，连这个</span><span style="font-family: Times New Roman;">bug</span><span style="font-family: 等线;">也一起带过来了。</span><span style="font-family: Times New Roman;">
</span></span></p>
<p><span style="font-size: 12pt;"><span style="font-family: 等线;">搜索到的内容基本都是说因为</span><span style="font-family: Times New Roman;">chrome </span><span style="font-family: 等线;">内核和显卡驱动不兼容，禁用</span><span style="font-family: Times New Roman;">gpu</span><span style="font-family: 等线;">加速即可，可是在这三次</span><span style="font-family: Times New Roman;">bug</span><span style="font-family: 等线;">经历中，我并没有出现掉驱动，或者刚安装驱动后。但是确实可能和显卡相关，第一次出现问题的时候正好重新插拔过</span><span style="font-family: Times New Roman;">HDMI</span><span style="font-family: 等线;">线，而后两次则是进入过其它系统，一次</span><span style="font-family: Times New Roman;">ubuntu</span><span style="font-family: 等线;">，一次</span><span style="font-family: Times New Roman;">unraid</span><span style="font-family: 等线;">。</span><span style="font-family: Times New Roman;">
</span></span></p>
<p><span style="font-size: 12pt;"><span style="font-family: 等线;">不过多讨论，直接解决方法吧。之前没有尝试进行禁用硬件加速是因为，黑屏的时候完全没法在菜单操作。这次才发现可以直接调用浏览器执行文件命令。</span><span style="font-family: Times New Roman;">
</span></span></p>
<p><span style="font-family: Times New Roman; font-size: 12pt;">Chrome.exe -disable-gpu
</span></p>
<p><span style="font-size: 12pt;"><span style="font-family: 等线;">或者</span><span style="font-family: Times New Roman;">
</span></span></p>
<p><span style="font-family: Times New Roman; font-size: 12pt;">Msedge.exe -disable-gpu
</span></p>
<p><span style="font-size: 12pt;"><span style="font-family: 等线;">具体执行文件位置</span><span style="font-family: Times New Roman;">everything</span><span style="font-family: 等线;">搜索即可。</span></span></p>
]]></content:encoded></item><item><title>多参数的 python 简单并行循环 -- multiprocessing</title><link>https://www.siyuanxu.com/%E5%A4%9A%E5%8F%82%E6%95%B0%E7%9A%84-python-%E7%AE%80%E5%8D%95%E5%B9%B6%E8%A1%8C%E5%BE%AA%E7%8E%AF-multiprocessing/</link><pubDate>Mon, 27 Jan 2020 00:27:38 +0800</pubDate><guid>https://www.siyuanxu.com/%E5%A4%9A%E5%8F%82%E6%95%B0%E7%9A%84-python-%E7%AE%80%E5%8D%95%E5%B9%B6%E8%A1%8C%E5%BE%AA%E7%8E%AF-multiprocessing/</guid><description>&lt;p&gt;在之前用蒙特卡洛算法的时候我曾经舱室过用multiprocessing来对&lt;a href="https://www.siyuanxu.com/archives/16"&gt;for循环进行加速&lt;/a&gt; ，当时效果还是可以的，将循环中的操作包装成一个函数，即可传入可遍历的变量组即可有效利用多个线程进行同时计算。最近在分析自己DEM模拟试验的数据时又遇到了大量独立数据文件的io和分析，但是不同的是这次的计算需要在函数中传入多个变量，不变的要求是最小化业务代码更改。&lt;/p&gt;</description><content:encoded><![CDATA[<p>在之前用蒙特卡洛算法的时候我曾经舱室过用multiprocessing来对<a href="https://www.siyuanxu.com/archives/16">for循环进行加速</a> ，当时效果还是可以的，将循环中的操作包装成一个函数，即可传入可遍历的变量组即可有效利用多个线程进行同时计算。最近在分析自己DEM模拟试验的数据时又遇到了大量独立数据文件的io和分析，但是不同的是这次的计算需要在函数中传入多个变量，不变的要求是最小化业务代码更改。</p>
<p>其实实现起来也很简单，将业务函数进行二次包装，采用 *args 来进行变量传递即可。当然，同样不能忘了，多线程pool的代码一定要在主函数内，下面是我的颗粒信息数据整理例子。</p>
<!-- wp:code {"lineNumbers":true} -->
<pre class="wp-block-code"><code lang="python" class="language-python line-numbers"># work code
def ball_pos_plot(ball, speed):
    # plot the sample area and displacement path of a single particle
    return

# wrapper
def multi_wrapper(args):
    return ball_pos_plot(*args)

# multi processing
if __name__ == "__main__":
    pool=Pool(12)

    ball_list=[2020, 22, 16, 100, 1245, 213]

    speed_list=[0.0015,0.001,0.01,0.1]

    args_list=[]

    for ball in ball_list:
        for speed in speed_list:
            args_list.append([ball, speed])

    pool.map(multi_wrapper, args_list)</code></pre>
<!-- /wp:code -->
<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->
]]></content:encoded></item><item><title>丢不掉的年</title><link>https://www.siyuanxu.com/%E4%B8%A2%E4%B8%8D%E6%8E%89%E7%9A%84%E5%B9%B4/</link><pubDate>Thu, 23 Jan 2020 05:04:45 +0800</pubDate><guid>https://www.siyuanxu.com/%E4%B8%A2%E4%B8%8D%E6%8E%89%E7%9A%84%E5%B9%B4/</guid><description>&lt;p&gt;之前一直觉得，好多老传统到我这一代估计就丢掉了，从小到大家里长辈也没有专门教过这些那些的老讲究儿。然而随着自己小家庭的形成，我惊奇的发现自己脑子里竟然记得那些看似繁琐又无道理的老玩意儿，虽然我甚至还没有意识到自己社会角色的转变，但到节日时，我总会催促这自己和太太记得今天一定要吃煎饼、今天一定要吃饺子、这段时间一定不能理发，等等等等。这些想法就像是在脑子里定了闹钟一样，在每年特定的几个时间里，给我带来幸福的忙碌。同时，自己也松了一口气，在此之前有一个问题一直纠缠着我，如果以后自己有了孩子，我该怎么让他知道自己所应当传承的东西。看来是不用再过于担心了。&lt;/p&gt;</description><content:encoded><![CDATA[<p>之前一直觉得，好多老传统到我这一代估计就丢掉了，从小到大家里长辈也没有专门教过这些那些的老讲究儿。然而随着自己小家庭的形成，我惊奇的发现自己脑子里竟然记得那些看似繁琐又无道理的老玩意儿，虽然我甚至还没有意识到自己社会角色的转变，但到节日时，我总会催促这自己和太太记得今天一定要吃煎饼、今天一定要吃饺子、这段时间一定不能理发，等等等等。这些想法就像是在脑子里定了闹钟一样，在每年特定的几个时间里，给我带来幸福的忙碌。同时，自己也松了一口气，在此之前有一个问题一直纠缠着我，如果以后自己有了孩子，我该怎么让他知道自己所应当传承的东西。看来是不用再过于担心了。</p>
<p>扯远了，今年和太太来英国读书，马上要到来的就是第一个和大家庭分开过的年，地理距离和文化差异决定了周边的年味肯定没那么浓，但自己的热情不能减少。过年的饺子经过冬至的演练，应该时问题不大了，春晚在海外也有直播，年前剩下的难题就是这个“廿八-贴花花”。往年家里都是早早准备好，今年得靠自己了。想自己写上一副，发现没有纸笔，想去中国城买上一副，外面嗖嗖的冷风又在威胁我。最关键的是，就算搞来了“花花”，房东能不能让贴也是一个问题。索性就做成电子版的吧，自己电脑上画一套做成壁纸也算是增添些年味儿，和太太简单商量后觉得这个靠谱，顺着这股子吉祥劲儿，写了副对联。</p>
<blockquote>五湖闹春日日好
<p>四海送福年年到</p>
<p>横批：进步青年</blockquote>
这五湖指代神州大地，正值新春佳节来临之际，全国都在热热闹闹准备过年。四海则指世界各地，今年，包括我和太太同届的五位同门分别在英、法、荷、美四个国家进行交流访问，和家人朋友分开的这个春节里，也希望自己的祝福送到家人和朋友的身边。这五四五四也提醒自己要做一个五四好青年，积极进步。</p>
<p>定下文案后我就操着我三脚猫的设计功夫做了第一版，效果看着还可以，就是有些单调。所以又翻箱倒柜找出来自己最红的衣服，拿圆珠笔挑了一个红苹果取个吉祥味道，把我们自己也做进了这份祝福里，给家人拜年。</p>
<img src="https://assets.siyuanxu.com/i/QaV6EVYunpYFrvCC.jpg" />
]]></content:encoded></item><item><title>论如何快速战胜减肥成果</title><link>https://www.siyuanxu.com/%E8%AE%BA%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E6%88%98%E8%83%9C%E5%87%8F%E8%82%A5%E6%88%90%E6%9E%9C/</link><pubDate>Tue, 14 Jan 2020 06:48:07 +0800</pubDate><guid>https://www.siyuanxu.com/%E8%AE%BA%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E6%88%98%E8%83%9C%E5%87%8F%E8%82%A5%E6%88%90%E6%9E%9C/</guid><description>&lt;p&gt;这次出国前赶着把手头两个大课题画上句号，工程上的应酬一轮接一轮，随之而来的是在0.1吨俱乐部站的越来越稳健。不过到伦敦后饮食上微微不适应，再加上寒假小病一场，眼睁睁的十几斤宝贝肉离我而去。这不能惯这毛病，必须稳健回来！今天晚上干炸酥肉烤羊排一顿安排！&lt;/p&gt;</description><content:encoded>&lt;p>这次出国前赶着把手头两个大课题画上句号，工程上的应酬一轮接一轮，随之而来的是在0.1吨俱乐部站的越来越稳健。不过到伦敦后饮食上微微不适应，再加上寒假小病一场，眼睁睁的十几斤宝贝肉离我而去。这不能惯这毛病，必须稳健回来！今天晚上干炸酥肉烤羊排一顿安排！&lt;/p>
&lt;img src="https://assets.siyuanxu.com/i/yCjg5KDKYV6nNUGm.jpg" />
&lt;img src="https://assets.siyuanxu.com/i/J0uKyLV2tMMmOHTy.jpg" /></content:encoded></item><item><title>终于做出一次成功的烩面</title><link>https://www.siyuanxu.com/%E7%BB%88%E4%BA%8E%E5%81%9A%E5%87%BA%E4%B8%80%E6%AC%A1%E6%88%90%E5%8A%9F%E7%9A%84%E7%83%A9%E9%9D%A2/</link><pubDate>Sun, 12 Jan 2020 07:18:26 +0800</pubDate><guid>https://www.siyuanxu.com/%E7%BB%88%E4%BA%8E%E5%81%9A%E5%87%BA%E4%B8%80%E6%AC%A1%E6%88%90%E5%8A%9F%E7%9A%84%E7%83%A9%E9%9D%A2/</guid><description>&lt;img src="https://assets.siyuanxu.com/i/c99UNbsHZRiEpzuP.jpg" /&gt;</description><content:encoded>&lt;img src="https://assets.siyuanxu.com/i/c99UNbsHZRiEpzuP.jpg" />
</content:encoded></item><item><title>好久没吃炒菜了</title><link>https://www.siyuanxu.com/%E5%A5%BD%E4%B9%85%E6%B2%A1%E5%90%83%E7%82%92%E8%8F%9C%E4%BA%86/</link><pubDate>Fri, 10 Jan 2020 07:03:52 +0800</pubDate><guid>https://www.siyuanxu.com/%E5%A5%BD%E4%B9%85%E6%B2%A1%E5%90%83%E7%82%92%E8%8F%9C%E4%BA%86/</guid><description>&lt;p&gt;因为抽油烟机进风口出风口都在屋内。。。。所以这段时间很少吃炒菜，今天是忍不住了，两盘炒菜下肚还是舒服！！！！&lt;/p&gt;
&lt;img src="https://assets.siyuanxu.com/i/bQNgHe4DTz-IRuhH.jpg" /&gt;</description><content:encoded><![CDATA[<p>因为抽油烟机进风口出风口都在屋内。。。。所以这段时间很少吃炒菜，今天是忍不住了，两盘炒菜下肚还是舒服！！！！</p>
<img src="https://assets.siyuanxu.com/i/bQNgHe4DTz-IRuhH.jpg" />
<img src="https://assets.siyuanxu.com/i/jM2uNAGoBRrwd7fo.jpg" />
<p> </p>]]></content:encoded></item><item><title>一趟大英博物馆 心情复杂</title><link>https://www.siyuanxu.com/%E4%B8%80%E8%B6%9F%E5%A4%A7%E8%8B%B1%E5%8D%9A%E7%89%A9%E9%A6%86-%E5%BF%83%E6%83%85%E5%A4%8D%E6%9D%82/</link><pubDate>Fri, 10 Jan 2020 06:30:14 +0800</pubDate><guid>https://www.siyuanxu.com/%E4%B8%80%E8%B6%9F%E5%A4%A7%E8%8B%B1%E5%8D%9A%E7%89%A9%E9%A6%86-%E5%BF%83%E6%83%85%E5%A4%8D%E6%9D%82/</guid><description>&lt;img src="https://assets.siyuanxu.com/i/uCPOEkxK7hihZ_Wx.jpg" /&gt;</description><content:encoded><![CDATA[<img src="https://assets.siyuanxu.com/i/uCPOEkxK7hihZ_Wx.jpg" />
<img src="https://assets.siyuanxu.com/i/AdxZHj6mFC86-INj.jpg" />
<img src="https://assets.siyuanxu.com/i/qpY5teKdGVPcOLXs.jpg" />
<img src="https://assets.siyuanxu.com/i/XNn3F6XCAFfAf20b.jpg" />
<img src="https://assets.siyuanxu.com/i/FIE4S8e0eIEVjqzg.jpg" />
<img src="https://assets.siyuanxu.com/i/J2CnZyAIl0MpXkxG.jpg" />
<img src="https://assets.siyuanxu.com/i/0ZJghnaf8Xjl4sBh.jpg" />
<img src="https://assets.siyuanxu.com/i/iT09_6YhWek1ti-k.jpg" />
<img src="https://assets.siyuanxu.com/i/JFcZTy2mkzUSJmwI.jpg" />
<img src="https://assets.siyuanxu.com/i/hJInJcBacP9l8SQP.jpg" />
<img src="https://assets.siyuanxu.com/i/_0cFEpc5XRnEVsWe.jpg" />
<img src="https://assets.siyuanxu.com/i/rqc47QzBZjXsFmot.jpg" />
<img src="https://assets.siyuanxu.com/i/kxWNFlSx98z0FPGM.jpg" />
<img src="https://assets.siyuanxu.com/i/O-g-D5_zz8sBjMpD.jpg" />
<img src="https://assets.siyuanxu.com/i/Tira3wEcGpdmIGkg.jpg" />
<img src="https://assets.siyuanxu.com/i/H9UU6m_yPYEs6Evp.jpg" />
<img src="https://assets.siyuanxu.com/i/3sG3QlqFAhQoBUCK.jpg" />
<img src="https://assets.siyuanxu.com/i/xIXNqlVmTSzT26O-.jpg" />
<img src="https://assets.siyuanxu.com/i/gPDLuCj9biALpFn6.jpg" />
<img src="https://assets.siyuanxu.com/i/mKvPvxngTtV1nE4G.jpg" />
<img src="https://assets.siyuanxu.com/i/tV3BEQ0QHe8rSqy3.jpg" />]]></content:encoded></item><item><title>我真是个不知疲倦的厨子</title><link>https://www.siyuanxu.com/%E6%88%91%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E7%9F%A5%E7%96%B2%E5%80%A6%E7%9A%84%E5%8E%A8%E5%AD%90/</link><pubDate>Sun, 05 Jan 2020 00:24:21 +0800</pubDate><guid>https://www.siyuanxu.com/%E6%88%91%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E7%9F%A5%E7%96%B2%E5%80%A6%E7%9A%84%E5%8E%A8%E5%AD%90/</guid><description>&lt;p&gt;得益于英国没有调休，元旦后名义上上班了一天又到周末了。本来我就喜欢看烹饪节目，吃不上中餐后看的越来越发狂，王刚和老饭骨的视频已经翻过一遍了，不过这是饮鸩止渴，每天不是在做饭就是在想吃啥。当然，还包括去哪里买吃的，家附近的大超市小商店已经被逛遍了，但是除了羊肉真的不错以外，猪肉鸡肉和牛肉都没什么味道，我这个肉食动物已经日益消瘦了。昨天在华人论坛上看到morrisons 好像肉品质量还不错，今天就去逛了一下，正好完成今天的一万步。&lt;/p&gt;</description><content:encoded><![CDATA[<p>得益于英国没有调休，元旦后名义上上班了一天又到周末了。本来我就喜欢看烹饪节目，吃不上中餐后看的越来越发狂，王刚和老饭骨的视频已经翻过一遍了，不过这是饮鸩止渴，每天不是在做饭就是在想吃啥。当然，还包括去哪里买吃的，家附近的大超市小商店已经被逛遍了，但是除了羊肉真的不错以外，猪肉鸡肉和牛肉都没什么味道，我这个肉食动物已经日益消瘦了。昨天在华人论坛上看到morrisons 好像肉品质量还不错，今天就去逛了一下，正好完成今天的一万步。</p>
<p>早上起床就向东北方向走过去，穿过regents park，没下雨，天气不错。</p>
<img src="https://assets.siyuanxu.com/i/mRbQBTtynLAlafm6.jpg" />
<p>过了之后发现还有一处绿地，是promise hill，在动物园对门， 之前倒是一直没在意过。看到有一处小高地，索性上去看看。</p>
<img src="https://assets.siyuanxu.com/i/JnPucqKf00YSh6Xb.jpg" />
<p>别看这处小丘极为不显眼，登顶后竟然能看到一大段泰晤士河，从金融城到伦敦眼再到海德公园都能看到。</p>
<img src="https://assets.siyuanxu.com/i/MsELe6Pz0W90Y1UB.jpg" />
<p>完全走出公园之后就是小路了，现在对英伦风情已经习惯了，两旁的商店基本没有开门的，没什么看头，不过顺着小河走着走着突然一阵色彩袭来，原来是一些皮划艇排在岸边。</p>
<img src="https://assets.siyuanxu.com/i/21vu3EjsDVr90YPq.jpg" />
<p>这次来的morrisons确实符合中国胃，排骨上大胆的标上了chinese flavor，回家炖起来一点腥味都没有。为了佐这一锅排骨，现学现卖了萝卜丝千层饼，口感酥脆。</p>
<img src="https://assets.siyuanxu.com/i/Y9BNoUedZZRfLty8.jpg" />
<p>挺好，估计这一年学会的中餐比过去三四年都要多。</p>
<p> </p>
]]></content:encoded></item><item><title>假期末尾的嘌呤炸弹</title><link>https://www.siyuanxu.com/73/</link><pubDate>Sat, 04 Jan 2020 08:33:43 +0800</pubDate><guid>https://www.siyuanxu.com/73/</guid><description>&lt;p&gt;随着头晕的逐渐消退，节，不管是中国的还是英国的都要过完了。不过这第一个在异国他乡的元旦过的那叫一个热-闹，体温热到40°c，脑袋闹了好几天。也许是身体的调节机制吧，随着这次发烧一同褪去的还有满嘴的溃疡-水土不服的显性表现。精神头上来了，一定要好好补一补，所以今天极为大方的前往Church street market赶集，在肉摊前排出多枚英镑，“上好的牛尾，再来一斤刚捕捞的大虾”。&lt;/p&gt;</description><content:encoded><![CDATA[<p>随着头晕的逐渐消退，节，不管是中国的还是英国的都要过完了。不过这第一个在异国他乡的元旦过的那叫一个热-闹，体温热到40°c，脑袋闹了好几天。也许是身体的调节机制吧，随着这次发烧一同褪去的还有满嘴的溃疡-水土不服的显性表现。精神头上来了，一定要好好补一补，所以今天极为大方的前往Church street market赶集，在肉摊前排出多枚英镑，“上好的牛尾，再来一斤刚捕捞的大虾”。</p>
<p>好吧，上面的对话是我瞎编的，本人暂时还在大量采用“这个”和“那个”进行大部分采购，不过今天买的食材倒还是真的凑合。中午太太把买来的牛排切了丝和红椒炒做一起，味道极佳，我又白灼了半斤虾，口味确实还不错。晚上索性把虾细细的剁成泥，拌上蛋清做成虾滑，把牛尾小火慢炖三小时做了高汤，取了两杯“一锅头”把虾滑煨熟了。反正虾滑倒是要不了几两高汤，主食就用烩面片解决剩下的高汤了，现在做的还不正宗，和面饧面还可以，就是缺碱面，又懒得去买，成品韧性不足。</p>
<p>最终结果嘛，还是相当满意，自己还真的没做出过这么鲜又不腻嗓子的汤，牛尾也软烂至极，就用这一顿嘌呤炸弹来结束假期吧</p>
<p>Cheers</p>
<img src="https://assets.siyuanxu.com/i/JfMqoFJiQ8bvQJ9w.jpg" />
<img src="https://assets.siyuanxu.com/i/iNyeBU5D6_aw_qR2.jpg" />
]]></content:encoded></item><item><title>照片若干</title><link>https://www.siyuanxu.com/%E7%85%A7%E7%89%87%E8%8B%A5%E5%B9%B2/</link><pubDate>Mon, 30 Dec 2019 05:52:46 +0800</pubDate><guid>https://www.siyuanxu.com/%E7%85%A7%E7%89%87%E8%8B%A5%E5%B9%B2/</guid><description>&lt;p&gt;抵达伦敦近50天后，国内从秋天转入了冬天，这里的天气倒是一直未变。因为一些工作上的原因，双时区工作了一段时间，导致现在生物钟依旧混乱，早上见不得太阳，而下午四点就早早进入黑暗。倒是让自己发觉了原来我还是喜欢太阳的，不算坏事。&lt;/p&gt;</description><content:encoded><![CDATA[<p>抵达伦敦近50天后，国内从秋天转入了冬天，这里的天气倒是一直未变。因为一些工作上的原因，双时区工作了一段时间，导致现在生物钟依旧混乱，早上见不得太阳，而下午四点就早早进入黑暗。倒是让自己发觉了原来我还是喜欢太阳的，不算坏事。</p>
<p>坏处就是，和国内8小时的时差再加上我的夜猫子作息，硬生生在伦敦过上了纽约时间。除了做事计划需要调整外，主要是和家里两个老可爱的联系窗口越来越小，从刚来的时候每天都有能说上几句到现在的长期失联。其实到这边自己还是比较放松的，责任感日渐崩解，国内一大堆事逐渐放下，不再有上亿的工程量顶在脑门上的感觉了，生活节奏迅速向胡适日记和季羡林日记靠拢，</p>
<p>容我大笑三声再打字。</p>
<p>好了，回到主题吧，最近服务器上搭了自己的外挂图床，所有东西都是自己私人链接的感觉有点上头。所以这次主要突出一个图多，一股脑的把时间线倾泻出来了。</p>
<p>?11月16号，刚落脚到新的Flat，在贝克街旁边，图是家旁边的私人公园。</p>
<img src="https://assets.siyuanxu.com/i/fXl7erHuCaOXA5Pk.jpg" />
<img src="https://assets.siyuanxu.com/i/T4wsIgDyP5rt-kED.jpg" />
<p>?家旁边的房子多是十八九世纪的老房子，砖红色都很突出</p>
<img src="https://assets.siyuanxu.com/i/eEEUMyp6IPBHrBQS.jpg" />
<img src="https://assets.siyuanxu.com/i/l-jYAF4fg23-p1Xj.jpg" />
<p>?去Wembley的宜家买桌子，说起来这次还是挺惊悚的，因为这个区经济上落后一些，我又是带着太太和一起过去，一路上搞得自己超级紧张。</p>
<img src="https://assets.siyuanxu.com/i/CwPWMAeV_xi2OTog.jpg" />
<p>?哈，这是从学校下班回家，出办公室拍的主楼。当时还在抱怨天黑了相机拍不清楚，不过回去拉了拉曲线有一股莫名的油画感。</p>
<img src="https://assets.siyuanxu.com/i/rHDbCL-6-b_258Zq.jpg" />
<p>?周日的农场集市，各种农家自产果汁、酒和面包。</p>
<img src="https://assets.siyuanxu.com/i/7UbdHGn1YsdqitVS.jpg" />
<p>?第一次跑去海德公园遛弯，小蘑菇，“打人柳”，第一次见到的松鼠以及十分应景的金色落叶。</p>
<img src="https://assets.siyuanxu.com/i/X8pYYraW5VKqfkbP.jpg" />
<img src="https://assets.siyuanxu.com/i/X6bxcb7_8iE4l6Im.jpg" />
<h1 id="我知道这应该不是柳树可是感觉就是小时候看哈利波特小说里写的打人柳不知道怕不怕飞车">我知道这应该不是柳树，可是感觉就是小时候看哈利波特小说里写的打人柳，不知道怕不怕飞车?。</h1>
<img src="https://assets.siyuanxu.com/i/RFumgNh-LIwtoOC4.jpg" />
<p>跑的贼快！</p>
<img src="https://assets.siyuanxu.com/i/8dafuQQD7kDRFNNz.jpg" />
<p>公园里动物还蛮多的，当天还看到游客被加拿大饿追着跑，其他的各种鸭子和鸟太不老实，还是天鹅比较稳重，停在那里给我拍证件照。</p>
<img src="https://assets.siyuanxu.com/i/1X0-BlDQeXOoK8tw.jpg" />
<p>?维多利亚女王的丈夫-亚伯特亲王纪念碑</p>
<img src="https://assets.siyuanxu.com/i/g55LFOA2gIUQgaTN.jpg" />
<p>?随处可见的阿拉伯人和他们粘在嘴上的水烟</p>
<img src="https://assets.siyuanxu.com/i/v1U1G_oL9P4q7ZS1.jpg" />
<p>?家旁的一角，沥青铲掉应该就和维多利亚时代差不多了吧</p>
<img src="https://assets.siyuanxu.com/i/bpGq1O9fotGn8wyo.jpg" />
<p>?好玩的来了，贝克街地铁站旁边的失物招领中心橱窗，1934年不知道是哪个勤快人拉在地铁上的熨斗，1986年的大哥大和莫名戳中我的非卖品标志。</p>
<img src="https://assets.siyuanxu.com/i/CF3Ck1H1DTOMux49.jpg" />
<img src="https://assets.siyuanxu.com/i/yy6do-A07n3dMEnn.jpg" />
<p>对了，还有1965年的阿莱和玛米亚中画幅单反，说起来玛米亚的rb67到现在还有很多人用。</p>
<img src="https://assets.siyuanxu.com/i/wCVs1JiGaRZRIIGS.jpg" />
<p>?离家也就5分钟步行的路程，每天上班的毕经之路摄政公园，然而也就这段时间才逛了逛。虽然冬天植物并不多，但是这个湖边Boat cafe 还是蛮漂亮。</p>
<img src="https://assets.siyuanxu.com/i/9Px5fUlyK6fMpH8B.jpg" />
<p>?圣诞节去逛wonderland游乐场路上看到的海鸥。不过游乐场就没什么好看的了，项目也不吸引人，氛围倒还不错。</p>
<img src="https://assets.siyuanxu.com/i/LtMW0P815mI2Lczk.jpg" />
<p>?冬至的牛肉包菜馅饺子，作为北方人血液里还是保留了一些白案技能，结合上太太的巧手，传承点习俗问题不大。</p>
<img src="https://assets.siyuanxu.com/i/BLQasXYOg1ehD4dQ.jpg" />
<p> </p>
<p>以头图结尾吧，摄政公园一坨叠一坨的足球场橄榄球场。建议横屏观看。</p>
<img src="https://assets.siyuanxu.com/i/lS2DBAtJyOYD4USF.jpg" />
]]></content:encoded></item><item><title>windows小型文件server</title><link>https://www.siyuanxu.com/windows%E5%B0%8F%E5%9E%8B%E6%96%87%E4%BB%B6server/</link><pubDate>Fri, 14 Jun 2019 05:11:00 +0800</pubDate><guid>https://www.siyuanxu.com/windows%E5%B0%8F%E5%9E%8B%E6%96%87%E4%BB%B6server/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;笔者很多时候会想从windows主机上共享文件，SMB分享呢不够通用，而且有时候在配置用户名和密码的时候由于字符编码不同会出现无法登陆的情况，ftp server 呢也是不够轻量。笔者理想的工具是一种web形式的文件系统，就像很多开源镜像站之类的，这样的话不需要考虑平台、编码等等一系列问题。终于在很多年的等待之后终于偶遇了__USBWebServer__ 这个项目。在这里记录一下这个软件解决我痛点的过程。&lt;/p&gt;</description><content:encoded><![CDATA[<!-- wp:paragraph -->
<p>笔者很多时候会想从windows主机上共享文件，SMB分享呢不够通用，而且有时候在配置用户名和密码的时候由于字符编码不同会出现无法登陆的情况，ftp server 呢也是不够轻量。笔者理想的工具是一种web形式的文件系统，就像很多开源镜像站之类的，这样的话不需要考虑平台、编码等等一系列问题。终于在很多年的等待之后终于偶遇了__USBWebServer__ 这个项目。在这里记录一下这个软件解决我痛点的过程。</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>不过可惜的是并没有找到项目源地址，项目同名网站也已经和这个软件无关。GitHub上的<a href="https://github.com/mcclureski/usbwebserver-new">usbwebserver-new</a>是网友升级PHP版本后的项目，我也把我能找到的最新版本的软件通过google drive分享给大家<a href="https://drive.google.com/open?id=18TO_d2HWLOK92VN361mbSnBC4uLja6Ck">usbwebserver v8.6.2</a>。需要说明的是上述两个来源都与原作者无关，我也没有找到未编译的代码，所以请谨慎下载使用。我个人是没有遇到问题。</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>软件以解压即用的绿色软件形式提供，打开usbwebserver.exe即可看到软件主界面。软件可以简单设置web root dir，apache port 和 MySQL port。相当于大家很熟悉的安装了PHP的Apache网络服务器。打开服务之后，通过localhost即可打开root dir，访问root文件夹中的文件，当然也可以作为本地测试环境使用。还是非常之方便的。</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>对于我来说，我希望做的是文件server，那么如果只能访问root文件夹的话是极不方便的，我总不能把所有需要的文件统统复制到root中来，当然要使用链接的方式来快速访问分散的文件。但是一直对windows server很不熟悉，最开始误以为快捷方式就==Linux Server 中的软链接。其实windows中的快捷方式是一个文件，只是windows系统可以理解该文件代表的信息，在web环境中就无法通过快捷方式来跳转路径了，解决办法也很简单，记住windows 的链接命令：</p>
<!-- /wp:paragraph -->
<!-- wp:syntaxhighlighter/code -->
<pre class="wp-block-syntaxhighlighter-code">mklink [-J/-H] destination source
</pre>
<!-- /wp:syntaxhighlighter/code -->
<!-- wp:paragraph -->
<p>windows系统总共有四种链接方式：</p>
<!-- /wp:paragraph -->
<!-- wp:list -->
<ul><li>硬链接 -H</li><li>软链接</li><li>Junction -J</li><li>快捷方式</li></ul>
<!-- /wp:list -->
<!-- wp:paragraph -->
<p>硬链接和Linux一样，软链接只能引导文件，Junction则是windows链接目录的方法，快捷方式就是普通的shortcut文件了。</p>
<!-- /wp:paragraph -->
]]></content:encoded></item><item><title>协方差和协方差矩阵</title><link>https://www.siyuanxu.com/%E5%8D%8F%E6%96%B9%E5%B7%AE%E5%92%8C%E5%8D%8F%E6%96%B9%E5%B7%AE%E7%9F%A9%E9%98%B5/</link><pubDate>Wed, 30 Jan 2019 04:54:52 +0800</pubDate><guid>https://www.siyuanxu.com/%E5%8D%8F%E6%96%B9%E5%B7%AE%E5%92%8C%E5%8D%8F%E6%96%B9%E5%B7%AE%E7%9F%A9%E9%98%B5/</guid><description>&lt;p&gt;在随机场分析以及机器学习的 PCA 主成分分析的过程中，我经常看到协方差和协方差矩阵这两个概念。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;协方差&lt;/strong&gt;：用于衡量两个变量的总体误差，方差(variance)是协方差的一种特殊情况，即两个变量完全相同。&lt;/p&gt;</description><content:encoded><![CDATA[<p>在随机场分析以及机器学习的 PCA 主成分分析的过程中，我经常看到协方差和协方差矩阵这两个概念。</p>
<p><strong>协方差</strong>：用于衡量两个变量的总体误差，方差(variance)是协方差的一种特殊情况，即两个变量完全相同。</p>
<p>假设有两组有限实数变量 $latex X$ 和 $latex Y$，那么他们各有一阶矩（矩的概念可以看一位朋友的博文<a href="https://reasonw.github.io/blog/2017/03/06/Moment/#%E7%89%A9%E7%90%86%E6%84%8F%E4%B9%89" rel="nofollow"> moment 矩</a>）为：</p>
<p>$$ E(X)=\mu,E(Y)=\nu $$</p>
<p>那么协方差可以定义为：</p>
<p>$$ cov(X,Y)=E[(X-\mu)(Y-\nu)]=E(X\cdot Y)-\mu\nu $$</p>
<p>协方差表示的是两个变量的总体的误差，这与只表示一个变量误差的方差不同。 如果两变量的变化趋势一致，也就是说如果其中一个大于自身的期望值，另外一个也大于自身的期望值，那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反，即其中一个大于自身的期望值，另外一个却小于自身的期望值，那么两个变量之间的协方差就是负值。</p>
<p>如果<em>X</em> 与<em>Y</em> 是统计独立的，那么二者之间的协方差就是0，这是因为：</p>
<p>$$ E(X\cdot Y)=E(X)\cdot E(Y)=\mu\nu $$</p>
<p>但是反之则不成立，如果X和Y的协方差为0，二者的独立性取决于协方差的相关性：</p>
<p>$$ \eta=\frac{cov(X,Y)}{\sqrt{var(X)\cdot var(Y)}}\ \ var(X):X的方差 $$</p>
<p>更准确的说是线性相关性，$latex \eta$ 是一个衡量线性独立的无量纲数，取值在[-1,1]之间。相关性 $latex \eta=1$ 时成为完全线性相关。</p>
<p><strong>协方差矩阵</strong>：分别为m和n个标量元素的列向量随机变量X和Y，二者对应的期望值分别为 $latex \mu, \nu$，这两个变量之间的协方差定义为$latex m\times n$矩阵</p>
<p>$$ cov(X,Y)=E((X-\mu)(Y-\nu)^T) $$</p>
]]></content:encoded></item><item><title>使用 mathjax 引擎渲染 github pages / wordpress 中的公式</title><link>https://www.siyuanxu.com/%E4%BD%BF%E7%94%A8-mathjax-%E5%BC%95%E6%93%8E%E6%B8%B2%E6%9F%93-github-pages-wordpress-%E4%B8%AD%E7%9A%84%E5%85%AC%E5%BC%8F/</link><pubDate>Fri, 30 Mar 2018 04:29:57 +0800</pubDate><guid>https://www.siyuanxu.com/%E4%BD%BF%E7%94%A8-mathjax-%E5%BC%95%E6%93%8E%E6%B8%B2%E6%9F%93-github-pages-wordpress-%E4%B8%AD%E7%9A%84%E5%85%AC%E5%BC%8F/</guid><description>&lt;p&gt;使用 GitHub pages 服务有一段时间了，体验很棒。不过在上一篇 &lt;a href="https://www.siyuanxu.com/archives/14"&gt;蒙特卡洛随机算法 101 &lt;/a&gt;的发布过程中发现，GitHub 的 markdown 语法并不支持 LaTeX 公式的渲染，所以今天晚饭后抽了几分钟时间搜索了以下解决方案，在这里分享出来。&lt;/p&gt;</description><content:encoded><![CDATA[<p>使用 GitHub pages 服务有一段时间了，体验很棒。不过在上一篇 <a href="https://www.siyuanxu.com/archives/14">蒙特卡洛随机算法 101 </a>的发布过程中发现，GitHub 的 markdown 语法并不支持 LaTeX 公式的渲染，所以今天晚饭后抽了几分钟时间搜索了以下解决方案，在这里分享出来。</p>
<p>GitHub pages 使用的时 jeklly 程序，在主题文件中是支持 js script 的。所以在博客的 repo 中找到</p>
<div class="language-bash highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code>_includes/head.html
</code></pre>
</div>
</div>
然后添加
<div class="language-html highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">"text/x-mathjax-config"</span><span class="nt">&gt;</span>
  <span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span>
    <span class="na">extensions</span><span class="p">:</span> <span class="p">[</span><span class="dl">"</span><span class="s2">tex2jax.js</span><span class="dl">"</span><span class="p">],</span>
    <span class="na">jax</span><span class="p">:</span> <span class="p">[</span><span class="dl">"</span><span class="s2">input/TeX</span><span class="dl">"</span><span class="p">,</span> <span class="dl">"</span><span class="s2">output/HTML-CSS</span><span class="dl">"</span><span class="p">],</span>
    <span class="na">tex2jax</span><span class="p">:</span> <span class="p">{</span>
      <span class="o">&lt;!--</span><span class="nx">$</span><span class="err">表示行内元素，</span><span class="nx">$$</span><span class="err">表示块状元素</span> <span class="o">--&gt;</span>
      <span class="na">inlineMath</span><span class="p">:</span> <span class="p">[</span> <span class="p">[</span><span class="dl">'</span><span class="s1">$</span><span class="dl">'</span><span class="p">,</span><span class="dl">'</span><span class="s1">$</span><span class="dl">'</span><span class="p">],</span> <span class="p">[</span><span class="dl">"</span><span class="se">\\</span><span class="s2">(</span><span class="dl">"</span><span class="p">,</span><span class="dl">"</span><span class="se">\\</span><span class="s2">)</span><span class="dl">"</span><span class="p">]</span> <span class="p">],</span>
      <span class="na">displayMath</span><span class="p">:</span> <span class="p">[</span> <span class="p">[</span><span class="dl">'</span><span class="s1">$$</span><span class="dl">'</span><span class="p">,</span><span class="dl">'</span><span class="s1">$$</span><span class="dl">'</span><span class="p">],</span> <span class="p">[</span><span class="dl">"</span><span class="se">\\</span><span class="s2">[</span><span class="dl">"</span><span class="p">,</span><span class="dl">"</span><span class="se">\\</span><span class="s2">]</span><span class="dl">"</span><span class="p">]</span> <span class="p">],</span>
      <span class="na">processEscapes</span><span class="p">:</span> <span class="kc">true</span>
    <span class="p">},</span>
    <span class="dl">"</span><span class="s2">HTML-CSS</span><span class="dl">"</span><span class="p">:</span> <span class="p">{</span> <span class="na">availableFonts</span><span class="p">:</span> <span class="p">[</span><span class="dl">"</span><span class="s2">TeX</span><span class="dl">"</span><span class="p">]</span> <span class="p">}</span>
  <span class="p">});</span>
 <span class="nt">&lt;/script&gt;</span>
 <span class="c">&lt;!--加载MathJax的最新文件， async表示异步加载进来 --&gt;</span>
 <span class="nt">&lt;script </span><span class="na">type=</span><span class="s">"text/javascript"</span> <span class="na">async</span> <span class="na">src=</span><span class="s">"https://cdn.mathjax.org/mathjax/latest/MathJax.js"</span><span class="nt">&gt;</span>
 <span class="nt">&lt;/script&gt;</span></code></pre>
</div>
</div>
在wordpress 中只需要安装Mathjax-Latex by Kblog的插件即可
<p>这样就可以载入一个配置好的公式渲染引擎了</p>
<p>$$ P=\sum^n_1\sigma_i+Excited!! $$</p>
]]></content:encoded></item><item><title>python 多线程并行加速 for</title><link>https://www.siyuanxu.com/python-%E5%A4%9A%E7%BA%BF%E7%A8%8B%E5%B9%B6%E8%A1%8C%E5%8A%A0%E9%80%9F-for/</link><pubDate>Tue, 20 Feb 2018 04:27:57 +0800</pubDate><guid>https://www.siyuanxu.com/python-%E5%A4%9A%E7%BA%BF%E7%A8%8B%E5%B9%B6%E8%A1%8C%E5%8A%A0%E9%80%9F-for/</guid><description>&lt;p&gt;在&lt;a href="https://www.siyuanxu.com/archives/14"&gt;前一篇文章&lt;/a&gt;里，我借助蒙特卡洛法对圆周率进行了估算，结果还是比较满意的，但是在试算过程中有一个问题很 annoying。更准确的结果需要更多的随机点，更多随机点意味着更大的矩阵计算，而且我在计算收敛情况时，需要多次执行求 pi 函数，但是我的 7700k 在计算时很不慌张，占有率仅在15%附近徘徊。矩阵乘法的并行加速我暂时还没有时间弄清楚，但是 for 的加速还是比较简单的，直接使用 multiprocessing 。代码如下：&lt;/p&gt;</description><content:encoded><![CDATA[<p>在<a href="https://www.siyuanxu.com/archives/14">前一篇文章</a>里，我借助蒙特卡洛法对圆周率进行了估算，结果还是比较满意的，但是在试算过程中有一个问题很 annoying。更准确的结果需要更多的随机点，更多随机点意味着更大的矩阵计算，而且我在计算收敛情况时，需要多次执行求 pi 函数，但是我的 7700k 在计算时很不慌张，占有率仅在15%附近徘徊。矩阵乘法的并行加速我暂时还没有时间弄清楚，但是 for 的加速还是比较简单的，直接使用 multiprocessing 。代码如下：</p>
<div class="language-python highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="n">np</span>
<span class="kn">from</span> <span class="nn">multiprocessing</span> <span class="kn">import</span> <span class="n">Pool</span> <span class="c1"># 引用线程池 </span>
<span class="k">def</span> <span class="nf">mc_pi</span><span class="p">(</span><span class="n">size</span><span class="p">):</span>
    <span class="n">ran_x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">([</span><span class="n">size</span><span class="p">,</span> <span class="n">size</span><span class="p">])</span>
    <span class="n">ran_y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">([</span><span class="n">size</span><span class="p">,</span> <span class="n">size</span><span class="p">])</span>
<pre><code>&lt;span class=&quot;n&quot;&gt;is_c&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ran_x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ran_y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;is_c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;is_c&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pi&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;count_nonzero&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;is_c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pi&lt;/span&gt;
</code></pre>
<p><span class="k">if</span> <span class="n"><strong>name</strong></span> <span class="o">==</span> <span class="s">&rsquo;<strong>main</strong>&rsquo;</span><span class="p">:</span>
<span class="n">size</span> <span class="o">=</span> <span class="mi">2000</span>
<span class="n">sizes</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
<span class="n">pool</span> <span class="o">=</span> <span class="n">Pool</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span> <span class="c1"># 创建线程池，小于等于 cpu 的线程 </span>
<span class="n">    pis</span> <span class="o">=</span> <span class="n">pool</span><span class="o">.</span><span class="nb">map</span><span class="p">(</span><span class="n">mc_pi</span><span class="p">,</span> <span class="n">sizes</span><span class="p">)</span> <span class="c1"># 计算函数和传入参数的 list 或 array 返回的是计算函数的返回值 list</span></code></pre></p>
</div>
</div>
multiprocessing 的好处时显而易见的，不需要像 thread 一样对代码进行修改。面对 for 循环，直接自动 map 到多个线程中，计算效率有比较大的提升。在上面的循环中，相比常规 for，很容易跑满 cpu，计算时间减少了一多半，从10.5s降低至4.5s。
]]></content:encoded></item><item><title>蒙特卡洛算法-101 使用随机算法计算圆周率</title><link>https://www.siyuanxu.com/%E8%92%99%E7%89%B9%E5%8D%A1%E6%B4%9B%E7%AE%97%E6%B3%95-101-%E4%BD%BF%E7%94%A8%E9%9A%8F%E6%9C%BA%E7%AE%97%E6%B3%95%E8%AE%A1%E7%AE%97%E5%9C%86%E5%91%A8%E7%8E%87/</link><pubDate>Tue, 30 Jan 2018 04:14:42 +0800</pubDate><guid>https://www.siyuanxu.com/%E8%92%99%E7%89%B9%E5%8D%A1%E6%B4%9B%E7%AE%97%E6%B3%95-101-%E4%BD%BF%E7%94%A8%E9%9A%8F%E6%9C%BA%E7%AE%97%E6%B3%95%E8%AE%A1%E7%AE%97%E5%9C%86%E5%91%A8%E7%8E%87/</guid><description>&lt;p&gt;随机算法在解决复杂问题时可以用极少的计算成本得到近似解析解的结果。今年，在国内岩土届，随机算法也有大量的应用，例如可靠度分析以及随机有限元方面。&lt;/p&gt;</description><content:encoded><![CDATA[<p>随机算法在解决复杂问题时可以用极少的计算成本得到近似解析解的结果。今年，在国内岩土届，随机算法也有大量的应用，例如可靠度分析以及随机有限元方面。</p>
<p>蒙特卡洛法是一种应用相当广泛的随机算法，近代的随机有限元也是建立在此基础上的。今天笔者第一次接触 mc 算法，尝试计算了圆周率，得到了不错的结果。</p>
<h2 id="想法">想法</h2>
假设我们有一个正方形， 在正方形中有一圆形，为了简化表达，这里的圆是正方形的内切圆，两图形的位置如下：
图形是关于原点中心对称的，因此，我们着重关心第一象限的内容。蒙特卡罗方法基于这样的思想：假想你有一袋豆子，把豆子均匀地朝这个图形上撒，然后数这个图形之中有多少颗豆子，这个豆子的数目就是图形的面积。当你的豆子越小，撒的越多的时候，结果就越精确。借助计算机程序可以生成大量均匀分布坐标点，然后统计出图形内的点数，通过它们占总点数的比例和坐标点生成范围的面积就可以求出图形面积。
<p>假如我们在正方形的内随机加入100个点，如下图，那么一般会有较多的点落在圆内，较少的点落在圆外。这时</p>
<p>那么随着我们点数的增加，随机点将会逐渐铺满整个面，那么相应的结果的准确率也会越来越高。下图是覆盖了10000个随机点的示意图。</p>
<p>在这一逼近过程中，收敛速度很快，我分别计算了从 100~<span id="MathJax-Element-1-Frame" class="MathJax" tabindex="0"><span id="MathJax-Span-1" class="math"><span id="MathJax-Span-2" class="mrow"><span id="MathJax-Span-3" class="mn">2</span><span id="MathJax-Span-4" class="mo">×</span><span id="MathJax-Span-5" class="msubsup"><span id="MathJax-Span-6" class="mn">10</span><span id="MathJax-Span-7" class="mn">6</span></span></span></span></span> 个随机点的pi值，收敛情况如下表右图，最后一次计算得到的结果为 3.1431953738541956 。nicoguaro 使用蒙特卡罗方法估算π值，见下表左图. 放置30000个随机点后,π的估算值与真实值相差 0.07%。</p>
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>计算过程</th>
<th>收敛过程</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
计算过程：由nicoguaro - 自己的作品，CC BY 3.0，https://commons.wikimedia.org/w/index.php?curid=14609430
<p>但是，也不难看出，虽然蒙特卡洛法计算效率非常高，但是由于其基于随机，所以极难达到很高的精度，即使取10的9次方个随机点时，其结果也仅在前4位与圆周率吻合）。用蒙特卡罗方法近似计算圆周率的先天不足是：第一，计算机产生的随机数是受到存储格式的限制的，是离散的，并不能产生连续的任意实数；上述做法将平面分区成一个个网格，在空间也不是连续的，由此计算出来的面积当然与圆或多或少有差距。所以，这种随机算法在应用时也应进行一定的适用性考虑。</p>
<p>最后 ，附计算代码如下：</p>
<div class="language-python highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="n">np</span>
<p><span class="k">def</span> <span class="nf">mc_pi</span><span class="p">(</span><span class="n">size</span><span class="p">):</span>
<span class="n">ran_x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">([</span><span class="n">size</span><span class="p">,</span> <span class="n">size</span><span class="p">])</span>
<span class="n">ran_y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">([</span><span class="n">size</span><span class="p">,</span> <span class="n">size</span><span class="p">])</span></p>
<pre><code>&lt;span class=&quot;n&quot;&gt;is_c&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ran_x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ran_y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;is_c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;is_c&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pi&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;count_nonzero&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;is_c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pi&lt;/span&gt;
</code></pre>
<p><span class="k">if</span> <span class="n"><strong>name</strong></span> <span class="o">==</span> <span class="s">&rsquo;<strong>main</strong>&rsquo;</span><span class="p">:</span>
<span class="n">size</span> <span class="o">=</span> <span class="mi">2000</span>
<span class="n">sizes</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
<span class="n">pool</span> <span class="o">=</span> <span class="n">Pool</span><span class="p">(</span><span class="mi">7</span><span class="p">)</span>
<span class="n">pis</span> <span class="o">=</span> <span class="n">pool</span><span class="o">.</span><span class="nb">map</span><span class="p">(</span><span class="n">mc_pi</span><span class="p">,</span> <span class="n">sizes</span><span class="o">.</span><span class="n">tolist</span><span class="p">())</span></code></pre></p>
</div>
</div>
]]></content:encoded></item><item><title>Github pages build failure</title><link>https://www.siyuanxu.com/github-pages-build-failure/</link><pubDate>Mon, 15 Jan 2018 04:13:26 +0800</pubDate><guid>https://www.siyuanxu.com/github-pages-build-failure/</guid><description>&lt;p&gt;File is not properly UTF-8 encoded? 也许这里可以帮到你&lt;/p&gt;
&lt;p&gt;Github pages 绝对是一项超值服务，如果没有动态网页要求的话，已经可以把这项服务当做一个不错的网站虚拟机了。很多托管在 github 上的优秀的项目都会建立一个相应的 github pages 页面。具体的建立流程十分简单，笔者就不在此赘述了。今天给大家分享一个 buil failure 问题的解决方法。&lt;/p&gt;</description><content:encoded><![CDATA[<p>File is not properly UTF-8 encoded? 也许这里可以帮到你</p>
<p>Github pages 绝对是一项超值服务，如果没有动态网页要求的话，已经可以把这项服务当做一个不错的网站虚拟机了。很多托管在 github 上的优秀的项目都会建立一个相应的 github pages 页面。具体的建立流程十分简单，笔者就不在此赘述了。今天给大家分享一个 buil failure 问题的解决方法。</p>
<p>这几天对一些国内免费的开源 api 很感兴趣，建了一个 repo <a href="http://github.com/siyuanxu/toys">http://github.com/siyuanxu/toys</a> 。大体上就是用 python 聚合一些信息写成 markdown 文件，并使用 github pages 做一个简单的静态页面。项目很简单，pages 上线也很顺利，但是上午在办公室更新了一下数据，竟然收到了 github 发的 build failure 邮件，提示内容是 File is not properly UTF-8 encoded。想了一下原因应该是办公室的 windows 系统中输出文本的编码有问题，而私人用的 MacBook 则没有此问题。在网上搜了一下，有一个解决办法是使用 iconv.exe 来进行转码，大体如下：</p>
<div class="language-bash highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code>iconv <span class="nt">-f</span> GBK <span class="nt">-t</span> utf-8 origin.md <span class="o">&gt;</span> new.md
</code></pre>
</div>
</div>
但是试了之后疗效并不好，当然有可能是因为我原来的文件并不是 GBK，而且这个方法不太 python。所以还是想在 python 中进行修改。简单搜索后有方法如下：
<p>原来的文本写操作为</p>
<div class="language-python highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s">'index.md'</span><span class="p">,</span><span class="s">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
	<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
</code></pre>
</div>
</div>
修改后为
<div class="language-python highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code><span class="kn">import</span> <span class="nn">codecs</span>
<p><span class="k">with</span> <span class="n">codecs</span><span class="o">.</span><span class="nb">open</span><span class="p">(</span><span class="s">&lsquo;index.md&rsquo;</span><span class="p">,</span><span class="s">&lsquo;w&rsquo;</span><span class="p">,</span><span class="s">&lsquo;utf-8&rsquo;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="n">blah</span> <span class="n">blah</span> <span class="n">blah</span>
</code></pre></p>
</div>
</div>
codes 是 python 的自带库，经过 codecs 内部函数操作的文本可以对编码格式进行指定。经过这样修改后，在此运行代码并提交至 github，build 成功。
]]></content:encoded></item><item><title>如何优雅的配置 ssh-key 登录远程 Linux 服务器 //ssh-copy-id excited！</title><link>https://www.siyuanxu.com/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E7%9A%84%E9%85%8D%E7%BD%AE-ssh-key-%E7%99%BB%E5%BD%95%E8%BF%9C%E7%A8%8B-linux-%E6%9C%8D%E5%8A%A1%E5%99%A8-ssh-copy-id-excited/</link><pubDate>Fri, 05 Jan 2018 04:05:08 +0800</pubDate><guid>https://www.siyuanxu.com/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E7%9A%84%E9%85%8D%E7%BD%AE-ssh-key-%E7%99%BB%E5%BD%95%E8%BF%9C%E7%A8%8B-linux-%E6%9C%8D%E5%8A%A1%E5%99%A8-ssh-copy-id-excited/</guid><description>&lt;p&gt;笔者手上有国内外小鸡若干，如果采用密码登录服务器。在远程登录服务器以及在有服务器端–本地段拷贝需求时，频繁的密码输入过程略显繁琐。所以在本地机器相对固定时，ssh-key 登录方式非常方便。在配置好 ssh-key 之后，我们登录服务器或者执行 scp 操作都不需要在此输入密码了。&lt;/p&gt;</description><content:encoded><![CDATA[<p>笔者手上有国内外小鸡若干，如果采用密码登录服务器。在远程登录服务器以及在有服务器端–本地段拷贝需求时，频繁的密码输入过程略显繁琐。所以在本地机器相对固定时，ssh-key 登录方式非常方便。在配置好 ssh-key 之后，我们登录服务器或者执行 scp 操作都不需要在此输入密码了。</p>
<p>可能你对 ssh-key 不是很了解，但是如果你使用 github，你其实已经在使用 ssh-key 的方式简化了远程操作步骤了。不管你的平台的是 Mac还是 Linux 的各种发行版，在你使用 ssh 隧道时，都需要一个 .ssh 文件夹。一般情况下，该文件夹的内容如下：</p>
<ul>
 	<li>id_rsa 文件，私钥</li>
 	<li>id_rsa.pub 公钥，是向互联网公开的</li>
 	<li>Know_hosts 用户使用过的 host 信息</li>
 	<li>authorized_keys 存放其他主机公钥的地方，和 GitHub 中管理 keys 的页面一样的道理</li>
</ul>
当然，你可以不必在意这些文件如何如何。配置 ssh-key 只需要在本地机上执行简单的两个步骤
<h2 id="1-生成-key">1 生成 key</h2>
这一步是在你面前的本地机上操作的，只需要执行下面这条命令：
<div class="language-bash highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code>ssh-keygen <span class="nt">-t</span> rsa
</code></pre>
</div>
</div>
意思是生成一个 -t type 为 rsa 加密的 ssh-keygen
<h2 id="2-传到远端">2 传到远端</h2>
网上很多资料中这一步使用的是 scp 来复制文件，但是这样有很多弊端，比如你的文件权限很可能不正确。在这里我们使用一条非常优雅的命令来完成这一操作;
<pre><code class="language-Bash">ssh-copy-id server_user_name@server.com
</code></pre>
在输入服务器登录密码后，ssh-key 登录就已经配置完成了。绝对不会出现任何碰壁的现象。
<h2 id="3-more">3 more</h2>
现在我们在登录远程服务器时已经不需要输入密码了，如果你想更加简化，还可以使用 alias 赋予登录命令别名。编辑 .bashrc 或者 .bash_profile 文件，添加别名。
<div class="language-bash highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code><span class="nb">alias </span><span class="nv">ecs1</span><span class="o">=</span><span class="s1">'ssh user@server.com'</span>
</code></pre>
</div>
</div>
修改后再运行下面的命令使设置生效
<pre><code class="language-Bash">source .bash_profile
</code></pre>
这样，只需要输入 ecs1 就可以登录到远程服务器了。
]]></content:encoded></item><item><title>matplotlib 的动态绘图实现</title><link>https://www.siyuanxu.com/matplotlib-%E7%9A%84%E5%8A%A8%E6%80%81%E7%BB%98%E5%9B%BE%E5%AE%9E%E7%8E%B0/</link><pubDate>Mon, 04 Dec 2017 23:09:56 +0800</pubDate><guid>https://www.siyuanxu.com/matplotlib-%E7%9A%84%E5%8A%A8%E6%80%81%E7%BB%98%E5%9B%BE%E5%AE%9E%E7%8E%B0/</guid><description>&lt;p&gt;笔者在日常的研究中经常使用 matplotlib 进行数据后处理，这个库的自由度很高，在 seaborn 加持下的出图质量也很高，在处理大量的试验数据时，Python 的应用节省了大量的时间。&lt;/p&gt;</description><content:encoded><![CDATA[<p>笔者在日常的研究中经常使用 matplotlib 进行数据后处理，这个库的自由度很高，在 seaborn 加持下的出图质量也很高，在处理大量的试验数据时，Python 的应用节省了大量的时间。</p>
<p>最近笔者在进行两个项目，一个是自己开发的数据采集仪<a href="https://github.com/siyuanxu/arduino_analog_sensor">有兴趣请戳 github</a>，还有一个是岩土方面的离散元数值分析研究（还没出结果，发过 paper 后开源）。在这两个项目中，经常会有对动态数组实时绘图的需求，在查阅资料后整理出了一种比较简便的方法，现在分享一下过程中的错误和最终成功的示例。</p>
<h3 id="naive-code">Naive code：</h3>
最初我非常的 naive，思路如下：
<div class="language-python highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code><span class="n">plt</span><span class="o">.</span><span class="n">ion</span><span class="p">()</span> <span class="c1"># interactive mode on 
</span><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span> <span class="c1"># plot original data 
</span><span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span> <span class="c1"># show the plot 
</span><span class="k">while</span> <span class="n">condition</span><span class="p">:</span> <span class="c1"># loop </span>
<span class="n">    x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_x</span><span class="p">)</span>
<span class="n">    y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_y</span><span class="p">)</span> <span class="c1"># append new data point
</span>    <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span> <span class="c1"># replot data </span>
<span class="n">    plt</span><span class="o">.</span><span class="n">pause</span><span class="p">(</span><span class="mf">1e-5</span><span class="p">)</span> <span class="c1"># pause the plot to show</span></code></pre>
</div>
</div>
这种方法在数据量较少，比如全部数据点不超过200个的时候，也可以实现“动态绘图”。但是当数据量较大时，绘图窗口会有严重的卡顿，而且曲线的绘制也有较大的延迟。采集仪项目中，当数据点超过400时，绘图相比于实际电位器的变化已经迟滞了三秒以上。
<p>在查明原因之后，笔者才发现自己写了一段尬 code，这样绘制出的曲线，虽然看起来是一条变化的曲线，但实际上是在每次更新数据之后进行了重复绘制，如果数据总共有 n 个数据点，那么最终将绘制 n 条不断重叠的曲线，难怪界面卡顿那么严重。</p>
<p>那么针对重叠绘图的问题，笔者又尬了一句 plt.clf() 在循环开始的位置。</p>
<div class="language-python highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code><span class="n">plt</span><span class="o">.</span><span class="n">ion</span><span class="p">()</span> <span class="c1"># interactive mode on 
</span><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span> <span class="c1"># plot original data 
</span><span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span> <span class="c1"># show the plot 
</span><span class="k">while</span> <span class="n">condition</span><span class="p">:</span> <span class="c1"># loop 
</span>    plt.clf()
<span class="n">    x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_x</span><span class="p">)</span>
<span class="n">    y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_y</span><span class="p">)</span> <span class="c1"># append new data point
</span>    <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span> <span class="c1"># replot data </span>
<span class="n">    plt</span><span class="o">.</span><span class="n">pause</span><span class="p">(</span><span class="mf">1e-5</span><span class="p">)</span> <span class="c1"># pause the plot to show</span></code></pre>
</div>
</div>
在每次重绘之前，删除当前 plot， 这样一来就不会产生重叠曲线了。但是这仍然是一个错误的示范，因为整个 plot 会在每次更新数据的时候闪现，体验很糟糕。
<h3 id="exited-code">Exited code：</h3>
通过笔者仔细的钻（stack）研（overflow），最终找到了正确的解决方法，其思路是避免重绘，采用数据更新的方法绘图。代码如下：
<div class="language-python highlighter-rouge">
<div class="highlight">
<pre class="highlight"><code><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="n">np</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="n">plt</span>
<p><span class="n">plt</span><span class="o">.</span><span class="n">ion</span><span class="p">()</span> <span class="c1"># interactive mode on 
</span><span class="n">line</span><span class="p">,</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span> <span class="c1"># plot the data and specify the 2d line 
</span><span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">gca</span><span class="p">()</span> <span class="c1"># get most of the figure elements </span>
<span class="k">while</span> <span class="n">condition</span><span class="p">:</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">new_x</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">new_y</span><span class="p">)</span>
<span class="n">line</span><span class="o">.</span><span class="n">set_xdata</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="n">line</span><span class="o">.</span><span class="n">set_ydata</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> <span class="c1"># set the curve with new data </span>
<span class="n">    ax</span><span class="o">.</span><span class="n">relim</span><span class="p">()</span> <span class="c1"># renew the data limits </span>
<span class="n">    ax</span><span class="o">.</span><span class="n">autoscale_view</span><span class="p">(</span><span class="bp">True</span><span class="p">,</span> <span class="bp">True</span><span class="p">,</span> <span class="bp">True</span><span class="p">)</span> <span class="c1"># rescale plot view </span>
<span class="n">    plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span> <span class="c1"># plot new figure
</span>    <span class="n">plt</span><span class="o">.</span><span class="n">pause</span><span class="p">(</span><span class="mf">1e-17</span><span class="p">)</span> <span class="c1"># pause to show the figure</span></code></pre></p>
</div>
</div>
现在，通过上面的代码便可以得到实时更新的，效率较高的动态绘图结果。
]]></content:encoded></item></channel></rss>