<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>发明家小站</title>
  
  
  <link href="http://example.com/atom.xml" rel="self"/>
  
  <link href="http://example.com/"/>
  <updated>2023-12-09T02:32:54.000Z</updated>
  <id>http://example.com/</id>
  
  <author>
    <name>发明家</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>随身wifi折腾</title>
    <link href="http://example.com/2023/12/09/%E9%9A%8F%E8%BA%ABwifi%E6%8A%98%E8%85%BE/"/>
    <id>http://example.com/2023/12/09/%E9%9A%8F%E8%BA%ABwifi%E6%8A%98%E8%85%BE/</id>
    <published>2023-12-09T02:29:10.000Z</published>
    <updated>2023-12-09T02:32:54.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="随身wifi折腾"><a href="#随身wifi折腾" class="headerlink" title="随身wifi折腾"></a>随身wifi折腾</h1><blockquote><p>几个月前，网上冲浪的时候看见不少人在玩晓龙410的随身wifi,了解了一下居然有大佬把这个玩意的debian的刷机包整出来了，并且各种工具一应俱全，这部妥妥的便携Linux设备，除了内存和存储有点小，只有4+512MB，但是并不影响折腾，遂在网上花了点钱买了几个</p></blockquote><p>我购入的随身wifi有某飓，某某船，某机这三个</p><p>某飓的随身wifi自带sim卡槽，某某船和某机不自带sim卡槽，当然是可以自己焊接的，但是既然以及有某飓那样的卡槽随身wifi，那感觉也就没必要在自己焊接了，于是开始搭建各种好玩的东西</p><h3 id="0x00"><a href="#0x00" class="headerlink" title="0x00"></a>0x00</h3><p>扩展存储的方式将棒子改成迷你服务器，因为棒子自己只自带了4G的存储，于是可以通过usb外接的方式连接u盘，虽然只有usb2.0的速度，但是至少是可以扩充出来几十G的，本身的512MB内存可以通过swap增加至2G，安装docker并且把镜像目录设置为u盘目录，这个时候，随身wifi以及可以作为一个迷你服务器使用了，虽然性能不佳，但是跑青龙，jupyter-notebook之类的镜像是没问题的，但是rstudio，firefox远程浏览器，nukkit这类的就别想了，吃内存，并且因为swap内存速度慢，基本就是卡到怀疑人生。</p><h3 id="0x01"><a href="#0x01" class="headerlink" title="0x01"></a>0x01</h3><p>安装tightvncserver，lxde，novnc，实现一个在浏览器可以使用的Linux桌面系统，实测三者都安装完，存储还能剩下1.3G，可以部署一些便携的应用，比如hexo的博客，一些简单的需要gui支持的Linux应用，浏览器只能安装一些轻量浏览器，firefox这样的肯定是不行了，但是至少是可以作为一个可以学习的Linux桌面系统</p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic.imgdb.cn/item/6573d12dc458853aef0cd1c3.png" >        </sapn>      </p><h3 id="0x02"><a href="#0x02" class="headerlink" title="0x02"></a>0x02</h3><p>因为某飓的随身wifi自带sim卡槽，于是购入物联网卡，卡一年的套餐费是10块钱1G，安上wifipumpkin3以及nmap等等渗透工具，搭建好内网穿透，妥妥的近源渗透神器，只要有5V1A电源，那就可以随时使用，控制千里之外的内网不是梦，甚至还可以通过wifipumpkin模拟附近网络获取重要数据。</p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic.imgdb.cn/item/6573d12dc458853aef0cd2cd.png" >        </sapn>      </p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;随身wifi折腾&quot;&gt;&lt;a href=&quot;#随身wifi折腾&quot; class=&quot;headerlink&quot; title=&quot;随身wifi折腾&quot;&gt;&lt;/a&gt;随身wifi折腾&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;几个月前，网上冲浪的时候看见不少人在玩晓龙410的随身wifi,了</summary>
      
    
    
    
    
    <category term="日志" scheme="http://example.com/tags/%E6%97%A5%E5%BF%97/"/>
    
  </entry>
  
  <entry>
    <title>好想回到那个夏天</title>
    <link href="http://example.com/2023/05/15/%E5%A5%BD%E6%83%B3%E5%9B%9E%E5%88%B0%E9%82%A3%E4%B8%AA%E5%A4%8F%E5%A4%A9/"/>
    <id>http://example.com/2023/05/15/%E5%A5%BD%E6%83%B3%E5%9B%9E%E5%88%B0%E9%82%A3%E4%B8%AA%E5%A4%8F%E5%A4%A9/</id>
    <published>2023-05-15T08:08:44.000Z</published>
    <updated>2023-05-16T08:38:32.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>好想回到那个夏天，阳光正好，微风不燥</p></blockquote><p>转眼间已经是大三下学期了</p><p>昨天晚上的见习晚会仿佛还在眼前，经过了三年的时光，马上就要离开这里还真有点舍不得</p><p>下午在实验室学习，窗外的树影与阳光让我回忆起高中夏日的一个正午</p><p>我看向窗外，阳光洒过树叶的间隙，天上是朵朵白云</p><p>PS:给博客加了完全随机的每日一句，感谢一言的API</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;好想回到那个夏天，阳光正好，微风不燥&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;转眼间已经是大三下学期了&lt;/p&gt;
