<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>予而不语</title>
    <link>https://heiybb.com/</link>
    <description>Recent content on 予而不语</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 18 Sep 2020 21:35:00 +0000</lastBuildDate><atom:link href="https://heiybb.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PN50上手体验 功耗及安装MINT 20相关问题</title>
      <link>https://heiybb.com/posts/pn50-mint-20-related/</link>
      <pubDate>Fri, 18 Sep 2020 21:35:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/pn50-mint-20-related/</guid>
      <description>前言 最近开发docker用得比较多，而家里只有个树莓派性能太低，也不想把服务都放在开发机Windows上，很不方便，于是搜罗了下NUC打算做个Home Lab，NUC9确实诱惑人但是价格也劝退，恰好想起来之前ASUS出了个AMD系列的NUC而且还更新了4000系CPU的支持，PN50映入眼帘，澳洲这边目前只有4500u的配置（加运费600AUD），4700u的暂时没有货而且还要贵上150AUD，性能也不需要那么高所以索性就买4500u的也够用。下单后3天收到（澳洲快递这个速度已经感天动地了）。
PN50 拍照技术辣鸡，随意看看就好
外包装 盒子精 前面板 后面板 侧面板 称个重 一家人整整齐齐 内部隐私 垃圾佬SSD内存 用了两根原来外星人拆下来的8G内存凑成16G 频率2666的影响应该不大。 固态也是外星人拆机下来的Intel 256g垃圾ssd凑合用。 装机过程就没拍照了，非常简单，这个NUC的顶部位置还支持一个2.5寸的sata盘，我手上没有也就没装了。 到手之后本来是打算装PVE的但是手头上的网线有点短，够不上路由器于是放弃。想想也没有多系统作业的需求。 对了这个机器是螃蟹网卡，可能有软路由需求的可能不太喜欢。
功耗 功耗是真的舒服 每天凌晨1点自动关机，早上起床的时候WOL BIOS里面还支持来电开机，所以也不用担心断电问题 装个Mint 以前用过一段时间的Manjaro，这次打算试试mint玩一玩（因为长得好看） 装系统过程省略，主要讲后面遇到的一点小问题。
GRUB启动30s修改无效 按照以往的方法修改timeout之后无效，一番搜索后找到解决方法
/etc/default/grub 注释掉GRUB_TIMEOUT_STYLE这一行
添加一行GRUB_RECORDFAIL_TIMEOUT=&amp;quot;$GRUB_TIMEOUT&amp;quot;
然后把GRUB_TIMEOUT改成自己想要的值，我这设置为5秒
# If you change this file, run &amp;#39;update-grub&amp;#39; afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n &amp;#39;Simple configuration&amp;#39; GRUB_DEFAULT=0 #GRUB_TIMEOUT_STYLE=menu GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR=`lsb_release -i -s 2&amp;gt; /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT=&amp;#34;quiet splash&amp;#34; GRUB_CMDLINE_LINUX=&amp;#34;&amp;#34; #Important GRUB_RECORDFAIL_TIMEOUT=&amp;#34;$GRUB_TIMEOUT&amp;#34; # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD .</description>
    </item>
    
    <item>
      <title>分享一下家里的网络结构</title>
      <link>https://heiybb.com/posts/home-network/</link>
      <pubDate>Sat, 15 Feb 2020 19:08:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/home-network/</guid>
      <description>前言 本来应该早就回澳洲了
