壹周一嘀咕: 2011/12/20


嘀咕:本来想建个嘀咕类目,每周报告一下情况,结果一嘀就嘀了一年多才嘀出第二下,真是惭愧哇。

最近

上班,加班,下班,睡觉。多么有规律的生活。
发现来到企鹅村后,上班的时间虽然不长,但是自己个人的时间少了好多,基本上都是摸黑了才出公司,美其名曰,将青春奉献给公司。
仔细想想,的确很多时候都在考虑公司的需求,考虑如何在工作中得到更多的东西,解决更多问题。非常充实。

生活

除了上班,觉得深圳还是有很多值得留恋的东西,比如深圳吃的要比杭州的好点,虽然称之为 “地沟油” =,= 不过在杭州吃得也不少哇。
工作将近半年,慢慢习惯了这边的生活规律,工作节奏,目前处在慢慢将生活质量提高,比如周末去跑跑步打打球什么,因为这两周听到好多微博上传闻,一些IT民工短暂而脆弱的生命,不禁珍惜自己活着的每一天,珍惜和朋友的每一天。

公司年会

企鹅村的年会着实让我感动了一把,节目真的很棒,虽然没有中大奖,小奖也没有 T__T。

图为达人秀卓君帅哥在表演,好厉害,好腼腆
最后还来了林志炫,唱功果然好厉害,可惜iphone没电了,T__T,后悔没带GF2.

GF2

10月份的时候,为我的GF2收了个二手的大光圈定焦头(1.4),因为觉得自己的小定焦头光圈不够大(2.8),1.4的头果然效果不一样哇,只是,因为不是lumix的,需要手动对焦着实蛋疼。不过还是能拍出一些好玩好看的东西。
比如片头的配图就是大光圈拍的,效果不错需要一点后期。顺便在点点上申请了个轻博发发片子(萌。大叔の)
接下来抽空就拍点,还是挺好玩的。

英雄联盟

最近在公司上班,除了繁琐的需求,中午饭后还能跟团队同事一起撸一把。感觉还是挺棒的,深刻体会团队合作的重要性。
不过打得不好,一个不小心就啃爹。
最常玩的是妹子 “阿卡利” 我喜欢妹子^__^,我在二区祖安 coda 是我的id。欢迎组团开黑。(coda名字取自我喜欢的 mac 编辑器,个人还是挺推荐的。各种华丽)

关于打牌

大猫最近跟她媳妇经常打牌,各种啃爹,无奈不太会梭哈神马的。于是就各种百度google。
发现有个网站PartyPoker(需代理)提供很完整的新手教程,值得让我觉得神奇的是,PartyGaming早在2005年就在伦敦股票市场上市。打牌没怎么学会,这家公司让我肃然起敬哇。

iOS 开发

发现自己离设计师越来越远了,最近迷上了ios开发,iphone用了也有将近一年,觉得干网络这么多年了,多少也要在这个大蛋糕里分点吃的哈,于是收了几本书准备进军ios,当然不知道自己能走多远哈。

还是那句话,学到老,活到老。还真不知道自己能活多久,木哈哈·~~~

今天就到这里了。

PS:发现最近游客中好多人在留言中发小广告了,其实我不介意啦,不要吧名字起得太显眼我是能接受得啦。
PS2: 好吧上面有一条是軟文,你们懂的^__^
PSP:好想念的我psp哇,小P被妹子抢走了 =,=

您可能还对这些日志感兴趣


浆抱罗斯&飞鱼’s blog

百度搜索引擎 VS 360搜索引擎

1. 用户体验UE设计

为了继承用户体验,360搜索使用了与百度类似的UE设计,并且预设了百度搜索和谷歌搜索选项,区别是:

①首页PK:360搜索的首页设计无法释怀的加入了一些网址导航、天气预报、和logo回网址导航。一个页面有2处推网址导航的(logo、顶部工具栏),可见360搜索的核心定位还是在做网址导航,通过网址导航再推360搜索。首页这样设计的用户体验不如百度。搜索和导航是2种检索方式,混在一起给用户选择是会增加用户的思考时间和选择成本的。