&lt;p&gt;昨天晚上的见习晚会仿佛还在眼前，经过了三年的时光，马上就要离开这里还真有点舍不得&lt;/p&gt;
&lt;p&gt;下午在实验室学习，窗外的树影与阳</summary>
      
    
    
    
    
    <category term="随笔" scheme="http://example.com/tags/%E9%9A%8F%E7%AC%94/"/>
    
  </entry>
  
  <entry>
    <title>回忆</title>
    <link href="http://example.com/2023/01/11/%E5%9B%9E%E5%BF%86/"/>
    <id>http://example.com/2023/01/11/%E5%9B%9E%E5%BF%86/</id>
    <published>2023-01-11T04:22:33.000Z</published>
    <updated>2023-01-11T04:23:42.000Z</updated>
    
    <content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="密码错误" data-whm="密码变了，但是你仍然可以查看">  <script id="hbeData" type="hbeData" data-hmacdigest="d873cfc9ad43a39270ddebec323f18c302fe05f656d92f3cc3e7fcd99503bb9e">cbb8c0ce296e54f35715ad2edd51a8b3689de64673f6dadbc79ad76259b8edceb416bebf5a0f7eb87656483e604279667a0ebd7b54f4cf33b2b856741fc2e84cf154d6859d46cb6e2d0e69d0c4f71140eb4f2f63f8d1ef87639ac239f5e3d1c5df6f972054967eb2568d51bd60045b6419b5865d448e8e8b0341252347d8f694704edbc2e759bd23e75eb42e1e9b7b76e00530ca1811f42209994b620e4d51f4ba1ac7e9f073299fc9ea6de761fbc83217c98ce185d5a7949b4c61284c4517c633b917837606efe8cd32841672dbc9516cbb73e5732f430f7faf37a81fe8fd5ce2e74026a097c4367661219421036401c3463c79794504ef265280b60e079eadcac9a10ab10836a05f184f2aac6be7cdc2410544520ced9b1143356bdee118da51ca658e71242e8344ff7f4d3f3d7e11c8c0c6ae2c12ace35153b7bf1d3256ba3d2a0719bc4a5b15f2bdf1fe75b2ac5712face46ecab3c9c952dc26584346239f91942f6da473377c8068af827b965a0dd7724b1fca6ea5d7b1f4831dc8398364e15ece8dc1d734236c98f5736c6b8a23601da23b03dd2866e99b045d0a17cf10413fcebe02da1c49f09d2e93941e68dcea10fc7b0a480e489f04483a5b73d467e72f6bd9b76402e9ef7c6f1bc7f89a858aebae246c9e52bf54ebe01ccca6ac4837a162e8d311278b6413aa9b026c4d3dad1e6bfb14eabce328ff6bdc8b0fdca0a351bf9460afa6fdf1ee78ff815d3479e5add9eaf19d3e5421bf8fc201b5ff18dca71ea16b3608b332afdd7751672822201ca24ca3fc21e332c3317cedf33a13c116c12efac196ce42448179b4fc11212e5b255ab6263406d53f440f8a34e0c5c824efe9efed6e55c025f23f5591bd2c430d1eadaee421071941c95d024cf38976506ff09893cd69b456e1d7e3ea78e33a7079fd75b8fb87596aac721f4ed7214381e558d9f445b7c3bebdfc3eb7b7097028e15c383e0020abe75b38cd0b449a9905b124c031afe3bd8c726246a695dbd9021c66fd8bc4a68489c50c7c664f4677d7d1c840c87736c0f71914bebbdd849ee28cfd57d41d8eaf92f56d9c3fb880fc1d7959f8d21b18ca160fcbf26c62e71c75b27eb148bd5c07e621c3bc2909a40bc67aa56c0ba190ce4ce2828702bf98cfdbfd94542cab09793d9778447f2fcd43ebe160e2e41c9d89582eb3cee1024169a8e6aa6607ea460df8f1ef602039873d99f092264de5cbc44e7f4f241c3ed7077e0c260966855eedbcfc34e9456ad378c68a7fa1fa1fb231649f264b010f4c2c5f77ec393c3e7c32e4b15747e0290aa8160e2496bdb649f809ab8c82560cd435ad9a1d9582d12ba95d6626c3ec5c70c63f6d7bde422db6e0dc7563825097074beb41ab2e19b46a7d76cb25fa109b8d76272774ac6fdf2d3cc4c5ffe43faecf18dad8941a0e7fea51925c640c4bacac29af4fa81b56fbdd60cbe04269a5750abac56f6c082ac69de7fbccedfc5e21f4deb33566144dff0ccc261e7d7975363c41f47994d93e865db3f239dc41dca5ad1c3a028a9dc41cb584a6035bafb83bed5d100e1c95a16cf4415f3abf57e61f5f851c84c8f6eb81900d706c4139c6ed24d9c4ba13c71b12409a6a12bf0a2ee681c6d1f018d842b6f0a01342335b00a37c09ab67020aede067afcebbe652382f83d33a2b0813b2a72efedfd4e5b72912b87247d8782ab38c2038c225a7d5aa7bf406e04838970d3b35ea0387948e5aee9270c36bb49d6acc869c5dabe4e320ee49abf53a5f0ab82b1301350abc313b6883c21cc06191c493740dd15ce914cc988e5695468c0c072bd83da1c16e7e9ed5d300c3f90b8359856aa99525ab9ef1bddf2f70e4eca69171ea4a6896d64141558abf223bb2b207bf72ac07a83a7894ee9e4302992b5b521b0d55741eb2fff37ee90558cdc0a20516ca497794f20f1f531d5b303aa820cbccccba355b3af0d63e14754df4bddb8fe71da63886e9d4eaf3e0c2b5001571fc1953ea513b4e3c553dc5731790ab4b2552ef27451f950db8569a280b2150042079d5cdb16dac4ea20e430b066146f09352168e300233d40082fae6c45c9d8a3233475b270b2d6e3183c7c9aa0d7357fd66dbd799cf6f17be891cd2da5717e3e496a80d3351629f6d204c98e69b840e27076d976cb75e559eca7cfc2e40b12f2f2a833c4183d52118138d6409bbbd0f2d383d141850fdb6388aa1baf13c82a80ee9321fbf698c9d5c3c9e7baeda30c172599d09c6ce0ebc5a851fd1bee3364b8264f44d2b3439c36d234fa101eaec65555419f67714e9a85f0c3e51e6df06e0097d38bbb2250b3908bd190b91a619e54853a9cbb6362c47f4ff9892c55e8f2365a7ab339803567ed8b123e4c75e42bc1f291791a4d4b93b961c6276db101d0c0125952a3bf99dc85af9f0529bc134649402b03591a27fa700b9fc774f166360e6e5b2619bdbef3558475106e9c5394965aaadacfee76e754ad4c7531bf36973807420f90dec275cd13a4f34596b136a739fae1517bb22600d7a1f408091229220f5e2d58746b07043e6340a1162c3ed65e54e3c244ec2ac5248800ee3327868e4c757b887b3a8afd58a6e008aa41960357001fbb72e51b141ecb3db468230f7a7b30ed436017abb3ce647fd80f33dccfc139e7252b008813cb28818d15180e358caf6c6de3a8b89381c82404a1fdea00fdcfad8b042cd3c375abbf70b0ea5872977bb8f6ba57fac95fec8cdd73e9458bf487ea540494f769cd3167689b6425bffcdb95eb34ed06aeaab8eacb7f889d5a4a2043d0776863c1d53c29a897a83e4abed9c936ca6911234486795f176b8feae1985dcd1531ec5f871fea41e27bffed23ec7e11de72adfd1325b4d74d9c775e4246aca9e9d841ea3cd6f0cea6607839e32c95faef659196cfc323216e054a0030709457c45e9ccb0951772b636cb169f58260d5b48fee9caae66c77fa1ff02d575e7f19e3ce411a10cc0b3247f8f0fedbd2e981cfbc3f72ec33d69d3c783bb3de330a4ead17b9028d438415fe4f9a2278a2e966778c25809f73a90e3f828386d7e011eb11a066ff342bc6c21675409bf4f2dbea3bd3b1fe5f6be8af9ccbb859662774fd125e027a976672af7bffdb83a329ac004246f782020e5862c63bdb228b6936a01b44543f2080e4bd31ed08410cdbed44e612f5accaaee52605b7f39c9437e6fd21eea86d0691d8061f3fbb1220c8b908b5c9344f7fd04bf948c5767149d787491423bea15b2b1f89ddc57cead4c72ccc5b52c143721c2e66ee040575c8195c581838ad146ec0e839985eebacdc589b85fd96716bf19e0e4a1b697b2aae62ceffba80aaf32d265b3c3a8d1c63b62468fe1027cf3439930d5658389075a8dfab60740d9da0c88bd5d75ca6c5a4c76c2a059225dce6207f8b7399eab6522e857263a21f7deac602237f6baa39ad981a7055ffb8c8099138279ad67bdfb85ba6f53ce699d2c2600a2a77355bc420dbd1fad4d0774c851c5c32ccaae6510f0e25c6c296d977faa9219d30f27d9a04edb360d40aa9af81ed1a8b18401bd6717c4f85d1c1f9f55a604d8707a6f4100c85a7961883d1c936da4afecd2eeae25029cb79b7a40168524f6fe9b81ab9ff07d41307ee6b5796f4bc98534e64e05e168efd84fc5925862cf9fe1fa2656ae1dfef2257f8daf4a32324a09026e8c5bc59950ff3495c195f5eced7d41036c14f14ca11a3b9e8a661ea02e76923b566794298e15d60363109ee52d868a5121dfa31227418c8c3489e1d15a9cc463b0769ae1aa1461a5fa8dd6be404988d7c9a3f751b755b85f9707086528ba19f7019a4b558953717ef6e4a591c5997ddb596c24037070d57223b547b1f1b32d44c37e714f4bed03fb96cc175ede1a0a17f5e52f6ffc431019bc85cd6dfbcc390fb9f8a642bc4601738d6ec5592d8c5fec0f0464dfb9ea093272f1631d91a1beda46776a407175a50a3f4b80f9a2735e7028827c5716ac84d77041a5b6735fa0e736665fa460f203013dccf1789ff347bd179e60f265e563bf8ce1552b5ca433c20c7da503ca9377cf74dd6c9c0409328b03d73f3394f38b75f9857fffab6f9594d0052ecd14d85f3bbddcaf5636d01b898fdd162949e9e7e248ed459ca7a5b7730aa040ec6d42eba5bdb15c6d85e1e9a7b6be83cf963ecb363745c1f59b6f9ed6fdcde6693d74d9411bfc1af582fe9eefead5b7ebf4001e12894c5b5dbf5da4565a2c10aff2886013ed67d1c41304d9bbcb811019420426548af62cb80340d551c409f41aa2659d4f9f9e90121613d26b8928c325123da54b048c8470fd8987e86b5c84f7f51af72b5ab46dc238bc4107ca331b74aaa7c7eb26f176be3a2a2dc7ff15b2cf02893a07f925e4bb655f783da0a2628f38e3ef0fc9f24a0a8a49aad4b741ecbedc9c738fb0b9a7df16e5e0f5729b03be45fe5c83f8856745fb92bd3224a6e553cda60a7d0f183c04140cfab710336a03aedfebc5851e1a7d9b9020e45aa64e0fa390fff3f39f2583dca5bc1c8d78dae552db7a8ea99ef0981780597e58e41e577081481d52e3fe80770d15d75532473f52e5a7567b4fd16a8c9d070617b5ed99e1657d77f9b9485728fd38968d37b24d737f86ff3980cc197b58d13e2726c6cc8c1e7dc38cee2bb7eacca622f432fa7d4d683c76a3a611f12b252da11a56d9b068d1b00d2b7baaa4569e4432fd44f874585cc5bf28ce302697bb95e6c18ed04b269412184c4d6b80eaa4271cdecf2fbb8d1c1cff1c9a928f526f6ca16cb0dd75a1128eeb75f678ef70501cf0b2cc65f2ce3fe29cf4f7dad81ee9dd19343480759dbc2164184344069f5e6cecf3b168af63a22be15b0eefd59f3a6253444f069c9ad2cf0c1cc423dae6c2fcdaae56ace3dd13cf53bc0b25ae14d520a0d3b8e30d1aafc96a0bf740ae6673c1b46a8b8b185167eb00ef32671bffc65f01cfe47f517f6eb9671509cf768f42b72b79e3e64bb8fedfd67aab7b6998dfd549ff42e203f7baad753231f2704e8afddb09ffed608cde74791856f631d07b17963b9eab0fbf3b4576cc64de886f7fba954cd039dc3a7fa28213f181c57d6ff7a21d342acf01c8c3c398f086bdafd3fd3c12718789c16ec02bfb4b7aef0da89b3a514c96052a5ba6be3cf7b7e3f210ce64fadda0e0eeb1357d0c4cbe8fff5bd3e56f8fcb035edb6d7c0b016da69f52df2205487eedfd4043ba9ba4c847be8502a7d8fba807182a976a342938b21ed77c8d08211d1a70c2fcfeace8d03397fe1b50fb86807bf160d68acd5e2b6f69f16ebf1a71cc533f2a89ab7a9fc2adf5b6875a69e9324d436e7ac8cfc4a30b200dd70e51028c9d8b486893e2250a707760ad5ca1470b3e15320793b883a12a21d47e4fbaaf7d0b7c481e1d00b5177ab0ee8d403aedefd4f0b6c1833460ef76121b538b6ae519c03446096bdce61f48f672c22290a7e9c8175cfb12eeb31752e4a9f624fea204672757023c60797993aebfd5823abc1dc91590de588c6c03ff8e29a49bfbcd3466a6f1f007c7c234740db3b69e243b474097cf967920ad22ff03fc499abb5d3504fd9faee31ee4d26fbd5d03f5505d380c475cda36c7360a593f4bb1903d073062219047cd4bb41cb4dd64457579ee87a3a4434820844a60d2867c00ee6a9083fbd10fc761170ed7cc8a04e276eabdb41f65af8b96b153b0f326352169db12c940418227f784599be1dc6532a32bab178b649c806e207ade82474817ce6b253100cc096bc92afde5271cad49d80b7ca89b33ea8a64d6e95f04f065450add9bcd9a6390d2022d3b38aae6f188c16d9634b6c97c53db84a16f2de5f94c2510166661f08e6adfad30e7fcf0b901add014f66f9f681993d858f36bd5cf87af3af86c44b25ed410d51534e0453f77116683b0dd8b460122a4b7855904ecb77dfec5ea644ffe02a46e9af32ad2e8642c8ddbff1690dd558cc7305049339643e0f68d96db4bf95c4801e117f1749a7a3b4ce7c0a31817019e8a0676808be970d15ce1d520a50a8bf0cad404b81f292e96239a290a5a96d68f2e9efb5779c6c84a7b0e36691e8f4e2f93d8325126392d08753bcfe7a1f1ea3b2c3c631e2ae16ec8cee8f9bfb2df7d9012a07d24d77df609308bfc14d1849cd6424568c14778521c0ecf5872bd97b4cc07501db5d03308c906e21d19755f6249889e2a1212c17c993850f3e4f51978c073ef20c67abae079b4a95a3c38b3ffa51a8229185a8c5552dcf61e88529735600bf8e7c01141bd9435ab9ec78b8843c0f6297cbb3c31b8e2ddbc04a6ac3955f1b47f1cd116fe1a001108fe96016f8f56cd5ad3a12a72bb686bd4c8d2dbdb3b2fcbf230a4733c1c84633d432c34cbb857ad86c5a15dc40ec87c8f7afb6d0c7347d01325e0fc773f877a9eef94d1a5f1829ccea6a28514644ae7252847f0742d88c38ed1156d91051cad6c7a0434c1c2904a01022deda6e2a4e884fb6902138bf523c3790e5dda7cd2bc817100b2ae850ad95a029d01545b511dea4aeb7c669aed27dc9474f33e1fc040db5e8dc94e5d05d3fb921378b8bb0966302d378e26356e0a99b4965f4fbcac0b0f2ce3719b67d2937a62e9c291c5404e8bdf8b19b2fd92ace8456ff6123e36ab7a801f5a032e00213b3b4c4665cc88fbb95bc3cdac7a2291519ce0a6f39def00016fde8cc2b91e9ff40039e502b14b50ad5a3545630dcea92cc1d63e77c698d0487234ea1ad902aa39ff1e59f0483bd0212df9329f0a2d366200a5b455dcd4557667e8897e38f0344660acc5cc926ab9de8a3211df2dea968065c502d556346874d1a5aae9def23392fe9c37d38cbd08f723b4ea5be7eefad195a72ef8f75ad7d3649402bad1ebf52ecbb15b5af1fcead149603f466fc746ca65ac1664443a2729e8073470a152d996de835269e30952cde7bed9b7ae82dfcf1d8bab452cd78c91dd091cef00b57e7aeaedfa19720b3fb37bbec1f2e22d038fca3b8a23bfc8d2651e94d420153ba27e06653f88978270dbe84c54583e4b69a782a08b0c7c082ccacdf0c1b883f6d00a21c1441ba11fae3f2d2be34b8a392a4cccf61f73ecccc63de1d3a6720e1dfc8a466bb3a6ef7ac3f280043dcea34a17ccfc8e9fe44b0e32fa48fe9a974dbb28cc4599124bbc7b5dbec9fe1200a5021a0d43280db7877c0ba94a77799699e279b9501ade9ed7d03cd086a896da7f573504bc5d246d9ea85d6d57a6342d956111e04ec2faf17cdb0ac37eef29cf470890e44533a5c2513b1f780e74cd5b546402199afc7421745981e5799a1420a2df1b58061c1a7d9662e077e70fcef23eac7d5fafd39b9a36695f25a6dbc962c3b1ff79de9912823bbc835698591dca570b9f2393c10e6756593b4e4481a844c93ac4ab7184b6ba78de76c775936d01f236463cd8f59d2e779f4ffa60455a80beee1bb75aa8828422f05808eca6f156638224f90a32c009f89fcbd501c2bf38cb2170624c7d377e4e15cffaed4f24faaad20d22f7568d9361abf49b29289e241f4fe2046ffc87a325295666f71dca943bc206948fb9e8e61dff5d0459cccde56c23533f7bde81ba7c87cfb93aac5f2d7e8a7018eb8b8dcd13c22ba2a4d7ca08103abf153eb0db597755ad34a69f598f54d0da3ebc321b4f221373e1608c22b044655bd70dd63f105c91a9395e9bcfb1b2f968bd56fc9711b755973d53db07175eba55869b189ae9b979d2773bce23d4ceea97bc0f3459df10307a5916d984d621ad0f0a772ec5ea01fd82aefa585da0bfbfe8a74c45ae4ce3aa0b7b160bc8a4f615e39f273c6fdafc88842674d589d70a0029fa8b405789dc2ea9ede008df756351804be8f6d16d10a1eb26548071e003593262c9fb15071921317992f6864c0a6079fa8b356b78dbd2975b91d3d4ed35b106aa5d81feb4b94c7d63aa4892a009a568fbf3d379f7469468c67abaf33d37fce661b1f4daf9ab97a2a1d1e36100541f3c0c1ea431d2cce7fd4a40ce632e5ece226f860bfcbd15a0527fc894d2f51e6e3e7aa0abe3e606074473536dd470b4f8cd7cbad745f9cdec15c788be05da634d33b8bcd70c8b2a4db3add97e71c94ef1d6c10000602e50c2a65314e0ce3afe9b1cd9c8d1e491dbc4b5656ab21607c32721ec64c979d5b421882eed82b314b4f9fa5e27e848ca824abbdfe4b8c94af9131ff6d59e1e974d3e05902d357bab7048bfe18af9d0226dd333afc11398354e8b08a277d7766afd4586ab517f53efbbfb7082a672ad200794901cc572a4cdfded8b8ba6a5526154293fe95e8ff11e413d36d1930b8534268d195dccec3bb107d87b6d45e8c489e6bfd786941a036ea0e16c2a4038aeda57168361fd27f9ae484b30d0b24a084ccd4c66c25d16ccd968c444a89c603c148fab16e838df8691d2f5330de2d3c25307c6b5a30ce3d34e6d371f50b0f4662161d5d8d034bc8fbf614bd447dabab70840d22b89529f271fece57ac394842be9f0d37d22a6be905495db34ae150c5e8597cf775ae63719081033f9554f91c22</script>  <div class="hbe hbe-content">    <div class="hbe hbe-input hbe-input-default">      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">        <span class="hbe hbe-input-label-content hbe-input-label-content-default">这篇文章需要密码</span>      </label>    </div>  </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
    
    
    <summary type="html">需要密码查看</summary>
    
    
    
    
  </entry>
  
  <entry>
    <title>一个新闻邮件订阅项目</title>
    <link href="http://example.com/2022/11/07/%E4%B8%80%E4%B8%AA%E6%96%B0%E9%97%BB%E9%82%AE%E7%AE%B1%E8%AE%A2%E9%98%85%E9%A1%B9%E7%9B%AE/"/>
    <id>http://example.com/2022/11/07/%E4%B8%80%E4%B8%AA%E6%96%B0%E9%97%BB%E9%82%AE%E7%AE%B1%E8%AE%A2%E9%98%85%E9%A1%B9%E7%9B%AE/</id>
    <published>2022-11-07T13:51:09.000Z</published>
    <updated>2023-05-15T08:11:06.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="一个新闻邮件订阅小项目记录"><a href="#一个新闻邮件订阅小项目记录" class="headerlink" title="一个新闻邮件订阅小项目记录"></a>一个新闻邮件订阅小项目记录</h1><p>最近一周，腾讯云搞活动，看云函数标准版只要1.04米，于是租了一年。</p><p>就那么放在那里也浪费，于是想着去做一个新闻邮件吧，正好每天可以早上起来看看新闻。</p><p>了解了一下各个新闻网站，新加坡联合早报算是公认的客观，于是便选择了此作为新闻来源。</p><h2 id="用法"><a href="#用法" class="headerlink" title="用法"></a>用法</h2><p>首先去<a href="http://news.wobisheng.top/">news.wobisheng.top</a>输入自己的邮箱，然后每天早上八点便可以收到新加坡联合早报的新闻推送了。</p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic1.imgdb.cn/item/63690daa16f2c2beb18024de.png" >        </sapn>      </p><p>如果不想订阅了，可以点击下面的退订，然后输入邮箱退订。</p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic1.imgdb.cn/item/63690daa16f2c2beb18024ee.png" >        </sapn>      </p><h2 id="如何实现的"><a href="#如何实现的" class="headerlink" title="如何实现的"></a>如何实现的</h2><h5 id="基本构成"><a href="#基本构成" class="headerlink" title="基本构成"></a>基本构成</h5><p>这个项目在云函数中包含了两个函数，一个web函数用于订阅以及退订的网站，一个事件函数用于每天早上8点发送邮件，在这背后还有一个小小的数据库用来存放订阅者的邮箱。</p><h5 id="发送邮件"><a href="#发送邮件" class="headerlink" title="发送邮件"></a>发送邮件</h5><p>发送邮件的函数其实就是一个小小的爬虫，他在每天早上八点钟回去访问一遍新加坡联合早报，并且保存新闻的标题，摘要，以及图片URL(如果没配图那就没URL)，接着他会去逐一请求每一张图片，进行base64编码(QQ邮箱为了防止&lt;img&gt;XSS攻击，所以只能用base64编码来显示图片)，最后发给每一个用户，也就成了每天早上收到的新闻邮件。</p><h5 id="预防攻击"><a href="#预防攻击" class="headerlink" title="预防攻击"></a>预防攻击</h5><p>因为数据库不大，并且防止恶意请求提交假邮箱，我写了一些用来限制每日邮箱数目的代码，每日邮箱最多提交十个，并且web函数的并发不超过10个，以此来防止一些恶意请求。对于ssti攻击，有字符串以及正则表达式进行过滤处理。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;一个新闻邮件订阅小项目记录&quot;&gt;&lt;a href=&quot;#一个新闻邮件订阅小项目记录&quot; class=&quot;headerlink&quot; title=&quot;一个新闻邮件订阅小项目记录&quot;&gt;&lt;/a&gt;一个新闻邮件订阅小项目记录&lt;/h1&gt;&lt;p&gt;最近一周，腾讯云搞活动，看云函数标准版只要1.04米</summary>
      
    
    
    
    
    <category term="项目,分享" scheme="http://example.com/tags/%E9%A1%B9%E7%9B%AE-%E5%88%86%E4%BA%AB/"/>
    
  </entry>
  
  <entry>
    <title>一篇流水账</title>
    <link href="http://example.com/2022/09/25/%E4%B8%80%E7%AF%87%E6%B5%81%E6%B0%B4%E8%B4%A6/"/>
    <id>http://example.com/2022/09/25/%E4%B8%80%E7%AF%87%E6%B5%81%E6%B0%B4%E8%B4%A6/</id>
    <published>2022-09-25T07:59:54.000Z</published>
    <updated>2022-09-25T08:36:22.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>日常的念念碎</p></blockquote><p>上一条博客还是在2022年3月，那个时候还是大二的小学弟，转眼间已经成为大三学长了。</p><p>不知道大学两年怎么过的，总感觉想学点什么但什么也没学会，大一雄心壮志想考进年纪前20，两年过去了，草草混了两个三等奖学金就已经感觉很满意了。</p><p>不知道未来会怎么样，感觉挣钱也很难，生活也很难</p><p>偶然想起高三的某个下午，老师在黑板上涂涂画画，我在窗边做着数学题，窗户的外面是无比浪漫的晚霞</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;日常的念念碎&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;上一条博客还是在2022年3月，那个时候还是大二的小学弟，转眼间已经成为大三学长了。&lt;/p&gt;
