现在开始可以兑换萌电波了

简单说就是如果你购买过MAS版或者普通版的萌电波,现在可以直接兑换普通版或者MAS版。

MAS兑换普通版所需材料:
1.AppStore购买截图(在iTunes里的账户信息里能看到购买记录,找到萌电波并将整个iTunes截图,序列号、购买日期、登入账户等不能遮挡)。
2.如果有iTunes通知的邮件也一并截图附上。

普通版兑换MAS版所需材料:
1.之前接收激活信息的邮件地址。
2.之前接收激活信息的邮件的截图(或者整个邮件原文也可以)。
3.支付宝或Paypal支付记录截图。

注意:活动免费领取的(Twitter赠送或者破解活动获得的)不能参与兑换。

将兑换材料发送到:billgateshxk[at]gmail.com。认证通过之后将会发出AppStore的兑换码或者普通版的激活码。兑换之后两个版本都可以正常使用。
一个用户仅限兑换一次。

本活动长期有效,再次感谢各位的支持~m(_ _)m

修好了MBP的音频接口

之前咱的老MacBook Pro(13-inch,Mid2009)出现了耳机插孔不插任何设备的时候处于光纤输出状态,无法切换到内置扬声器,不过插耳机上去倒是能正常使用,而且开机的时候那声“咚!”也是正常用内置扬声器发出的。
于是可以确定就是插孔的问题,然后既然插耳机上去能够正常使用,说明应该是插孔的检测用的“开关”(金属片)不是处于一直闭合就是处于一直断开的状态。
然后昨天将整个“音频网络”升级到全光纤化之后回顾这个问题,发现光纤的插头是塑料的,这是光纤转换插头和普通音频插头的对比:
2014-01-11 03.31.08
既然插头是塑料的,那么Mac怎么判断插入的是耳机还是光纤呢?只能是通过检测“形状”,也就是通过插入之后闭合或者断开开关来检测插入的,从对比看来两个插头的区别仅仅只有头的突出的部分略微不同,而且就那么细的地方(相差仅有1mm左右)…能保证一定能检测到而且不弄错?还有这个只是我买的…其他生产商有可能生产出来的插头和3.5一样的呢?
所以可以肯定的是:一定是插头里面的金属簧片要么没弹性了,要么就是触电脏了导致接触不良..
但是咱插拔光纤头和普通耳机插头多次还有包括用细棍子捅之类的方法基本全部尝试过了。一点恢复的迹象都没有…

看起来只能拆了…

嘛其实为了这个问题拆机器不下3次…不过这次真打算解决掉这个问题(毕竟维修装备和之前相比好很多了)。
拆的过程就不说了,简单一句就是把看到的螺丝钉全部拧掉,不过要注意排线什么的不能弄坏不然就麻烦了。特别是主板背面有根线拉得非常紧的…应该说Apple“计算好了”线正好够长…所以拆下主板的时候如果不注意一弄断就happy了..

于是重点是耳机插孔,注意这个修复是无法恢复成原样的!除非用焊枪把整个插孔吹出来,本来咱也是想这么做的,但是怕把其他地方也给弄坏了得不偿失所以最后没这么做。
敲开外面的金属壳(外侧的,原理插孔的那个),可以看到有两个金属触点:
2014-01-11 04.24.06
经过测试,发现有东西插入的时候这两个是断开的,而没有东西插入的时候这两个应该是闭合的。
于是再测试,发现对应主板背面的是这两个点:
名称未設定
于是检测发现,居然是处于常开状态,也就是无论插入不插入东西这两个点都处于断开,而如果用东西压上面看到的两个触点,这两个点则就短路了。
OK,发现了问题,解决方法也很简单:插入插头之后用螺丝刀等工具用力弯曲触点…让它更容易碰上,然后再用针之类的清理下触点的接触的地方。于是再测量,插入东西的到时候断开,不插入的时候短路。嗯好了~

实际测试发现已经恢复成原来一样了,内置扬声器也可以正常使用了,撒花☆*:.。. o(≧▽≦)o .。.:*☆

嘛…其实还出现了两个情况。

