苹果虚拟机Parallels Desktop 12.2.1(41615)

不可否认PD虚拟机是苹果系统上最好用的虚拟机之一,用了多年,之前一直购买正版,它每年都进行一次大版本更新,然后说性能提示50%,升级费用与全新购买是一样的,觉得它很坑,但是确实好用支持正版也是理所应当的,就这样持续买了几年,可在v12版本上遇到了令我头疼的问题,开始限制装机量了,本来我买一份许可可以在办公的本子和家里的本子上都装着用,突然变成了只允许激活一台机器,另外一台机器会被强制踢出许可,这是要我买两份许可的节奏啊,再回想每年一次与全新购买许可一样的升级费用,我决定加入PD破解版吐槽大军.

Parallels Desktop 12.2.1_41615下载:
链接1:https://workupload.com/file/LCPhDpK
链接2: https://pan.baidu.com/s/1kW0TtVh 密码: 86nr

下载后运行”Open Gatekeeper friendly”自动安装或”Manual install”手动安装都可以,装完即可使用,无需特别处理.

不说了,重装xp去了,v10以后也不支持maclook了,即使现在装v10,也不能连接到服务器启用maclook,真是忧伤.

山寨的RMBP和QQ for Mac聊天记录文件相关

现在手里用的这本子有五年了,当时标配都是8G内存,之前用17寸的MBP只支持升级到8G,深感8G内存肯定不够用,特别现在内存都是焊死在主板上的,后期想升级没什么可能,就在网上找了所谓的学生代购买了高配定制机,在保的时候有时候会花屏,疑显卡有问题去苹果天才吧送修被拒才发现本子内部有第三方篡改,内部主板序列号硬盘序列号都与官方内部数据记录不符,惊叹山寨的强大,后查到可能是与网卡模块信道有冲突导致干扰花屏,重新换了一块千兆网卡改善了很多几乎没再遇见花屏了,也很欣慰的是用到现在也没出什么问题,只是前几天机内电池起包了,自己淘了一套电池换上恢复如初,换电池的时候发现,电池也是组装上去的.唉

这批次的本子屏幕有涂层脱落的问题,苹果官方即使出保了也给进行换修,我就送屯里天才吧了,万万没想到屏幕也有序列号不符,被拒保了,取机的时候发现电脑无法正常启动,苹果工程师一门摇头说主板出问题了,换了一位工程师帮尝试后重灌了系统可以正常启动了,虚惊一场,这种情况坏了就得自己承担,苹果不负责的.但是为什么系统会被苹果工程师弄崩,我是不理解的,毫无关联啊!
继续阅读

Mac下通过命令行设置Finder显示隐藏文件

前几天一直因为有机器人发垃圾评论而忧伤,雨松momo说用了网易云跟贴插件挺好,我便搜了搜,发现评论的数据都保存在了网易的服务器上,觉得不靠谱,就没有再深入查下去,但是有看到网易推出了类似于垃圾评论云识别服务,费用不低.没几天就收到网易的邮件,说云跟贴服务将于8月1日停止服务,对带来的不便表示歉意,我就呵呵了.

昨天开哈雷去了趟密云,往返200公里,来回都被雨浇了个透心凉,在电视剧”彼岸花”里客串了一把外国地痞小流氓,有点意思,拍戏确实很累.

言归正传,在Mac终端中输入下面命令是显示隐藏文件:

defaults write com.apple.finder AppleShowAllFiles -bool true 

输入下列命令是不显示隐藏文件:

defaults write com.apple.finder AppleShowAllFiles -bool false

执行完命令后,重启Finder才有效,确定当前Finder窗口为焦点时,直接点击右上角苹果菜单,按下Shift键就会看到强行退出Finder命令了,别担心,退出了它自己会自启.

午夜该睡觉了,安了各位.

关于给煮鸡蛋剥皮的小技巧

这么炫酷的技术博客突然多了一篇这个主题的博文,也是有点意思…

因为最近每天早晨要吃两个煮鸡蛋,就像本无路走多了就成了路,鸡蛋吃多了,剥鸡蛋壳也是悟了点门道的.

首先说煮鸡蛋,怎么煮最方便最好吃?别苦寻什秘籍了,买个煮蛋器(也叫蒸蛋器),几十元,带来的体验感绝对值得,放点水按下开关坐等就齐活了.

有了煮鸡蛋,怎么剥?我觉得平时我们扒鸡蛋壳要么零零碎碎的蛋皮抠的吃力,要么就是蛋清粘在了壳上,然后还吐槽鸡蛋或者鸡的问题….其实.并不是.

你按照我说的办法剥,你会豁然开朗:用凉水冲鸡蛋,有点瞬间降温的意思,然后将鸡蛋两头儿分别在桌面等硬物上轻轻的磕几下(5~6下,看心情),不必非要磕破壳,然后把鸡蛋横过来,沿着鸡蛋腰线再磕一圈,然后你从腰线开始剥壳吧.你会发现今天的鸡蛋太好剥了~~