&lt;p&gt;不知道大学两年怎么过的，总感觉想学点什么但什么也没学会，大一雄心壮志想考进年纪前20，两年过</summary>
      
    
    
    
    
    <category term="日记" scheme="http://example.com/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
  <entry>
    <title>最近</title>
    <link href="http://example.com/2022/03/26/%E6%9C%80%E8%BF%91/"/>
    <id>http://example.com/2022/03/26/%E6%9C%80%E8%BF%91/</id>
    <published>2022-03-26T14:30:40.000Z</published>
    <updated>2022-04-01T07:13:56.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="最近"><a href="#最近" class="headerlink" title="最近"></a>最近</h1><p>好久没有写博客了，在这几个月里发生了好多事情</p><p>疫情再度来袭，学校再度封校，不知道什么时候可以解封，听说上海的病人要转移到我们这里，估计这个学期又是高中的一个学期</p><p>本来想骑行去苏州的计划也因疫情不得不取消，带来的相机和无人机不知道还能拿出来几次，唉</p><blockquote><p>青春能几年，疫情封三年。</p><p>许许多多的话只能任其烂在心里。</p><p>祖国加油吧。</p></blockquote><p>看了看上学期的博客，android studio已经学会了，基本的界面和程序已经可以成功运行了，但是今年的大创却没有报成。好多时候，真正的问题并不是存在于我们看到的地方，而隐藏在深处。</p><p>偶尔的小欢喜也难改变大大的苦闷。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;最近&quot;&gt;&lt;a href=&quot;#最近&quot; class=&quot;headerlink&quot; title=&quot;最近&quot;&gt;&lt;/a&gt;最近&lt;/h1&gt;&lt;p&gt;好久没有写博客了，在这几个月里发生了好多事情&lt;/p&gt;