一个是昨天改造升级“音频网络”时候,打算是其他设备输出光纤,然后经过Mac mini的Line in(前些天查了下Mac mini居然支持光纤输入,所以才打算将“音频网络”整个升级改造的)再转换成普通扬声器输出(当然不是Mac mini内置的不然根本没效果嘛..)。其实重点还是给AppleTV在普通显示器上使用(不想和家里抢电视机)。
扯远了,嘛…升级过程中,将音频光纤链接Mac mini和MBP的之后,播放视频/音乐发现没有声音!在系统偏好设置面板里发现了插入的设备是光纤,但是音量是可调整的(一般光纤无论输入还是输出都是不可调整音量的),而且下面的音频音量显示则是一直为无声音的样子。
嗯…好奇怪,于是先将SoundFlower卸载了(不知道为啥运行这货居然会导致不停的有噪音),发现还是不行,难道是编码解码问题?但是Mac对Mac传输的应该是不加密的才对啊。于是换了根光纤线、光纤头…再换电脑,发现还是不行。于是插到另外一台Mac mini上,发现居然显示有音频输入有音量了!!
难道是这台Mac mini的光纤输入坏了?但是根本没怎么用到这个插孔啊….嗯?没怎么用到这个插孔?…你妹的…
光纤传输最重要的是什么?光啊!如果有灰尘挡住光线传输…自然不就收不到信号了嘛!!我个馬鹿。。。
于是找了根棉签清理了下插孔内部,确实带出来些灰黑色的东西。再插进去,正常了~撒花☆*:.。. o(≧▽≦)o .。.:*☆

另外一个则是修好MBP的音频插孔之后,将整个电脑装好,插电(看到电池点亮测试灯亮了),再启动….嗯…没反应(´・_・`)?
于是拆出来,检查各接线…似乎是好的啊…
拆电池,再boot…还是没反应..风扇也不转..
该不会芯片被击穿吧((((;゚Д゚)))))))…这个是咱最不想看到的(普及一下,冬天大家穿的毛衣所能产生的静电…电压能轻易达到上万伏特)。咱可不希望Mac就这么报销了,虽然是台老机器但是就这么少一台确实好可惜(不过也幸好咱提前就把所有数据全部转移到Mac mini上了)。
于是拔掉所有内存,再boot…风扇转了,屏幕亮了!警报也响了=3=..
再单独测试…又是内存接触不良。嘛这个对咱来说再熟悉不过了,橡皮擦下金手指就好了~
不过Mac和PC相比,Mac内存错误时一点反应都没有,而不插内存的时候屏幕居然能点亮。而PC是内存错误的时候不断自动重启(就是boot大概5秒左右又自动断电,5秒左右又自动开启,然后又自动断电…如此反复),不插内存屏幕点不亮但是同样会报警…

嘛幸好没损失一台电脑也不错了~
不过比较担心的就是电池…现在控制好了没以前那么胀气了,但是感觉还是好危险…要不要哪天抽空戳爆去呢?(´・_・`)
(再普及一下,Intel的电脑无论Mac还是PC,拔掉电池之后CPU都会降频…)

iOS开发者无需越狱安装破解App

其实这个方法或者说这个软件应该不少人都知道了的,以前叫做“iReSign”,不过后来改叫“iModSign”,不过最近发现imzdl这个网站一直无法正常使用所以如果想要用最新的自己去网上找吧。最新版的好像是4.0.1。实在是找不到下载的时候咱再放出下载。鉴于IMDL整个网站已经卖出,现提供最后的一个版本下载[iModSign-4.0.1]。

不过这个方法仅针对于iOS的付费开发者,也就是说你必须有Apple的iOS开发证书才能对ipa进行重签名,然后才能安装到自己的设备里(而且设备必须是登记在开发者名下的)。

这个是旧版的iReSign:
屏幕快照 2013-12-29 21.26.05
新版的iModSign:
屏幕快照 2013-12-29 21.29.27

使用方法也是很简单,iModSign的话:
1.在“Settings”的“Certificate Chooser”里选好开发证书,比如“iPhone Developer: Firstname Lastname (XXXXXXXXXX)”。
2.拖入ipa文件。
3.点击“Start Job”
然后应该会开始重签名ipa文件,完成之后应该会弹出已经重签名的ipa的位置。

iResign的话:
1.选好ipa文件。
2.从“钥匙串访问”里找到你的开发证书,比如“iPhone Developer: Firstname Lastname (XXXXXXXXXX)”,把完整的名称填到最后一个输入框。
3.点击“ReSign”
重签名完成之后同样应该会弹出文件所在位置(应该是源ipa文件旁)。

有了重签名的ipa文件,就可以通过iTunes或者iPhone配置实用工具甚至Apple Configurator来将app安装到自己的设备上。

