NodeMCU的GPIO控制面板Web应用

Just 4 Fun,适用于nodemcu的lua固件,直接传输所有文件即可。

page-shot-2016-12-4-nodemcu-gpio

下载地址:GPIO_Dashboard_v0.1.zip

使用mount的offset参数挂载包含多个分区的磁盘镜像中的制定分区

首先,本文是适用于磁盘镜像的,不同于分区镜像,磁盘镜像一般包含多个分区和分区表等信息,简而言之,磁盘镜像分区镜像可以理解为/dev/sda/dev/sda1的区别。对于分区镜像,直接用mount挂载即可。

虽然有自动化挂载磁盘镜像的工具,不过还是比较麻烦。其实,既然磁盘镜像中包含分区,那么我们就可以使用offset(偏移量)的方式,直接让mount去访问并挂载磁盘镜像中特定分区。

screenshot_20161203_115951

话说,13号域名过期无法访问,当天晚上恢复了

最近事太多居然没想起来给域名续命。。。导致13号白天无法访问,不知道你们注意到了没有,还是说13号根本就没人访问所以也没感觉2333

MarkNote v2已部署于 note.wusiyu.me

MarkNote v2已足够稳定并超越了旧的v1版,估v2版已部署于note.wusiyu.me,支持https,请访问https://note.wusiyu.me

旧的v1版已移至https://wusiyu.me/note-old/

Archlinux中pacman的一些“垃圾清理”命令

今天重启一下Arch,发现系统简直如三路全崩,mysql崩了,sddm崩了,该崩的崩了一大堆。我心说滚挂也不至于挂成这样吧。。。

然后查log发现原来是/分区爆了。。。剩余空间0字节,服务想写入个log都不行,不崩才怪

于是执行了这两条指令,成功释放了5GB的空间。。。

清除系统中无用的包

sudo pacman -R $(pacman -Qdtq)

清除已下载的安装包

sudo pacman -Scc

MarkNote v2 的进度

相比较为简单的一代,二代将会有一下特性:

  • 完善的用户系统
  • 更强大的MarkDown编辑器
  • 方便管理的文档列表,能将多个文档放入一个文件夹(记事本)中,并能在其间自由拖动
  • 更完善的分享功能
  • 全面ajax化,友好的用户体验
  • 新的界面,可自由更改配色
  • 也许会增加与印象笔记绑定并云同步的功能
  • 还有很多的其它的改进

目前进展:

注意,现在二代还处于较早期的开发中,请不要在对外公开的服务器上部署!

红米Note2刷CM12原生ROM包的一些参考

红米虽然是国产廉价机,但国外的资源还真不少,XDA上就有很多资源,下面说的recovery和ROM都是从XDA上找的

首先刷个第三方的recovery,比如TWRP,这个recovery十分方便。

然后就是找个ROM刷,我刷的是这个:http://forum.xda-developers.com/redmi-note-2/orig-development/rom-aurora-rom-20160821-t3444248

由于是国外做的ROM,(国内的我还真没找到没有推广应用且较新的ROM),有些地方要针对国内情况进行一下修改。

 

首先是状态栏WiFi和移动网络图标的显示叹号问题,由于android判断网络是否真正可用是通过访问一个google的服务器来进行判断的,然而国内连不上google,所以android就认为网络是有问题的,于是显示叹号。可用通过在终端中执行以下命令把那个google的服务器改成小米的,这样android就能正常判断了:

settings put global captive_portal_server connect.rom.miui.com

 

然后就是只插一张移动SIM卡时,跳网的问题,具体表现有 移动网络一会断一次、老是弹出更换首选SIM卡的对话框(然而只有一个能选)等,解决方法:

用文本编辑器(如DroidEdit)打开/system/build.prop,找到这行:

persist.radio.multisim.config=dsds

改为:

persist.radio.multisim.config=ss

然后重启,即可

 

如果出现无法连接移动网络或只能2G的问题,同样打开/system/build.prop,找到类似于下面的这些关于移动网络的配置(一般以x,x结尾),注释掉他们(行首加一个#号,或者直接删掉该行也行)

ro.telephony.default_network=9,9
persist.radio.mobile.data=0,0

然后重启。

多种方法解决开机显示grub rescue>_的故障

grub rescue>_,即GRUB启动管理器的救援模式,可以理解为一个残缺的GRUB,通常在GRUB无法找到其相关文件时出现,一般是由分区变更引起的。

用4个字概括就是:引导挂了~

下面两张方法适用于linux的分区还在的情况,如果你是希望删除linux而删掉了linux,请看最后一种方式。

下面两张方法中,部分命令仅针对deb系发行版,其他发行版类似。

法一:使用LiveCD启动并重新安装GRUB

这种方法最为简单,不用输入繁琐的GRUB命令。

首先LiveCD启动,进入Live系统,将硬盘上linux的/分区挂载到Live系统中例如/mnt的地方:

sudo mount /dev/sdaN /mnt          #按实际情况替换N,如果你的启动磁盘不是sda,也请替换为你的启动磁盘

如果单独分了/boot,则一并挂载,例如:

sudo mount /dev/sdaM /mnt/boot     #按实际情况替换M,如果你的启动磁盘不是sda,也请替换为你的启动磁盘

然后重新安装GRUB:

sudo grub-install --root-directory=/mnt/ /dev/sda

若看到类似如下的输出,则表示成功完成修复:

Installing for i386-pc platform.
Installation finished. No error reported.

法二:先将GRUB恢复到正常模式,然后进入Linux重新安装GRUB

既然GRUB找不到他的文件,那么我们就手动加载即可,救援模式其实就是一个支持的命令有限的GRUB命令行,我们可以在其中执行一些命令。
先输入以下命令:

ls

GRUB会列出所有的磁盘和上面的分区,如:

(hd0) (hd0,msdos5) (hd0,msdos1) (hd0,msdos2)

然后就一个分区一个分区的试,看看那个是linux的/分区,如果你当分了/boot,则要找/boot分区
如果/boot没有单独分区,用以下命令:

ls (hd0,msdosN)/boot/grub

如果/boot单独分区,则用下列命令:

ls (hd0,msdosN)/grub

正常情况下,会列出来一大堆文件,很多文件的扩展名是.mod和.lst和.img,还有一个文件是grub.cfg。假设找到(hd0,msdos2)时,显示了文件夹中的文件,则表示我们要找的就是这个分区。

然后我们要让GRUB去加载之前它没有加载的文件
下面是/boot没有单独分区的命令:

grub rescue>set root=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos2)/boot/grub
grub rescue>insmod /boot/grub/normal.mod

下面是/boot 单独分区的命令:

grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/grub
grub rescue>insmod /grub/normal.mod

然后调用如下命令,就可以看到GRUB的菜单了。

grub rescue>normal

然后进入Linux系统,执行:

sudo update-grub             #更新引导菜单,非deb系的发行版可能不是这个命令
sudo grub-install /dev/sda   #如果你的启动磁盘不是sda,请替换为你的启动磁盘

至此,修复完毕。

法三:使用PE系统直接安装Windows的启动管理器

这种方法适合已经删除了Linux分区,或者正准备删除Linux分区,然后回到Windows系统的人。

首先你需要一个装在U盘上的PE,网上一搜全是,个人比较推荐这个还算比较干净的PE:http://www.wepe.com.cn/

然后启动PE系统,里面一般有个修复Windows引导的工具,运行即可。

PHP-如何正确的删除array中的一个元素

数组是几乎所以编程语言里必有的数据结构,而在编程时,数组可以又与其他数组和数据结构相结合,构成如二维数组三维数组233维数组乱七八糟什么都不是的数组。而数组也是最基本的可迭代的数据结构,常与for(foreach)相结合,形成。。。

好了我tm实在编不下去了,下面步入正题。

在PHP中,删除array中的一个元素有两种方法

1.array_splice($array, $offset, 1);

示例代码:

$array = array('aaa', 'bbb', 'ccc', 'ddd');
$offset = 1;
array_splice($array, $offset, 1);

var_dump($array);

/* 输出:

array(3) {
  [0]=>
  string(3) "aaa"
  [1]=>
  string(3) "ccc"
  [2]=>
  string(3) "ddd"
}
*/

注意,不能写成array_splice($array, $offset);,一定要写上最后那个为1的参数,否则会把数组直接从$key的位置删到末尾!
而且array_splice中所用的是偏移量,而不是key,这点要注意!

2.unset($array[$key]);

示例代码:

<?php
$array = array('aaa', 'bbb', 'ccc', 'ddd');
$key = 1;
unset($array[$key]);

var_dump($array);

/* 输出:

array(3) {
  [0]=>
  string(3) "aaa"
  [2]=>
  string(3) "ccc"
  [3]=>
  string(3) "ddd"
}
*/

注意,元素的key没有重新排序,而是直接从0跳到了2,这可能会导致一些潜在的问题,你可以在后面使用array_values();来重新排序key

Minecraft中Schematic文件格式详解

Schematic文件格式为一种由玩家社区所创建的用于存储Minecraft世界信息,进而可以通过第三方应用程序(如MCEdit, Minecraft Note Block Studio, 红石模拟器以及WorldEdit等)进行编辑。

说白这种文件是用来存储Minecraft世界的一定范围内的数据(方块、实体等)的东西,它最常见的用法莫过于使用mcedit将存档的一个区域导出到Schematic文件,或者将Schematic文件导入到存档中。

1 2 3 8
Zitheax Theme by WuSiYu