我的第一个Android App - Clipping Stack
从期末到现在,零基础学习Android,弄出了这个小App: Clipping Stack。它是一个保存和管理剪贴板历史记录,并显示在通知栏的小程序。利用扩展通知栏,可以方便地在多段文本间随意切换。
这个小程序设计遵循了Material Design,支持最低版本4.1,并且尽我所能地为Lollipop 5.0系统作了优化。
访问Google Play以下载安装,开源免费。
源码依旧放在Github上。
如果觉得好用的话,欢迎在Github上给我Star或者Google Play上给我评分,谢谢!
下附截图,家无水表,快递请放超市,谢谢!
然后下面是一些零散的笔记:
环境的配置,我是若干年前直接brew install android
(现在改名android-sdk)安装的。然后开始动笔了去官网下个Android Studio。结果后来每次brew update
一更新SDK目录就会变,这点小坑,不过也不严重。
无论对 Java 还是 Android 开发,我都没有一点经验,一开始就直接啃developer.android.com还是有点吃力。Google官方教程是建立在你对Android基本的概念——诸如资源使用和生命周期等有一些大致的了解的基础上的。其中的示例代码一般只点出关键——这原本是很好的,但是对于缺乏基础概念与Java知识的我来说,还不太适合。
于是,我找了一本入门类型的Android教材——因为是中文的,关键是现在回头看那书写得确实不怎么好,这里就不列出来了——来学习了Android基础的目录结构,资源调用方式已经Java基础的构建类等语法。
之后,再回到developer.android.com,从Building Your First App开始,Getting Started走了大半,就开始动手写了。
我从自己以前的创意库里挑了个看起来容易实现的通知栏剪贴板历史。然后大概的想了一下,似乎这个App不需要有图标和界面,只需要当剪贴板变动时存入数据库,再post一条通知即可。系统剪贴板、数据库、通知全杂糅在一个Service里,导致后来再加入主界面时同步逻辑过于复杂,差点就重构了。
一般来说,功能性的学习以Google 官方教程为主,问题型的则主要查询StackOverFlow,并且解决后在git commit的description里直接贴上对应的链接。这样也方便以后回顾和查看。
慢慢写着,也就渐渐有些感觉了。学SQLite和StorageHelper时花了2天,学自定义Notification以及BigView花了差不多3天,后来SearchView又一天,再往后PreferenceActivity半天就大概了解了——虽然有坑。
之后又用了2天左右的时间学一点点PhotoShop,做了一个Banner和一个图标。自我感觉还算看得下去——毕竟还是画过一年的工业设计嘛,嘿嘿。
总之,我的Android学习算是跌跌撞撞地起步了。受前文那本质量不高的中文书所坑,数据库部分没有用到ContentProvider,其他三大件还是基本都接触了。春节期间就休整一会儿了,准备补点番,看点小说,继续弄乐器。
嗯,就是这样了。
看到了这里,可以的话就下载试试吧!谢谢各位读者了喵~如果可以,请给我评5星…
2014年终总结
转眼间,又到了写年终总结的时候了。回头一看,2013真是抱歉啊,2014辜负了你的期待:这一年过得顺风顺水,直到落笔的时候也没有想起什么特别值得铭记的事情。
还是按照时间顺序来回忆一下吧,2014开年的时候去了凤凰,上篇已述,不再重复。而这之后……这之后做了些什么?我努力想去回忆,可脑子里似乎一片空白。还好有写blog的习惯,翻翻以前的条目,心里总归浮起了些映像。
寒假间,自己的大部分精力都投在了这个Blog的主题上。这是我第一次接触前端,虽然现在回头代码质量低得不忍直视,不过好歹外观还算过得去。
开学后,邮寄成绩单的事情让爸妈很伤心。再之后,就断断续续的折腾着OpenWrt、NAS等。而5月的厕所晕倒事件,让我和他都痛定思痛,开始了健身。
在知乎上认真的读了高科、城年、斌卡等大神的不少健身文章后,决定从平板支撑开始入手,还记得6月份第一次做时只撑了4秒钟,到8月底暑假结束的时候可以撑上2分钟了。每天坚持慢跑,第一次只跑了600米就气喘吁吁被爸妈扶回家,到后来每天5公里没什么压力。配合上8分钟胸/腹肌的练习,体重由67kg+降到了62kg。不过对我而言,锻炼最大的好处还是在于膝盖韧带拉伤的概率小了很多,以前每年总有个10多天是坐在板凳上度过的,开始减肥后,一天也没有过。
再之后,参加了叶倍宏老大的Node Class,的确是收获良多。收获并不仅仅是nodejs本身,更是给之后的我在试图自学折腾网络、Node-Webkit、Android时一种有路可寻的感觉,仿佛终于从瞎折腾走上编程的正轨。
暑假里,和爸妈一起去了丽江、泸沽湖和香格里拉等地。不过相比年初的凤凰,倒是乏善可陈,无外乎「酒吧披肩非洲鼓」或「我要去流浪,流浪在远方,远方有姑娘」云云。
新学期开始,我进入了大三,他则大四了:奔波了大约半月,终于克服了专业不对口以及司考导致错过时间等因素,在北京找到了一份还算满意的工作。虽然他一直声称自己过得还挺好玩的,但朝九晚十一外加一周六天的节奏,还是让我暗自担忧。
于是年末,他请了三天的长假,连上元旦,请我来到了北京,带我装逼带我飞。期间住了五星级酒店,坐了特斯拉(打车…),听了话剧,吃了人均500的日料……其实只要跟着他后面慢慢走着,享受那种不用费神动脑走着走着就到了好吃的地方的感觉就足够幸福了。
回来后关掉了淘宝,最后还是没有上皇冠,不过6位数的收入已经挺让我们满意了。
哦对了,Moto 360是块好手表。
无论如何,今年算是圆满的收尾了。那么明年,希望我能找到一份有趣的工作——当然如果能钱多一些,让他不再那么辛苦,那肯定是最好的了。
然后希望我和他都能和肚腩彻底说拜拜,如果能出点小肌肉就……啊是我想太多……
解决Nexus系列Android 5.0 Lollipop连接Wifi的感叹号问题
Update:
本文作废,正解在小狐狸.中国/45.html。
简单说,执行下列命令即可解决:
|
|
大陆地区的Nexus4, 5在升级5.0之后,连接Wifi时常会看见状态栏图标上显示一个感叹号,之后自动开启并回退到使用3G/4G上网的情况,造成设备偶尔偷跑流量。而受限于SELinux,截至目前ss等软件仍仅能工作于VPN模式而非Root模式。
传说中,造成Wifi叹号的原因是设备会不断尝试ping google.com以判断网络是否可用。于是找个可ping的Google IP,再把它写入hosts即可。
如果你不大懂怎么改hosts的话,大致步骤如下:
- 确保PC/Mac端有adb/fastboot。
- 确保手机已root,如未root可至autoroot.chainfire.eu下载对应机型的文件以adb/fastboot刷入即可。
adb shell
连接手机,然后以su
提权,确认后键入以下命令
|
|
重启后效果还不错,虽然偶尔仍会出现wifi叹号,但时间都很短,不至于回退至3G。
Pushbullet-NW:一个Pushbullet的OS X客户端
Pushbullet是窝很喜欢的一个在各平台之间分享传递通知/文本/文件的客户端,可惜官方的OS X客户端coming soon了一万年了也没coming出来……_(:3 」∠)_ ,而且官方Windows客户端也不是很用心的样子,看样子他们是主推的各种浏览器扩展,和Google家的Hangouts有些类似呢。
之所以不喜欢浏览器扩展,主要是Chrome的通知样式太丑了,而且Pushbullet官方开放了大多数API,所以窝就打算自己写一个。从假期到现在断断续续了快1个月,现在貌似基本能用了。
功能:
- 为Mac OS X设计,有边栏变色,断网重连等功能。支持通知中心,以及调用Apple Maps等本地App。
- 接收和发送所有种类的Push,如笔记、链接、位置、列表、图片和文件。支持发往指定设备或好友。
- 在Mac上同步显示Android设备的通知,并调用对应的本地App或Web App打开。
- 在Mac上通过Android手机接收和发送短信。(我不打算做通讯录自动补全)
- 与其他安装了Pushbullet的设备同步剪贴板,你可以在Mac上复制一段文字,然后在Windows/Android上粘贴。
……_(:3 」∠)_……
下载:https://github.com/heruoxin/Pushbullet-NW/blob/release-download/Pushbullet-NW.app.zip?raw=true
酷比魔方799寨板简单评测
如果有空闲的话,一定要出门去运动,千万别宅在家里,不然就只能「买买买」以至「穷穷穷」了。十多天前,手贱逛JD发现了这款苦逼魔方的寨板,Atom Z3735D+2G内存+32G EMMC,预装Win8带Bing版外带送一年office365,799块的售价不能再低了……
价位如此,做工自然不敢恭维。第一次拿到的板子原厂膜里还夹着根头发(也可能是别人的退货),第二次拿到的电池偶尔接触不良,第三次拿到的终于还算是一切正常了。
下面是第三块板子的简要开箱:
盒子长这样:
打开是这样:
接口一共5个,全排在屏幕左侧,依次是3.5耳机孔、Micro USB、Mini HDMI、TF卡槽以及9V的电源:
我时常担忧如果初始化时一直盯着这个不停变换的背景色看会不会被引发光敏性癫痫:
不过Windows这点还是做得挺不错的,系统设置和App都能同步过来,App内配置就得看软件商的心情了:
之后就可以当作一台较低性能的PC来使用了。
由于预装的带Bing版Win8没有RDP Server的功能,所以格式化重装了成了企业版……事实证明我真是没事作大死,企业版用一会儿就开始卡了……写完评测就去恢复…
先说优点:
- 在这个价位的设备里,续航能力真不错:
- Metro App在平板状态下的体验很好,特别是IE。分屏功能也很实用。
- Win8的各种单指边缘滑动手势使得各个App交互较为统一,且相对iOS/Android别具一格。而内置的多套动态主题也很漂亮。
- 性能完全足够使用。在常用的Metro App间反复切换都不会卡顿,曾尝试RDP远程到RMBP上用Retina分辨率(2560x1800)来输出,运行Office打字调整都很流畅,大大超出我的期望。
再说缺点:
- App少,即使有,不少大厂App也是凑数之作,功能远少于Android/iOS版,例如……
- 在绝大多数非中国开发者开发的App里,中文字体回退都有问题,看上去惨不忍睹:
- 屏幕偏色、漏光严重。
不过总体来说,这板子的性价比还是相当爆棚的。毕竟赠送的Office365(可装2台PC/Mac)和1T onedrive已经值回相当一部分价值了。
记一次NodeSchool线下活动 & NodeJS训练营首周记
作为一只预备程序猿,在相当长的一段时间里,我都处于一种及其散漫和低效的状态:学校所教的往往高屋建瓴泛泛而谈,没法深入;自己学的又是纯兴趣驱动,一个东西如果几周都出不了成果或者不易感到进步,便容易半途而废。即便是折腾所见即所得的前端,当最初的驱动我学习的东西暂时完结之后——如这个Blog的主题,便往往没有继续深入学习的动力。
好在这样的情况最近终于有了改观。
20多天前,正徒劳地啃着swift语法的我在V2EX闲逛时看见了这个帖子:[成都活动] NodeJS Workshop 六月七号(周六),抱着长长见识和接触一下圈子的想法,便与@heavenwesker约好一起去。
坐了整整2个多小时的公交车,终于赶到了软件园。与@heavenwesker汇合后,我们在软件园周围小逛了一圈。软件园附近高楼林立,街道宽敞,绿化也很不错,再加上遇到一个成都难得的晴天,总体上给了人一种非常干净的感觉。
活动的过程可以参看@hayeah老师的这篇Blog,总之,一是nodeschool.io的教程本身就设计得很合理,二是这种一群气氛类似的人一起做事情的感觉很让人舒服,三是身边有大牛掉坑不用愁——从没有这样舒服的写代码体验。
归来后,又花了大约一天的时间写完了learnyournode
,之后便向@hayeah老师请教接下来的学习路线图,他笑嘻嘻(此处为我脑补)地为自己的NodeJS训练营打起了广告——不得不佩服这定向广告打得比Adsense不知高到哪里去了!我和他谈笑风生!
老实说,这个NodeJS训练营的学费实在太便宜了:学生优惠连同小伙伴折扣下来,竟然只要290/人。而这一周的暖身课程下来,也确实给我带来了很大的收获。
以下是我这几天学习时的打卡记录和一些备注:
第一天
打卡记录
- Repo: https://github.com/heruoxin/fork2-node-greet
- 耗时: 1.0h
- 难度: 适中
- 课程遇到的问题和解决方法:
因为之前自学过一点 npm 相关的知识,所以打包本身没有很大的难度。但是还是遇到了不少的小问题:
- 同学 QQ 对我骚扰严重,外加蚊子太多,导致浪费了很多时间,本来预计20分钟就能完成的,实际用了快1个小时……
- 在没有传递参数进入时,由 minimist 生成的
argv._
为一个空[]
,而我想当然的使用了if (!argv._){}
,这样无论有否参数传入,表达式的值恒为 false——这说明我应该补习一些 js 的基础语法——后来改使用if (!argv._.length){}
解决了问题。不知道有没有更优雅一些的做法。 - 以前因为害羞( _(:3 」∠)_ )的缘故,从来不敢在 GitHub 上发布代码,都是使用的自建的 GitBlit,第一次在 GitHub 发布代码,误勾上了 “Initialize this repository with a README” 选项,导致合并时冲突,而我在保持 GitHub for Mac 客户端未关闭的状态下直接删除
./.git
重建的行为又导致了 GitHub for Mac 客户端的 Bug,另外一个 git 目录下的 log 被混杂了进来……只好全部删掉重做。
我新学到了什么:
npm install
的--save
参数,以前都是手动修改 package.json 添加的……npm link
#!/usr/bin/env xxx
的详细含义。- 其他一时想不起了……
回顾:
第一次在github上建项目,羞耻度已爆表,感觉自己萌!萌!哒!
第二天
打卡记录
- Repo: https://github.com/heruoxin/fork2-node-greet
- 耗时: 1.0h
- 难度: 容易
- 课程遇到的问题和解决方法:
以前只在刚进大学时那门高屋建瓴泛泛而谈的《计算机引论》课里听说过「测试」这种概念。这是第一次实际接触,才发现原来 learnyournode
就是以单元测试开发的形式教的 nodejs 呀!
因为今天开始外出旅游三天,所以只是大概咀嚼了一下,并没有消化吸收得彻底。BDD、TDD 相关知识看上去非常诱人,回去以后会加深学习之。
今天早上在火车上的时候修改了昨天课程上的代码,将 CLI 行为和程序内部的逻辑分离了开来:所有命令行的输入输出功能都由 ./bin/greet.js 处理,内部逻辑由 ./lib/index.js 负责,并将结果回调给 greet.js(或其他引用了 index.js 的模块)。没想到这给晚上写测试的时候带来了麻烦,感觉反而让测试逻辑显得很复杂了。
另外,写的时候一直在思索:如果真的以单元测试的模式驱动开发,应该是直接测试 CLI 命令还是测试 npm 模块?后来我觉得应该是先完善内部逻辑,再补充处理输入输出。于是写了 greet lib 和 greet cli 两部分的测试代码。
学习时读到的一些可能有用的链接:
回顾
第二天的时间主要花在反复思索describe
、it
等关键字到底是javascript本身的还算mocha带来的上……总之还是因为对js本身太不熟悉了,随着越写越多这个问题在逐渐好转。
第三天
打卡记录
- Repo: https://github.com/heruoxin/fork2-node-greet
- 耗时: 1.0h
- 难度: 适中
- 课程遇到的问题和解决方法:
本身课程是很简短的,但我遇到的主要问题在于看完 Convert index.js 后,就想当然的按照昨天 npm test
时看见的链接,使用 prepublish
来完成编译 coffee 为 js 见 da5f84a。
后来按照课程使用的 Makefile 的方法来写了一遍,但还是觉得 ./bin 中使用 js 而其他地方使用 coffee 有点昏。
好在我 js 基础都不牢固,为了夯实基础,还是先写一段时间 js 等利索了再换 coffee 吧 :)
回顾
第三天的感觉还是学有余力吧,不然也不会去按照自己的思路走下去,直接用npm的script来处理coffee的编译来。不过到了第四天就哦呵呵呵……
第四天
打卡记录
- Repo: https://github.com/heruoxin/fork2-node-class
- 耗时: 6.0h
- 难度: 难
- 课程遇到的问题和解决方法:
这一课几乎花了一整天……通过测试了才发现「啊这么短???」
主要障碍在于:
- 我的英语能力太差,光是把对象方法属性等词汇的中英文之间建立联系这一步就导致头晕了。
- 对对象和类完全缺乏了解,既没有足够的Javascript基础,也对面向对象这一思维模式缺乏认识,大一学C++时基础没打牢固的恶果。
用来补JS对象基础的链接:
Javascript 面向对象编程(一):封装
回顾
第四天开始真的是被虐成渣渣啊……悄悄的说,从高中的时候在手机上学python开始,我就不怎么能理解面向对象,准确说是面向类的编程,而这次……幸好大一上课学C++时还不明就里的死记硬背了不少有关类的知识,比如构造函数析构函数父类继承之类的,如今自己开始写,那些死记硬背的条条总算(部分)活了起来。
第五天
打卡记录
- Repo: https://github.com/heruoxin/fork2-node-class
- 耗时: 8.0h
- 难度: 适中
- 课程遇到的问题和解决方法:
总体而言:难哭了……
遇到的坑:
- 自己眼神不好
我把那个:
var B = Class({
b: function() {
return 2;
}
},A);
理解错成了:
var B = Class({
b: function() {
return 2;
}
,A});
还处理了半天,一直在奇怪为什么var i in args
的循环方法拿不到A……
- 外加读教材不认真
做Implement Super的时候,没有认真读教材,想了各种方法,折腾了2个小时,但this始终指向父类……然后想到昨天老师说 @Cloverstd 多此一举的时候那个神奇的apply()函数,结果果然可行!得意洋洋的心想这个坑老师怎么不点明啊,然后一看教程:
Hint: Use arguments and Function.prototype.apply to call the super method.
当场我就被自己蠢哭了啊……
- 理解能力不够
做Implement Super’s Supe时,明明已经在终端里看到了,却没有意识到return那行语句本身就是一个递归。反而自己去尝试构造递归函数。
- 体力弱
做到后面实在是累了,翻了一下上期的同学们的答案,发现也大多没有做_super
,明天睡一觉起来满血了之后再做吧……
吃晚饭去……
回顾
有了第四天的经验,一早起来就做好了被虐的准备,果不其然,活生生让我从早上11点写到晚上9点……打卡填时间的位置好想填个∞……
不过,看到自己是第二个做完的,而且截止这个文章写完也没看到第三个同学做完,心里还是有点小自豪小自豪的。
周六
周六周末都没有课的,看了03期中 @Luin 大大的视频,决定照虎画猫,重写一次。重写本来很顺利,可是遇到了个很奇葩的问题,百思不得其解,最后经过老师点拔,才发现是一个变量声明时忘记加var
,被全局了……那个囧啊……
好在,重写之后的代码看起来好看多了。
周日
待续,初步打算写一个小package,把js的数组封装成类似python的dbm样的模块,以后用起来方便一些。
(不用写都知道这是在重复造轮子,只是为了学习而已啦……)
哦对了,这周的空余时间还折腾了一个用tcp + 非标端口解析DNS的小工具,目前用起来还是安全的,我也想学习其他大大们直接丢弃UDP伪造包的方法,不过现在网络方面的基础知识还不够,弄不出来呢……
第一次被拉上120
今天在学校洗澡的时候晕倒了,于是被拉上了120,拖进医院检查了半天,所幸没事。
事情的详细经过是这样的,在宿舍洗澡,洗了一会儿,觉得有点闷,便打开门通气,同时关掉水准备穿上衣服出来,可是刚刚准备穿内裤,一阵强烈的晕眩感袭来,赶紧扶住水管站稳,然后突然间,身体失去了感知能力。可模模糊糊的意识却感觉自己仍在搓澡,一会儿搓腿,一会儿搓胳膊,一会儿搓鼻子——我搓鼻子干嘛?警觉间略微恢复了视力,我看见自己竟然躺在地板上,而腿上、胳膊上以及鼻子都已跌得出了血。赶紧强迫自己集中注意力慢慢站了起来走出浴室——然后倒回去穿上内裤……再走了出来,喘着气坐到椅子上。
这时我发现同学们都以惊异的眼神看着我,大家纷纷表示我的脸色卡白的,问我怎么了,而这时放松注意力的我却陷入了一阵更大的晕眩中,耳鸣着摊倒在椅子上。
过了一小会儿,醒来的我睁开眼,却看到眼前的一切都是黑白的——真的非常类似于《求生之路》一类的游戏中眩晕时的视界:对身穿粉色和白色衣服的同学们,他们的眼神,嘴唇动作都可以看得一清二楚;而对身穿黑色衣服的同学,他的整个身影却显得飘忽不定,根本无法辨识。
再然后,同学们打电话通知了班主任和120,救护车前来,医生测了一下血糖和心率,说应该没问题。班主任出于保险的角度坚持让我去医院看看,于是3个同学和班主任一起扶着我坐上了救护车——这里不得不BS隔壁体院的SB们,尽拿手机对着我拍照,差点把我绊倒。
被扶上了120后,救护车沿着一条颠簸的小道飞驰,同学们戏言没有病的都会被抖出病来。救护车本身相当陈旧,感觉泼点红色汽油就可以直接拿去演僵尸片了。温度计悬挂在座位对面墙上,而温度计中又夹着本陈旧的记事本,几个同学和我并排坐在一侧的红色坐垫上,脚旁放着蒙灰的担架,而门旁拥挤的柜子上还挂着氧气袋。
之后的事情便无甚稀奇。到了医院,被同学推着轮椅检查了心电图和CT,看到结果一切正常之后,便回了寝室。打电话向坏以及爸妈通报了情况,收整完毕,我便拿出本子,忍着擦伤的疼痛,写了这篇记录。
路由ttl刷机笔记
最近连续刷挂了2个路由器,费了很大力气才用ttl救活。记叙一下ttl救砖的简要步骤。
水星M301(OpenWrt)挂掉的原因是我写/etc/config/network的时候写掉了一个冒号……于是开机后灯会闪但是无法获取到ip,只好尝试ttl进去修复之。
而疼达W1800R(Tomato)则是刷机刷到一半寝室断电了……
水星M301是TP-link MR11u的马甲,电路布局基本一致,依照http://www.sl088.com/voyage/2012/03/3121.slboat中的拆机图片,将TX、RX、GND三个针脚连上ttl-USB转换器——其中TX、RX需反接。
疼达W1800R外壳非常扎实,翘开费了好大力气……电路布局可见http://www.right.com.cn/forum/thread-125418-1-1.html的16楼和20楼。简单说就是从2颗大电容往左依次是GND、RX、TX和用不到的VCC。
我买的TTL转接器是PL2303方案的,在OS X下使用需要驱动,Linux下则免驱。第一次的时候一直接触不良,折腾了好半天才搞定。
插入ttl-USB转换器后先ls /dev/tty*
看看转换器是否被识别到,如果是的话应该有一个名叫ttyUSB0(Linux)或者tty.usbserial(OS X)的块设备。
当搞定驱动并且确认接稳了之后,输入sudo screen /dev/ttyUSB0 115200
(linux)或screen /dev/tty.usbserial 115200
(OS X),如果没有screen自己装一下,再给路由器通电,正常情况下屏幕即有显示。
对水星M301和其他类似的OpenWrt路由,启动时按t、p、l三个键即可中断启动——之后该怎么刷我就不清楚了,因为我只是改错了配置,直接输firstboot
重置配置即可。
对疼达W1800R以及类似的tomato路由,按Ctrl+C中断,之后在本机搭建一个tftp server,网线连接路由和本机,以命令flash -noheader 192.168.1.16:t.trx flash1.trx
刷机,其中192.168.1.16为tftp server地址, t.trx为固件名称,flash1.trx不要改。
刷完后nvram erase
,再reboot
,建议重启后再erase一次。
参考:
- http://www.sl088.com/voyage/2012/03/3121.slboat
- http://www.right.com.cn/forum/thread-130164-1-1.html
- http://www.right.com.cn/forum/thread-125418-1-1.html
最后感谢隔壁和小叮当一样什么都有的郭壕菊(Shadowmourne G)和千辛万苦帮我拆机壳的Heaven Wesker
OpenWrt配置lighttpd与bash-CGI
0. 确保没有安装过Luci
官方trunk版默认都没有的。
1. 安装相应的包
|
|
2.编辑配置文件
|
|
在末尾添加添加cgi.assign = ( ".sh" => "/bin/bash" )
再找到server.modules
,添加"mod_cgi",
若无额外配置,include_shell "cat /etc/lighttpd/conf.d/*.conf"
这一行可能需要注释掉。
3.重启lighttpd
|
|
然后即可在/www/中添加.sh后缀的脚本来测试了
|
|
|
|
改一下权限:
|
|
测试访问192.168.1.1/test.sh
成功显示:
注:
为什么没法用常见的LALMP……纯粹是因为路由器空间太小我也不想外挂U盘了而已…
解决13年末Mac机型黑屏断网问题
相比之前的机型,13年末款的MacBook Air和Retina MacBook Pro去掉了系统偏好设置中的「电脑睡眠」选项,仅保留「屏幕睡眠」。导致的后果就是超时黑屏的瞬间电脑同时进入睡眠,QQ/旺旺等社交软件同时立即下线。
幸好,苹果仅将「电脑睡眠」选项从图形界面中拿下,我们还是可以通过命令行恢复之的。
首选,可以通过 sudo pmset -g
命令查看当前的电源设置状态。
可见sleep
选项被设置为了0,而display
为10,表示Mac在闲置10分钟后黑屏。
只需要用下述命令设置闲置15分钟后进入睡眠,问题即可解决。
sudo pmset -c sleep 15
上述-c
表示连接电源(charging),更改为-b
即可设置使用电池时的休眠策略。