这个方法可以重签名所有ipa文件,但是有效的仅有非加密的ipa,也就是:
1.开发者自行导出的ipa文件。
2.网上下载的已经破解了的ipa文件。
不适用的情况:
其他账号购买的ipa,未进行破解。(安装后仍然会弹出提示框需要输入AppleID进行验证)。

Xcode上制作系统偏好设置面板项目(Preference Panes)

翻了半天网上没有很多关于这方面的,虽然Apple开发文档里写有。
嘛咱也不是说要翻译这个文档,而是简单介绍一下。
使用prefPane就和iOS的Settings里面的那些第三方程序设置一样,只不过Mac是直接安装到系统偏好设置面板里。而主要的功能就是作为外部设置来设置app,好处就是能变相绕过Sandbox来开启程序内部的一些不被允许的功能,当然同时app因为本身没开启这些功能可以通过Apple的审核上架到MacAppStore。

首先来了解下prefPane的原理,其实prefPane就是一个bundle,和app差不多,同样需要h和m文件,也有info.plist,也需要icon,而UI的话只有一个nib(当然可以做得多个然后之前切换什么的,那些就比较高级了)。而prefPane根据需要可以分成独立的prefPane来执行功能,也可以通过修改目标程序的设置plist文件达到设置app的功能,也可以直接使用NotificationCenter来通知程序:设置已经更改了!快做出反应!
这次主要介绍修改目标程序的偏好设置plist文件,优点是非常简单,缺点就是设置并不能马上生效,必须重新加载读取UserDefault或者重新运行程序。

继续阅读“Xcode上制作系统偏好设置面板项目(Preference Panes)”

iOS 7上进行Per App VPN设置(未能实验成功)

iOS7的新特性:支持Per-App-VPN,但是几个测试版下来都没发现有相关的设置。不过最后在开发文档里找到了相关的说明,但是这个其实是作为配置文件的API,并不能直接在设备上进行设置。而且操作极其繁琐,如果各位不愿意花时间去折腾的话可以等正式版iOS7放出后相关工具更新了再去设置。

再次说明一下本方法及其繁琐而且目前处于测试阶段没办法保证100%成功。另外本文仅作为技术研究,不提供任何代理服务。如需翻墙,请出门左转购买VPS不用谢。

目前是不明原因iOS7无法安装配置文件,应该是文件内容有错误。还需慢慢进行实验调整,不过思路应该是对的。

Per-App-VPN的官方说法:
屏幕快照 2013-09-12 23.22.15

Per-App-VPN有两种模式:
1.任何App包括Safari访问特定网址触发就打开VPN(也可以设置成手动提前打开)。
2.针对单个App进行代理,即App运行后自动开启VPN。
两个模式基本都差不多,就是设置的内容有些区别。其实你也可以把它理解为是一种路由表。

建议系统为Mac,需要工具:
1.Xcode任意版本(或者单独去找plist编辑器也可以)。
2.iPhone配置实用工具(Mac版本下载地址,目前版本3.5(289))。
3.iOS7设备一台。
4.可用VPN一个。
5.终端命令行。

制作方法: 继续阅读“iOS 7上进行Per App VPN设置(未能实验成功)”

终于可以准备换手机了

今天凌晨的发布会…嘛虽然说5c被喷得很厉害而且咱也觉得套上官方外套也非常难看,不过单机器来说还算是挺不错的….
不过咱要入的话当然是5s,毕竟那才是下一代产品并且作为开发者来说硬件上的更新也是必须要进行真机测试的。而碰巧咱的iPhone4也在今年的11月合约到期,正好可以换手机(不换的话每个月126话费确实高了些,之前联通都是返一半话费也就是每个月我只用交63元话费的)。
于是虽然国内是首发,但是目前为止联通还没有5s的消息,合约价格也不清楚(不过应该和现在的iPhone5一样的)。不过反正直接找客户经理买…应该能拿到第一批。

话说上星期的今天去和本地的漫展商谈了下AR的应用,他们表示很愿意和咱们合作,即咱可以帮他们开发AR的app,他们提供人物模型而且我们可以应用至MoeApps里,推广的话他们也会帮忙,也就是说这合作对双方都有非常大的好处。
所以最近都在研究AR技术,也包括Unity3D以及OpenGL ES什么的…表示换平台真心麻烦…而且和Xcode一样:不知道为啥代码是对的功能就不能实现。
加上最近别的事情也是超多,于是本身写代码的时间就少,结果不仅AR这个程序拖了一星期都没写完(最开始的人物花了2天就完成了,但是经过商谈之后似乎就一直忙别的去了),MoeApps也是一直没时间弄。