设为首页或添加到桌面是很好的功能,可惜360搜索把它放在了顶部工具栏里,这种设计明显没有放在搜索button后面或下面易用和容易引导用户。

②搜索结果页面:没有logo,即没有回搜索首页的链接。虽然360可能认为这个链接没有意义,但是用户已经习惯了从哪里,回哪去,而且百度有点击logo回首页的功能,也教育了用户。如果用户回不到首页,总停留在上次搜索结果页面,会很纠结,操作不可逆,感觉会比较奇怪。而且去掉logo,并没有节省空间,360搜索结果首屏显示数量跟百度是一样的,所以我觉得这种设计反而弄巧成拙。

    搜索结果页面没有设为首页或添加到桌面;

顶部用tab切换搜索方式百度谷歌,感觉是给用户更大的选择权;

2. 搜索结果PK

单从网页搜索来说,对大众需求的满足方面,360搜索可以跟百度打平甚至略胜一筹。

去除广告。360搜索结果的最大特点就是没有百度那么多广告,这也符合360搜索对自己的定义,只是不知道这样能持续多久,下面是360搜索的官方说明截图:建立一个安全、干净、有效竞争的互联网搜索市场,不知道这里说的干净是否是指广告。

针对百度苦心经营的阿拉丁系统、框计算,360搜索也迅速在搜索结果增加了这些功能,内容主要来自360桌面应用和第三方接入。比如搜:北京到济南,搜:日历,搜:愤怒的小鸟等。

3. 高级搜索

大概从2008年以后百度就没有了高级搜索按钮,360搜索也没有,但是较大的区别在于,百度有高级指令搜索,360搜索还无此功能。

可见360搜索还来不及顾及广大站长和推广用户的需求,或者自身抓取量还远远不足做高级指令检索。比如site:指令不可用,从百度的垄断和民心软肋来看,360搜索应该尽早为站长提供帮助,推出指令和指数等SEO功能,这可以大大的笼络站长民心,但是从另一个角度来说,站长过度利用SEO对360搜索优化,前期也会给360的搜索体验带来伤害。所以此时未推出这些高级指令功能,也是合理的。

本文链接

博客园_首页

vertical-align 图片文字水平对齐分析

最近接触了许多 关于图片文字水平对齐的需求,然后发现如果单单将vertical-align 设置为middle 的话,不同浏览器下居中对齐的位置有偏移,让人好不蛋疼~ =,=
网上搜了下好像也没有搜到相关的分析,大部分都是垂直居中的案例
于是专门针对vertical-align 做了次分析,功夫不负有心人,分析结果还是挺好玩的,对vertical-align 又有了一次深入的了解。给力~~~

demo 传送门: vertical-align 各属性分析 有错误欢迎回复纠正哦 ^__^

一些心得体会:

vertical-align 定义

最初我认为的vertical-align 解释 跟text-align 一样,是容器内部的非block 元素居中对齐,但~~ 我理解错了
从w3c 官方对 vertical-align 各属性的解释来看,vertical-align 是定义当前节点,跟外围内容的对齐方式,跟text-align 的解释是不一样的。

vertical-align:baseline 基线对齐

分析所得,发现baseline不是在中文字的可见部分最下方,而是在英文字的可见部分最下方。
然后发现图片对齐的时候是以图片的最下方同相邻文字的 baseline 对齐。一直觉得为啥图片下方会有4像素的空白,现在明白了

不同字体会有不同效果

我这个demo 用的Tahoma 字体,发现如果使用类似 Yahei 等中文字体,在IE低版本下会有出现一些奇怪的现象,详细可以看demo。

vertical-align 最好不要混用

从定义来理解,就发现这个vertical-align 最好不要混用。因为本身不同属性会产生各种各样的兼容问题,如果混用,估计会出现更复杂的现象。虽然我也没有深入研究,但我觉得混用不太靠谱。