好了,分享到此,鸡蛋剥好了皮再来博文下面留言赞就好了..

NGUI解决鼠标穿透问题即判断当前是否在控制UI

在开发中,时常会遇到界面和叠加界面上其它对象操作冲突的问题,举个简单例子做一个地球仪,用鼠标控制地球仪旋转,同时在屏幕上又用了ScrollView视图当用鼠标去拖拽ScrollView视图中的内容时,地球仪也随着旋转了,我们需要解决这个问题.

一般来讲,如果界面固定(在屏幕下部等),省事的做法就是把菜单区和地球仪控制区进行划分,使用 Rect.Contains(Input.mousePosition) 进行鼠标位置的判断,在地球仪控制区就控制地球旋转,在菜单区就响应菜单暂时禁用地球旋转控制.

而界面相对复杂或者位置动态变化等,上面的方法用清楚就比较麻烦了,好在现在的NGUI版本提供了一个方法,可以非常渐变的判断鼠标或手指是否在界面上,如果是即返回true.

UICamera.isOverUI

直接用在要进行判断的代码处就好,比如在地球旋转控制条件中加上”&& !UICamera.isOverUI”,如果鼠标或手指在UI之上时,就不执行控制地球旋转的代码,要注意的是UI组件上要含有碰撞器才会被检测到.不建议放在Update中不停的监测状态,这会相对增加资源消耗,在满足一定条件下再去判断是否介于UI之上比较好,如Input.GetMouseButton(0)时再”UICamera.isOverUI”后进行执行与否的代码.

Mac系统下将BetterZIP中对zip等压缩文件的快速预览关闭

Mac下的空格键对文件的快速预览真是好用,方便.
压缩工具BetterZIP也算是在Mac系统里比较好用的压缩文件处理工具了,之前旧的版本没有集成快速预览,用户可以选择性安装,现在新版本的betterzip把QuickLook快速预览集成了,又并没有开启关闭的设置,我不太喜欢关于压缩文件的快速预览,因为快速预览图的是”快速”,一般情况下压缩包里面文件数量都比较多,导致快速预览反而不快速,要菊花转半天才能看到结果,所以我决定把有关压缩包的快速预览关闭掉.
betterzip老版本快速预览是在”Library/QuickLook”中,删除掉就可以了.
而新版本的快速预览实在betterzip.app里面,找到它,右键查看包内容,在这个路径下找Contents/Library/QuickLook/BetterZipQL.qlgenerator,把它移除或者重命名即可去除对压缩文件的结构的快速预览了,当然要重启Finder后才生效(在Finder下,按下shift键点”苹果”菜单能看到强制退出Finder就可以重启Finder),就这么简单.

CentOS下用crontab设置自动重启MySQL计划(2)

之前写了一篇在每天凌晨2:30重启一次MySQL的文章:http://1vr.cn/?p=1818,用了一段时间感觉没什么异常,但今天又出现了数据库非正常关闭,真是头疼,看了下日志(终端输入:tail -f /var/log/mysqld.log),时间还在在2:30之前,不知道什么异常导致,看来有时间还是要彻底查查原因.

170703  0:41:54  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 0 22991466
170703  0:41:54  InnoDB: Started; log sequence number 0 22991466
170703  0:41:54 [Note] Event Scheduler: Loaded 0 events
170703  0:41:54 [Note] /usr/libexec/mysqld: ready for connections.

在彻底查到原因之前先打个速效针吧,找了一段bash shell脚本,判断mysql服务的状态,如果没有运行,则重启mysql.

脚本放哪无所谓,能找到就行,用”vim /etc/checkmysql.sh”创建个新文件,名为checkmysql.sh,放在了etc目录下.

#!/bin/bash
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ]
then
echo "Time: `date` :MySQL is over .">> /var/log/mysql_messages
service mysqld start
else
echo "MySQL server is running."
fi

输入”:wq”保存并退出文件,测试一下文件效果,使用”./checkmysql.sh”或绝对路径”/etc/checkmysql.sh”,可以当前Mysql状态,如已停止,那么尝试启动它.如果脚本文件权限不对,改它权限为655,命令是”chmod -R 655 checkmysql.sh”.

接下来我们需要定时的执行这个脚本,让它帮助我们监测mysql状态.还是用到了crontab,之前的文章里有比较详细的用法,这里简单说明,我要做的是让脚本3分钟执行一次,那么打开crontab编辑(命令:vim /etc/crontab):

井号注释掉之前的每天2:30重启任务,添加下面这样

*/3 * * * * root /etc/checkmysql.sh

“*/3″代表每间隔三分钟执行一次,如果你要五分钟执行一次,那就是”*/5″喽.