不过萌电波本身8月底的时候就已经做好了上架的准备,不过被拒了两次,第一次被拒是因为:
1.因为国外网络不是很通畅所以程序进行网络自检的时候报错,然后审核人员认为app一运行就报错是有问题的,而且自认为网络是没问题的。
2.去人声功能那里写了“beta”字样,然后审核人员认为咱的程序是未完成品。
3.Sandbox的时候填写了network in的解释,忘记写out的了…Orz…
于是修复也是很简单,分别:取消弹出提示,删除”beta”字样,补充network out的解释。
之后等了5~6天终于又进入审核,但是非常杯具的是…正好碰上萌否电台歌曲服务器挂掉….于是因为无法开始播放歌曲被拒了…囧rz
不过第二天恢复正常之后马上发消息给审核团队要求重审…于是终于成功上架了~~撒花~☆*:.。. o(≧▽≦)o .。.:*☆

不过残念没我之前计算得那么好,似乎真的没多少人上MacAppStore买东西,于是几天下来都没人买,于是干脆就在Twitter上搞了一次小范围限名额的“限免”赠送app活动…
不过stilll很残念,之前是考虑先免费一段时间等爬到排行榜前面之后再改收费。但是这么一来会收入大减…于是打算还是准备出Lite版,去掉一些功能比如登录之类的再加上比如收听时间限制之类的。
预计Lite版本要等两个星期左右才能上架了。
另外萌电波的图标也打算重新设计,不过咱自己本身绘图就不行…于是美工部分还是继续搁置吧~

话说上次咱入了PS3之后,Mike酱又自己跑去买了台初代PS3,目的是为了读SACD(不过比起普通SACD播放器来说PS3确实是很便宜了)。不过因为是破解机器于是也顺便给咱玩游戏。
不过比较残念的是因为系统必须得保留3.55…于是很多新游戏玩不了而且要破eboot什么的好麻烦…Orz,久而久之感觉确实还是去买盘玩正版还方便。

话说找PS3游戏的时候顺便尝试了下Perfect dark,就是那个传说中需要下载40G加密交换数据才能正常下东西的加密P2P下载工具。不过实测下载到2G左右的缓存就已经开始下载咱指定的文件了。
另外这货能用wine运行,但是share ex2不行。不过据说share上文件更新比pd要快,但是实际用起来似乎pd更好?嘛不管怎样目前这两货都呢呢个正常用了…在Mike酱的指导下…
然后咱准备专门弄台windows的服务器来给share和pd做下载,不过要求低功耗的同时还能插多块硬盘…似乎会比较难找..

话说之前为了上架萌电波办了Mac的开发者计划,然后可以进入下载中心随意下载Mac系统了,10.0以上的系统随意下,于是给iBook G4装了10.4的server(本来想装10.5的,似乎不支持PPC?),准备当作直播服务器(不过残念之前的USB摄像头被人借走了而USB视频采集卡也借不到所以暂时没办法直播..)。
另外可以直接拿到10.7到10.9的AppStore兑换码…可以免费下系统…嘛毕竟付了那么多不给点对应的补偿当然不行的嘛~

最后是晒图的时间,眼瞎注意喔~
继续阅读“终于可以准备换手机了”

似乎有点玩过头了

