存档

‘日常’ 分类的存档

jQueryPad++获取已安装的浏览器

2011年12月29日 没有评论

一直在使用一个叫做 jQueryPad 的软件,这是一个国外的开发者使用 WPF 技术开发的小工具。还是蛮不错的,因为某原因,我决定自己来重写一个类似的功能。

我写的这个名字就叫做 jQueryPad++,界面什么的都尽量模仿那个软件好了。jQueryPad 免费但是不开源,里面有一个功能是列出了已经安装的浏览器,点击可以用对应的浏览器打开,在jQueryPad++里,获取浏览器的实现如下:

代码里定义了一个 GetBrowsers() 方法,该方法返回一个枚举,循环枚举可以获取安装的浏览器了。代码访问注册表的某一位置可以获取到电脑上一些已经安装程序的路径,然后再进行过滤就可以了。

在刚开始的时候,我并不清楚要在注册表的哪个位置去查找,为了让同行以后避免发生这样的情况,同时也为 jQueryPad++ 打个小广告,这里放上代码实现。懒得弄代码高亮了,大家凑活看吧。

protected IEnumerable<Browser> GetBrowsers()         //这里是返回迭代,Browser是一个自定义的类

{

//查找注册表的路径。这个路径我也是看了好久才发现地方的。使用了Registry ,需要添加对应的命名空间。

RegistryKey path = Registry.LocalMachine.OpenSubKey(@”Software\Microsoft\Windows\CurrentVersion\App Paths”);

string[] list = path.GetSubKeyNames();

foreach (string item in list)

{

if (item.StartsWith(“Firefox”, StringComparison.InvariantCultureIgnoreCase)) //检查是否包含Firefox ,比较字符串的时候忽略大小写

{ //如果存在firefox的键,那么默认值保存的就是程序的可执行文件的完整路径,还有一个是 Path 返回的是可执行文件的路径。同时需要注意的是 yield return 的使用,对于返回或者说是获取可迭代类型,需要这么使用,不能直接使用 return ,表明继续进行下一个操作。相关的关键词是 yield break ,表示返回。总之呢有点类似 continue 和 break 的味道。

yield return new Browser(“Firefox”, path.OpenSubKey(item).GetValue(“”).ToString());

}

if (item.StartsWith(“chrome”, StringComparison.InvariantCultureIgnoreCase)) {yield return new Browser(“Chrome”, path.OpenSubKey(item).GetValue(“”).ToString()); }    // 这里和下面是获取 chrome 和 ie ,和上面的方式一样,添加opera 也是相同的道理。

if (item.StartsWith(“IExplor”, StringComparison.InvariantCultureIgnoreCase)){yield return new Browser(“Internet Explorer”, path.OpenSubKey(item).GetValue(“”).ToString());}

}

}

代码到这里,主要的功能已经实现。关于 jQueryPad++ ,等发布的时候我会单独写一个帖子,目前还有一些WPF方面的小问题需要梳理,看来还是没有达到一种语言通,就所有的语言都会的境界。

分类: 日常 标签: , , ,

国内互联网网站用户信息泄漏

2011年12月23日 没有评论

这2年发生的国内互联网网站用户帐号密码被泄漏了,而且密码都还是明文的喔。

这个太NB了,当然,我是说黑客们。

从各个网站论坛获取到的信息,应该是今年2月份和6月份攻击的,然后拿到了数据,但是不知道为什么会在12月这个时间点泄漏出来。初步看了下,CSDN、珍爱网、百合网、世纪佳缘、 51cto 、京东商城、 cnbeta、cnzz、猫扑、开心网、新浪微博、优酷、豆瓣、it168、sogou、迅雷vip、土豆、智联招聘这些网站都中招了。

话说3大婚介网站的数据都有泄漏,慢慢长夜,可以挨个挨个打电话了。

经过辗转,我拿到了CSDN 和 人人网 泄漏的用户帐号和密码。

