一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Programming Language

ASP.NET如何获取来访者的IP、OS、浏览器及系统语言

try { string userAgent = Request.UserAgent == null ? "无" : Request.UserAgent; LblOS.Text=this.GetOSNameByUserAgent(userAgent);——通过下面的代码来获得用户的OS类型 LblIP.Text = Request.UserHostAddress;   //获取IP LblBrs.Text = Request.Browser.Browser + Request.Browser.Version;   //获取浏览器的类型及版本号 LblLanguage.Text = Request.UserLanguages[0];   //获取用户操作系统的语言 } catch (Exception ex) { Response.Write(ex.Message); } FROM:http://www.cnblogs.com/zhukezhuke/archive/2010/07/10/1774735.html

龙生   13 Mar 2014
View Details

Asp.net 实现条码生成,包含一维条码、二维条码

最近项目用到了条码打印等功能,所以顺便学习下条码的知识,目前网上这里信息确实很多,我也直接拿来用的。 只是在各位前辈的基础上,稍加整理,将多个案例结合到一起。有种小小的犯罪感,总是“站在巨人肩上窃取胜利果实” 本文案例实现了: 1.39条码生成功能 2.EAN-13条码生成功能 3.Code128条码生成功能 4.QR Code码制的二维条码生成 5.二维码制的解析功能 感兴趣的童鞋可以拿去用哦!!! 上个pp 代码不多解释,具体参考源码 http://files.cnblogs.com/qidian10/BarCodeTest.rar 关于二维条码的更多信息请参考:http://www.cnblogs.com/caichunsheng/archive/2011/06/09/2076263.html QR Code码是由日本Denso公司于1994年9月研制的一种矩阵二维码符号, 它除具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点外,还具有如下主要特点: 码制 QR Code Data Martix PDF 417 研制公司 Denso Corp. I.D. Matrix Inc. Symbol Technolgies Inc (日本) (美国) (美国) 码制分类 矩阵式 堆叠式 识读速度 30个/每秒 2~3个/秒 3个/秒 识读方向 全方位(360°) ±10° 识读方法 深色/浅色模块判别 条空宽度尺寸判别 汉字表示 13bit 16bit 16bit * 每一符号表示100个字符的信息。 超高速识读: 从QR Code码的英文名称Quick Response Code可以看出,超高速识读特点是QR Code码区别于四一七条码、Data Matrix等二维码的主要特性。由于在用CCD识读QR Code码时,整个QR Code码符号中信息的读取是通过QR Code码符号的位置探测图形,用硬件来实现,因此,信息识读过程所需时间很短,它具有超高速识读特点。用CCD二维条码识读设备,每秒可识读30个含有100个字符的QR Code码符号;对于含有相同数据信息的四一七条码符号,每秒仅能识读3个符号;对于Data Martix矩阵码,每秒仅能识读2~3个符号。QR Code码的超高速识读特性是它能够广泛应用于工业自动化生产线管理等领域。 全方位识读: QR Code码具有全方位(360°)识读特点,这是QR Code码优于行排式二维条码如四一七条码的另一主要特点,由于四一七条码是将一维条码符号在行排高度上的截短来实现的,因此,它很难实现全方位识读,其识读方位角仅为±10°. 能够有效地表示中国汉字、日本汉字: 由于QR Code码用特定的数据压缩模式表示中国汉字和日本汉字,它仅用13bit可表示一个汉字,而四一七条码、Data Martix等二维码没有特定的汉字表示模式,因此仅用字节表示模式来表示汉字,在用字节模式表示汉字时,需用16bit(二个字节)表示一个汉字,因此QR Code码比其它的二维条码表示汉字的效率提高了20%。 编码字符集: 1、数字型数据(数字0~9); 2、字母数字型数据(数字0~9;大写字母A~Z;9个其他字符:space ,$, %, *, +, -, ., /, :); […]

龙生   11 Mar 2014
View Details

使用数据库构建高性能队列用于存储订单、通知和任务

引言 几乎在每个地方都能用到队列。在许多web站点里,比如其中的email和SMS都是使用队列来异步发送通知。电子商务网站都是使用队列来存储订单,处理订单以及实现订单的分发。工厂生产线的自动化系统也是使用队列来按某种顺序运行并发工作任务的。队列是使用很广泛的一种数据结构,它有时可以创建在数据库里,而不是使用类似于MSMQ那样的特定的队列技术创建。使用数据库技术来运行一个高性能且高可扩展性的队列对我们来说是一个巨大的挑战。当每天进入队列和从队列中提取的信息达到数百万行的时候,这个队列就很难维护了。我将向你展示在设计类似队列表时常犯的设计错误以及如何使用简单的数据库功能实现队列的最大性能和强大的可扩展性。 几点人 翻译于 5天前 0人顶 顶 翻译的不错哦! 首先让我们明确在队列表中遇到的挑战: 表的读写。在大负载下,入队列和出队列是相互影响而引起锁的竞争、事务死锁、IO超时等等。 当多个接收者试图从同一队列读数据时,它们随机地获取重复项,从而导致重复的处理过程。你需要在队列上实现一些高性能的行锁以至于并发接受器不会接收相同的数据项。 队列表需要以特定的顺序去存储行、以特定的顺序读取行数据,这是一个索引设计的挑战。尽管并不总是先进先出。间或顺序有较高的优先级,无论何时入栈都需要进行处理。 队列表需要以序列化的XML对象或者二进制形式存储, 这带来了存储和索引重建的挑战。由于数据表包含文本和/或二进制,所以你不能在队列表上重建索引。因此队列表每天变的越来越慢,最终查询开始时间超时,最后你不得不关闭服务并重建索引。 出队列的过程中,一批行数据被选中、更新,然后重新处理。你需要一个"State"列定义数据项的状体。出队列时,你只选择特定状态的数据项。现在State只是一个包含PENDING、PROCESSING、PROCESSED、ARCHIVED等元素的集合。结果是你不能在"State"列上创建索引,原因是安全性差。队列中可以有成千上万行具有相同的状态。因此 任何由扫面索引的出队列操作都会导致CPU和IO资源紧张以及锁竞争。 在出队列过程中,你不只是从表中移出行,原因是容易引起存储残片。进而,你需要重新订单/任务/通知N次以防止他们在第一次尝试中失败。这意味着行数据需要更长的存储周期、索引持续增长和出队列越来越慢。 你不得不归档以队列表中处理过的数据项到不同的表或者数据库,以保持主队列表的精简。这意味着需要移动大量的具有特殊状态的行到另一个数据库。大量的数据移动产生了的存储碎片,而表的高频度碎片整理降低入栈和出栈的性能。 你需要24X7的工作。你不可能关闭服务而归档大量行数据。这意味者在不影响入栈和出栈,你不得不持续的归档行数据。 如果您已实现这样的队列表,你可能已经遇到了以上挑战中的一个或者更多。本文将给你一个关于如何克服这些挑战的一些技巧,以及如何设计和维护一个高性能的队列表。 漠天 翻译于 4天前 0人顶 顶 翻译的不错哦! SQL Server典型队列 下面以常见的队列类型为例,看看在并发负载时的情况. 01 CREATE TABLE [dbo].[QueueSlow]( 02     [QueueID] [int] IDENTITY(1,1) NOT NULL, 03     [QueueDateTime] [datetime] NOT NULL, 04     [Title] [nvarchar](255) NOT NULL, 05     [Status] [int] NOT NULL, 06     [TextData] [nvarchar](max) NOT NULL 07 ) ON [PRIMARY] 08 GO 09 CREATE UNIQUE CLUSTERED INDEX [PK_QueueSlow] ON [dbo].[QueueSlow] 10 ( 11     [QueueID] ASC 12 ) 13 GO 14 CREATE NONCLUSTERED INDEX [IX_QuerySlow] ON [dbo].[QueueSlow] 15 ( 16     [QueueDateTime] ASC, 17     [Status] ASC 18 ) 19 INCLUDE ( [Title]) 20 GO   该队列中使用QueueDateTime排序来模拟先进先出的队列结构 . QueueDateTime不一定非得是对象加入队列的时间,而是其将要被处理的开始时间 于是保证了先进先出的次序关系. TextData字段是为了保存进行负载测试的大字段设计的. 表中使用QueueDateTime 的非聚簇索引以加速队列操作速度 首先,插入大约4万行大约500兆数据量的记录,其中每行的负载数大小各不相同. 01 set nocount on 02 declare @counter int 03 set @counter = 1 04 while @counter < @BatchSize 05 begin 06     insert into [QueueSlow] (QueueDateTime, Title, Status, TextData) 07     select GETDATE(), 'Item no: ' + CONVERT(varchar(10), @counter), 0, […]

龙生   11 Mar 2014
View Details

判断 DataReader 里面是否包含指定的列

用DataReader读取数据怎样判断当前记录的某列是否为空 : //调用: if (ReaderExists(dr, "Log_ID")) model.Log_DoctorID = GetInt(dr["Log_ID"]); /// <summary> /// 判断 DataReader 里面是否包含指定的列 /// </summary> /// <param name="dr"></param> /// <param name="columnName"></param> /// <returns></returns> public static bool ReaderExists(DbDataReader dr, string columnName) { int count = dr.FieldCount; for (int i = 0; i < count; i++) { if (dr.GetName(i).Equals(columnName)) { return true; } } return false; } /// <summary> /// 判断 DataReader 里面是否包含指定的列 /// </summary> /// <param name="dr"></param> /// <param name="columnName"></param> /// <returns></returns> public static bool ReaderExists2(DbDataReader dr, string columnName) { dr.GetSchemaTable().DefaultView.RowFilter = "ColumnName= '" + columnName + "'"; return […]

龙生   28 Feb 2014
View Details

MagicZoom bug-Strict Standards: Only variables should be assigned by

龙生   25 Feb 2014
View Details

PHP配置文件详解php.ini

[PHP] ; PHP还是一个不断发展的工具,其功能还在不断地删减 ; 而php.ini的设置更改可以反映出相当的变化, ; 在使用新的PHP版本前,研究一下php.ini会有好处的 ;;;;;;;;;;;;;;;;;;; ; 关于这个文件 ; ;;;;;;;;;;;;;;;;;;; ; 这个文件控制了PHP许多方面的观点。为了让PHP读取这个文件,它必须被命名为 ; 'php.ini’。PHP 将在这些地方依次查找该文件:当前工作目录;环境变量PHPRC ; 指明的路径;编译时指定的路径。 ; 在windows下,编译时的路径是Windows安装目录。 ; 在命令行模式下,php.ini的查找路径可以用 -c 参数替代。 ; 该文件的语法非常简单。空白字符和用分号';’开始的行被简单地忽略(就象你可能 ; 猜到的一样)。 章节标题(例如 : [Foo])也被简单地忽略,即使将来它们可能 ; 有某种的意义。 ; ; 指示被指定使用如下语法: ; 指示标识符 = 值 ; directive = value ; 指示标识符 是 *大小写敏感的* – foo=bar 不同于 FOO = bar。 ; ; 值可以是一个字符串,一个数字,一个 PHP 常量 (如: E_ALL or M_PI), INI 常量中的 ; 一个 (On, Off, True, False, Yes, No and None) ,或是一个表达式 ; (如: E_ALL & ~E_NOTICE), 或是用引号括起来的字符串(" foo" ). ; ; INI […]

龙生   25 Feb 2014
View Details

PHP输出中文乱码的问题

用echo输出的中文显示成乱码, 其实应该是各种服务器脚本都会遇到这个问题, 根本还是编码问题, 一般来说出于编码兼容考虑大多的页面都将页面字符集定义为utf-8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 这时候要正常显示中文需要转化一下编码方式,比如 echo iconv("GB2312","UTF-8",’中文');就不会乱码了 还有其他方法,比如 在php的echo前面加入header("Content-Type:text/html;charset=gb2312"); 当然简体中文页面也可以干脆地, 把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />中的UTF-8改成gb2312 实际中遇见奇怪的现象, 在本机服务器上正常显示的页面,传上服务器就echo出来乱码, 没仔细琢磨过这个缘由,因为通过iconv函数GB2312、UTF-8换换位置重新编码下就正常了, 不过估计肯定是APACHE,更确切说是PHP服务端的设置不同造成的, 看看PHP.INI应该就能解决。 from:http://www.cnblogs.com/leandro/archive/2008/04/21/1368517.html

龙生   25 Feb 2014
View Details

import_request_variables

龙生   25 Feb 2014
View Details

Android中退出程序的提示框

@Override     public boolean onKeyDown(int keyCode, KeyEvent event) {         if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {             dialog();             return true;         }         return true;     } protected void dialog() {         AlertDialog.Builder builder = new Builder(AccoutList.this);         builder.setMessage("确定要退出吗?");         builder.setTitle("提示");         builder.setPositiveButton("确认",         new android.content.DialogInterface.OnClickListener() {             @Override             public void onClick(DialogInterface dialog, int which) {                 dialog.dismiss();                 //AccoutList.this.finish();                 //System.exit(1);                 android.os.Process.killProcess(android.os.Process.myPid());             }         });         builder.setNegativeButton("取消",         new android.content.DialogInterface.OnClickListener() {             @Override             public void onClick(DialogInterface dialog, int which) {                 dialog.dismiss();             }         });         builder.create().show();     }   from:http://blog.csdn.net/jumping_android/article/details/7571309

龙生   19 Feb 2014
View Details

Android里面如何编写退出主程序的提示代码

在Android的手机里面,有个返回按键,通过返回按键,用户可以返回上一层的Activity, 又或者可以直接退出程序。这样,就给用户带来一个新的问题,当用户正在做着一些非常重要的事情的时候,比如浏览文件、或者是在编辑重要的数据的时候,不小心按了返回键,如果 当前的Activity正好是处于最外一层的时候,如果没有给按键定义一个退出的按钮的时候。用户可能通过返回按键就直接退出了整个程序,从而导致了一些 用户使用上的不必要而且可以避免的不愉快的事情发生。 那么,在整个程序退出的时候,如何做到提示的作用呢?我们希望做到的是,当用户要退出整个程序的时候,程序给出一个提示按钮,等用户再次确认后才退出。 现在,先看看如何编写退出程序的提示对话框。程序会用到AlertDialog 这个类,在这个类里面,当用户选择返回键的时候,会有两个按钮,一个是“确定”,一个是“取消”。为了响应事件,需要编写事件响应函数AlterDialog.setPositiveButton(int textId, DialogInterface.OnClickListener listener). –  textId, 要显示给用户看的资源或者文本 –  listener, 是用户单击“确定”或者“取消”按钮所响应的时间 当用户选择“确定”,就退出当前的对话框。其中,有个很重要的函数,Activity.finish(),通过调用这个函数,退出当前运行的整个Android程序。当用户选择“取消”的时候,只要单纯的retuan,即可返回主程序。可以定义一个showTips()的专用方法在main Activity里面,那么每次我们写的时候,就调用这个函数的就可以了。 private void showTips() {         AlertDialog alertDialog = new AlertDialog.Builder(this)                 .setTitle("退出程序").setMessage("是否退出程序")                 .setPositiveButton("确定", new DialogInterface.OnClickListener() {                     public void onClick(DialogInterface dialog, int which) {                         finish();                     }                 }).setNegativeButton("取消",                 new DialogInterface.OnClickListener() {                     public void onClick(DialogInterface dialog, int which) {                         return;                     }                 }).create(); // 创建对话框         alertDialog.show(); // 显示对话框     } 那么,在哪里调用这个提示的方法呢?应该找到的是返回按键的响应时间,也就是函数Activity. onKeyDown(int keyCode, KeyEvent event) 函数里面响应事件的发生。 public boolean onKeyDown(int keyCode, KeyEvent event) {         if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {             showTips();             return false;         }         return super.onKeyDown(keyCode, event);     } 至此,通过复写onKeyDown函数,当用户单击返回的按钮的时候,就会弹出提示的对话框,可以有效地防止用户由于失误引起的不必要的退出。注意:强按Home键,一样可以退出应用,避开了提示框,这个方法只适合按返回键。 from:http://blog.chinaunix.net/uid-25885064-id-3386463.html

龙生   19 Feb 2014
View Details
1 141 142 143 175