话说PSV入手后第二还是第三天就拿iDSi去换了闪乱神乐了…
本来是想换初音的,不过没有二手,全新的又不想拆。DJMAX有二手但是…感觉歌曲并不是特别好听什么的加上朋友答应准备入所以暂时不考虑了。于是最后还是直接换了闪乱。(其他想玩的比如神次元之类的都木有..偶像大师也木有PSV的版本…
20130714-211125.jpg
于是当天几乎一整天就在刷这个…不过打斗类型的我没玩过也应该说是不擅长玩…(以前PS2的时候玩过高达…但是对战老输233)然后这游戏居然通关超快的,应该说难度好低,虽然得的分数不高不过想要全通关应该说是非常简单的事情。
然后玩这个除了打斗之外,想办法爆衣也是乐趣之一…应该说如果不是有爆衣这个咱也不会考虑玩而且失败的时候直接摔机器了。
继续阅读“似乎有点玩过头了”

萌电波可以说话了

虽然很早就想制作这个功能了,之前都在想有没有cooca现成的方法,发现都是只有针对文本的…没有后台的语音。
然后昨天突然想到…既然iOS和Mac程序都可以通过调用system()参数来执行命令行命令,然后命令行又能直接使用say这个调用系统语音….不就能让程序说话了么!∑(゚Д゚)咱果然是Genius!(拖走

初版只用十几分钟就完成了,能够读出各种操作以及歌曲名+演唱着名称。
不过之后花了不少时间(至少超过2小时)来优化…要知道原本可是同步操作,也就是系统在朗读的时候程序根本就无法操作,当遇到歌曲名或者演唱者名称特别长的…那会是非常痛苦的等待啊233
于是解决方法….这还是咱第一次使用NSTherd…简单说就是新开一个线程然后丢语音到另外一个线程去..
最后得到的效果…和iPod Shuffle内置的VoiceOver类似,不过感觉有点像是一般的音乐电台呢~

话说现在可以下载体验了:地址

默认这个功能是关闭的,需要在调教面板里打开:
屏幕快照 2013-06-26 14.38.50

当然光开启这个还是不行的,毕竟Mac系统默认的是英文/中文的嗓音,这样是没办法正常读日文的歌曲名的。需要手动去调整为日文的系统嗓音:
打开系统偏好设置面板,找到“听写与语音”,然后在“文本至语音”下有个“系统嗓音”,点开之后有个“自定…”可选:
屏幕快照 2013-06-26 16.03.41
之后找到日文的,勾上之后点“好”,后台会自动下载安装。装好之后就能正常读日文了:
屏幕快照 2013-06-26 16.03.54
咱现在用的是10.9 beta2,所以日文多个男声的Otoya可选,10.8以及以下的应该只有女声的Kyoko可选,个人觉得Otoya声音更大一些…Kyoko的声音太容易被淹没了(囧rz
朗读速率的话建议设置稍快一些…这样不至于等读完等太久…

话说咱玩这个玩上瘾了连歌曲都懒得听了光想听它读歌曲名称了_(:з」∠)_

最近真心够忙的

拖了好久的MoeApps终于出公测版了,虽然仅仅只是Lite版本的公测。
功能上面的基本来说没有大问题…至少目前来说已经没有技术难题了。全部完成也就只剩下时间的问题了。不过全部完成也不代表就能直接上架,因为该死的Apple条款所以咱们还在考虑内置一些新东西进去。
于是来放一些预览图好了~虽然说是支持iOS7而且效果也是iOS7的,不过iOS6下运行的和旧的MoeApps Lite没什么区别。
首先是iOS6和iOS7下运行的对比:
屏幕快照 2013-06-17 23.07.43
话说觉得其实iOS7下挺好看的,估计是因为传统界面看习惯或者说看腻了吧?
继续阅读“最近真心够忙的”

[Obj-c]匹配字段&NSArray里的Null问题&消除HTML转义字符

首先是监测字段匹配,假设要监测字符串string里是否含”a”这个字符:

if ([string rangeOfString:@"a"].location != NSNotFound) {
//do something
}

当NSArray为空或者里面某项为null的时候,在TableView或者其他什么界面经常会出现崩溃的问题。
解决方法:检测是否为空。但是普通的if (array != nil)是没用的,得这样操作:

if (array != [NSNull null]) {
//array not empty
}

尽管可能编译时会有警告…不过工作是正常的,至少程序不会再崩溃了。

最后,HTML输出的时候经常会连比如”&”或者空格之类的都转换成了“&”或者“ ”这样的字符。
解决方法:手动转换回来。
加入以下代码:(为了防止被转换,咱已经将英文标点”;”更换成了全角的“;”,使用前请先手动更换回来)

-(NSString *)htmlEntityDecode:(NSString *)string{
string = [string stringByReplacingOccurrencesOfString:@"";" withString:@"\""];
string = [string stringByReplacingOccurrencesOfString:@"'" withString:@"'"];
string = [string stringByReplacingOccurrencesOfString:@"&;" withString:@"&"];
string = [string stringByReplacingOccurrencesOfString:@"<;" withString:@"<"]; string = [string stringByReplacingOccurrencesOfString:@"&gt;" withString:@">"];
string = [string stringByReplacingOccurrencesOfString:@" ;" withString:@" "];
return string;
}

然后这么用:
string = [self htmlEntityDecode:string];
得到的string就是正常的了~