&lt;p&gt;疫情再度来袭，学校再度封校，不知道什么时候可以解封，听说上海的病人要转移到我们这</summary>
      
    
    
    
    
    <category term="日记" scheme="http://example.com/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
  <entry>
    <title>日常记录</title>
    <link href="http://example.com/2021/10/09/%E6%97%A5%E5%B8%B8%E8%AE%B0%E5%BD%95/"/>
    <id>http://example.com/2021/10/09/%E6%97%A5%E5%B8%B8%E8%AE%B0%E5%BD%95/</id>
    <published>2021-10-09T05:14:49.000Z</published>
    <updated>2022-04-27T09:34:42.000Z</updated>
    
    <content type="html"><![CDATA[<h3 id="日常记录"><a href="#日常记录" class="headerlink" title="日常记录"></a>日常记录</h3><p>​    今天是10月9日，寒露刚刚过去的第一天，最近的压力真的好大，我有些喘不过气。</p><p>​    身为一名医学生，去年的学业考试考的并不好，而今年是我的第二年，正是拼搏的一年</p><p>​    希望未来可以变好吧</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h3 id=&quot;日常记录&quot;&gt;&lt;a href=&quot;#日常记录&quot; class=&quot;headerlink&quot; title=&quot;日常记录&quot;&gt;&lt;/a&gt;日常记录&lt;/h3&gt;&lt;p&gt;​    今天是10月9日，寒露刚刚过去的第一天，最近的压力真的好大，我有些喘不过气。&lt;/p&gt;
&lt;p&gt;​    身为一名医学</summary>
      
    
    
    
    
    <category term="日记" scheme="http://example.com/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
  <entry>
    <title>做一个nodemcu wifi天气小闹钟</title>
    <link href="http://example.com/2021/09/06/%E5%81%9A%E4%B8%80%E4%B8%AAnodemcu-wifi%E5%A4%A9%E6%B0%94%E5%B0%8F%E9%97%B9%E9%92%9F/"/>
    <id>http://example.com/2021/09/06/%E5%81%9A%E4%B8%80%E4%B8%AAnodemcu-wifi%E5%A4%A9%E6%B0%94%E5%B0%8F%E9%97%B9%E9%92%9F/</id>
    <published>2021-09-06T09:46:48.000Z</published>
    <updated>2021-09-07T04:09:48.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Nodemcu-wifi天气闹钟"><a href="#Nodemcu-wifi天气闹钟" class="headerlink" title="Nodemcu wifi天气闹钟"></a>Nodemcu wifi天气闹钟</h1><p>​    假期在家，闲来无事，拿出了以前玩的开发板，在网上看到了别人的点阵屏小闹钟，甚是羡慕，便买了一个32<em>8的小点阵屏，通过四块8\</em>8的共阴点阵屏并联而成，由四个MAX7219驱动。</p><p>​    项目开始的时候，傻傻的分不清MOSI和MISO，MISO( Master Input Slave Output )，MOSI(Master Output Slave Input)应该接MISO，而不是MOSI，然后引入LedControl.h库，点阵屏就成功驱动了，下了一个取模用的软件，便可以画图标了。</p><p>​    时间模块方面，因为我只有四块点阵，所以只能用其中的两块作为时间显示，那该如何让数字偏移呢，这里需要用到cmath里面的pow()函数，即pow(2,n)偏移量为n，数字便会向左偏移n个像素点位置了，如此，时间模块便写好了。</p><p>​    天气模块只需要画一些图标，请求api便可以实现，这里我采用了高德天气的api，用了一个arduino String模块自带的搜索对象，就不用再引入解析json的库了也方便了一些。</p><p>​    大致就是如此了。</p><p>​    <a href="https://www.bilibili.com/video/BV1yf4y1N7UA/">项目视频在这里呢</a></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;Nodemcu-wifi天气闹钟&quot;&gt;&lt;a href=&quot;#Nodemcu-wifi天气闹钟&quot; class=&quot;headerlink&quot; title=&quot;Nodemcu wifi天气闹钟&quot;&gt;&lt;/a&gt;Nodemcu wifi天气闹钟&lt;/h1&gt;&lt;p&gt;​    假期在家，闲来无事</summary>
      
    
    
    
    
    <category term="DIY" scheme="http://example.com/tags/DIY/"/>
    
  </entry>
  
  <entry>
    <title>BFS走迷宫</title>
    <link href="http://example.com/2021/06/12/BFS%E8%B5%B0%E8%BF%B7%E5%AE%AB/"/>
    <id>http://example.com/2021/06/12/BFS%E8%B5%B0%E8%BF%B7%E5%AE%AB/</id>
    <published>2021-06-12T08:18:31.000Z</published>
    <updated>2021-06-12T08:19:42.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="BFS走迷宫"><a href="#BFS走迷宫" class="headerlink" title="BFS走迷宫"></a>BFS走迷宫</h1><p>今天上午考完CET4，终于可以暂时放下英语好好的研究算法了</p><p>本来想复习复习dfs结果看见了别人写的走迷宫，心生羡慕，那我自己也写一个吧</p><p>程序如下</p><pre><code class="c++">#include &lt;iostream&gt;#include &lt;queue&gt;using namespace std;#define MAX 10//MAX为地图大小int a[MAX][MAX] = &#123;    &#123;1,1,1,1,1,1,1,1,1,1&#125;,    &#123;0,1,1,0,0,0,1,0,1,1&#125;,    &#123;0,1,1,1,0,0,1,1,1,1&#125;,    &#123;0,1,0,0,0,0,1,0,0,0&#125;,    &#123;0,1,1,1,1,1,0,0,0,0&#125;,    &#123;0,1,1,0,1,1,1,0,0,0&#125;,    &#123;0,1,0,0,1,1,1,0,0,0&#125;,    &#123;0,1,1,0,0,0,1,0,0,0&#125;,    &#123;0,1,0,0,0,1,1,0,0,0&#125;,    &#123;0,1,1,0,0,1,1,1,1,1&#125;,&#125;;//地图，1为可走，0不可走int b[MAX][MAX] = &#123; 0 &#125;;//记录数组int temp;int sum;struct location &#123;    int x;    int y;    int store[100][100];&#125;;queue&lt;location&gt; que;void judge()&#123;    while(!que.empty())    &#123;        int x = que.front().x, y = que.front().y;        que.front().store[x][y] = 1;        b[x][y] = 1;        if (x == MAX - 1 &amp;&amp; y == MAX - 1)        &#123;            for (int i = 0; i &lt;= MAX - 1; i++)            &#123;                for (int j = 0; j &lt;= MAX - 1; j++)                    printf(&quot;%d  &quot;, que.front().store[i][j]);                printf(&quot;\n&quot;);            &#125;            printf(&quot;\n&quot;);        &#125;        if ((y + 1 &lt; MAX) &amp;&amp; (a[x][y+1]) &amp;&amp; (!b[x][y + 1]))        &#123;            que.front().y = y + 1;            que.front().x = x;            que.push(que.front());        &#125;        if ((x + 1 &lt; MAX) &amp;&amp; (a[x + 1][y]) &amp;&amp; (!b[x + 1][y]))        &#123;            que.front().x = x + 1;            que.front().y = y;            que.push(que.front());        &#125;        if ((y &gt; 0) &amp;&amp; a[x][y-1] != 0 &amp;&amp; b[x][y - 1] != 1)        &#123;            que.front().y = y - 1;            que.front().x = x;            que.push(que.front());        &#125;        if ((x &gt; 0) &amp;&amp; a[x-1][y] != 0 &amp;&amp; b[x - 1][y] != 1)        &#123;            que.front().x = x - 1;            que.front().y = y;            que.push(que.front());        &#125;        que.pop();    &#125;;    return;&#125;int main()&#123;    location *first = (location*)malloc(sizeof(location));    first-&gt;x = 0;    first-&gt;y = 0;    for (int i = 0; i &lt;= MAX; i++)        for (int j = 0; j &lt;= MAX; j++)            first-&gt;store[i][j] = 0;    //不懂为什么申请了内存空间后，struct里面数组初始化无效所以只能在这里用for初始化了    first-&gt;store[0][0] = 1;    que.push(*first);    judge();    return 0;&#125;</code></pre><p>输入为n*n的地图</p><p>输出为解法，如下图</p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic.imgdb.cn/item/60c465a8844ef46bb26966f3.jpg" >        </sapn>      </p><p>这只是不到3个小时写的粗品，可能有很多不足的地方，但是看见它能跑起来，心中已经很开心了</p><p>记得以前在OJ上面做过的一道题，给一个n*n大小的格子，每个格子有一个值，从左上走到右下，哪条路线加起来的和最大，当时那个程序我是用递归+回溯写的，因为以前对于BFS的掌握不好，所以也不经常用</p><p>现在终于用BFS实现了类似的功能</p><p>也是遇到了一些问题，比如</p><p>为什么申请了内存空间后，struct里面数组初始化无效之类的</p><p>但是我感觉了解了这个算法的大致架构，思路，其实还是最重要的</p><p>就这样啦，继续努力</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;BFS走迷宫&quot;&gt;&lt;a href=&quot;#BFS走迷宫&quot; class=&quot;headerlink&quot; title=&quot;BFS走迷宫&quot;&gt;&lt;/a&gt;BFS走迷宫&lt;/h1&gt;&lt;p&gt;今天上午考完CET4，终于可以暂时放下英语好好的研究算法了&lt;/p&gt;
&lt;p&gt;本来想复习复习dfs结果看见了别人</summary>
      
    
    
    
    
    <category term="算法,BFS" scheme="http://example.com/tags/%E7%AE%97%E6%B3%95-BFS/"/>
    
  </entry>
  
  <entry>
    <title>BFS</title>
    <link href="http://example.com/2021/06/11/BFS/"/>
    <id>http://example.com/2021/06/11/BFS/</id>
    <published>2021-06-11T15:19:58.000Z</published>
    <updated>2021-06-12T04:57:26.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="回顾广度优先搜索"><a href="#回顾广度优先搜索" class="headerlink" title="回顾广度优先搜索"></a>回顾广度优先搜索</h1><p>好久没好好学学算法了，今天想写一个八皇后，发现啥也不会了，遂打算重新复习一下，就写了一下今天的广度优先搜索，实现的功能很简单，从N*N的表中找出最大的数(当然不是for的那种)</p><p>算法很拉，就拿这篇文章记录以下，我也没搞什么优化</p><p>下面是代码</p><pre><code class="c++">#include &lt;iostream&gt;#include &lt;queue&gt;using namespace std;#define MAX 6int a[MAX][MAX] = &#123;    &#123;3,2,5,6,4,90&#125;,    &#123;8,9,2,4,1,2&#125;,    &#123;5,60,4,7,0,5&#125;,    &#123;14,5,3,7,4,6&#125;,    &#123;1,2,3,4,5,7&#125;,    &#123;1,2,3,4,9,7&#125;,&#125;;int b[MAX+1][MAX+1];int temp;int sum;struct location &#123;    int x;    int y;&#125;;queue&lt;location&gt; que;void judge()&#123;    while(!que.empty())    &#123;        int x = que.front().x, y = que.front().y;        location temp;        if (sum &lt;= a[x][y]) sum = a[x][y];        if (x == MAX-1 &amp;&amp; y == MAX-1) break;        if ((x + 1 != MAX) &amp;&amp; (b[x + 1][y] != 1))        &#123;            temp.x = x + 1;            temp.y = y;            b[x + 1][y] = 1;            que.push(temp);        &#125;        if ((y + 1 != MAX) &amp;&amp; (b[x][y+1] != 1))        &#123;            temp.x = x;            temp.y = y + 1;            b[x][y+1] = 1;            que.push(temp);        &#125;        que.pop();    &#125;;    return;&#125;int main()&#123;    location first = &#123; 0,0 &#125;;    sum = a[0][0];    que.push(first);    judge();    printf(&quot;%d&quot;, sum);    return 0;&#125;</code></pre><p>就这样啦，运行后是90</p><h3 id="继昨天的算法，稍稍改进以下，就得到了一个算n-n格子有多少种走法的算法"><a href="#继昨天的算法，稍稍改进以下，就得到了一个算n-n格子有多少种走法的算法" class="headerlink" title="继昨天的算法，稍稍改进以下，就得到了一个算n*n格子有多少种走法的算法"></a>继昨天的算法，稍稍改进以下，就得到了一个算n*n格子有多少种走法的算法</h3><pre><code class="c++">#include &lt;iostream&gt;#include &lt;queue&gt;using namespace std;#define MAX 4int a[MAX][MAX] = &#123;0&#125;;int b[MAX+1][MAX+1];int temp;int n;int sum;struct location &#123;    int x;    int y;&#125;;queue&lt;location&gt; que;void judge()&#123;    while(!que.empty())    &#123;        int x = que.front().x, y = que.front().y;        location temp;        if (x == MAX - 1 &amp;&amp; y == MAX - 1) &#123; n++; &#125;        if ((x + 1 != MAX))        &#123;            temp.x = x + 1;            temp.y = y;            que.push(temp);        &#125;        if ((y + 1 != MAX))        &#123;            temp.x = x;            temp.y = y + 1;            que.push(temp);        &#125;        que.pop();    &#125;;    return;&#125;int main()&#123;    location first = &#123; 0,0 &#125;;    sum = a[0][0];    que.push(first);    judge();    printf(&quot;%d&quot;, n);    return 0;&#125;</code></pre>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;回顾广度优先搜索&quot;&gt;&lt;a href=&quot;#回顾广度优先搜索&quot; class=&quot;headerlink&quot; title=&quot;回顾广度优先搜索&quot;&gt;&lt;/a&gt;回顾广度优先搜索&lt;/h1&gt;&lt;p&gt;好久没好好学学算法了，今天想写一个八皇后，发现啥也不会了，遂打算重新复习一下，就写了一下今天</summary>
      
    
    
    
    
    <category term="算法,BFS" scheme="http://example.com/tags/%E7%AE%97%E6%B3%95-BFS/"/>
    
  </entry>
  
  <entry>
    <title>七工匠50mm f1.8镜头体验</title>
    <link href="http://example.com/2021/06/05/%E4%B8%83%E5%B7%A5%E5%8C%A050mm-f1-8%E9%95%9C%E5%A4%B4%E4%BD%93%E9%AA%8C/"/>
    <id>http://example.com/2021/06/05/%E4%B8%83%E5%B7%A5%E5%8C%A050mm-f1-8%E9%95%9C%E5%A4%B4%E4%BD%93%E9%AA%8C/</id>
    <published>2021-06-04T16:29:37.000Z</published>
    <updated>2021-06-04T16:34:24.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="七工匠50mm-f1-8镜头体验"><a href="#七工匠50mm-f1-8镜头体验" class="headerlink" title="七工匠50mm f1.8镜头体验"></a>七工匠50mm f1.8镜头体验</h1><p>最近趁着天猫618，以340的价格入手了一个七工匠50mm f1.8定焦大光圈镜头，先看看外观</p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic.imgdb.cn/item/60ba481f8355f7f7186f408d.jpg" >        </sapn>      </p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic.imgdb.cn/item/60ba481f8355f7f7186f4074.jpg" >        </sapn>      </p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic.imgdb.cn/item/60ba481f8355f7f7186f40ad.jpg" >        </sapn>      </p><p>拿到镜头的那一刻，明显感觉和以前买的cctv头有明显的不同，包装精美，说明书什么的一应俱全，镜头也是全金属的，很有分量，大小居然比以前的35mm f1.6 cctv还要小一点，对焦环，光圈环阻尼略微偏小(也可能是我习惯了35cctv的阻尼)，有时候不小心碰一下就会转一些。镜头的其他方面都挺好的，来看看样片。</p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic.imgdb.cn/item/60ba481f8355f7f7186f40c2.jpg" >        </sapn>      </p><blockquote><p>iso:100    曝光时间1/200    光圈f/1.8    图片经过后期处理</p></blockquote><p>当时拍这张照片的时候，已经是下午6点多了，在ISO100的情况下1/200的曝光时间画面是可用的，大光圈的进光量真的是不容小视，同时，与以前的cctv头比，边缘画质还不错，中心也很清晰。</p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic.imgdb.cn/item/60ba48208355f7f7186f4322.jpg" >        </sapn>      </p><blockquote><p>iso:100    曝光时间1/250    光圈f/1.8    图片经过后期处理</p></blockquote><p>这是一张远景照片，可以更明显的看出边缘画质了，基本没有什么模糊</p><p>下面是一些此镜头拍摄的图片</p><p>        <span class="lazyload-img-span">        <img              data-src="https://pic.imgdb.cn/item/60ba48338355f7f7186ff309.jpg" >        </sapn>      </p><blockquote><p>iso:100    曝光时间1/250    光圈f/1.8    图片经过后期处理</p></blockquote><p>        <span class="lazyload-img-span">        <img              data-src="https://pic.imgdb.cn/item/60ba48338355f7f7186ff2f8.jpg" >        </sapn>      </p><blockquote><p>iso:100    曝光时间1/320    光圈f/1.8    图片经过后期处理</p></blockquote><h3 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h3><p>总的来讲，七工匠这枚50mm定焦镜头很不错，有点小痰盂的感觉，价格低，画质还不错，唯一较大的缺点是没有自动对焦，是一枚值得入手的好镜头</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;七工匠50mm-f1-8镜头体验&quot;&gt;&lt;a href=&quot;#七工匠50mm-f1-8镜头体验&quot; class=&quot;headerlink&quot; title=&quot;七工匠50mm f1.8镜头体验&quot;&gt;&lt;/a&gt;七工匠50mm f1.8镜头体验&lt;/h1&gt;&lt;p&gt;最近趁着天猫618，以340</summary>
      
    
    
    
    
    <category term="镜头,评测" scheme="http://example.com/tags/%E9%95%9C%E5%A4%B4-%E8%AF%84%E6%B5%8B/"/>
    
  </entry>
  
  <entry>
    <title>Github Pages实时新闻推荐</title>
    <link href="http://example.com/2021/06/03/Github-Pages%E5%AE%9E%E6%97%B6%E6%96%B0%E9%97%BB%E6%8E%A8%E8%8D%90/"/>
    <id>http://example.com/2021/06/03/Github-Pages%E5%AE%9E%E6%97%B6%E6%96%B0%E9%97%BB%E6%8E%A8%E8%8D%90/</id>
    <published>2021-06-03T12:55:58.000Z</published>
    <updated>2021-06-03T12:59:26.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Github-Pages实时新闻推荐"><a href="#Github-Pages实时新闻推荐" class="headerlink" title="Github Pages实时新闻推荐"></a>Github Pages实时新闻推荐</h1><p>这些天学了爬虫，心里就一直想做点什么，于是乎开发了一个在github pages上也可以实时更新新闻头条的功能。</p><p>并且打算在未来添加一个可以回顾过去每一天新闻的功能。</p><p>先来看看成果吧，点一下导航栏上面的<a href="https://wobisheng.github.io/news.html">实时新闻</a>即可体验了。</p><p>说一下大致过程的吧</p><p>服务器每天定时任务爬取百度头条，数据生成接口，网页解析接口json生成新闻</p><h4 id="下面说说我遇到的一些问题"><a href="#下面说说我遇到的一些问题" class="headerlink" title="下面说说我遇到的一些问题"></a>下面说说我遇到的一些问题</h4><p>一是静态界面如何获取接口信息的问题，因为我过去获取接口信息一直用的php，所以之前我一直在思考如何在github pages上面用静态界面获取接口信息，这个时候，我遇到了jQuery</p><p>二是最开始，我想用docker来运行这个项目，一个docker运行nginx另一个跑python，但是两个容器之间进行连接并不是一个容易的事情，遂放弃docker直接投奔nginx</p><p>三是js跨域的问题，开始我尝试了各种方法，服务器一直不给我传数据，打开开发者工具，检查后发现是因为nginx的配置文件中并没有添加 Access-Control-Allow-Origin的许可，终于，接口的数据可以在网页中被读取了</p><p>四是mixed-content的问题，是因为github pages是https而我的接口是http导致的，遂向<a href="https://elstec.cn/">节操</a>借了一个子域，勉勉强强凑了一个ssl，大功告成</p><p>期待下一个项目</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;Github-Pages实时新闻推荐&quot;&gt;&lt;a href=&quot;#Github-Pages实时新闻推荐&quot; class=&quot;headerlink&quot; title=&quot;Github Pages实时新闻推荐&quot;&gt;&lt;/a&gt;Github Pages实时新闻推荐&lt;/h1&gt;&lt;p&gt;这些天学了爬</summary>
      
    
    
    
    
    <category term="开发,技术" scheme="http://example.com/tags/%E5%BC%80%E5%8F%91-%E6%8A%80%E6%9C%AF/"/>
    
  </entry>
  
  <entry>
    <title>Python日记(二)</title>
    <link href="http://example.com/2021/05/24/Python%E6%97%A5%E8%AE%B0-%E4%BA%8C/"/>
    <id>http://example.com/2021/05/24/Python%E6%97%A5%E8%AE%B0-%E4%BA%8C/</id>
    <published>2021-05-24T14:42:33.000Z</published>
    <updated>2021-05-25T13:09:08.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="python日记-二"><a href="#python日记-二" class="headerlink" title="python日记(二)"></a>python日记(二)</h1><pre><code class="python">import urllibimport urllib.requestimport redef send(url):    head=&#123;    &quot;User-Agent&quot;: &quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.56&quot;    &#125;    request = urllib.request.Request(url,headers = head)    response = urllib.request.urlopen(request).read()    match(response)def match(content):    con = re.findall(&#39;&lt;div class=&quot;title&quot;&gt;[^&gt;]*&gt;[^&gt;]*&gt;\n([^&lt;]*)&lt;&#39;,content.decode(&quot;utf-8&quot;))    for i in con:        try:            match = re.match(&#39;[\s]&#123;2,&#125;(.*)[\s]&#123;2,&#125;&#39;,i)            print(match.string,end=&quot;&quot;)        except Exception as result:            print(&quot;&quot;)if __name__ == &quot;__main__&quot;:    for page in range(0,250,25):        send(&quot;https://www.douban.com/doulist/240962/?start=%d&amp;sort=seq&amp;playable=0&amp;sub_type=&quot;%page)</code></pre><p>​        最近学习了用python爬虫去爬取豆瓣“电影排行前100”的界面，初步学习了正则表达式(还是有许多不足不懂的地方，仅此记录一下)</p><p>​        本来想用BeautifulSoup来爬取的，但是想到以后还得学习正则表达式，不如早点学早了事，下面是几个我遇到的问题.</p><ol><li><p>在使用re.findall()函数的时候若str直接用爬取的网页则会出现cannot use a string pattern on a bytes-like object错误，这个时候需要在后面加上decode(“utf-8”)来进行编码</p></li><li><p>re.match()返回的是match对象，这个时候若想输出string则需要用match.string的方法</p><p>(有什么想写的再写)</p></li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;python日记-二&quot;&gt;&lt;a href=&quot;#python日记-二&quot; class=&quot;headerlink&quot; title=&quot;python日记(二)&quot;&gt;&lt;/a&gt;python日记(二)&lt;/h1&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;import urllib</summary>
      
    
    
    
    
    <category term="python" scheme="http://example.com/tags/python/"/>
    
  </entry>
  
  <entry>
    <title>小记</title>
    <link href="http://example.com/2021/05/11/%E5%B0%8F%E8%AE%B0/"/>
    <id>http://example.com/2021/05/11/%E5%B0%8F%E8%AE%B0/</id>
    <published>2021-05-11T12:32:08.000Z</published>
    <updated>2023-01-11T04:17:20.000Z</updated>
    
    <content type="html"><![CDATA[<p>​    又是日常偶尔一更的博客</p><p>​    如果让我再做选择，还是更想回到小时候的生活</p><p>​    五月份的事情有点多，但也正是这些事情，让我看见了许多隐藏在深处的问题。</p><p>​    前几天又听见了洛仃洋的star moon sea，回想起了初中的那个傍晚，刚刚放学，我坐在阳台上，看着月亮，天空是深蓝色的，远处的天边微微发白，周围很静，只有昆虫的叫声，心里想着我对你的喜欢，时间好快，再看当时我的评论，已经是2016年。</p><p>​    哎，好好珍惜当下吧，说不定未来的时光还不如现在。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;​    又是日常偶尔一更的博客&lt;/p&gt;
&lt;p&gt;​    如果让我再做选择，还是更想回到小时候的生活&lt;/p&gt;
&lt;p&gt;​    五月份的事情有点多，但也正是这些事情，让我看见了许多隐藏在深处的问题。&lt;/p&gt;
&lt;p&gt;​    前几天又听见了洛仃洋的star moon sea，回</summary>
      
    
    
    
    
    <category term="日记" scheme="http://example.com/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
  <entry>
    <title>Python日记</title>
    <link href="http://example.com/2021/04/25/Python%E6%97%A5%E8%AE%B0/"/>
    <id>http://example.com/2021/04/25/Python%E6%97%A5%E8%AE%B0/</id>
    <published>2021-04-25T11:07:49.000Z</published>
    <updated>2021-04-29T11:20:30.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Python日记"><a href="#Python日记" class="headerlink" title="Python日记"></a>Python日记</h1><p>最近抽空学了一些爬虫有关的知识</p><p>写了一个可以对服务器发送post请求的小程序</p><pre><code class="python">import urllibimport urllib.requestdef sendpost(url):    head = &#123;        &quot;User-Agent&quot;: &quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74&quot;        &#125;    data = bytes(urllib.parse.urlencode(&#123;&quot;username&quot;:&quot;&quot;,&quot;password&quot;:&quot;&quot;&#125;),encoding = &quot;utf-8&quot;)    request = urllib.request.Request(url,data=data,headers = head,method=&quot;post&quot;)    response = urllib.request.urlopen(request)    print(response.read())if __name__ == &quot;__main__&quot;:    sendpost(&quot;http://httpbin.org/post&quot;)</code></pre><p>这个是urllib库写的，如果服务器有authorization验证还可以加一个base64库加密一下用户名和密码然后添加至header上</p><p>下面是基于requests库编写的功能差不多的小程序</p><pre><code class="python">import requestsdef sendpost(url):    head=&#123;    &quot;ua&quot;: &quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74&quot;,    &quot;Content-Type&quot;: &quot;application/json&quot;    &#125;    data=&#123;&quot;username&quot;:&quot;1&quot;,&quot;password&quot;:&quot;1&quot;&#125;    try:        request = requests.post(url=url,headers=head,data=data)        print(request.content)    except Exception:        print(&quot;error&quot;,end=&quot;\n&quot;)if __name__ == &quot;__main__&quot;:    sendpost(&quot;http://httpbin.org/post&quot;)</code></pre><p>相比较之下，我认为requests库较urllib库更易使用，并且当返回值不为200ok时，urllib库并不能(也可能是我没学到)提取服务器返回的错误json，而requests库却可以很轻松的使用json对象，并且requests库可以直接使用auth函数来实现上文中需要用base64库来完成的加密过程</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;Python日记&quot;&gt;&lt;a href=&quot;#Python日记&quot; class=&quot;headerlink&quot; title=&quot;Python日记&quot;&gt;&lt;/a&gt;Python日记&lt;/h1&gt;&lt;p&gt;最近抽空学了一些爬虫有关的知识&lt;/p&gt;
&lt;p&gt;写了一个可以对服务器发送post请求的小程序&lt;</summary>
      
    
    
    
    
    <category term="程序,python" scheme="http://example.com/tags/%E7%A8%8B%E5%BA%8F-python/"/>
    
  </entry>
  
  <entry>
    <title>55-210长焦镜头体验</title>
    <link href="http://example.com/2021/04/10/55-210%E9%95%BF%E7%84%A6%E9%95%9C%E5%A4%B4%E4%BD%93%E9%AA%8C/"/>
    <id>http://example.com/2021/04/10/55-210%E9%95%BF%E7%84%A6%E9%95%9C%E5%A4%B4%E4%BD%93%E9%AA%8C/</id>
    <published>2021-04-10T02:59:16.000Z</published>
    <updated>2021-04-10T03:00:14.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="55-210平民狗头体验"><a href="#55-210平民狗头体验" class="headerlink" title="55-210平民狗头体验"></a>55-210平民狗头体验</h1><blockquote><p>这些日子特别想要一个长焦，但是E口的镜头一般不便宜，nex转接环加性价比较高的美能达是一个不错的选择，但是美能达毕竟是老镜头，18-105或者18-135即使在二手平台上也不便宜，18-200确实便宜，但是已经有18-55了，仔细对比还是55-210最香，价格也只是18-200的一半，虽然大家都说画质肉，但是其作为原生E口长焦，和600的价格实在是很香了。</p></blockquote><h2 id="0-开箱"><a href="#0-开箱" class="headerlink" title="0.开箱"></a>0.开箱</h2><p>先看看外观</p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60703cd78322e6675c5c77e1.jpg" >        </sapn>      </p><p>整个镜头的大小不算小，加上遮光罩有20厘米左右，银色的镜头没有黑色的好看，但是价格却比黑色的便宜不少，实用主义者还是选择银色好点</p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60703cd58322e6675c5c75fa.jpg" >        </sapn>      </p><p>镜头不是恒定光圈，最大光圈f4.5，支持光学防抖，焦段55-210，等效83-315，废话就不多说了，参数网上都有，下面来看看样片</p><h2 id="1-样片"><a href="#1-样片" class="headerlink" title="1.样片"></a>1.样片</h2><p>首先来看看中老年人摄影</p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60703cd58322e6675c5c75fd.jpg" >        </sapn>      </p><blockquote><p>光圈:f/6.3    曝光时间:1/200    ISO:200    焦段:210 图片经过后期处理</p></blockquote><p>总的来讲210焦段能在这个水平，还是很不错的，不放大看细节，总体很完美，但是仔细看会发现月球的细节基本看不见，边缘色散有些严重，对得起600的价格</p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60703cd58322e6675c5c7603.jpg" >        </sapn>      </p><blockquote><p>光圈:f/5.6    曝光时间:1/800    ISO:200    焦段:142 图片经过后期处理</p></blockquote><p>这张照片我自认为拍的挺好的，55-210这个头在中焦段的表现还是不错的，焦外奶化也还可以，焦内虽说不能和G头比但是还算锐利</p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60703cd58322e6675c5c760b.jpg" >        </sapn>      </p><blockquote><p>光圈:f/6.3    曝光时间:1/400    ISO:2500    焦段:210 图片经过后期处理</p></blockquote><p>这张焦外就挺完美的虽说是f/6.3的光圈，但是在210焦段景深就非常完美了，但是仔细看边缘，色散还是较为严重</p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60703cd58322e6675c5c7615.jpg" >        </sapn>      </p><blockquote><p>光圈:f/6.3    曝光时间:1/400    ISO:2500    焦段:210 图片经过后期处理</p></blockquote><p>老年人打鸟，效果还不错</p><h2 id="2-总结"><a href="#2-总结" class="headerlink" title="2.总结"></a>2.总结</h2><p>总的来讲，这颗头的性价比还是挺不错的，是一个对于索尼E口相机练手的长焦镜头，即使以后要换镜头，出掉倒也不心疼.</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;55-210平民狗头体验&quot;&gt;&lt;a href=&quot;#55-210平民狗头体验&quot; class=&quot;headerlink&quot; title=&quot;55-210平民狗头体验&quot;&gt;&lt;/a&gt;55-210平民狗头体验&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;这些日子特别想要一个长焦，但是E口</summary>
      
    
    
    
    
    <category term="体验,评测" scheme="http://example.com/tags/%E4%BD%93%E9%AA%8C-%E8%AF%84%E6%B5%8B/"/>
    
  </entry>
  
  <entry>
    <title>开学了</title>
    <link href="http://example.com/2021/03/06/%E5%BC%80%E5%AD%A6%E4%BA%86/"/>
    <id>http://example.com/2021/03/06/%E5%BC%80%E5%AD%A6%E4%BA%86/</id>
    <published>2021-03-06T04:08:16.000Z</published>
    <updated>2021-03-12T06:44:04.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="开学了"><a href="#开学了" class="headerlink" title="开学了"></a>开学了</h1><p>2021年3月，已经是大一下学期了，这一学期的事情有点多，但是经过了大一上学期的磨练，我已经有些许适应了大学的生活，新学期加油吧</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;开学了&quot;&gt;&lt;a href=&quot;#开学了&quot; class=&quot;headerlink&quot; title=&quot;开学了&quot;&gt;&lt;/a&gt;开学了&lt;/h1&gt;&lt;p&gt;2021年3月，已经是大一下学期了，这一学期的事情有点多，但是经过了大一上学期的磨练，我已经有些许适应了大学的生活，新学期加油吧&lt;/</summary>
      
    
    
    
    
  </entry>
  
  <entry>
    <title>35mm定焦cctv监控头体验</title>
    <link href="http://example.com/2021/02/25/35mm%E5%AE%9A%E7%84%A6cctv%E7%9B%91%E6%8E%A7%E5%A4%B4%E4%BD%93%E9%AA%8C/"/>
    <id>http://example.com/2021/02/25/35mm%E5%AE%9A%E7%84%A6cctv%E7%9B%91%E6%8E%A7%E5%A4%B4%E4%BD%93%E9%AA%8C/</id>
    <published>2021-02-25T07:17:10.000Z</published>
    <updated>2021-03-18T03:32:24.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="35mm-cctv监控头体验"><a href="#35mm-cctv监控头体验" class="headerlink" title="35mm cctv监控头体验"></a>35mm cctv监控头体验</h1><p>新的一年已经过去了，当然要好好奖励一下自己，随意翻着淘宝，想给自己看一个合适的E口头，转了半天，也没找到什么合适的</p><p>18-105 f4 95新 2450</p><p>18-135 f3.5-5.6 95新 2480</p><p>55-210 f4.5-f6.3 95新 700</p><p>突然看见了 35 f1.6 cctv 全新 120 就冲这个价格，买回来玩玩也可以，下单付钱，一气呵成</p><h2 id="0-收货"><a href="#0-收货" class="headerlink" title="0.收货"></a>0.收货</h2><p>镜头的外观很漂亮，黑色的镜头很有质感，先过一遍外观</p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/6037402f5f4313ce25e0c9ba.jpg" >        </sapn>      </p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/6037402f5f4313ce25e0c9d1.jpg" >        </sapn>      </p><h2 id="1-试拍"><a href="#1-试拍" class="headerlink" title="1.试拍"></a>1.试拍</h2><p>因为是全手动头，光圈环和对焦环都是需要自己调节的，阻尼的大小也不错，拧起来很舒服，如果不是知道他的价格，仅凭外观很难想象这只是一颗100多块钱的头</p><p>不加对焦环，最近对焦距离为0.5米，实测感觉差不多，打开相机，打开峰值对焦，峰值水平高，关掉检测镜头拍照，愉快的拍摄时间开始</p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/6037402f5f4313ce25e0c9c4.jpg" >        </sapn>      </p><blockquote><p>35mm f1.6 cctv iso100 1/200s (图片经过一些调色处理) </p></blockquote><p>在拍摄近景时，这颗头的表现还算不错，但是当把注意力转移到边缘的时候可以发现散焦区域有很明显的偏移，边缘画质欠佳，仔细观察中心，在焦平面的画质还算看得过去，如果抛开边缘画质不说，背景的奶化也挺不错，但是当拍摄画面为大场景时，如下图</p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60373f8a5f4313ce25dfb333.jpg" >        </sapn>      </p><blockquote><p>35mm f1.6 cctv iso200 1/2500s (图片经过一些调色处理) </p></blockquote><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60373fc35f4313ce25e01a41.jpg" >        </sapn>      </p><blockquote><p>35mm f1.6 cctv iso100 1/2500s (图片经过一些调色处理)</p></blockquote><p>就可以很明显的看出边缘基本不能用，猛一看反而有一种移轴的味道，倒是也别有一番风味，当拍摄近距离物体时，如果不开最大光圈，猛一看真的看不出来边缘极差的画质，下面是一些样片</p><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60373fc55f4313ce25e01c2e.jpg" >        </sapn>      </p><blockquote><p>35mm f2 cctv iso200 1/4000s (图片经过一些调色处理) </p></blockquote><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60373fbf5f4313ce25e012bc.jpg" >        </sapn>      </p><blockquote><p>35mm f1.6 cctv iso200 1/1000s (图片经过一些调色处理)</p></blockquote><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60373fc75f4313ce25e01eba.jpg" >        </sapn>      </p><blockquote><p>35mm f2 cctv iso200 1/1000s (图片经过一些调色处理)</p></blockquote><p>        <span class="lazyload-img-span">        <img              data-src="https://img.imgdb.cn/item/60374af75f4313ce25f05bbc.jpg" >        </sapn>      </p><blockquote><p>35mm f2 cctv iso100 1/250s (图片经过一些调色处理)</p></blockquote><h2 id="2-总结"><a href="#2-总结" class="headerlink" title="2.总结"></a>2.总结</h2><p>总的来讲，这颗头的画质确实不是很好，但是在这个价位体验大光圈的乐趣还是足够了的，看看这100多块钱的价格，咦，画质怎么突然变好了呢</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;35mm-cctv监控头体验&quot;&gt;&lt;a href=&quot;#35mm-cctv监控头体验&quot; class=&quot;headerlink&quot; title=&quot;35mm cctv监控头体验&quot;&gt;&lt;/a&gt;35mm cctv监控头体验&lt;/h1&gt;&lt;p&gt;新的一年已经过去了，当然要好好奖励一下自己，</summary>
      
    
    
    
    
    <category term="体验,评测" scheme="http://example.com/tags/%E4%BD%93%E9%AA%8C-%E8%AF%84%E6%B5%8B/"/>
    
  </entry>
  
  <entry>
    <title>单链表</title>
    <link href="http://example.com/2021/02/13/%E5%8D%95%E9%93%BE%E8%A1%A8/"/>
    <id>http://example.com/2021/02/13/%E5%8D%95%E9%93%BE%E8%A1%A8/</id>
    <published>2021-02-13T09:54:57.000Z</published>
    <updated>2021-02-26T08:16:14.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="简单的数据结构-gt-链表"><a href="#简单的数据结构-gt-链表" class="headerlink" title="简单的数据结构-&gt;链表"></a>简单的数据结构-&gt;链表</h2><p>内存由好几部分组成</p><table><thead><tr><th>代码区</th><th>全局区</th><th>常量区</th><th>栈区</th><th>堆区</th></tr></thead><tbody><tr><td>存储函数的二进制代码</td><td>存放全局变量</td><td>存储字符,常量</td><td>存放局部变量等(小)</td><td>人为分配(很大)</td></tr></tbody></table><p>链表里面的数据就是存储在堆区的</p><p>重要的内存分配函数malloc();</p><p>从堆区分配n字节的空间(void*)malloc(n);</p><p>下面是代码(请不要在意本人拙劣的技术)</p><pre><code>#include &lt;iostream&gt;using namespace std;struct node &#123;    int x;    int y;    node* next;&#125;;struct list &#123;    node* start;    node* rear;    int count;&#125;;void ini(list **plist)&#123;    (*plist) = (list*)malloc(sizeof(list));    (*plist)-&gt;count = 0;&#125;void insert(node *pnode,list*plist)&#123;    pnode-&gt;x = rand() % 10;    pnode-&gt;y = 99;    if (plist-&gt;count != 0)    &#123;        pnode-&gt;next = plist-&gt;start;        plist-&gt;start = pnode;        plist-&gt;count++;    &#125;    else    &#123;        pnode-&gt;next = NULL;        plist-&gt;rear = pnode;        plist-&gt;start = pnode;        plist-&gt;count = 1;    &#125;&#125;void out(node* pnode, list* plist)&#123;    node* out;    out = plist-&gt;start;    printf(&quot;%d %d\n&quot;, out-&gt;x, out-&gt;y);    for (int i = 1; i &lt; plist-&gt;count; i++)    &#123;        out = out-&gt;next;        printf(&quot;%d %d\n&quot;, out-&gt;x, out-&gt;y);    &#125;&#125;int main()&#123;    list* plist;    ini(&amp;plist);    node* pnode;    for (int i = 0; i &lt;= 9; i++)    &#123;        pnode = (node*)malloc(sizeof(node));        insert(pnode, plist);    &#125;    out(pnode, plist);    cout &lt;&lt; plist-&gt;count;    system(&quot;pause&quot;);    return 0;&#125;</code></pre><p>有一些问题我记下来以后解决<br>1.初始化函数ini()无法以&amp;plist = (list*)malloc(sizeof(list));代替<br>2.pnode的原来的内存空间如果没有指针指向但是记住地址会不会被系统回收</p><p>问题一已经解决了，应该是plist = (list*)malloc(sizeof(list));因为plist本来就是结构指针，</p><p>指向一个结构体，应该是让他指向一个结构体，而&amp;plist是plist的地址，</p><p>只是一个指针指向结构体的起始位置，当然不能修改他自己的地址。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;简单的数据结构-gt-链表&quot;&gt;&lt;a href=&quot;#简单的数据结构-gt-链表&quot; class=&quot;headerlink&quot; title=&quot;简单的数据结构-&amp;gt;链表&quot;&gt;&lt;/a&gt;简单的数据结构-&amp;gt;链表&lt;/h2&gt;&lt;p&gt;内存由好几部分组成&lt;/p&gt;
&lt;table&gt;
&lt;t</summary>
      
    
    
    
    
    <category term="C艹" scheme="http://example.com/tags/C%E8%89%B9/"/>
    
  </entry>
  
  <entry>
    <title>山丹丹花开花又落，一年又一年</title>
    <link href="http://example.com/2021/02/13/%E5%B1%B1%E4%B8%B9%E4%B8%B9%E8%8A%B1%E5%BC%80%E8%8A%B1%E5%8F%88%E8%90%BD%EF%BC%8C%E4%B8%80%E5%B9%B4%E5%8F%88%E4%B8%80%E5%B9%B4/"/>
    <id>http://example.com/2021/02/13/%E5%B1%B1%E4%B8%B9%E4%B8%B9%E8%8A%B1%E5%BC%80%E8%8A%B1%E5%8F%88%E8%90%BD%EF%BC%8C%E4%B8%80%E5%B9%B4%E5%8F%88%E4%B8%80%E5%B9%B4/</id>
    <published>2021-02-13T03:34:01.000Z</published>
    <updated>2021-02-13T03:58:46.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>恍惚间 浸透了回忆</p></blockquote><h4 id="时间真的好快，2021的太阳没有什么迟疑照常升起，这已经是2021年了。"><a href="#时间真的好快，2021的太阳没有什么迟疑照常升起，这已经是2021年了。" class="headerlink" title="时间真的好快，2021的太阳没有什么迟疑照常升起，这已经是2021年了。"></a>时间真的好快，2021的太阳没有什么迟疑照常升起，这已经是2021年了。</h4><p>回忆还停留在昨天，晚上做梦都会梦到很多以前温暖的场景</p><p>成长的滋味，真的很不好受，大人想变回小孩，小孩想长成大人，到头来尽是围城一座</p><p>今天整理硬盘，想把过去几年写的博客都导到新网站上面，无聊翻硬盘间，翻到了自己小时候的成长记录，2003，2004…….好多的照片，好多的视频，但是仅仅点开一个，我的内心却已不忍再看，不知道是什么情绪，看着视频的场景，脑子里只有模糊的碎片记忆，有一点难受，大概是感慨时间之于记忆的冷酷，竟让现在的人可以毫无知觉的忘掉过去的许许多多的回忆，失去过去自己心中伟大的理想</p><p>唉，我仅仅是一个沙砾在岁月洪流中浮浮沉沉罢了</p><p>想起来《寻梦环游记》里引用《生命的清单》里的几句话，我认为可以作为结尾</p><h6 id="第一次，当你的心跳停止，呼吸消逝，你在生物学上被宣告了死亡。"><a href="#第一次，当你的心跳停止，呼吸消逝，你在生物学上被宣告了死亡。" class="headerlink" title="第一次，当你的心跳停止，呼吸消逝，你在生物学上被宣告了死亡。"></a>第一次，当你的心跳停止，呼吸消逝，你在生物学上被宣告了死亡。</h6><h6 id="第二次，当你下葬，人们穿着黑衣出席你的葬礼，他们宣告，你在这个社会上不复存在，你悄然离去。"><a href="#第二次，当你下葬，人们穿着黑衣出席你的葬礼，他们宣告，你在这个社会上不复存在，你悄然离去。" class="headerlink" title="第二次，当你下葬，人们穿着黑衣出席你的葬礼，他们宣告，你在这个社会上不复存在，你悄然离去。"></a>第二次，当你下葬，人们穿着黑衣出席你的葬礼，他们宣告，你在这个社会上不复存在，你悄然离去。</h6><h6 id="第三次，是这个世界上最后一个记得你的人，把你忘记，于是，你就真正地死去。整个宇宙都将不再和你有关。"><a href="#第三次，是这个世界上最后一个记得你的人，把你忘记，于是，你就真正地死去。整个宇宙都将不再和你有关。" class="headerlink" title="第三次，是这个世界上最后一个记得你的人，把你忘记，于是，你就真正地死去。整个宇宙都将不再和你有关。"></a>第三次，是这个世界上最后一个记得你的人，把你忘记，于是，你就真正地死去。整个宇宙都将不再和你有关。</h6>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;恍惚间 浸透了回忆&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&quot;时间真的好快，2021的太阳没有什么迟疑照常升起，这已经是2021年了。&quot;&gt;&lt;a href=&quot;#时间真的好快，2021的太阳没有什么迟疑照常升起，这已经是2021年了。&quot; cl</summary>
      
    
    
    
    
    <category term="日记" scheme="http://example.com/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
</feed>