这是多么好的一个圣诞礼物啊,说不定上述公司的苦逼IT们这个周末都要加班来维护用户数据库了。同样作为苦逼的一员,虽然我的用户帐号在我拿到的数据库里查询不到,但是我面对的是工作上 js 脚本注入漏洞的攻击,你说开发们做下过滤会死呀,害的我也跟着受罪。

分类: 日常 标签: , , , , ,

iOS版本的hello world

2011年12月1日 没有评论

在以前的博客中,我搞了个 Android 版本的 hello world。今天 iOS 版本的也出来了。

老实说,这次比以前要花费了更多的时间。

还是先上图吧。

在网上下了几个电子书,并奉献了几个通宵大致给浏览过了一下。讲的都是 objective-c 的基本知识,看的有点似懂非懂,同时也木有找到关于 Xcode 4.2 的介绍。又在网上看了点视频,总算有点眉目了。感觉看到的内容都太坑爹了。

最后学习到的:

1、icon 图标为57*57。

2、@property。这个貌似是objective-c 2才出来的功能。

3、内存管理意识。先前无论是NET还是java,都有GC去处理,在这里不行了。

接下来需要处理的是如何发布app和加快编译速度。

分类: iOS, 日常 标签:

Xcode修改源文件版权信息

2011年11月27日 1 条评论

最近在网上看Xcode的资料时,无意间发现了一个修改源文件的版权信息的方式,是使用shell的方式。输入以下代码:

defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions ‘{“ORGANIZATIONNAME”=”XXX.com”;}’

当时还很奇怪,觉得这些人太NB了,居然可以通过命令行找到这样的修改方式。

今天又发现了网上其他人的方式,有2种简单点的。

1、在 Address Book 里修改自己名片里的Company名称。

2、右击项目->Get Info->General里面可以为每个项目设置Organization Name。

第一种方式可能更简单点,一劳永逸的事情,但是我个人更倾向于使用第二种方式,不仅可以根据不同的项目自定义,还避免了第一种方式带来的隐私问题。

不管哪种方式,都为以后使用Xcode写代码提供了便利。

分类: 日常 标签:

感动的那一刻

2011年11月22日 没有评论

某人新近买了个苹果手机,玩了几天后就扔一边了说是和itouch差不多一样。

先前有做一个Android的糗事应用,这不在琢磨着给移植到 iOS 上面~

于是换内存条,重装了 win 7 64位系统,想安装一个黑苹果先弄着。按照网上的教程,搞了好久都不成功。变色龙不行,换boot think,添加 -v npci=0x2000还是不行,最后卡到了 OSInstall 路径错误上面。把硬盘折磨的不行了。好几十G的流量耗费了好几天的工作时间和夜晚,小区宽带那个速度你懂的。

后来实在装不进去了,人也累的不行了,下了一个虚拟机版本的镜像。进入系统一看还是 DP2 的,先将就看着好了。现在正在下载 XCode 呢。进度条楞是没有反应,听说 Mac App Store 不支持断点续传,那就很杯具了。

上面的铺垫终于说完了。现在才是正题。由于重新安装了win7系统,怕安装Mac时会出错,所以系统什么都木有安装,工作上最近刚忙完一个段落,最近闲下来了。白天工作时就用的单位的机器,就这样糗事的审核和更新也就随着Mac系统的安装拖了好几天。

今天上班时收到糗事用户发来的邮件,他最近换了一个16G的内存卡,但是发现糗事不能更新了。为了避免人家以为是内存卡的问题,我及时回复邮件并承诺今天一定恢复更新。

看到邮件的那一刻,说实话我内心还是有点感动的。做的事情被认可是件幸福的事情。为了给用户带来更好的内容,内容全部人工二次过滤并发布出去。审核过滤是写的一个winform应用程序,由于单位代理的限制,直接屏蔽掉了数据库的连接。所以白天基本上很少有更新,基本上每天晚上我都会去添加内容,调整文字。对于有的留言,看着很难过,仍然在坚持着。

糗事第二版的开发计划已经提上了日程,会有一些新的功能。Olay对广告的事情也一直在吐槽,这次也一并给修改掉。