vertical-align: px 定位最稳定

这个属性一直都没怎么用,原先一直用middle 来实现水平对齐,在一次偶尔的项目代码里发现的。
相对定位是相对于baseline的偏差定位,负值代表图片相对baseline往下移。
在研究中发现使用相对定位兼容性最好,只有IE7会有2px的偏差,但基本可以无视,因为目前IE7的用户可以忽略不计
不过这种方法也不是万能的,
因为是相对于baseline的相对定位,如果文字变大后,图片的对齐位置 看起来就不会跟着移动区别于middle属性,不过个人觉得这样的情况出现概率不大,并且字大了再针对调整也没问题。
另外图片大小不一样大相应的负值也不相同,详细见demo

高潮:vertical-align 最佳兼容方案

前面说了这次研究没有白费,个人推荐的vertical-align 用法如下:
1. 尽量保持主内容的 vertical-align 是baseline 即默认的,不要把vertical-align 当text-align 来理解使用。
2. 针对 内部需要调整位置的 图片等 进行 px 定位。
优点:保证外围的vertical-align 是默认值,不产生混用现象。
缺点:针对不同尺寸的图片要针对进行定位,不过一般ico 大小差不多大,可以统一调整。

下一步研究方向:表单元素的vertical-align: px 是否同样适用 ?

您可能还对这些日志感兴趣


浆抱罗斯&飞鱼’s blog

dreamhost主机10月优惠码2012

dreamhost主机10月优惠码2012
不虽然Dreamhost不时会出现777优惠码,使用dreamhost777优惠码之后,只需9.24美元首年可以享受一年Dreamhost无限主机,省下110美元,优惠幅度达到92%。但是可能有些朋友知道,有些朋友却并不知道,Dreamhost777优惠码已经限制了中国人购买了,其他一些大于50美元的dreamhost优惠码也和dreamhost无缘!即使一些人暂时使用一些小手段糊弄过去了(例如使用美国ip购买等),一旦被Dreamhost官方发现,结[......]

阅读全文

鲜活优惠码

Spring AOP + AspectJ framework


AOP(Aspect Orient Programming),也就是常说的面向方面编程,它是作为面向对象编程的一种补充,专门用于处理系统中分布于各个模块(不同方法)

中的交叉关注点的问题,在 Java EE 应用中,常常通过 AOP 来处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。

简单点来说,它就是一个拦截器可以拦截一些进程,例如,当某个方法执行时,Spring AOP 可以拦截该执行的方法,并允许在方法执行之前或之后添加额外的功能,

以上如若解释的不好,勿喷 -_- ||

AspectJ 是一个基于 Java 语言的 AOP 框架,提供了强大的 AOP 功能,Spring 从 2.0 起,对 AspectJ 功能都提供了支持 .

几个常用的 AspectJ 注解 : 

    @Before   在方法执行前被执行

    @After     在方法执行后被执行

    @AfterReturning     在方法执行后被执行,并同时拦截方法返回的结果

    @AfterThrowing      在方法抛出异常时候被执行,若方法不抛出异常,则不会被执行

    @Around   这个,不知道要怎么解释了,比较不好解释,就像你拦截了一个方法,并在适当的时候给予放行,放行前后可以做额外的处理,下面看示例就很容易明白了

环境 :