奈何这情况没办法就待在家了
正好有空那就把家里的网络设备升级一下
架构 所有的路由器都是做纯AP使用, 网段10.10.10.0/24, 唯一的DHCP服务器为Openwrt
硬 网线 家里装修是6年前做的了, 管内埋的都是超5类线, 本来想都换成超6类的, 自己尝试了下用拉线器都一条拉不出来, 遂放弃, 只能考虑以后做光纤的明线了, 反正光纤线也没有很贵
虽然宽带只有100M, 但是内网的传输还是要考虑一下的, 所以还是买了6类线, 把后面交换机和路由连接之类的都换掉
比较有意思的一点是宽带在电信网上虽然显示是100M的套餐, 但是实际跑出来都是150-200M
设备 升级前 升级后 [一楼] - WNDR4300 [一楼] - TP-LINK TL-XDR3020 [二楼] - 软路由(8G) [二楼] - 软路由(16G) [二楼] - 软弱的树莓派3B+ [二楼] - 软弱的树莓派3B+ [二楼] - Null [二楼] - TP-LINK TL-SG1008VE千兆交换机 [二楼] - AC86U [二楼] - AC86U [三楼] - Null [三楼] - WNDR4300 软路由为淘宝货研凌i3-3865u裸机1442CNY
加装了闲置的INTEL 530 120G SATA固态和8G内存, 升级加装至16G, 都是京东买的金士顿DDR4 2400</description>
    </item>
    
    <item>
      <title>使用七牛CDN加载宝塔静态文件</title>
      <link>https://heiybb.com/posts/enable-bt-static-cdn/</link>
      <pubDate>Wed, 12 Feb 2020 20:56:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/enable-bt-static-cdn/</guid>
      <description>前言 原来的服务器使用的是阿里云国际HK的30M ECS 最近价格升了，空空的钱包表示买不起买不起 刚好发现可以试用1M的同样在HK的ECS 反正也就放个博客，于是转到了这个1M的新机器 照例懒人搞法新机器也装上宝塔 进宝塔后台的时候就发现1M这个带宽是真的膈应人 连静态文件都半天加载不出来 去宝塔论坛上逛了逛发现已经有人开发了替换静态文件使用CDN的插件 但是使用的CDN是作者自己的，这样的奉献精神让人敬佩，但不是自己的CDN始终不安心 万一突然挂了多麻烦，琢磨了一下有了下面这坨东西
宝塔静态文件备份 宝塔默认的静态文件路径为/www/server/panel/BTPanel/static 下载下来然后用同步工具上传到七牛空间 推荐使用QSunSync进行同步，可以保留目录结构，非常方便 后续调整的话可以使用另一款工具KODO Browser进行资源管理 得到的自己的CDN静态目录应该为https://cdn.example.com/static
宝塔模板文件替换 宝塔默认的template文件路径为/www/server/panel/BTPanel/templates/default 打包下载顺便记得备个份，然后使用支持正则表达式替换的编辑器进行批量替换 这里以VS Code为例打开default文件夹 将(?&amp;lt;=&#39;|&amp;quot;.|&amp;quot;)/static(?=/)替换为https://cdn.example.com/static 以版本7.1.0为例这个文件夹内应该有74个可替换处(但是后面替换时依旧需要自己好好检查) VS Code非常贴心的给出了替换后的效果方便检查
覆盖模板文件夹 这里使用WinSCP进行替换，然后回到面板后台重启面板即可看到效果
补充 在使用VS Code之前尝试过使用Notepad++替换结果发现它一直不能识别上面正则表达式零宽断言用法，懒得探究了就直接上VS Code好了 (?&amp;lt;=&#39;|&amp;quot;.|&amp;quot;)/static(?=/)这个正则匹配位置如果不明白的话
建议去花点时间看看正则表达式(链接走起-&amp;gt;正则表达式30分钟入门教程)
感谢 感谢宝塔面板静态加速作者提供的灵感 没有这个插件的话大概率要花更多的时间去寻找解决办法 插件链接-&amp;gt;宝塔面板静态加速 也可以直接在宝塔后台软件商店下载安装</description>
    </item>
    
    <item>
      <title>解决WIN10 1909 RDP &#39;Credentials did not work&#39;错误</title>
      <link>https://heiybb.com/posts/win10-1909-rdp-credentials-error/</link>
      <pubDate>Sun, 24 Nov 2019 11:27:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/win10-1909-rdp-credentials-error/</guid>
      <description>最近两台电脑都更新了1909 昨天恰好要用到RDP来共享屏幕结果发现两台电脑都无法成功连接RDP 核对密码确实没有错之后发现依然提示Credentials did not work 网上搜了一堆解决方法 仔细核对发现并没有可靠的
最后误打误撞发现了修复这个错误的方法 因为使用MicrosoftAccount登录RDP出错 所以尝试了下在其中一台电脑添加一个本地账户然后连接的时候使用LOCALACCOUNT\rdptest连接 连接成功 所以推测RDP相关的网络安全设置之类的是没有问题的 问题应该是出在MicrosoftAccount上 回顾一下安装系统的时候是直接用Microsoft Authenticator Approve登录的，并没有输入账户密码 怀疑有可能WINDOWS中没有储存这个密码的相关cache，导致了RDP登录时判断为Credentials fail
尝试sign out然后登录的时候选择sign in with password（避免选择PIN登录） 登录成功后再尝试RDP登录 成功~</description>
    </item>
    
    <item>
      <title>(Symfony)Fix the login Invalid credentials error in prod env</title>
      <link>https://heiybb.com/posts/symfony-login-invalid-prod/</link>
      <pubDate>Fri, 25 Oct 2019 10:45:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/symfony-login-invalid-prod/</guid>
      <description>This error is very weird. The login function works normally in the dev environment but always fails with the Invalid credentials when deployed on the prod environment. There are only few similar questions on the stackoverflow and none of them provide the correct solution or the advice is out of date(Only works for the old version Symfony)
The potential fix solution: Add save_path: &amp;quot;%kernel.cache_dir%/sessions/%kernel.environment%&amp;quot; in the config/framework.yaml session section part.</description>
    </item>
    
    <item>
      <title>给CMDER加右键SHIFT菜单</title>
      <link>https://heiybb.com/posts/cmder-context-shift-right-click/</link>
      <pubDate>Sat, 03 Aug 2019 10:21:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/cmder-context-shift-right-click/</guid>
      <description>Enable Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\Cmder] @=&amp;#34;Open Cmder Here&amp;#34; &amp;#34;Icon&amp;#34;=&amp;#34;D:\\IDE\\cmder\\Cmder.exe,0&amp;#34; &amp;#34;Extended&amp;#34;=&amp;#34;&amp;#34; [HKEY_CLASSES_ROOT\Directory\Background\shell\Cmder\command] @=&amp;#34;\&amp;#34;D:\\IDE\\cmder\\Cmder.exe\&amp;#34; \&amp;#34;%V\&amp;#34;&amp;#34; [HKEY_CLASSES_ROOT\Directory\shell\Cmder] @=&amp;#34;Open Cmder Here&amp;#34; &amp;#34;Icon&amp;#34;=&amp;#34;D:\\IDE\\cmder\\Cmder.exe,0&amp;#34; &amp;#34;Extended&amp;#34;=&amp;#34;&amp;#34; [HKEY_CLASSES_ROOT\Directory\shell\Cmder\command] @=&amp;#34;\&amp;#34;D:\\IDE\\cmder\\Cmder.exe\&amp;#34; \&amp;#34;%1\&amp;#34;&amp;#34; Disable Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\Directory\Background\shell\Cmder] [-HKEY_CLASSES_ROOT\Directory\shell\Cmder] Hint Replace the path of cmder with your own.
Simply delete &amp;quot;Extended&amp;quot;=&amp;quot;&amp;quot; if you don&amp;rsquo;t want to press SHIFT when right-clicking.</description>
    </item>
    
    <item>
      <title>IKBC C87键线分离 改Type-C接口</title>
      <link>https://heiybb.com/posts/ikbc-c87-diy-typec/</link>
      <pubDate>Fri, 21 Dec 2018 20:50:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/ikbc-c87-diy-typec/</guid>
      <description>前言 之前一直在Filco的黑轴侧刻87单模
上周去同学家玩的时候摸了下他的IKBC红轴 瞬间就爱上了红轴的轻巧和安静
于是有了这把IKBC C87红轴
现在都是Type-C主流，新买的键盘还没换键帽那就搞点别的事情吧
网上搜了一下发现居然已经有了这种改造
type-c的接口模块可以自己弄，但是网上已经有现成做好了的了，那就省很多时间了
直接给懒人贴上链接 https://item.taobao.com/item.htm?id=555092264486
准备 键线分离模块 x1
IKBC C87 x1
翘片若干
南旗S2螺丝刀(真的好用)
其他奇怪的补充物
开搞 0x00 拆外壳 IKBC C87非常好拆，外壳没有任何螺丝，用翘片在边缘撬开即可打开
0x01 拆原厂接线 拆开外壳之后我们就能直接看到USB线和键盘基板的接口 趁它不注意把它给拔下来
0x02 测试键线分离模块 这个步骤非常重要 线序不对的话会导致键盘无法正常工作或出现更严重的问题 拍模块前给店主发了原有的线序 所以店主应该是已经排好线序了 直接接上Type-C线测试一下 确认能正常工作没毛病 0x03 替换原厂线材 拆下原厂线的小盖子后把买的模块装上去，模块上给了很多螺丝孔刚好能够匹配IKBC上的位置 这里有点注意是这个模块的接口位置有点低，为了美观需要在底部垫一点东西，用手头自己有的任何绝缘材料都行
0x04 装壳 扣上壳子 就这么简单搞定 装逼 </description>
    </item>
    
    <item>
      <title>Clevo P775DM2G BIOS恢复</title>
      <link>https://heiybb.com/posts/775dm2g-bios-fix/</link>
      <pubDate>Tue, 11 Dec 2018 15:57:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/775dm2g-bios-fix/</guid>
      <description>事故回顾 准吧上看到D大发布了新BIOS，打算直接刷上新BIOS支持8代U 省得卖的时候森哥又要刷一遍，看完刷BIOS步骤后按顺序刷写，正常重启后直接GG黑屏无法进入BIOS也没有任何错误提醒，我就是那万中无一的倒霉鬼了 无奈搜索了一下发现只能用编程器恢复，庆幸很久以前有一份原版BIOS备份，下单了编程器和夹子等待救机
刷机设备 CH341A编程器 SOP8转DIP8测试夹子 USB延长线(夹子的线应该是不够长的) 这些东西淘宝上一大堆 我就不贴地址了
拆机 0x00 图上我们可以看到P775DM2G的BIOS芯片不是直接暴露出来的(实际上它被C面的金属板挡住了)，即使拆开了键盘依旧无法接触到，只能把整个C面移除
过程不多赘述，几乎所有螺丝都需要拆下来，C面有两个点提醒一下比较脆弱和容易松动
0x01 无线网卡旁边有两条蓝色排线(应该是触摸板的排线)是处于无线网卡两条天线的下方，且不容易放入，可以使用镊子夹着轻轻塞入卡槽扣好
0x02 键盘的卡扣非常脆弱(我就是把键盘的排线卡槽弄坏了，结果BIOS修完了又要去修这个卡槽)
刷写 拆完C面成功看到BIOS芯片，这时候发现一个问题，我的芯片型号MXIC MX25L6473F和别人的完全不一样，当时心就凉了半截 准吧里面的帖子 http://www.tieba.com/p/4372674336?see_lz=1 中的芯片是GD25Q64系列，另一个帖子也是这个芯片，我特么这个芯片厂家都和人家完全不一样啊 在刷写软件的芯片库里搜索了一下也没有我这个型号的芯片，抱着死马当活马医的心理上夹子看看能不能检测出来 夹子的芯片和编程器的接法，夹子的4脚在编程器的1脚上方，然后夹子带红线的那一条对应在BIOS芯片有&amp;rsquo;污损&amp;rsquo;的那个引脚轻轻夹上就好，连接USB线到电脑上打开刷写软件万幸成功识别成了MX25L6405D和芯片上的型号应该是一个系列的 打开原来备份的BIOS文件(8MB)点击自动就会开始刷写了，如果出现超时就执行擦除-检校-编程 完成之后上盖装机重启，电脑又完好如初(屁啊键盘卡槽坏掉啦)</description>
    </item>
    
    <item>
      <title>Notes about the hashCode &amp; equals</title>
      <link>https://heiybb.com/posts/hashcode/</link>
      <pubDate>Fri, 26 Oct 2018 04:39:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/hashcode/</guid>
      <description>import java.util.HashSet; import java.util.Set; public class HashEqualTest { public static void main(String[] args) { Set&amp;lt;Foo&amp;gt; fooSet = new HashSet&amp;lt;&amp;gt;(); Foo f1 = new Foo(1); Foo f2 = new Foo(1); Foo f3 = new Foo(1); Foo f4 = new Foo(1); fooSet.add(f1); fooSet.add(f2); fooSet.add(f3); fooSet.add(f4); System.out.println(fooSet.size()); System.out.println(&amp;#34;Break Point&amp;#34;); // only the first one element will be stored } } /** * result * * the add method will check the hashCode first * when the hashCode is the same the the equals method will be call * to compare the two instance * * if the hashCode is not override then the hashCode compare return false * the equals will no be called * * override the equals method is strongly not recommended * in order to avoid some unpredictable issues * * * when override the equals method, parameter &amp;#39;Object&amp;#39; type required * not the specific type */ class Foo { private int f; Foo(Integer x) { this.</description>
    </item>
    
    <item>
      <title>Oneplus5 Bootloader Relock</title>
      <link>https://heiybb.com/posts/oneplus5-relock/</link>
      <pubDate>Sat, 14 Apr 2018 12:30:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/oneplus5-relock/</guid>
      <description>人老了，没什么精力折腾手机，再也不再像以前一样能三条两头刷机换系统，手里的一加5之前是刷的第三方系统，后来又换回了官方的8.1用的很舒服，于是就想把bootloader也重新上锁算了，这样以后出门就可以不带信用卡直接用GooglePay刷卡了，再也不用天天担心掉钱掉卡这种事。然而在按照标准流程上锁时发现一直提示FAILED (remote: Flashing Lock is not allowed)，搜索之后发现需要提前在系统中把OEM unlocking打开，但是它是灰色的啊(掀桌)，还有人说要刷TWRP重新进系统才行，实验后也不可以，一筹莫展之际发现有一个彻底重新刷机的方法，就是用Msmdownloadtool
下面是 https://www.androidexplained.com/oneplus-5-unbrick-return-stock/ 文中的详细步骤 以及视频地址 https://www.youtube.com/watch?v=eAg3aTsmIms
Disable Driver Signature Enforcement in Windows (Method 2) Download and Extract the Drivers (OnePlus 5) Download and Extract the Recovery Tool (OnePlus 5) Shut down the OnePlus 5 Open up Device Manager from within Windows Press and hold the Volume Up button for about 10 seconds While holding the Volume Up button, connect the OnePlus 5 to the PC with a USB cable Continue holding the Volume Up button for a few more seconds until a new device shows up in Device Manager Skip to Step 17 if the OnePlus 5 shows up as Qualcomm 9008 This could be Unknown Device, QHUSB_BULK (under Unknown Devices) or Qualcomm HS USB (under COMs and Ports) Install the OnePlus 5 USB driver from Step 2 When the OnePlus 5 shows up as a Qualcomm 9008 device, you can proceed to Step 17 Go into the extracted Recovery Tool folder Right click the MsmDownloadTool file Click on the Run As Administrator option Grant Administrator access so it can be opened Then click the Start button in the top left corner to begin the process Wait until the process completes (you should see green text) Unplug the OnePlus 5 from the PC after the phone reboots by itself Wait for the OnePlus 5 to boot back into OxygenOS</description>
    </item>
    
    <item>
      <title>Archives</title>
      <link>https://heiybb.com/archives/</link>
      <pubDate>Sat, 04 Mar 2017 12:44:00 +0000</pubDate>
      
      <guid>https://heiybb.com/archives/</guid>
      <description></description>
    </item>
    
    <item>
      <title>为Pingshu主题启用WEBP图片格式</title>
      <link>https://heiybb.com/posts/new-webp/</link>
      <pubDate>Sat, 04 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/new-webp/</guid>
      <description>博客从wordpress换到typecho其实时间不过半个月，有幸用上Pingshu这个主题，真的非常漂亮。 和往常一样，任何主题到手里总是要折腾一番，毕竟最适合自己才好。 以下的添加和修改都在主题文件function.php中进行
添加函数 可以检查 HTTP 请求头部字段 Accept 的值是否包含 webp
function is_webp(){ return strstr($_SERVER[&amp;#39;HTTP_ACCEPT&amp;#39;],&amp;#39;image/webp&amp;#39;); } 修改函数 parseFieldsThumb函数&amp;mdash;对应主页文章的特色图片
function parseFieldsThumb($obj){ $options = Typecho_Widget::widget(&amp;#39;Widget_Options&amp;#39;); if(!empty($options-&amp;gt;src_add) &amp;amp;&amp;amp; !empty($options-&amp;gt;cdn_add)){ $fieldsThumb = str_ireplace($options-&amp;gt;src_add,$options-&amp;gt;cdn_add,$obj-&amp;gt;fields-&amp;gt;thumb); echo trim($fieldsThumb); }else{ if(is_webp()){ $fieldsThumb = preg_replace(&amp;#34;/$/&amp;#34;,&amp;#34;?imageView2/0/format/webp/q/85&amp;#34;,$obj-&amp;gt;fields-&amp;gt;thumb); echo trim($fieldsThumb); } else{ return $obj-&amp;gt;fields-&amp;gt;thumb();	} } } parseContent函数&amp;mdash;对应文章内容中的图片
function parseContent($obj){ $options = Typecho_Widget::widget(&amp;#39;Widget_Options&amp;#39;); if(!empty($options-&amp;gt;src_add) &amp;amp;&amp;amp; !empty($options-&amp;gt;cdn_add)){ $obj-&amp;gt;content = str_ireplace($options-&amp;gt;src_add,$options-&amp;gt;cdn_add,$obj-&amp;gt;content); } if(is_webp()){ $new_content = preg_replace(&amp;#39;/(img\.heiybb\.com\/)+(.*)(.jpg|.jpeg|.png|.gif)+/i&amp;#39;, &amp;#39;$1$2$3?imageView2/0/format/webp/q/85&amp;#39;, $obj-&amp;gt;content); echo trim($new_content); } else{ echo trim($obj-&amp;gt;content); } } 详解以及小BUG 只修改以上两个函数，尤其是parseFieldsThum这个函数，有一个前提就是每篇文章中必须已经单独设置了thumb字段，否则不会引用该函数。别的条件判断懒得修改了，所以就这样吧~ 检查发现is_webp()函数和主题带有的pjax有冲突，具体表现为只有在主页以及刷新一次之后才能看到图片地址被替换为WEBP</description>
    </item>
    
    <item>
      <title>Links</title>
      <link>https://heiybb.com/links/</link>
      <pubDate>Thu, 02 Mar 2017 13:22:00 +0000</pubDate>
      
      <guid>https://heiybb.com/links/</guid>
      <description>一些友链
可乐没气的猫 https://www.isthnew.com/
黄泽彬&amp;mdash;热爱生活、积极向上、且乐于分享的Java程序猿 https://zebinh.github.io/</description>
    </item>
    
    <item>
      <title>Windows下安装cx_Oracle记录</title>
      <link>https://heiybb.com/posts/windows-install-cx_oracle/</link>
      <pubDate>Thu, 16 Jun 2016 06:27:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/windows-install-cx_oracle/</guid>
      <description>最近python项目需要用到oracle，然而卡在cx_Oracle的安装步骤，一直过不去，花了点时间搜索整理，记录下来方便
环境 Windows 7 Ultimate 64-bit
Python 2.7
准备文件： cx_Oracle-5.1.2-10g.win-amd64-py2.7.msi
instantclient-basic-win64-10.2.0.5.zip python-2.7.11.amd64.msi
这里有三点需要注意
三个文件必须对应，都是64位或者都是32位 cx_Oracle和python版本对应，不要一个2.7一个3.5，这样就很尴尬了 cx_Oracle和instantclient-basic版本必须对应，在上图中可以看见都是10g(根据你服务器的oracle版本来选择)的，否则安装完依旧会报错 操作步骤：
安装python 安装cx_Oracle至python所在路径，它会自动选择，你也可以自定义路径 将instantclient-basic压缩包内的文件解压出来，我们只需要其中的dll文件 将解压出的dll文件直接复制至python的~\Lib\site-packages文件夹内 到这里有人可能会问难道不需要添加环境参数什么的么。
回答是不用 直接使用即可</description>
    </item>
    
    <item>
      <title>替换特色图像为七牛外链图片</title>
      <link>https://heiybb.com/posts/local-replace/</link>
      <pubDate>Fri, 20 May 2016 11:40:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/local-replace/</guid>
      <description>&lt;p&gt;2016.05.20更新：对所有非主题图片进行判断，并使用WEBP格式，加速博客访问
2015.11.08更新：判断是否为Chrome,是则使用WEBP格式&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>解决设备从谷歌商店设备列表中消失的问题</title>
      <link>https://heiybb.com/posts/solution-to-devices-disappear-from-google-play-store/</link>
      <pubDate>Sat, 06 Dec 2014 17:55:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/solution-to-devices-disappear-from-google-play-store/</guid>
      <description>今天下午电脑上登录Google Play Store安装应用时突然发现自己的荣耀6从设备列表中消失了,顿时后背一凉. 几经推想估计是刷机后遗症吧.但具体原因是什么就不清楚.倒是在网上找到类似的情况:
究其原因，是因为重新刷机后系统为该设备重新生成了一个Android ID。现在回想一下，如果你使用过”钛备份“这个软件进行数据恢复，你是否留意过他会提醒你”你的设备Android ID发生了变化“，询问你是恢复以前的ID还是继续使用新的ID甚至忽略它，大多数人都会忽略此信息（至于其他备份恢复类软件大多连这个提醒都没有）。这将导致你的账户虽然能从移动设备正常登陆和使用Play市场，但设备ID的变化却会导致它在谷歌市场的原始登记出问题，最典型的就是你的设备从谷歌Play商店的设备列表消失。
一番折腾后也没能解决,最后在官方找到了类似问题的解决方法: Error: You haven&amp;rsquo;t accessed the Google Play Store app on your device with this email account 我们将步骤三和步骤二调转过来就行: 即清除Google Play Store数据-&amp;gt;重启手机(必需)-&amp;gt;重新登录-&amp;gt;随意下载一个应用(这步很重要)-&amp;gt;问题解决 再用电脑登陆Play Store,在设备列表中就看到了我的荣耀6了~</description>
    </item>
    
    <item>
      <title>入手LAMY Safari 磨砂黑</title>
      <link>https://heiybb.com/posts/lamy-safari-matte-black/</link>
      <pubDate>Fri, 22 Aug 2014 10:41:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/lamy-safari-matte-black/</guid>
      <description>以前的Vista被人偷了&amp;hellip;无比心痛&amp;hellip;亮黑色的又摔坏了笔尖&amp;hellip;纠结了一个暑假决定买只磨砂黑的耍耍. 漂亮的灰盒子~
是在LAMY吧逛了之后在吧友的X宝店上购入的
说实话这磨砂黑没有想象中的好看，与其说是磨砂黑不如说是磨砂灰&amp;hellip;
顺便入手的还有一只上墨器(国产)和F笔尖(国产) 以下是国产上墨器和德产原上墨器的两张对比图
左侧均是德产，可以看出确实还是有点差距的~不过差的真心不多。山寨继续加油哈哈~没有太严重的强迫症就凑合着用吧~
磨砂黑的是EF笔尖。写着很不习惯。换了很多纸都写得不舒适。 亮黑色的F笔尖(国产)比较不错，书写流畅，不知道是不是笔尖的问题。（国产笔尖比德国原产还好嘛（╯－_－）╯╧╧）
字写得不好，就别吐槽了，善战善战</description>
    </item>
    
    <item>
      <title>在右键新建菜单中添加 CPP文件类型</title>
      <link>https://heiybb.com/posts/add-cpp-tpye/</link>
      <pubDate>Sat, 12 Jul 2014 14:57:00 +0000</pubDate>
      
      <guid>https://heiybb.com/posts/add-cpp-tpye/</guid>
      <description>最近C++玩的多，总是要新建CPP文件。 但总是新建TXT再重命名真是很麻烦。所以寻思找个简单的方法。
首先写好模板文件，保存好，比如我的位置是D:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\usual.cpp 打开注册表regedit，找到[HKEY_CLASSES_ROOT] -&amp;gt; [.cpp] 在 [.cpp] 下新建项 [ShellNew] (已经有的话需要删除并重建) 在 [ShellNew] 下新建 字符串值 ，名称为 FileName ，键值为模板文件的绝对路径，我的是D:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\usual.cpp Finished~ 在右键新建菜单中就会出现新建CPP文件的选项，新建的CPP文件都是以我们的模板文件为原型的
效果如图：</description>
    </item>
    
    <item>
      <title>About</title>
      <link>https://heiybb.com/about/</link>
      <pubDate>Mon, 09 Jun 2014 00:31:00 +0000</pubDate>
      
      <guid>https://heiybb.com/about/</guid>
      <description>###ME### 工科男 闲来看小说 三观不太正常 讨厌及颈的毛衣 每天要睡很长时间 RMIT IT Master狗 涉猎各种技术但不精通 爱玩各种电子产品及DIY 有资料收集和文件整理强迫症 看到规律运动的物体就想动一下
###LOG### 2018.06.24 重大事故 意外terminate博客所属服务器且无备份 所幸从一年前的硬盘上翻到了博客DEBUG备份 有两篇文章丢失 已从Google Cache中找回</description>
    </item>
    
  </channel>
</rss>