ios 上面的话,对Objective-C还没有认真看,安装黑苹果不成功,再买个电脑+注册开发者帐号在目前对我来说,无论是硬件还是软件成本都很高。最坏的结果就是用html5 做一个网页好了,这样还有一些基础,可以快速把页面给撑起来。

再稍微好一点的情况,就是放一个浏览器的壳。貌似QQ校友就是这么做的。

当然,最期待的情况就是出一个真正意义上的 App 了。我琢磨着,这个东西出来起码要等到 ios5 完美越狱后了。

分类: 日常 标签: ,

sign off 了

2011年10月31日 没有评论

总算通过了笔记本工程化测试了,接下来要处理台式机那边的工程化测试,事情算是做好了一半,先前那么辛苦也算没有白费。

在版本迭代的过程中,发生了各种各样的问题,各种杯具。

在获取天气的时候,对方提供的代码对于异常的捕获就是简单地alert出responseText。正常情况下没有问题,恰好在我们提交版本后对方换机房,工程化测试就出现了。我处理bug的时候才去看合作伙伴提交的代码,发现了问题的根源。虽然在新版本里已经解决,由于流程的限制,现在还需要发邮件解释。

收到反馈报告在某的机型上界面有问题,例如界面显示不完整,或者退出时崩溃。经过查证发现是flash的问题,在某些机型上根本就没有安装flash。好吧,修改安装包逻辑,判断如果安装了flash,就跳过;如果没有安装就打进去。提交后发现在64位机型上还是有问题,另外程序界面在缩放的时候,某些flash界面无法正确缩放。开发反馈说是由于flash版本不支持64位机型,于是又修改安装逻辑,无论机器中是否有安装flash,均安装最新的flash版本。安装完后发现,flash缩放的问题也解决了。不过用flex写的应用无法缩放还是个问题。

DPI和分辨率的问题,我们的产品会根据不同的分辨率和DPI做判断后进行缩放,我个人觉得由于布局引擎实现逻辑的缺陷,导致了错位等现象。以致于不得不修改时钟、微博的功能。当然,让我觉得意外的是在目前预装windows 7的机器中安装的都是 IE 9 的情况下,开发使用了IE 7的内核。

应用需要判断网络是否联通,那么,亲爱的读者,如果换做是你的话,你会如何考虑?我的思路是新开一个进程,定时去判断网络是否联通,如果不通,就通知到应用。同时,在1、5、10、30、60、90、120……秒后判断网络是否联通,每次的间隔比上次要久一点。如果网络已经接通,则重置。另外关于网络是否连接的,可以使用系统的API函数,也可以发一个请求例如百度的首页等。开发使用的方式是判断网卡是否接通(是否获取到IP地址)的方式,于是带来了新的问题。我们为此又花费了一些时间在修复这个问题上面。

===============================

不想写了,越写下去越觉得自己似乎是在抱怨,我不想做这样的人。连续几天加班到凌晨2、3点,夜幕在我们围绕着BD大厦找出租车的时候,显得是那么的安静。

好好生活。

 

分类: 日常 标签:

你有F5么?

2011年10月31日 1 条评论

这几天在网上瞎逛,然后看到一个软件叫[F5],看了视频介绍觉得还不错。现在还在内测阶段,需要邀请几个人人家才会把邀请码发到你的邮箱里。好在我在第二天就收到了。如果要作弊的话,记得清理cookie哈。

先上图,界面呢,是酱紫的。

就是这个软件的官网打开速度好慢的说。

分类: 日常 标签:

Mongodb试玩

2011年9月8日 没有评论

最早是有看到某开源网站上有介绍 NoSQL,瞅了几眼,后来 stephen 在某天也小聊了几句,再就是后来从某前端群里顺便看到了某人的博客里发现了盛大的麦库是用的Mongodb做的。觉得这东西可以去看一看了。

首先去 http://www.mongodb.org/downloads 下载稳定版的 windows 包,原谅我对 linux 系统的不熟悉,例如解包的命令一不看就容易忘记,倒是初中时看的 Dos 命令不容易忘记。