线程解析和认识——–(一)线程初识

                         线程解析和认识——–(一)线程初识

      在开始讲线程之前,先应该讲一下进程。什么进程?简单点说一个应用程序就是一个进程(当然还有有些程序不止一个进程),Windows操作系统下,为了将应用程序之间隔离,以防止各个应用程序之间的互操作产生各种意外的情况,故引入的进程机制。进程是操作系统中获取CPU分配资源的最小单位,仅仅占有资源。在.NET平台下的应用程序,又在进程中引入了应用程序域,应用程序在运行的时候并不是直接加载运行的,而是先将程序集、.exe程序加载到应用程序域中,然后在启动运行,应用程序域相当于一个轻量级的进程,主要是将各个程序集隔离开来单独运行,这样即使其中一个程序集运行异常也不会影响其他的程序集的运行。线程是进程中最小执行任务的单位,一个进程中可以有多个线程,线程都不占有资源,所有的线程都共享进程所占有的资源。

     接下来讨论第二个问题,为什么要使用线程?简单的说,就是为了在程序运行的过程中,还可以进行其他的操作。比如:你在听音乐的时候,播放器一边放音乐、一边可以显示歌词,同时你还可以搜索一些想听的歌,这里就用到了多线程。

     第三个问题,如何使用线程?在.NET 线程主要在System.Threading 命名空间下通过Thread类实例来实现。首先来介绍下System.Threading命名空间下的的一些常用的内容,对于一些不常用的内容就不做过多的介绍,如果有兴趣的朋友可以自己去网上查阅。这里只是做一个大概的描述,有关具体的内容在以后的章节中会逐渐讲解。

描述

AutoResetEvent

该事件通知一个或者多个正在等待的线程事件已经发生。

ManualResetEvent

当通知一个或者多个等待的线程已经发生一个事件时发生

Monitor

这个类提供一个同步访问对象的架构。

Mutex

为一个线程提供共享资源独占访问的一个同步原型。也可用于内部进程同步。

ReaderWriterLock

定义一个允许单写-多读语法。

RegisteredWaitHandle

这个类表示一个当调用RegisterWaitForSingleObject()方法注册的句柄。

Thread

该类创建并控制一个线程,设置线程优先级并获取其状态。

ThreadPool

这个类提供一个可以用来执行工作,处理异步I/O,等待其他线程以及处理定时器的线程池。

Timeout

这个类简单地包含了一个我们想要确定特定时间的常量。

Timer

这个类提供在特定间隔中执行方法的结构。

WaitHandle

该类将等待对一个共享资源独享访问的操作系统对象封装起来

下边就先介绍一下我们这个系列主要讲的Thread类。先看一下Thread类下的主要常用的方法和常用属性的简单介绍

常用公共方法名

简单的表示描述

Abort()

调用这个方法通常会终止线程。

GetData()

静态方法从当前线程的当前应用程序域特定位置收集数据。

GetDomain()

静态方法返回当前线程所属的当前应用程序域。

GetDomainID()

静态方法返回一个唯一的应用程序域标志。

Interrupt()

这个方法中断状态为WaitSleepJoin的线程。

Join()

重载方法阻塞调用线程直到一个线程终止。

ResetAbort()

静态方法为当前线程取消Abort()请求。

Resume()

这个方法恢复阻塞的线程。

SetData()

静态方法为线程的当前程序域设定数据。

Sleep()

静态重载方法按照特定毫秒阻塞当前线程。

SpinWait()

静态方法导致一个线程等待由迭代参数定义的时间。

Start()

启动线程,并将状态置成ThreadState.Running.

Suspend()

阻塞线程,如果当前线程已经阻塞,会不起作用。

现在让我们看看另外一张表,这次包含了线程的公共属性。

常用公共属性名

简单的描述

CurrentContext

这个静态属性获取正在执行的线程的上下文。

CurrentThread

这个静态属性获取当前正在运行的线程。

IsAlive

获取当前线程执行状态值。

IsBackground

获取或设置当前线程是不是后台线程。

IsThreadPoolThread

获取当前线程是不是一个线程池的一部分。

Name

获取或者设置当前线程名。

Priority

获取或者设置一个线程的执行优先级。

ThreadState

获取当前线程的状态。

通过以上的这些介绍相信你对线程已经有一个基本的认识了,下面我带领大家一步一步的做一些实例,来巩固对以上内容的认识。

我们知道每一个应用程序都有一个主线程,我们称之为(Main Thread),这个线程是操作系统为自动应用程序创建的,在WinForm应用程序中,如果想要在一个线程中改变控件的属性、状态,必须是得在创建这个控件的线程中进行控制,也就是我们通常说的UI线程,也就是主线程,如果在其他的线程中修改控件的属性、状态,一定会引发异常的,那么如何实现呢?我会在以后跟大家慢慢讲解。

下面是一个创建线程的小例子(一般的线程多用于比较耗时的操作,比如网络连接、计算、从数据库读写大量的数据等)

static void Main(string[] args)
 
 {
 
             //标记显示主线程ID
 
             Console.WriteLine("主线程的ID:" + Thread.CurrentThread.ManagedThreadId);
 Thread thread = new Thread(new ThreadStart(Count));//线程的构造函数有四个,这次先讲的是线程调用无参的函数,需要经过ThreadStart类进行封装一下,下一节会将线程调用有参的函数)
 
             thread.Start();
 
             Console.ReadKey();
 
         }
 
         private static void Count()
 
         {
 
             int sum = 0;
 
             for (int i = 1; i < 1000000000; i++)
 
             {
 
                 sum =sum+i;
 
             }
 
             Console.WriteLine("当前的线程ID:" + Thread.CurrentThread.ManagedThreadId);//标记显示当前线程ID
 
             Console.WriteLine("计算结果为:"+(sum));
 
         }

运算结果如下:

该程序显示了用一个新建的线程来计算1-10000000000累加的结果,实验结果表明,通过Thread新建的线程实例对象跟主线程不是同一个线程,事实上Thread类新建的实例是一个属于线程池的后台线程对象,这个我们会在后边陆续介绍。好了,今天就到这了。希望可以对大家有所帮助。

本文链接

博客园_首页

dom属性 contenteditable=”true” 容器里的一些表现特性心得

发现blog都快长毛了~ ,最近几个月文章产出少,都在折腾杂碎。
不过还是有点心得 想记录下来。 比如:编辑器模式 contenteditable=”true”
因为组件主要,接触了个把月的 编辑器模式,接触到了很多跟编辑器模式 相关的特性。

稍微整理一下甩出来 晒晒,说错了别抽我,一知半解,还有一堆问题。 ^__^

1.如何支持成块编辑 inline-block

有一种场景,如添加某 标签词tag 后,如果想删除这个tag,如果不做什么,会发现会一个字一个字删去。
解决办法:
IE下只要给tag 套上 某标签(一般是span class=tag) 然后 将 tag class 定义为inline-block 就能实现整块 删除的效果。不过会有

chrome 下需要给tag 节点添加 contenteditable=”false” 属性来阻止内部可编辑就可以。
firefox 比较蛋疼 发现firefox下inline-block 或者 contenteditable=”false” 都能实现 整块删除,
除了一个标签就是 img标签,不要给img标签添加 src 属性,只添加title属性可以实现上述功能。

另外,在IE下会有下图的可编辑态,

这个真心不知道怎么去掉,谁知道怎么去~~~~掉?

2.空格回车慎重添加,末尾须加空格

IE下,如果空格太多在编辑删除字符的时候,会有抖动现象。就是最好contenteditable=”true” 节点内的东西都挤一块,别为了美观手贱加空格回车神嘛的。
另外,如果最后一个节点是 inline-block 块状的话,最好在后面添加一个空格,使光标能够正确获取。

3.高度自适应

除IE6 残了外,其他浏览器都能通过 回车实现高度增长。
值得注意的是,如果同级有绝对定位,并且是bottom 定位的dom 如:剩余字数。这个时候IE浏览器会有兼容性问题,可以通过其他方式实现,比如:负margin来实现。

4.position:xx 慎用

在IE下会引起 reflow bug 云云~ >.<

今天就到这了,陆续更新..

您可能还对这些日志感兴趣


浆抱罗斯&飞鱼’s blog

乱翻乱教 – iOS5 通知栏背景制作

Photoshop 制作ios5通知栏背景

制作工具:Adobe Photoshop cs5
作者:飞鱼
iOS5发布后评价都说很棒,于是毫不犹豫的刷了,算是纪念Jobs的临终大作。改进的功能很多,其中一个大功能就是有了一个跟android几乎一样的通知栏,同事看了说:我擦,这功能跟android 的下拉框有啥区别?完全抄袭么… 然后就有人说了:那不是,瞧,对比一下,明显… iOS5的通知栏帅多了,瞧这背景,瞧这细节…
好吧,仔细看了下的确很酷,细节纹理做得很棒,像一块布。发现做起来也不复杂就几步就可以了^__^。

最终效果


步骤 1

新建psd,大小800*600,填充背景色(#45454c)。如下图。飞鱼:填充神马的不用我教了吧 XD

步骤 2

新建图层, 填充黑色(#000000),选择 滤镜-杂色-添加杂色,杂色数量20%左右。然后将图层模式改为:滤色。如下图。

步骤 3

分别选择 滤镜-模糊-动感模糊,角度90,距离30左右。然后选择 滤镜-锐化-锐化,如下图:
这个时候基本有点感觉了吧^__^ 继续。

步骤 4

接下来只要做横向的效果就差不多了,新建一个图层,按照步骤2,只是角度变为45度。结果如下图:
这里其实还有另外一个办法就是复制一层,ctrl+t 旋转一下就可以了,不过长度会不够。

步骤 5

到这里效果基本都出来了,只要加个图层,做一下内阴影,或者黑白渐变,然后叠加一下就有效果了。

总结

可以发现,做这个东西只要几种滤镜就可以轻松达到效果,具体细节需要仔细去调,比如颜色,阴影等。
个人觉得主要的难点在于如何做成可以平铺的图案,抽空研究一下。^__^

您可能还对这些日志感兴趣


浆抱罗斯&飞鱼’s blog

印度注册商SpeedHost注册任意域名送6个月主机

我们的长假,各家域名和主机注册商并没有给我们庆祝带来优惠信息。金秋十月,各位朋友在享受长假之后,有的已经开始恢复到工作和学习中来。今天WILL为大家印度注册商SpeedHost的优惠活动,购买任意域名可以送主机6个月。不管大家是否需要,一起了解了解也无妨。

印度注册商SpeedHost注册任意域名送6个月主机

SpeedHost注册商是印度的较大注册商之一,是ICANN授权域名注册商。其域名的售价中不需要额外增加ICANN FEE费用,都包括在里面。让我们一起看看他们家的域名售价情况。

.COM域名兑换RMB折后价格为100RMB左右。相对其他注册商还是有点小贵。如果大家有兴趣这次的活动,想尝试下印度的主机,可以使用”OKTOBERFEST”优惠码购买。

域名注册地址:http://www..in/domain-name-registration.html

本文链接地址: http://www.haoyu.me/6823.html

标签:,

相关日志

好域名(好玉米)

JAVA–第四周实验–任务2–求任意整数降序数的程序

[java] view plaincopy
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:对于一个大于3位数的任意整数,输出其降序数。例如,整数82319,则其降序数是98321.
* 算法提示:将整数的各位数分解到一维数组a中,再将a数组中的元素按降序排序,最后输出a数组元素值。
* 作 者: 雷恒鑫
* 完成日期: 2012 年 09 月 19 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:

* 程序头部的注释结束

*/

import javax.swing.JOptionPane;

public class Task_one {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = JOptionPane.showInputDialog(“输入一个任意整数”);
int number = Integer.parseInt(str);

sort(number);
}

static void sort(int n) {

int i = 0, j, k;
boolean b = true;
int[] a = new int[10];
// int x=n;
while (b) {
a[i] = n % 10; // 分解出个位数
n = n / 10; // 去掉已分解出的数
i++;
if (n == 0) {
b = false;
}
}
k = i;
for (i = 0; i < 10; i++)
// 冒泡降序
for (j = 0; j < 10 - i - 1; j++) {
if (a[j] < a[j + 1]) {
int t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
for (i = 0; i < k; ++i) {
// String str=JOptionPane.showInputDialog(a[i]+" ");
System.out.print(a[i] + " ");
}
}
}

运行结果:


本文链接


BlogJava_首页