Posted on 2010-03-08, 09:04, by pumaboyd, under
Tech.
忘记灵感来源于那个系统的模板引擎了(Ruby?曾经瞟过那么一眼)。MVC的模式中都有自己的一套模板语法。而for循环这种语法,总是会提供IsFirst、IsLast、Index这种属性。方便拼接HTML做一些特殊判断。C#中的List对象没有这种属性,所以发挥开源的力量。整理这个类,方便拼接HTML。
需要拼接的HTML:
<div>
<ul>
<li class=”topline”><span>1</span>shop1name</li>
<li><span>2</span>shop2name</li>
<li><span>3</span>shop3name</li>
<li><span>4</span>shop4name</li>
<li><span>5</span>shop5name</li>
</ul>
</div>
C#拼接代码(演示代码)
List list = Service.GetShops();
var listsuper = list.AsSuperEnumerable();
foreach(var item in listsuper)
{
if(item.isFirst)
{
print ”<li class=topline>” + item.index + “</li>”
}
else
{
print “<li>” + item.value.shopname + “</li>”
}
}
优雅&一本万利的好代码,绝对前台开发常备。下载
Posted on 2010-03-08, 08:21, by pumaboyd, under
Tech.
一张监控截图IIS-Conection的(部分敏感提示已处理)。当时系统的CPU、内存、网络流量、IO都正常,这四大指标都没问题,异常的却是IIS-Contection。从图中看到其表现不是爬坡状,而是悬崖峭壁式(当然也可能怀疑记录点的时间段间隔大)。猜测是请求N个,发现服务不稳定,又停止。结果猜对了……还在怀疑ing
Posted on 2009-12-03, 00:03, by pumaboyd, under
Tech.
Posted on 2009-11-04, 09:06, by pumaboyd, under
Tech.
如果为每一张图片都生成某一比例的缩略图,显的有些浪费。而有时候甚至是无法做到。有时候需求的比例总是会有不同,也许到手机平台了,网站上的比例其实也并不符合要求。所以按用户需要什么类型的图片动态生成。也就是url请求的时候动态生成相应比例的图片就可以了。当然有一些经常访问的图片还是预先定义好,不能一概而论。
Joe Lencioni的PHP解决方案via
1、通过类似<img src=”/image.php/image-name.jpg?width=100&height=100&image=/path/to/image.jpg” /> 路径动态生成
2、自带Cache规则(MD5路径加密的Hash),减少重复生成。
但有个很不方便的地方就是imge路径只能是本地图片,所以修改了代码,可以将image直接访问http,并调整了代码顺序,减少了请求的次数。via
如果担心效率问题:http://groupface.fetiononline.com/ShowGroupPortrait.ashx?GroupId=4146859&Size=96 看看这个网址就明白了。
Posted on 2009-10-29, 10:20, by pumaboyd, under
Tech.
又见高人!同时又是有些郁闷的消息。GA将在最近支持Mobile!!。上个月开始计划的统计平台,而且当时还苦苦的寻找是否可以利用GA的方法。发现没有官方支持,民间山寨的总是扼杀几率太大。
现在官方说话了,而且还有aspx代码参考。不知道说什么好了,具体地址:http://www.google.com/analytics/googleanalyticsformobile.zip
怀着激动的心情看了一下文档:
1:需要在Server端添加代码
2:申请一个GA帐号,将原来的UA-XX替换成MO-XX
3:页头添加一段code(主要获取请求中包含的信息等)
4:页尾添加一段code(主要是一个图片,将结果get方式传个GA)
不过这个也是测试阶段,GA不能保证都正常。明天准备测试一下。
Posted on 2009-10-28, 20:56, by pumaboyd, under
Tech.
人造的拥堵和高并发,在有缓存和队列情况下的表现:
缓存、队列
直接处理
下载:performance-msc
Posted on 2009-10-26, 09:14, by pumaboyd, under
Tech.
看到tu豆关于多核CPU的使用。也就借鉴过来。虽然是不同的技术,不同的系统,但原理是一个。就是有效的控制CPU的使用,特别是多核时代。
先看看MSSQL2005在多核的情况下的设置
再来看看我的实现:一台系统上跑了几个关键作业。如果我有2个核,我希望分配给指定应用指定的CPU(多核还是多CPU不在此讨论)。
A应用程序有两个线程:
ThreadStart ts = new ThreadStart(ThreadHandler);
Thread thread = new Thread(ts);
thread.IsBackground = true;
thread.Start();
ThreadStart ts1 = new ThreadStart(ThreadHandler1);
Thread thread1 = new Thread(ts1);
thread1.IsBackground = true;
thread1.Start();
这种情况下CPU可是100%的使用率。2核的CPU已经无法进行别的操作。
而如果使用下面的代码CPU将一直控制在50%(只在一个核上运行),效果很满意。
Process.GetCurrentProcess().ProcessorAffinity = (System.IntPtr)1;
ThreadStart ts = new ThreadStart(ThreadHandler);
Thread thread = new Thread(ts);
thread.IsBackground = true;
thread.Start();
ThreadStart ts1 = new ThreadStart(ThreadHandler1);
Thread thread1 = new Thread(ts1);
thread1.IsBackground = true;
thread1.Start();
有了这样的控制,你的某些耗时长的应用就可以很好的解决了。
同时感谢 Ricky、金两位的帮忙。
用于测试的辅助代码
ManagementClass m = new ManagementClass(“Win32_Processor”);
ManagementObjectCollection mn = m.GetInstances();
Console.WriteLine(“CPU个数:” + mn.Count.ToString());
ManagementObjectSearcher MySearcher = [...]
Posted on 2009-10-20, 02:00, by pumaboyd, under
Tech.
最近WAP站点新增的地图功能。因为WAP网站的特殊性,所以就只能使用静态地图。Google静态地图的使用参见。如果希望提高效率,再架设一层图片缓存,而且图片缓存这一层很有必要。
偏移量的计算
lat、lng 起始中心点
lat1、lng1 偏移后的中心点
top、lef偏移量
z地图缩放级别
public string StaticMapMove(double lat, double lng, double top ,double left,int z)
{
double lat1;
double lng1;
int lm = z – 16;//地图的缩放级别16
lat1 = lat + top / 100000 / Math.Pow(2,lm);
lng1 = lng + left / 100000 / Math.Pow(2, lm);
}
这个是关键实现代码,具体比例大家要调试。地图的尺寸、缩放比例都会影响到这些。
Posted on 2009-08-22, 23:01, by pumaboyd, under
Tech.
应德军兄的要求,完成了WAP2.0开发相关的文章。想想这个系统也写到了第3篇,不知道WAP3.0的时候,是否还会继续。
从最先的.NET控件,到WML1.1,再到WAP2.0。对.NET WAP网站的开发总结也一直在进行的。其中遇到了很多问题,有解决了,也有正在想办法解决的。这些经验分享也希望对大家有用。
.NET WAP开发-基础篇
.NET WAP开发-兼容篇
.NET WAP开发-WAP2.0篇
.NET WAP开发-Google Map的使用
Posted on 2009-08-22, 22:37, by pumaboyd, under
Tech.
WAP1.1时代是否结束这个不可下定论。但WAP2.0的大面积使用应该已经成熟。DianPing网的WAP站点也基本上迁移到WAP2.0
从构建WAP网站的过程来看,WAP2.0和WAP1.1并没有什么很大的区别。
可以这么说wap2.0其实就是xhtml的网站,而wap1.1是wml的网站。
相比WML受到的限制,WAP2.0网站可以直接在PC上显示。CSS的有限支持。大大丰富了网页在手机上的展示,提供了更丰富的用户体验。WAP 2.0 可以简单的概括为 XHTML MP + WAP CSS