按照网上的教程,先开个cmd 设置数据库的存放路径。命令是这样的 mongod.exe –dbpath=”G:\mongo”,回车后不要关闭这个命令行,从界面的输出可以看到默认的端口号为 27017 。

接着再另外开一个 cmd ,输入 mongo.exe 。剩下的就是自己摸索着玩了。我收集了几个简单的命令,大家可以瞅一眼:

show dbs; 显示所有的数据库

var me={name:”衣服自己洗”,version:1};设置要添加的内容,这可是BSON格式的喔

db.withonly.save(me);保存信息到表中

db.withonly.find().forEach(printjson);输出所有的信息

db.withonly.findOne({version:1});查找指定的一条记录。

接下来要做的事情就是找找 C#、Php可以用的驱动咯。其实我对这个东西好奇的原因是在于不想买数据库,每年数据库都要额外的花500多,很是心疼呀,于是就想如果有什么技术可以不用数据库保存信息就好了。今天把包一下载就发现坏事了,虚拟空间根本就不允许跑这样的玩意的,还别说有个端口的。到最后估计也就 SQLite 符合我的要求了。我在想啥时候在买的那个 UPS 上给实验一把。

网上应该有做成系统服务的方式,这样就不需要开多个命令行了。不过我电脑里的服务已经够多了,服务的方式就不自己尝试了,留到 Linux 上用吧。

写到这里也就说个题外话,在看麦库的时候,我习惯看了下人家的 html 源文件,发现有类似这样的写法:<link rel=”stylesheet” href=”http://note.sdo-static.com/p?static/css/global~note.reset_2,global~note.portal.global_1.css” />和<script src=”http://note.sdo-static.com/p?static/js/lib~j_1,lib~g_1.js”></script>莫非这个就是那啥,这个思想我还木有用到实际的项目中去呢。以后有机会用一下。

求工作,求人品。

分类: 日常 标签:

整机清理

2011年8月27日 没有评论

最近电脑经常地死机。

跑着跑着突然的失去响应,屏幕、键盘和鼠标都不可以操作,只能强制关机。大多数时候关机后马上重启是不可以的,会报告CPU温度太高没有准备好。

还有一个情况就直接给关机。

很是头疼。开始情况还好,后来空调+散热板都没有效果。白天还可以用公司的机器打打酱油什么的,晚上回家用电脑就得看RP了。

今天去中关村,从11点半开始等了好几个小时,各种崩溃。说是要做一个整机清理,把配件全部拆开打扫,价格199。话说自己在家里也就是把散热口风扇给拆下来清理了下。

好在那里还有免费的无线网络可以使用,但是我发现很多人都不知道SSID和密码,其实我也只是去饮水机那里取水的时候无意间发现的。让我来告诉你们吧,SSID是BJTAS3-kh,密码呢就是nihao。以前有无意间破解过武昌火车站候车大厅里的某个无线节点的密码并发布了出来,后来就发现人家把密码改了。今天的这个帐号密码应该会长期有效的喔。

弄好了出来都已经是5点多了,顺便也做了一年的延保。光驱读不了盘的问题下次再去弄吧,光驱没有怎么用过,读不了盘应该是积累的灰尘太多的原因吧。

中途等待的时候去KFC吃了米饭,然后四处看了下,居然发现了传说中的杰克琼斯的店子,好吧原谅我的粗鲁。有段时间在群里老是听别人说起这个名字,但是一直没有看到实体店。

走路走的很累。最近工作比较忙,我想下一个可以出来的东西应该是根据webQQ3协议写的一个小东西吧。嗯,或许会写另外一个应用,就是在任务栏上显示CPU和主板的温度。被电脑过热关机的事情搞的很郁闷,所以想监控的欲望会比较强烈。

不知道ququ和stephen同学你们最近过的可还好~

分类: 日常 标签:

糗事上线

2011年7月30日 没有评论

今天发现糗事已经通过了审核,在魅族App Store里上架了。

