萌电波可以说话了

虽然很早就想制作这个功能了,之前都在想有没有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下挺好看的,估计是因为传统界面看习惯或者说看腻了吧?
继续阅读“最近真心够忙的”

这次生日正好碰上端午

于是大家都放假了,正好可以聚会/
话说这次WWDC也是在咱生日前,于是本来是安排了9号到11号3天都有聚会的,而且11号的是通宵到12号也就是咱生日的那天。
计划自然跟不上变化,9号的时候其实变成了和女生单独出去约会一下午和晚上…因为其他人神助攻都不参与。
跑去预定了自制蛋糕,还跑去超市逛了两趟,最后又跑去广西大学吃夜宵。
不过当天晚上下大暴雨…于是被困在商场里…后来不仅商场停电(似乎只是灯的线路坏了),连咱自带的雨伞都坏了233。还好商场内有超市…(话说一片黑的超市还真的是第一次去..虽然里面冷柜以及电梯什么的都运转正常。
之后又跑到广西大学里面的某条美食街去吃东西。结果出来的时候又下大雨,被困在了外面的美食街里(话说广西大学附近也太多东西吃了吧?!似乎比中山路还多东西!)。直到11点才得回去…当然是走路送她回去咱再回去啦~
咱那天晚上还是很happy的说~虽然到最后回到家基本上都湿完了,还有因为走太多所以回到家腿都快要断了…右脚伸缩的时候膝盖旁边的筋都能感觉到超疼的。
 
然后原定10号聚的,结果最后又变成了11号一起聚,理由是:叫不到人…
不过10号咱又去当好人了~嘛…话说咱对这种还真像是本职工作一样呢~
然后晚上是WWDC,这个等下再吐槽。
 
第二天也就是11号,上午刷iOS7以及装10.9…结果iOS 7安装比想象中的耗费时间,直到下午3点半才装好,然后急急忙忙的赶去聚会集合地点..
然后本来说好是自制蛋糕的,结果变成了拜托店家制作了…本来还想吃到人家亲手制作的蛋糕先=3=
嘛~话说果然来的每位都是和咱要求的一样:不自带礼物…说实话礼物这种…单纯心意还好,但是演变成礼尚往来的话就非常讨厌了。所以咱对于这种基本都是要求人来了就可以。
然后下午则是去玩桌游,不过说起来咱不会牌又不会麻将什么的,真心感觉自己没用Orz、
晚餐是吃火锅,嘛…以前也是和其中一位经常来吃..所以…….应该说习惯了的。
之后则是直接去KTV,还好吃饭前特意去预定了,本来以为有0点到第二天的,结果只有9点到第二天5点的,于是直接推掉吃饭后的计划吃完之后直接去唱K了~
不过说是去唱K…其实大多还是去听歌…因为咱们大半都是不怎么唱歌的,也没有麦霸之类的人在。于是点了几首比如Only my railgun之类的大家跟着唱就是了。
话说:1.日语歌曲好少(试了好几种方法才翻出所有日文歌曲)…2.日语歌曲好多都是高音的(因为女性唱的比较多?),没有一首歌曲是能完整唱下来的。

然后虽然是有生日优惠但是咱是提前一天去开的厢所以不能享受,不过因为有带蛋糕去KTV,所以他们赠送了一份长寿面…不过放置play了几个小时凉完了才吃233…完全变成凉拌了..而且一点味道都木有T_T..
蛋糕的照片没拍于是就不传上来了。外形就是哆啦A梦…字是竖着写在蛋糕外面那一圈的。
话说刚吃完蛋糕..结果就开始和公司那边“吵架”…以及家里各种不停打电话…弄得心情超差…最后演变成这样一幅画面:
一位在咱左边猛的唱歌,剩下的在右边玩扑克,咱在中间边流泪边猛的给自己灌酒…
不过到最后还是撑不住直接躺下了…结果没躺多久….直接冲厕所去猛吐…然后走路都不能保持平衡了(即便意识还是很清醒的,但是头超痛),这就是半醉的感觉么?
嘛…开始吐了之后就没再继续喝酒,不过躺着躺着就那么混到了早上5点…后来虽然咱是想自行走路回去的,不过还是被同学用出租车送到了小区门口(话说半夜的城市感觉很不错的说~)。
然后回家发现家门果然反锁了233..按门铃也没反应,只好在楼下坐了十几分钟…然后感觉天色开始逐渐亮起来了,再回家按门铃….终于开门了…因为头实在是太痛又很累所以直接换衣服躺床睡到了12点。
 
不过12号也就是今天,家里又擅自给咱庆祝了一次…也就是说这次过生日总共吃了2次蛋糕。
总之这次的话聚会来说还是很不错的说~虽然花了不少钱…(一群人老是抱怨咱不让请咱不认识的人…要知道咱可不希望像电影X-Project那样..原本好好的一个生日聚会最后演变成骚乱…)
 
好了,生日就说到这里。以下开始对WWDC吐槽:
10.9来说还是很给力的,不过咱觉得这个更像是10.8的更新…总之不像是大的版本…即便名称已经不再使用狮系列了。
MBA就不说啥了,虽然标称能12小时,不过实际使用能上7小时也很不错了。MacPro…反正咱估计是不会买这个了,先不说价格,就目前这扩展性我还是宁愿老款MacPro更好。外形TENGA就不说了,但这大小…真不愧是Apple做的。但是性能方面…说实话感觉还是达不到咱所期待的。
最后是大家都在吐槽的iOS 7,其实总体来说还算可以,特别是功能方面,比如增强的Find my iPhone,咱实际想恢复数据的时候都要求在设置里关掉Find my iPhone才能恢复了。而这样被偷即便刷机也无法激活什么的虽然可能在特殊状况会造成不变,不过倒是极大的满足了咱这种“咱吃亏也不会便宜你”心理的人群。
至于外观,其实还算挺好,就是icon可能不算非常好看。然后咱的iPhone4刷好之后发现特别的卡…开个app也要等差不多30秒甚至一分钟。而且很多比如半透明效果也都没有了…
不过才刚beta,希望之后的版本能加快运行速度….毕竟现在这个比iOS6还差劲呢…而且细节处理包括阴影什么的都比之前的iOS要少很多,所以理论上运行速度应该会更快。
嘛..既然目前刷上了也就懒得换了。等着下一次更新吧~
还有个iTunes Radio,话说如果这货在日区出的话,萌否电台这个计划估计会被砍掉。
 
继续阅读“这次生日正好碰上端午”

果然iPod是好东西

首先先要感谢@othercatlee看到咱在推上说想入iPod Classic之后将自己闲置(收藏?)的iPod寄过来给咱玩。(话说上次iBook G4也是推友给的呢…果然推上的人最好了~下次咱也回馈点东西好了♥〜
于是先上图:
20130607-221126.jpg
嘛..虽然之前也提前知道了屏幕是有小问题…不过第一次拿到的时候看到屏幕上面那个……….第一反应以为是快递干的Orz。
不过这不是咱第一次用iPod了,初中的时候班上就有人买了iPod nano 3rd也就是改胖的那代(那时候好像才4GB)。那么多年没用了现在用起来还是一样上手~(似乎系统就没怎么变动过)
硬盘容量是80G,仔细听还真能听得出里面的硬盘的声音(说实在第一次知道iPod居然是硬盘作为储存介质的时候就觉得很不可思议,不是因为技术上很特殊,而是在这种震动得厉害而且还不知道什么时候会摔跌的设备上采用硬盘….真心了不起)。不过硬盘似乎确实有点点小毛病,偶尔会有卡顿…就是发出哒哒哒的声音然后能明显的感觉硬盘磁头在“弹”。进工程模式看了下硬盘状况:
20130607-221135.jpg
从上到下翻译:
磁头非正常退回:9
坏道:2
不正常扇区:0
使用时间:78小时(好少!)
读写的次数:79(真心好少啊~按照一首歌读写一次来算真心少…更别说如果拿来存其他数据了..)
现在温度:32度
最低温度:8度
最高温度:52度
看起来作为“收藏机”来说这使用量算少了,但是这外观…..感觉应该用了很久而且很经常用才对。

然后是实际测试,咱特意揣裤兜里到处逛…听歌非常流畅,自动切换歌曲也是…和iPhone这种都一样能无缝换歌,感觉似乎一点都不受震动的样子。
不过手动切换歌曲的时候还是不行…会略卡…

另外就是线控,因为是较老型号的缘故,只有Dock接口的线控才能用(普通耳机的线控都没反应),于是查了下国内Apple官网的Store似乎没发现有对应这型号的线控,淘宝上看到有140的…于是…..算了反正不用线控也能用。
不过听iPod的话如果iPhone有信息什么的就没办法及时知道了,于是萌生了干脆用iPhone来代替线控的想法。既然Dock接口有Line-in和out,那么直接将iPod的Line-out接到iPhone的Line-in上,然后iPhone用自制的app将Line-in转送到耳机输出,并监控线控输入,将线控的指令转发到Dock口的串口输出,然后再将串口指令转化成iPod对应的线控指令来控制iPod的控制…(感觉好麻烦的样子)。不过这个方法的缺点就是Line-in似乎不是立体声的,而且串口输出再转译之类的又要弄得好麻烦。
于是方案二出来了,简单说就是音频走iPhone内而是直接走外围线路到耳机,线控仍然是iPhone做主,然后串口输出转译控制iPod。同样很麻烦。
第三种方案则是蓝牙,就是蓝牙输出从iPod到iPhone,然后iPhone通过蓝牙的串口控制iPod播放,不过这种方法麻烦就是iPhone方面可能程序会很难写(iOS蓝牙串口什么的…呵呵)。

目前的话暂时不打算考虑那么多了,iPhone的话就不存太多歌曲可以腾出很多空间出来了~而看样子iPod可以装得下咱半个音乐库的样子所以似乎除非硬盘挂掉否则应该不需要更换了。
继续阅读“果然iPod是好东西”

整页面可变高度UIScrollView和可变高度UITableViewCell的方法

经常做程序会有需要一页显示不完的东西要滚动,而且又正好碰上比如里面的UITextView里文字字数不确定而如果字太多要做滚动的方式,虽然UITextView自带了UIScrollView但是还是觉得不如一整页滚动的效果好?
于是解决方法就是使用单独的UIScrollView,这货在程序中应该算是最不智能的东西吧?而且又正好碰上一些高度不确定的东西比如刚才说的UITextView里的文字,似乎不能不用代码来解决了。
但是作为非老开发者来说,非常不希望完全使用代码来写界面,那么应该如何配合StoryBoard或者nib文件来制作UIScrollView呢?
解决方法的思路是这样的,首先要根据文本来确定UITextView的高度,然后再加上界面上其他东西的高度(应该说是总高度),来绘制ScrollView。
可参考这个
于是第一步:确定UITextView的高度,而这需要根据文本来运算,既然文本长度不确定,自然要从文本上下功夫了:

NSString *text = self.textview.text;
CGSize stringSize = [text sizeWithFont:[UIFont boldSystemFontOfSize:14] constrainedToSize:CGSizeMake(320, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];

代码分解第一步获取到textview里的文本,然后根据文本来确定文本的大小(宽度和高度),其中需要根据你自己实际情况修改的:
1.boldSystemFontOfSize是textview里文本的字体大小。
2.CGSizeMake里的320这个要根据textview的宽度来修改,比如在这里宽度占完整个屏幕就是320(不是640哦,iOS后台会自动算Retina的)。
得到的stringSize就是实际文本的大小(包括宽度和高度,而下面我我们直接只用高度所以实际用的时候就直接:stringSize.height),接下来要把UITextView设置成这个尺寸,这样可以显示完全部的字:

[self.textview setFrame:CGRectMake(78, 0, 320, stringSize.height + 100)];

我为什么在后面会有个+ 100呢?因为实际调试的时候发现如果直接设置高度为stringSize.height会出现最下面两行被挡住了。总之这个数字可以根据自己实际情况进行调整。
而前面的78和0这两个对应的是textview所在界面的x,y值,这个可以直接在Storyboard或者nib里textview的size inspector里的View里看到,直接照用就行了。

高深人士应该能看得出其实这里已经是手动来绘制textview了,其实本来咱是想用setContentSize单独设定高度的,但是似乎没用…

设置完了UITextView之后来设置UIScrollView:

[self.scrollview setContentSize:CGSizeMake(320, stringSize.height + 200)];

这次后面+200是因为要包含界面上其他的东西。

于是这样应该就能达到效果了,如果有误差的话稍微调整以上提到的几个数值,应该能达到你想要的效果了。

另外还有一种解决方案就是使用静态的UITableView,因为其内置已经做好UIScrollView了,只要根据UITextView来决定cell的高度就可以了。
不过可变高度的cell又是如何做到的呢?上面已经知道了如何根据文本来确定高度,那么直接将高度应用在cell里不就好了~
于是:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
NSArray *array = arraylist[row];
NSString *text = [array valueForKey:@"message"];
CGSize stringSize = [text sizeWithFont:[UIFont boldSystemFontOfSize:12] constrainedToSize:CGSizeMake(292, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
return stringSize.height +50;
}

咱根据当前cell直接从array中直接读message,接下来的就和上面一样进行文本的长度确定,而到了最后则是返回stringSize.height,外加上自行调整的误差。

而至于当文本字体大小改变或者界面尺寸改变的时候,重新修改上面代码的对应变量即可(比如横屏等),重新运算过后就可以了。

最后附赠一个多点触控捏合缩小放大字体的代码(代码效果不是很好…参考):

- (void)viewDidLoad{
UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinchGesture:)];
[self.textview addGestureRecognizer:pinchGesture];
}


- (IBAction)handlePinchGesture:(UIGestureRecognizer *)sender {
static int fontSize = 20;
if (sender.state == UIGestureRecognizerStateBegan)
{
// initialBounds = _view.bounds;
}
CGFloat factor = [(UIPinchGestureRecognizer *)sender scale];
if(factor > 1.0)
{
fontSize += 1;
}
else
{
fontSize -= 1;
}
if (fontSize >50) {
fontSize =50; return;
}
if (fontSize <5) { fontSize = 5; return; } [self.textview setFont:[UIFont fontWithName:@"Helvetica" size:fontSize]]; return; }

终于回家了喵OwO)/

嘛…原计划就是周末回家的,不过周一的时候得知老家的奶奶过世了,于是周三就直接回了老家,直到周五也就是昨天才回家。在老家几天没能上网…准确来说是只有EDGE网络速度超慢的,2MB的邮件花了半个小时才发出去233
咱的话…对于老人家过世这个虽然不是第一次了,不过确实没实感就是,即便是最近都是每年都至少跑回去3、4次,所以…反正在咱看来…至少比那些一年只得回去一趟的人已经算是非常好的了。不过反正就是没实感就是了,毕竟之前就是病重,回去也就是看两眼。其他的就不想多说了,反正…嘛….也就那样吧。

然后回到这边,话说在桂林呆了差不多一个月,感觉特别不爽…倒不是自己一个人住的问题,要知道咱之前都还在喊希望搬出去一个人住呢~所以这里再次强调一下一个人住没人打扰确实好爽的。就是经常会无聊,因为网速不够快很多网站打不开连代理都挂不上,还有就是基本没办法出门锻炼(在家的话即便外面整天下雨无法外出锻炼,咱还有wii,而在桂林整天下雨的情况下……真心想掀桌了),更无语的就是停电的情况了,嘛第一次是下雨天还是大暴雨咱可以理解,但是之后的两次都不是下雨,而且一次是半夜,第二次竟然是第二天的中午…..真心无语了。
住的就不说了,重点继续说公司吧,现在似乎慢慢理解了公司的运作原理,一个字:乱。最主要的是拿定主意的人不知道是谁,比如咱现在做的这个计划,看上去似乎直接是咱负责,结果最后拿定主意的不是咱,而究竟谁说了算?开会讨论吧~什么时候开会?不知道。那怎么办?你看着办吧。你妹啊!(´・Д・)」(掀桌
然后咱目前做的这个还算好的,至少可以说是已经定型的,一发布就上万人都会用到的软件。而公司的另外几个计划,旧的就不说了,最近打算做的那个,我就直接说了是抄袭国内某一个热门SNS的软件,打算将其商业化运行。但是问题在于如何实现,首先是咱做了一个demo,最后说是要做成另外一种的,ok,然后咱连服务器都弄好了(之际用网上开源的现成的东西做,话说公司里一个linux/php党都没,这方面直接就是咱全包了),结果开会一讨论,又说这个不行,然后开会决定了一种方法,然后不是咱负责了,ok那么你们决定之后再告诉我就行。结果过了几天..来问我会不会做一个东西,然后我去网上一查….尼玛的这不就是类似我之前做的那个计划么,只是原理稍微有点区别其他基本一模一样啊!!!于是咱现在都不知道他们究竟要做啥了。
不过最根本的就是,尽管这个project咱是能做,但问题是做出来有什么用呢?以咱混互联网这么久的经验来说,这种东西基本上几个月之后就变成了只会拖后腿不赚钱的废计划,面临的两个选择就是被收购(卖出)或者砍掉该计划。而主要为了卖给大公司的话,以咱那么多年的经验来说,如果能够成功卖出给几家公司是可以撑其运行几年的,但是好景也不会很长…很快也会被淘汰最后还是那两个选择:收购or砍掉?

而这次回来之后…还是觉得在家里好,因为有咱全套的工具,感觉就像是连家用核发电机都能自己制造出来的感觉~(拖走
当然最主要还是觉得,我每个月花几千块钱在家里网络维护上,而且家里的设备都是比公司的好上很多倍的….连内部网络都是公司享受不到的千兆网络以及802.11n,为啥我不在家享受,要跑去桂林受罪呢?
而且基本上见过我的人一致都觉得我去桂林之后瘦了好多(不过咱本来就很瘦就是了)。

最讽刺的是,虽然咱是为了做沟通联系而被召唤去桂林的,结果咱统计下来工作效率最高的时候,咱并不在公司,是在以下几个地方(按照工作效率排序):1.咱家里,2.宾馆里,3.老家,4.走路路上,5.火车上。
而且咱是那种不是很喜欢面谈的人,所以即便是每天在公司,因为基本一天不会和别人说话,所以如果是别人的进度问题的话看到他那么忙不会主动的催…然后就跑去玩game了,当然网速慢等加载的时候也是会去玩game的。可以说在公司有70~80%的时间咱都是不在干正事。
而在外面的时候,因为不直接看到人,所以在聊天工作上可以像抖S那样尽情的压榨别人。喔呵呵呵呵呵呵~(拖走
所以咱不在公司的时候工作效率反而更高。

而且鉴于上面说的公司项目,加上平时在办公室所观察到的,得到的判断就是公司会极大的阻挡咱的个人发展,以至于可能明年都不太可能出得了国(各种意义上)。所以这次回来之后就不是很想回去了,或者说已经开始打算不回去了。
反正,本来是因为手头紧才去的,现在虽然还很紧,但是如果真的要为了牺牲前途来换取金钱的话…咱还是宁愿辞职继续干自己的事情多好。

话说在老家的时候试了下N1~N5(话说N1最高还是N5最高?)的听力测试,发现大部分都能听得懂…看起来只要学好文字就能去参加考试了呢~
而且话说最近听歌的时候也能慢慢理解歌词是在说什么的了…果然长期的积累终于开始产生效果了么?不过似乎还是不能做到下意识的去理解,看起来还是得加强训练才行。

话说昨天似乎因为太happy了,换衣服之前忘记检查口袋的东西…结果EarPods被洗衣机洗了..发现则是今天中午的事情了,试听了一下音量变小了好多..T_T
然后不停的采取不久措施,比如往孔里吹气,结果L恢复了差不多(可能感觉还是和原来的有差别,希望只是咱的错觉),R的话还是好小…还尝试了使用大米来吸水,恢复得了一些但是还是比L小声一些…原本以为没救了,然后准备放弃…打算明天去专卖店找之前的店长问问能不能换(当初说非人为的包括线的出现接触不良都能换,嘛….当然是加钱换)。
不过刚才试了一下,似乎因为里面的纸盆完全干透了,所以音质似乎已经恢复到之前的水平了,两边音量也一样了,似乎可以不用去换了。不过也希望没有什么后遗症。

话说咱Blog使用的Mail to Commenter插件…之前似乎一直无效的样子,然后发现似乎必须得手动将下面这行代码添加到模版参数(functions.php)里替换掉原来的Reply才能出现回复按钮:
《?php if(function_exists('mailtocommenter_button')) mailtocommenter_button();?》
不过咱自己回复自己没测试成功,不知道有哪位能帮忙测试一下?

然后最近顺便给萌电波beta升级了一下,增添了可选是否使用CDN网络,以及修改了服务器验证的方法,目前来说beta版也算是非常稳定的了。
当然破解活动还在继续进行中。
预计正式版发布的时间是7月到8月这样。MoeApps的话最近因为准备着公司这边的app所以没怎么动,不过也因为的app原理上和MoeApps非常相近,所以解决了公司的app,也就相当于解决了MoeApps上的问题,目前可以说MoeApps已经“完成40%”了,不过即便全部预定功能都昨晚也才80%。
不过目前来说技术上已经没有难题了,估计9月之前可以完成。

最后到了晒图的时间。最近都没拍到什么好东西…
首先…..咱终于喵化了\(Ow<)/ 20130601-220805.jpg
嘛….其实是在葬礼的仪式戴的帽子….然后背影看上去就是这样了喵~

前阵子去超市买的零食…然后……..
20130601-220820.jpg
这要我怎么吃啊!(掀桌

上次看到了这么一篇文章,于是也试着自己修改了一下登录页面:
20130601-220858.jpg
loginox好赞的效果。(果断可以收录到萌Mac软件里了

话说生日碰上端午…有点小期待的说~