分类 默认分类 下的文章

json增删改

<script type="text/javascript">
        var json = {
            "age":24,
            "name":"cst"
        };
        //修改Json中的age值,因为Json中存在age属性
        json["age"] = 30;
        alert(json.age); //30
 
        //增加Json中的sex值,因为Json中不存在sex属性
        json["sex"] = "M";
        alert(json.sex); //M
 
        <!-- 遍历Json中的数据 -->
        for(var key in json){
            try{
                var value = eval("json['" +  key +"']");
                alert(key+"_"+value);
            }catch(e){}
        }
 
        //删除Json数据中的age属性
        delete json["age"];
        alert(json.age); //undefined
 
    </script>

参考地址:http://cst.is-programmer.com/posts/21823.html

C#获取当前路径的七种方法

//1.获取模块的完整路径。  
string path1 = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;  

//2.获取和设置当前目录(该进程从中启动的目录)的完全限定目录  
string path2 = System.Environment.CurrentDirectory;  

//3.获取应用程序的当前工作目录  
string path3 = System.IO.Directory.GetCurrentDirectory();  

//4.获取程序的基目录  
string path4 = System.AppDomain.CurrentDomain.BaseDirectory;
 
//5.获取和设置包括该应用程序的目录的名称  
string path5 = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;  

//6.获取启动了应用程序的可执行文件的路径  
string path6 = System.Windows.Forms.Application.StartupPath;  

//7.获取启动了应用程序的可执行文件的路径及文件名  
string path7 = System.Windows.Forms.Application.ExecutablePath;  
  

  
// 输出结果 
    1. D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release\XmlAndXsd.vshost.exe  
    2. D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release  
    3. D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release 
    4. D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release\ 
    5. D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release\ 
    6. D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release 
    7. D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release\XmlAndXsd.EXE

参考:https://www.cnblogs.com/AlexOneBlogs/p/7909692.html

五一劳动节,北宫国家森林公园游

适逢五一节日,也不能整天在家里写bug,休整了两天,也要出去放放风了,以循序渐进的原则,这次选择了强度不是很大的“北宫国家森林公园”,百度说:北京北宫国家森林公园,位于北京市丰台区西北部山区,距北京市中心20公里,是丘陵型自然风景区。北宫因帝王憩地而得名。公园始建于2002年10月,2005年12月被国家林业局正式批准为国家级森林公园。
19-1.jpg

首先是交通问题,这个公园位于西六环外偏南,交通不是很便利,建议驾车前往,会走一小段六环高速,应该是5块钱的样子,五一免费。当然也有公交地铁到附近,但是可能下车要走的路比较长,公园南门偏东的停车场是附近最大了,后来也证明是明智的选择,再往里走中午出来都是个问题。一早七点到,仅仅靠近门口有几排车,再往里走是国家电网的50个快速充电桩,停车场按次收费,小车10元不限时。
11.jpg

从停车场到公园南门也就200米的样子,路边有早点,据说还是比较实惠的,由于自带的干粮也就没有过问,大概也就是传统的油饼之类的早点吧,主动去售票处买票,结果吃了闭门羹,对不起,8点后才售票,之前免费进,又省了10块,另外又一说刷北京工会的京卡也免费,不过没有看到相关说明。
12.jpg

进园之后就是小江南景区,据说周末会有喷泉,平时不开,节假日更应该开吧,或许是由于工作人员还没有上班。
14.jpg

步道是传统的健步走道风格,还有一些小知识,什么猫步、内八、外八、脚掌走、脚跟走的示范,有部分是红色的塑胶步道,忙着体验,忘了拍照。
13.jpg

- 阅读剩余部分 -

重玩香蕉之一:玩M2U

今天是迷窟鞋盒运行第750天,除了期间因为整理接线或者误操作重启过两次,至今一直稳定运行,现在用uptime能查到的是连续536天了,过段时间可能会对鞋盒进行调整,难免会断电重启。
好吧,言归正传,下边是这次准备的清单

吃灰的bpi-m2u
二创专用电源线
川宇 8G TF卡
川宇读卡器
其它网线、USB插线板等

然后就是找一个比较新的镜像,百度云以慢著称,谷歌盘又在墙外,大球给了一个地址,https://dev.banana-pi.org.cn/Image/BPI-M2U/,下载了两个镜像

https://dev.banana-pi.org.cn/Image/BPI-M2U/2017-06-06-ubuntu-16.04-server-preview-bpi-m2u-sd-emmc.img.zip
https://dev.banana-pi.org.cn/Image/BPI-M2U/2017-11-13-ubuntu-16.04-mate-desktop-beta2-bpi-m2u-sd-emmc.img.zip

从命名看一个是desktop版,一个是server版吧,让人迷惑的是上百个镜像,除了preview版就是beta版,也不知道哪个是官方版,只能靠碰运气,以前比较喜欢用树莓系统控制一些外设,现在比较懒基本就是装软件玩,所以趋向于比较小巧的server版,如果能在emmc中运行还能省一块存储卡。
以前烧录镜像的工具SD Formatter & Win32DiskImager,还记得大球用来烧硬盘,听说有个新工具叫Etcher顺便也尝试一下吧,419M的镜像解压后7.28G,也服了做镜像的了,会是谁呢?烧录工具显示卡容量7.99G,镜像7.82G,应该是计量标准不同吧,怪不得很多程序员谈工资时说我要2k,不说我要两千,在他们的潜意识里1k=1024吧。
01.png

不光写完,还给校验了一遍,然后自动弹出了,怀着忐忑的心情把卡插入吃灰已久的M2U,插网线,接电源,红绿蓝三灯齐亮,如果一直这样就是死机了,还好,一会儿就闪动起来了,红灯常亮,绿灯闪烁,蓝灯熄灭了。登录路由,发现了一个叫bpi-iot-ros-ai的设备,附近bpi很多,暂时还不能确认是不是这个,ssh看一下吧,是它,应该就是它了

pi@bpi-iot-ros-ai:~$ uname -a
Linux bpi-iot-ros-ai 3.10.65-BPI-M2U-Kernel #1 SMP Thu May 25 11:46:04 CST 2017 armv7l armv7l armv7l GNU/Linux
pi@bpi-iot-ros-ai:~$

11点半了,困了,待续吧。

nodejs & tcp socket

服务端

var net = require('net');
//模块引入
var listenPort = 8080;//监听端口
var server = net.createServer(function(socket){
  // 创建socket服务端
  console.log('connect: ' +
    socket.remoteAddress + ':' + socket.remotePort);
  socket.setEncoding('binary');
  //接收到数据
  socket.on('data',function(data){
    console.log('client send:' + data);
  });
socket.write('Hello client!\r\n');
 // socket.pipe(socket);
  //数据错误事件
  socket.on('error',function(exception){
    console.log('socket error:' + exception);
    socket.end();
  });
  //客户端关闭事件
  socket.on('close',function(data){
    console.log('client closed!');
     // socket.remoteAddress + ' ' + socket.remotePort);
  });
}).listen(listenPort);
//服务器监听事件
server.on('listening',function(){
  console.log("server listening:" + server.address().port);
});
//服务器错误事件
server.on("error",function(exception){
  console.log("server error:" + exception);
});

客户端

var net = require('net');
var port = 8080;
var host = '127.0.0.1';
var client= new net.Socket();
//创建socket客户端
client.setEncoding('binary');
//连接到服务端
client.connect(port,host,function(){
  client.write('hello server');
  //向端口写入数据到达服务端
});
client.on('data',function(data){
  console.log('from server:'+ data);
  //得到服务端返回来的数据
});
client.on('error',function(error){
//错误出现之后关闭连接
  console.log('error:'+error);
  client.destory();
});
client.on('close',function(){
//正常关闭连接
  console.log('Connection closed');
});

参考地址:
https://blog.csdn.net/lockey23/article/details/76408891