在先前的文章里也有提及这个东西,当时是给朋友进行内测,现在终于出第一版了。

糗事初期的数据全部来自糗事百科,衣服自己洗做这个应用的目的是因为:在看官方的页面时手机很不给力,M9系统本来就有些不稳定,页面里嵌套的广告经常会让手机重启;再加上页面里的分页体验不太好,一次只能跳转2页。当然还有一点就是内容质量明显没有以前的好了,各种乱。以前我还推荐给别人,后来不敢推荐了。

所以,我想自己弄一个吧,顺便也锻炼下,自己的水平太次了,很无语。

第一批采集过来的糗事抓了大概有1w2条记录(话说现在官方改版了,采集的模块看来又要重写了)。在等待上架的时间里,每天就自己审核,去掉一些无意义的、重复的内容,并对有的内容进行了编辑,主要体现在标点符号上,替用户节省一些不必要的流量开销还是有必要的。总体上来说还是尽量保持糗事的风格。当然咯,不可以避免的带有自己的主观色彩。

内测的时候数据是放在自己的国外空间里,后来发现访问很慢。加上这个时候长达半年的备案终于通过了,于是又换回国内了。当然,数据采集的这一块我打算还是使用 php 来实现。

数据传送采用 xml 来实现的,内容会在服务器端缓存 30 分钟,本来是想缓存5个小时或者更长。公司的代理不友好,不允许各种远程访问,所以我写的一个审核的程序在工作时间就不能用,只能每晚深夜的时候去审核。那么一天下来,数据内容不会有多少变化。后来一想,这不正在等待上架嘛,万一魅族的 QA 看到内容总是不更新,不让通过那不是搬石头砸自己的脚么。于是又改成30分钟,并且稍微有时间就去宽带实验室,在那里是可以远程访问数据库的。

当然,有一点点遗憾的是,我审核要严厉的多,过滤掉很多内容。虽然很后悔,但是在初期应该这样,提供给大家相对靠谱的东西。

最开始,我发现应用在启动的时候有时候会崩溃,申请有米广告的时候,对方也有提及。后来发现应用在启动的时候会开个新线程检查新版本,就会有问题。为了尽快通过有米的广告申请,我把检查新版本从启动中移除掉了,就没有问题了。后来问题解决了也没有再加上去,所以在这个最基本的1.2.25版本里就没有启动检查新版本的功能。

崩溃问题原因是找到了,就是坑爹的编码问题。

检查新版本时,服务器端会返回 1,**/q.apk 这样的字符串。应用通过比较 app code来判断是否需要更新。本地开发环境没问题,问题在于服务器端,我是新建了个记事本文件,然后修改的编码后传上去的,于是就杯具了。即使用记事本另存为 utf-8形式,客户端解析的时候还是会出现乱码,所以在比较 app code的时候就崩溃了。本地环境是没有问题,纠结了几天才发现的。调试不会用有没有!!

版本是上架了,但是通过内测反馈和日志,发现了应用的缺陷,就是会报告指针为空的异常。在非WIFI环境等网络条件不是很稳定的时候,点击导航的上一页、下一页,以及菜单里的最新功能时崩溃的概率会比较大。

所以在下个版本里,需要做的事情有:

1、启动时检查新版本。我觉得这个要加上去,每次审核应用都是要一个星期时间,有了自动更新功能,就方便很多了。

2、解决导航时停止响应及崩溃问题。

3、代码优化。

4、内容的更新(第一批数据我到现在都还没有审核完,很汗)

5、设置的实现。当前版本里的设置功能就是个摆设,因为我不知道需要设置什么。

申明下,应用支持的最新版本是 2.2 。我开始发给我同学安装时总提示解析失败,后来发现版本低了,他的系统是2.1的,我修改了下miniSDK的要求,就没有问题了。但是开发环境里总有个黄色的感叹号,于是又给还原了。

从魅族内测的用户反馈来看,大家觉得界面有点简单。我得想想该怎么弄好。

分类: 日常 标签: