ROR API 接收 IOS(Iphone/IPAD) post 的图片 (base 64 解决)

IOS 用的是 ASIFormDataRequest

ROR接收的数据像十六进制的东西 如图

流的格式 imagedata bytes 如图:

ror怎么直接使用这个值还真不清楚  单把 二/八/十六 进制的东西转换为图片倒是简单

那么这里隆重推荐 base64 

采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

我们网页form提交一个图片 设置类型为 multipart/form-data 我们在后台可以直接得到一个data对象然后上传到服务器

代码示例(直接保存文件):

#file为上传的data
File.open("#{RAILS_ROOT}/public/route_images/#{@filename}", "wb") do |f|
        f.write(file.read)
end

那么接收base64位数据ror也有很好的处理

#file为base64数据
path= RAILS_ROOT+"/public/route_images/#{@filename}"
image = Base64::decode64(file)
File.open(path, "wb" ) do |back_out|
     back_out      

mapabc 添加定制点 demo

var mapObj=null;
function  mapInit() {
	var mapoption = new MMapOptions();
	mapoption.toolbar = MConstants.ROUND; //设置地图初始化工具条,ROUND:新版圆工具条
	mapoption.overviewMap = MConstants.SHOW; //设置鹰眼地图的状态,SHOW:显示,HIDE:隐藏(默认)
	mapoption.scale = MConstants.SHOW; //设置地图初始化比例尺状态,SHOW:显示(默认),HIDE:隐藏。
	mapoption.zoom = 13;//要加载的地图的缩放级别
	mapoption.center = new MLngLat(116.397428,39.90923);//要加载的地图的中心点经纬度坐标
	mapoption.language = MConstants.MAP_CN;//设置地图类型,MAP_CN:中文地图(默认),MAP_EN:英文地图
	mapoption.fullScreenButton = MConstants.SHOW;//设置是否显示全屏按钮,SHOW:显示(默认),HIDE:隐藏
	mapoption.centerCross = MConstants.SHOW;//设置是否在地图上显示中心十字,SHOW:显示(默认),HIDE:隐藏
	mapoption.toolbarPos=new MPoint(20,20); //设置工具条在地图上的显示位置
	mapObj = new MMap("map", mapoption); //地图初始化
}
function MAddcustomPoint(){ 更多 >

IT行业成五大疾病重灾区:过劳死平均37.9岁

日前,年仅25岁的百度技术研发人员林海韬因心脏衰竭而亡引热议。近年来,陆续有多名IT业界高管、员工发生猝死,网友在表示遗憾惋惜的同时,感慨IT业是否已成为猝死高发的重灾区。医学专家表示,压力大、工作过度繁忙的IT一族心源性猝死发生病例近年来有人数增加、年龄下移趋势。

生前微博多次表示劳累

林海韬今年6月成为百度公司的员工,负责技术研发工作。据《新快报》报道,11月初,林海韬向公司请假,前往上海准备参加独立游戏开发者大会。 11月12日20时42分,他发出一条微博,“迷路多走了几公里,累死了终于回到旅店。 ”没想到,这条最后的微博成了他的遗言,林海韬的死因初步诊断为突发性心脏病衰竭猝死。

到今天早上为止,微博上已有3775条评论,网友们纷纷送上蜡烛,寄托哀思。其“遗言”微博被转发2200多次。由于林海韬在微博里多次表示自己劳累困顿,如“今天各种困”、“天天吃干脆面”、“今晚太困了”、“快48小时没睡了”、“看看今晚能不能把这游戏搞完”等。很多网友认为林海韬是又一个IT业“过劳死”的受害者。

IT业“过劳死”平均37.9岁

“我恨死他的工作了,真希望换个工作! ”家住浦东金桥某小区的于小姐这样昨天告诉记者。于小姐的先生Kevin在八佰伴附近某公司IT部门工作,正常工作时间每周60多小时,忙的时候要超过70小时。

“别人是朝九晚五,我们是朝九晚十。一整天,除了吃饭、喝水、上厕所,其他时间都坐着。遇上赶项目的时候,常常要干到凌晨一两点。”Kevin说。但这已经比之前他呆过的一个公司轻松多了,现在至少还有周日,做完一个项目后,还有一两周不那么“超忙”的时候。即使如此,Kevin还是常常感到体力透支。每个周日,如果没人拖他起床,他可以睡一整天,他形容那种感觉是“全身沉沉地,一动也不想动”。

Kevin还曾因为连续加班、饮食不规律而导致急性肠胃炎,这种情况在他的同事中也时有发生。“长期疲劳导致抵抗力下降,不是很容易感冒,就是感冒老不好,还有视力也下降了。 ”Kevin说。

某网络公司微博业务正处于上升势头,由于业内竞争处于白热化,为了做业绩,公司老总带头加班,员工也充满干劲,常常深夜2点多还在网上,第二天清晨6点不到又挂在网上发评论。该公司女员工让人猜不透年龄,看身形脸盘像20多岁,表情仿佛30多岁,皮肤接近40岁。

上海社科院社会学所助理研究员刘漪曾对92个过劳死案例进行分析,发现近年来“过劳死”发病率直线上升、男性人群居多。 IT行业“过劳死”年龄最低,平均只有37.9岁。 IT行业人士分析,频繁更新是整个IT业的主旋律,这就造成节奏快、压力大的行业环境。

五大疾病易袭IT从业者

长期加班、熬夜、久坐不动、面对电脑、心情紧张等各种不良因素导致IT从业者成为猝死、慢性疲劳、颈腰椎病、眼部疾病、心理问题等五大疾病的重灾区。

上海第十人民医院心内科主任徐亚伟说,猝死大多由于冠心病,如心肌缺血、主动脉夹层动脉瘤、主动脉瓣狭窄、恶性心律失常等,也是导致猝死的原因。其中,恶性心律失常室速室颤由于难以预测,院外发生后的死亡率高达99%,几乎是一旦发生就无法挽救。

心源性猝死在家族史、高血脂、长期处于慢性疲劳状态、精神长期紧张、冠心病、心肌缺血、动脉血管硬化等发病基础上,如加上诱因,就容易导致猝死高发。徐主任说,诱因包括过度疲劳、过分激动兴奋或生气、天气突然降温等,吸烟、喝酒也是重要的影响因素。不少工作压力大的人喜欢通过抽烟等方式缓解压力,其实会造成更大的危险。

前不久,29岁的IT技术员Jack(化名,徐主任提供病例)在晚上应酬时喝了一斤白酒,餐后突发心肌梗死被同事送往十院,由于餐馆离医院近,送医及时,Jack被抢救过来。医生发现他平时工作压力大,久坐不动,缺乏锻炼,经常抽烟喝酒,曾发生过心绞痛。这样的病例近年来有明显增多趋势。

除猝死以外,IT从业者容易被另四类疾病侵袭。久坐不动,长时间盯着电脑导致颈椎病、腰椎间盘突出等疾病高发,干眼、眼底病变等也是常见病;而慢性疲劳更是这个行业的普遍现象,上海中医药大学附属曙光医院治未病中心主任张晓天表示,长期慢性疲劳,导致抵抗力和免疫力受到影响,如果本身体质不太好,更加容易生发出各种疾病。张主任说,心理也是IT从业者需要关注的问题,身心一体,工作压力大了,就会出现抑郁情绪,有些人则表现为焦虑、躁狂。压力总要有发泄的方式,关键是及早发现苗头,有利于预防心理疾病。

【专家建议】

规律休息饮食坚持锻炼

从事高压力行业,如何保持自身健康?张晓天主任表示,第一,每年要保证至少一次全面体检。第二,强制自己休息。每天面对电脑两小时后,必须休息10-15分钟,起身走走、活动颈部、腰部,做做眼保健操或望向远方。曙光医院、龙华医院等中医院都有专门针对办公室一族的米字操、十二字养生功。第三、规律饮食,多摄入蔬菜、水果,多吃枸杞,多喝菊花茶、决明子茶。第四,找到一两种适合自己的运动方式,坚持锻炼。徐亚伟主任说,改善不健康的状况,关键是避免不良的生活习惯,专业称为“治疗性生活方式改变”。简单说就是九个字,“管住嘴、迈开腿、好心态”。

“过度疲劳”11项先兆

“将军肚”早现;频频去洗手间;脱发、斑秃、早秃;性能力下降;记忆力减退;肩部与颈部强直性发麻、肝功能异常,有高血压、糖尿病病史,心电图不正常;做事经常后悔,易怒、烦躁、悲观,难以控制自己的情绪;睡觉时间越来越短,醒来也感到不解乏,很容易因为疲劳和苦闷失眠;注意力不集中;经常头疼、胸闷、耳鸣、目眩,检查也没有结果;肠胃障碍,体重短期变化大。

来源: 解放网-新闻晚报

c# 关于反射 使用详细 示例

/// 
/// 批量删除指定类的对象
/// 2011-11-17 Aiice
/// 
///
需要删除数据对应的类名称 例如:ShippAddress
///
需要删除对象的ID对象组
/// 删除成功:ture 删除失败:false
private bool DeleteObject(string ClassName,object[] obj)
{
	bool result = false;
	string str = String.Empty;
	try
	{
		//需要反射类 对应的dll文件或exe文件
		string assFile = "D:/WebERP/BusinessData/bin/Debug/Smart.Component.BusinessData.dll";
		Assembly assembly =Assembly.GetExecutingAssembly();
		if(assFile!="")
		{
			assembly = Assembly.LoadFrom(assFile);
		}
		//把String的ClassName转换为对应Type
		Type t = 更多 >

js动态获取字符串在div(或span)里面显示的像素长度

//Auto Set Control With
var objSpan = document.createElement("span");
objSpan.innerHTML = "this is test text width in the web!";
document.body.appendChild(objSpan);
alert(objSpan.scrollWidth )

ROR undefined method `original_filename’ Error

错误原因就是multipart 没有设置的问题

form_tag({:action => 'create_prize'}, :multipart => true) do
# 这个是对的multipart 能齐作用

form_for :prizes, :multipart => true, :url => {:action => 'create_prize'}, :html => {:id => "form1"} do |form|
#这个是错误的

System.Windows.Forms.TreeView 的使用示例

private System.Windows.Forms.TreeView menuTree;

/// 
/// 判断用户是否有权限操作该菜单
/// 2011-10-20 Aiice
/// 
public bool HasMenu(string code)
{
	cn.myeol.www.PosService  xmlService = new cn.myeol.www.PosService ();
	xmlService.Url=Global.g_WebServiceURL;
	string SQL = "SELECT * FROM RoleMenus WHERE CanView = 1 AND RoleID IN (SELECT RoleID FROM UserRoles WHERE UserID = (SELECT UserID FROM Users WHERE UserName = 更多 >

c# 反射应用

/* 利用反射动态载入form类
 * assFile对应的dll文件或exe文件
 * FormName类的全称 包括命名空间名称
 */
private void LoadForms(string assFile ,string FormName)
{
	Assembly assembly =Assembly.GetExecutingAssembly();
	if(assFile!="")
	{
		assembly = Assembly.LoadFrom(assFile);
	}
	Type t = assembly.GetType(FormName);
	Form fm = (Form)Activator.CreateInstance(t);//强制转换你想要的类
	fm.MdiParent =this;
	fm.Show();
}

通用 把DataSet保存到数据库对应的Table表

前段时间吧xml转化为dataset,现在需要把dataset保存到数据库了

1,创建一个table表 注意:字段和dataset里面的字段对应 否则就不能通用了

2,方法

/// 
/// 把DATASET保存到数据库中
/// 2011-09-15 艾宗兵
/// SysManager mManger 调用SQL对象
/// TableName 要把DataSet保存到表名称
/// XmlObjectName 节点名称
/// 
public static void SaveDataSetToDB(SysManager mManger,DataSet mRs,string TableName,string XmlObjectName)
{
	//获取架构
	mManger.Connection.Fill("SELECT * FROM "+TableName+" WHERE 1=2",ref mRs,TableName);
	//检查是否有数据
	if(!mRs.Tables.Contains(TableName))
	{
		return ;
	}
	string strInsertPart=GetInsertSQL(mRs,TableName);
	//此时的TableName应该为XML里面对象节点的名称
	try
	{
		foreach(DataRow dr in 更多 >

Reply from : TTL expired in transit. 导致不能访问部分网站

服务器一直相安无事,突然间程序报错不能连上淘宝api 地址为gw.api.taobao.com

该天杀的 神马网站都能访问就这个api的网站不能访问!

ping了下,如图

查查路由情况:

看来路由死循环了,应该不管我的事,问问机房说没问题,问问淘宝也说不会屏蔽IP,见鬼,想起服务器裸奔很久,难道中招了,装了个360安全卫士,果然木马劫持gw.api.taobao.com的解析,强制解析到115.124.17.139上面了,所以怎么ping都不通了。

解决方案:服务器还是不要裸奔比较好,没事查查木马杀杀毒的就可以防止这种小问题了。