【树莓派】镜像烧写&SSH登录(一)

    最近搞了个树莓派来玩,是3代B+的,据说这一代优化了很多东西。嘛,就酱,反正之前没玩过,对我来说都是新的陌生的,变得更好当然好啦。不过,还是要记录一下安装过程,供日后的我和你们,一起参考。

     

    1、下载镜像

    首先去官网下载镜像,说是有很多个镜像源,不过搞不来,我感觉这些镜像源应该都是更新软件用的,不是用来下载镜像本身的。所以就去官网弄了个img,镜像地址:https://www.raspberrypi.org/downloads/raspbian/,截图如下,其中左边是有带桌面的,类似于Linux的Gnome,右边是没带图形化的桌面,纯粹的命令行。嗯,码农嘛,特别是像我这样想装逼的码农,果断选择右边的Lite版本。而且,还有一点,根据里面的介绍,带桌面的版本有4G,而Lite版本的大概1.3G,当然都是解压之后的大小了。

    哦,一向好人做到底的我已经把下载好的镜像丢到百度网盘上面去了,防止有些和我一样不会使用官方提供的镜像源,又嫌弃官网下载速度慢的朋友需要:链接:http://pan.baidu.com/s/1hsBVty8 密码:glgt (更多…)

Google Docs

    前几天简单学了点关于office 2010中的VBA宏编程的知识,感觉是挺有用的,唯一的不足就是VBA编程使用的语言不怎么熟悉。昨天玩了一整天的Google Docs(以下简称GD),觉得也是相当不错的一款产品,Google就是一家很有良心的科技公司,伟大!!!

    划重点:想使用GD的前提是你要有一把梯子,至少能跨越某些障碍!

    GD可以看做就是MS Office的在线版本,除了拥有常见的office的功能之外,GD还支持在线协作,多个人同时编辑一个文档,在GD Sheets里面你是看得到当前和你一起编辑的人正在修改哪个单元格的。另外,GD的使用平台覆盖也很全面,PC端的我在mac上面主要是使用网页版,功能丰富,在iOS上面,GD APP套件功能也是很不错的。相信Google自家的安卓上面,GD套件也是不会比iOS上面的体验差的。
    除了以上说的有点之外,GD也是有类似MS Office的宏编程的功能,好消息就是编程语言使用的是JS(鼓掌),这样广大的码农都能较快的上手,不管前端还是后端。总之,能够通过程序来操作表格和文档,个人觉得肯定在有些地方能够提高很大的效率,特别是之前说的那个重复又容易厌烦的事情,人工是容易犯错的,而计算机确实最喜欢这类的事情,而且准备率百分百的高。

    (更多…)

我的日记模板 & 资料整理术

    从大学二到现在,陆陆续续的写日记,也有快六年了,或多或少都有自己的日记格式,分享一下。大一的时候就听说写日记有各种好处,但是那时候还年轻,没怎么理会。大二的时候试着开始写了,不过刚开始的时候写的断断续续的,有时候一周两三篇,有时候一个月两三篇,等到大学毕业的时候,会看起来,各种感触,后悔当年没有多写一些,多记录一些回忆的感慨相当深刻。所以,大学毕业后,就坚持频繁写了,当现在研二了,基本能坚持至少两天一篇这样的。由于坚持写日记的习惯,所以坚持写博客也变得顺其自然,感觉差不多,只是写的内容不同而已。

    目前来看,写日记我感觉主要是老有所忆,另一方面也可以作为每周或者每月总结反思自己的一个根据。而写博客也是类似,从技术的角度来看,就是记录自己的技术之路,保存自己学习的过程,方便日后遇到问题的时候重新回忆查询。 (更多…)

Maven打包可执行的jar

    这事儿,没弄之前感觉应该挺简单的,毕竟只是生成个执行文件,IDE最喜欢干这种事情了。可是,我花了一个晚上才偶然搞定,不甘心。

     

    各种弯路

    先是谷歌:intellij idea java 打包运行

    第一个结果是:http://blog.sina.com.cn/s/blog_3fe961ae0102uy42.html

    里面说:打开File -> Project Structure -> Artifacts,然后进行各种设置,包括自己下载jar包放到lib文件夹里面,避免因为签名的问题导致jar不能运行,嗯,我跟着做了,build artifacts。运行java -jar xxxxx.jar,然后就出现了:could not find or load main class jar;改了MAINFI文件夹里的内容,还是不行。

    (更多…)

Nginx反向代理配置

    讲真,拿这个标题去谷歌可以搜到上亿条结果,不过还是得记录一下,毕竟是自己的实践经验,以后查起来也比较快,不废话,我用的是CentOS7系统。

     

    安装Nginx

     

    1. 使用yum intall nginx -y

    2. 新建反向代理设置文件

    cd /etc/nginx
    vi reverse-proxy.conf
    

    然后,粘贴下面这块代码: (更多…)

泛型中T和?的区别

    在看ThreadLocal语法的时候,看到了泛型里面有?这个通配符,新手的我之前一直只认识T这个东西,并没见过?这个。谷歌了一番,不少人都说:“ “T”是定义类或方法时声明的东西,”?”是调用时传入的东西 ”,没个形象化的解释还是不好理解,然后就写了段代码,体验了一把,现在感觉好多了。(点击查看大图) (更多…)

编译调试HotSpot(菜逼)

Java中synchronized的粒度

    看到一个博文,挺简短的, 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?  具体内容如下:

    分几种情况:
        1.其他方法前是否加了synchronized关键字,如果没加,则能。
        2.如果这个方法内部调用了wait,则可以进入其他synchronized方法。
        3.如果其他个方法都加了synchronized关键字,并且内部没有调用wait,则不能。
        4.如果其他方法是static,它用的同步锁是当前类的字节码,与非静态的方法不能同步,因为非静态的方法用的是this。

    某在此认为说得不够清晰,所以稍作修改,作为自己的理解:

    1. 该类的其他方法前是否加了synchronized关键字,如果没加,则其他线程能够进入访问这些方法。
    2. 如果该线程在这个方法内部调用了wait,则其他线程可以进入其他synchronized方法。
    3. 如果这个类的其他个方法都加了synchronized关键字,并且该线程在进入的这个方法内部没有调用wait,则不能。
    4. 如果其他方法是static,它用的同步锁是当前类的字节码,与非静态的方法不能同步,因为非静态的方法用的是this。

    (更多…)

Java中居然没有做尾递归优化!

    在看红黑树的时候,里面在关于插入新节点并进行调整的时候,提到:“插入实际上是原地算法,因为上述所有调用都使用了尾部递归。”,所以就去查了尾递归和尾调用的相关概念。尾调用的意思是说:“指某个函数的最后一步是调用另一个函数。”,再通俗一点就是:“尾调用由于是函数的最后一步操作,所以不需要保留外层函数的调用记录,因为调用位置、内部变量等信息都不会再用到了,只要直接用内层函数的调用记录,取代外层函数的调用记录就可以了。”。详细见这里,阮大神说的很详细。

    最近不是在学习Java嘛,所以就立马打开idea,写几行代码测试一下Java里面有没有使用尾调用优化。结果是unfortunately,没有!直接贴图,证据如下(点击查看高清大图,蓝光1080p):

     

    不过,Java Compiler不支持tail rescursive 还是有它的原因(因为JVM里面涉及到的栈的操作比较复杂,而且还有一些清理工作之类的 // TOO),高效率人人都想要,没有尾递归优化,递归相对来说是比较危险的。因此对大多数Java开发人员来说,Java不进行尾调用优化并不是什么大问题。如同这里说的,官方的建议是不使用递归,而是使用while循环,迭代,递推。据说JVM的开发计划表上,有尾调用优化这事儿,不过这不是一个优先级特别高的事。

JVM Memory Model Advanced(JVM内存模型进阶版)

    一、内存模型

     

    1.1、结构图

    说是进阶版,其实这个才是人家本来的真面目,只是之前看了更加简单到不行的模型图,所以笔者才索性叫这个为进阶版。不过,之前的简单版确实也挺简单的,理解起来相当容易,看完简单版之后再来看这个进阶版就容易理解多了。废话不多说,下面是正文。

    先说说内存模型,之前发过一篇文章,算是简单版的JMM。这次以HotSpot虚拟机为学习对象,进一步了解JVM的内存模型。如下图: (更多…)

【Java Concurrency】Java Memory Model(Java内存模型)

    在Google上面查了相关内容,跳出来的第一条内容很不错,点这里,看完觉得对Java内存模型理解更加透彻了,不得不说Google是个好东西(老师说用百度查的东西能信吗?)。不废话了,正题:

    看完我觉得,Java内存模型就像建立在海边的一排排大别墅,大海就是内存中的heap(堆)内存,而每一幢别墅则是一个个thread stack(线程栈)。每个别墅人家都可以去海边捡贝壳,去海上冲浪捕鱼,但是不能去别人家乱拿东西。也就是如内存模型所描述的那样:每个线程都有权限访问堆内存中的数据,而不允许去访问其他线程所属的线程栈内存中的数据,只能访问分配给自己的线程栈中的内容。 (更多…)

几种IO模式通俗理解

    嗯,就是那几种IO,什么同步阻塞,异步阻塞,同步非阻塞,异步非阻塞等等IO啦。不过,与其死记硬背什么IO,还不如通过他们的概念名字来理解会更好。使用同步异步和阻塞非阻塞这两个来组合成四个词儿:同步阻塞,异步阻塞,同步非阻塞,异步非阻塞。参考了I/O Concept – Blocking/Non-Blocking VS Sync/Async

    同步和异步

    简单来说,同步就是一件事儿从头到尾都是自己做完,这样整件事情的所有经历都在自己的脑子里,不用去和别人交流。异步就是这件事儿你可能完成了一些基础的准备工作,之后的具体活儿请别人完成了,而你自己则继续做自己其他的事情去了。事后那个人还需要回来通知你,告知你事情的完成情况。

    阻塞和非阻塞

    阻塞,就是一个人在做事情的时候,如果做到一半遇到等待事件,那么就一直等着,直到等待事件完成之后就可以继续当前的事情了。而非阻塞就是,自己在做事情,遇到等待事件的时候直接不等了,去做其他的事情,比如坐下来刷刷朋友圈。等到有人通知你刚刚等待的事情已经完成了,你就可以立马回来继续做刚刚那件事情了。

    (更多…)

【Core Java V1 Chp4】关于值传递和引用传递的理解

    最近在看 Core Java V1 ,今天下午看到第四章对象构造,有几句话说一下。下面我花大家两分钟的时间,简单说两句!

    前奏

    很久以前,在第一次学习 C 的过程中遇到指针这家伙。在我理解中:

    指针其实就是一个地址,表示某个变量存放在内存中的地址。

    明白了这个之后,其实指针的基本原理也就不难了。很多人对它表示恐惧只要是因为当程序大起来之后,结构变得复杂,指针指来指去的让人很烦,甚至发疯,导致这时候指针变得及其不可控。因为系统大起来之后,本来要理解这么复杂的结构就很伤脑,期间还有各种乱七八糟的像一张复杂的网线交织在一起的指针,那么在 debug 的时候,程序员的智商根本不够用。 Java 中曾经有个关键字(其实现在也还在的),叫做 goto ,作用类似指针,也因此被嫌弃得不要不要的。 (更多…)

【微信开发】坑爹的$_POST[‘HTTP_RAW_POST_DATA’]

    微信公众开发的一些demo似乎都喜欢用$_POST[‘HTTP_RAW_POST_DATA’]这个东西来获取原始的输入,而我开发过程中,却也因为这个问题吃了两次亏。第一次是使用微信的php demo做token验证的时候,在yii2里面,无论怎么弄,就是验证失败,后来听说把$_POST[‘HTTP_RAW_POST_DATA’]改成file_get_contents(‘php://input’, ‘r’);可以解决,然后改之,然后搞定了! (更多…)

1/2 1 2