保存后重启crontab即可(命令:service crond restart),如果你要测试效果,可以service mysqld stop,几分钟后看mysql是否自启.

原创文章,转账请注明来自 http://1vr.cn,By XK.

NGUI的Scrollview自动布局及手动布局Reposition

在处理NGUI的Scrollview滚动视图动态添加及自动布局的事情,遇到了一些问题以及弄清了一些问题,写在这,方便他人.

有关Scrollview动态添加,拖拽到Scrollview尽头时动态的添加一批新的item项,网上查了一下,就和在百度上查”如何去除衣服上的水晶泥”一样,都是一水的模板式回答,毫无用处.别鄙视我用百度,没办法,不翻墙的情况下,搜中文关键字,百度比bing强点,英文的,那拜拜百度吧.

回到正题.先说动态添加,其实一般就是初始化prefab到场景,然后置其父对象为Scrollview就可以了,而NGUI提供了更直接的命令,就是:

NGUITools.AddChild(父对象,预设体);

它直接就把预设初始化并放在父对象下级了,省去了若干麻烦(初始化,位置,尺寸等等等).

拖拽到Scrollview尽头时动态添加新项,那我们要知道什么时候到了尽头,得到”已到尽头”的这个状态就可以用上面的AddChild添加新的item项了.可以把UIScrollView.onDragFinished事件委托过来,当Scrollview发生拖拽时它会执行一次AddChild,如果不加其它条件判断每完成一次拖拽,就会添加一次新项.

	void OnEnable(){
		UIScrollView.onDragFinished += OnDragFinished;
	}

	void OnDisable()
	{
		UIScrollView.onDragFinished -= OnDragFinished;
	}

	void OnDragFinished()
	{
		NGUITools.AddChild(父对象,预设体);
	}

当然这并不是我们要的,拽一次就添一次太可怕了,我们只是想拖拽到Scrollview尽头时添加,那有个简单的办法,在Scrollview组件上有ScrollBars设置,如果你需要滚动条就按自己设计添加个滚动条,如果不需要滚动条,那么你就随便添加个Sprite再给它添加个UIScrollBar脚本就行了,看心情把它”隐藏”起来,我们这里主要用ScrollBars的值,在你想要判断拖拽位置的方向上对应取值就好,比如你要鼠标往左滑Scrollview到尽头添加新项,那就给Scrollview的ScrollBars中的Horizontal赋个ScrollBar控件就好.

然后我们脚本里取ScrollBar的value值,到某个值的时候,进行添加新项,如下:

void OnDragFinished()
	{
		if(UIScrollBar.value>0.9f){
			NGUITools.AddChild(父对象,预设体);
	}

搞定了动态添加,我们来说说布局的问题,NGUI提供了两个布局脚本(Grid,Table),像画田字格,设定好参数后,布局脚本下面的item项都会按格子依次排列好,不用再苦x的码位置了.这两个布局脚本都支持在行和列的方向上有规律的布局,差别在于Grid是固定宽高的单元格,无论格子里内容是什么,Table有点像HTML里面的Table,你可以设置单元格间距,但是它受格子里内容影响,如果一列中有个单元格里的内容特别宽,那整列都将是这个特别宽的宽度.看文字比较难理解,自己动手比划一下就清楚了,因为我也是动手比划弄清楚的.

我想要横着的ScrollView,三行Item,鼠标左滑到尽头自动添加新项,所以我选用了Grid,在Arrangement中选用Vertical对齐方式,RowLimit设置为3,以及根据需要设置单元格(Cell)宽高,可以随意扔一些Sprite到Grid子集,Play一下,就可以看到自动布局的结果了.

当我们用NGUITools.AddChild(父对象,预设体)时,Grid并不会自动布局,它在等我们发送指令,手动布局的命令发出后,Grid将进行一次布局,帮我们将现有的item项排列的整整齐齐.这个指令是什么呢?有两种,如下:

UIGrid.Reposition();
UIGrid.repositionNow=true;

AddChild后,上面的指令任选一条执行一次就完成了布局,那么你也一定像我一样好奇它们两个的区别,其实他们也没什么太大区别,两条指令执行后,最终都是执行Reposition(),而repositionNow这个变量赋值后,Update中会判断它是否为真,为真则执行一次Reposition(),也就是说UIGrid.Reposition();是马上进行排序布局,而UIGrid.repositionNow=true;是在执行后,Update进行下一帧时进行排序布局,接着NGUi会将repositionNow重置回false.具体用哪一个,看你自己了.

另外有些教程用到了”NGUITools.SetDirty()”,字面理解是标记当前对象已经更新让Unity理解刷新状态什么的,但是在这个环节用它和不用它我没看出区别,有了解详情的可以评论里指教一下.

今天就到这里,晚安!

原创内容,转载请注明来自 http://1vr.cn , By XK.