王风坤的博客

  • 首页
  • 技术相关
  • 常用软件
  • 免费资源
  • 杂乱无章

Author: 王风坤

金尚装饰。。没骗到我,哈哈

2018年2月1日 by 王风坤 Leave a Comment

前天(2016-11-26,其实早在之前就接到电话了,但我们11月封闭开发一个月,根本没时间去)接到推销电话(电话显示是北京的,由于最近公司事情多,怕是公司的电话就接了),电话那头开始推销说是有样板间,现在优惠多少钱巴拉巴拉的,说了半小时,我始终客气地表示不想去,但电话那头始终在强调多优惠,多省钱。

我房子还有1年半才交房,所以根本不着急。我说我下午定了电影票去看《神奇动物在哪里》,电话那头还怀疑我骗她;又让我第二天去,我表示最近加班太多,实在想好好休息一天,电话那头就开始说我懒,我也没搭理,因为我已经连续加了一个月班了,这是又懒又累。

最后我实在不想再继续听下去了,几次想直接挂断,但还是本着礼貌的态度表示不想去,实在不行可以把公司信息通过短信发给我,我装修的时候优先考虑他们家并数次表示不想去,但电话那头根本不听我的,直接说就这么定了,公司信息发短信给我,通知班车第二天上午接我去。

我去,我凭啥听你的,你是谁啊?但我始终客气地表示不想去。下午看电影的时候又打电话,我看到后直接调到了静音没接,到看完电影后也快吃完饭了,我陪GF逛了会看了看衣服就去吃饭了,吃饭的时候又来了一个电话,我本不想接了,但我还是接了,这是我最后悔的一次决定。

接通后电话那头就开始说我怎么不接电话,我说我在看电影调静音了,并说我不想去,上午已经明确说了。但电话那头去开始发飙了,你不去你怎么那么懒啊?你这么懒怎么找到的女朋友啊?你不去你浪费我电话费干什么啊?我说我已经说过不想去了,接着就挂掉了电话。

心情顿时就不好了,我又没求你给我打电话,是你贸然打我电话我都没说什么,反倒是我浪费你电话费了,这种公司我敢去吗?我去交了钱绝对会后悔!

所以后来又有几个电话打进来,我再没接过,直接加了黑名单。

网友回复

一个人丶绘畫:

他家就是蛮恶心的

普的通消费者:

还好没被骗,自己找人装吧,省得生气

骑行天下潇潇 :

金尚装饰----九创装饰蛇鼠一窝、十足的骗子公司,刚开始只要你去就拉着你说有什么这活动那活动的,只要是店里的品牌 底板都可任意选,等你把定金已交,就只能玩完了,等到装修选材料就是这个不能选,那个不能选,全是要加价的 说好的装修7.5万 最后你发现10万都装不完,而且是装修前付款70%才动工 ,稍微晚点就停工。还有金尚和九创是一家公司都是牛胜刚的总经理,骗人手法全部一样,警惕大家 千万不要上当。

他们都叫我炮哥:

辛亏你没去,进去出不来,金尚装饰坑人没商量,尤其是青岛黑龙江中路 金尚装饰

weroq123:

金尚在杭州也一样搞了一天送也不送饭也没的吃

大土了咖:

哈尔滨金尚也是,一群销售装设计师,一群b的社会小青年,上梁不正下梁歪,客户签约交款之后就是孙子,八万装修装完12万挡不住,工长亲口告诉我,十个客户没一个反应好的,全说各种理由加价,免费的质量好的就是告诉你没货,让你要么等,要么换!这种公司难以在行业立足!

可靠的新萌菜:

昨天下午去金尚逛了一圈,感受了一下全套的套路大保健。mmp,教科书式的流程,一点新意都不给人家。最后给我开了十八万的报价,呵呵。你套路再神,我在路口看一眼就走

Posted in: 杂乱无章 Tagged: 金尚装饰

利用syncthing搭建私有云

2017年11月8日 by 王风坤 Leave a Comment

syncthing是一款支持跨平台且免费开源的同步软件,非常适合用来搭建私有云存储。

特点:

  1. 支持内网及外网同步
  2. 跨平台,除了ios系统外,其余常见系统都有相应的客户端使用
  3. 没有中心服务器,所有数据都是点对点直接加密传送,不用担心文件被第三方修改
  4. 支持文件版本控制

缺点:

  1. 由于没有中心服务器,所以要同步数据,就需要有一台设备随时在线
  2. 没有强大的网络支撑,外网传输速度会比较慢
  3. 其它待补充...

对于缺点,目前我是通过手机作为载体来同步不同设备间的数据

 

下面的设置以备份安卓手机照片到windows10系统为例。

内网同步设置:

1.下载并安装Windows下的syncthing客户端(https://github.com/canton7/SyncTrayzor/releases/latest)
2.安装安卓下的syncthing客户端(http://sj.qq.com/myapp/detail.htm?apkName=com.nutomic.syncthingandroid)
3.打开Windows下的syncthing,选择【操作-显示ID】

4.打开手机端syncthing应用,选择【设备】选项卡,点击右上角【+】,点击设备标识后面的二维码图标(此处可能提示需要下载插件)扫描PC上显示的二维码,等待一会会提示输入一个名称,如:我的笔记本,点击右上角的【√】确认

5.回到windows客户端,关闭设备标识窗口,稍后片刻,会有新设备介入提示,确认即可

6.回到安卓客户端,点击【文件夹】选项卡,默认会有一个摄像机的文件夹,点击进入编辑页面,在这里你可以看到自己新增的设备【我的笔记本呢】,点击后面的按钮,变成黄色即表示当前文件夹共享给该设备

7.回到windows客户端,稍后会出现共享文件夹的提示,确认并填写一个标签、选择一个本地文件夹,最后点击保存,1分钟左右就可以开始同步了

 

默认文件夹是60秒扫描一次,扫描间隔越小,同步越及时,但对于手机来说耗电也会增加,没有特殊需要默认就可以

如果目录包含有不需要同步的文件或文件夹,可以进入文件夹【选项】,点击下面的【忽略列表】,把要忽略的文件或文件夹名字填上,一行一个

手机客户端的摄像机文件夹默认是主文件夹(等同于windows客户端下的【文件夹选项-高级设置-文件夹类型-仅发送】选项)

 

以上配置可以实现在内网内同步,syncthing也支持外网同步。

 

外网同步配置:

1.进入windows客户端,打开设置页面【操作-设置】

将监听地址的IP改为0.0.0.0:8384,同时设置一个用户名和密码,重启syncthing即可。

2.手机端,点击左上角【三】按钮,找到【设置-同步设置】,进入【管理页监听地址】修改IP为0.0.0.0:8384,同时可以设置用户名及密码,更多设置可以打开手机浏览器,输入127.0.0.1:8384查看,手机端应用只包含基本功能

 

如果要同步更多的其他文件,只需要添加文件夹并共享给相应的设备

 

 

 

Posted in: 常用软件 Tagged: syncthing, 私有云

多说即将关闭,又一个不能变现的项目倒下

2017年5月18日 by 王风坤 2 Comments

钱不是万能的,但没有钱是万万不能的。
原来的空间要到期了,由于现在用的空间速度不是很理想,尤其是后台登陆的时候,速度非常慢,所以一直寻思着换个空间。
一个很偶然的机会看到了主机公园的主机,看了看是阿里云提供的香港服务器,有阿里云做后盾,空间应该也不会差到哪里去,所以最后决定换成主机公园的香港主机。
但还了之后发现,在家里用铁通的网打开网站很慢,但在公司用联通的网打开速度还是很快的。
由于我个人比较懒,也没有想写的东西,最多上来看看需不需要更新插件什么的。
今天登录了好几个月没看的博客,决定换个主题,老用一个主题用久了会腻,所以就换了一个。预览主题的时候,顺便点了一篇文章,赫然发现评论处写着“多说使用将于2017年6月1日到期,请尽快迁移,详见duoshuo.com”,顿感大事不妙,点进去一看,果然像我预想的一样,多说要停止运营了。
值得庆幸的是。我虽然是在两个月后才知道,但也不算晚,多说给我留出的时间还是非常富余的。
当初选择社会化评论系统的时候,是因为空间资源有限,想着用第三方的评论系统可以分担一部分压力。对比了各家的评论系统后选定了多说,主要是多说支持的第三方登陆多,而且不需要备案,样式也比较好看。
但没想到曾经作为第一梯队的多说会倒下的这么快,究其原因,还是“钱”的问题。社会化评论系统没有好的变现途径,每日烧钱终究不是出路。即便是搜狐畅言,没有搜狐这棵大树,他也撑不到现在。但与多说不同的是,搜狐畅言有自己的兄弟姐妹来支持他,搜狐新闻下面用的都是畅言系统。后来发现很多站点都使用了搜狐畅言,我也曾想改成畅言,但申请的时候发现还需要备案才能使用,所以最后没成功。
看着多说关闭,多少有些惋惜,毕竟我的博客从开通之后就一直用的多说,怎么着也是陪伴了多年的系统,没有一点感情也不可能。但他要关闭我也举双手赞成,毕竟再不转型尝试,活下去的机会也就越来越少了。
最后祝多说转型顺利。

Posted in: 杂乱无章 Tagged: 多说

解决js保留关键字作为属性在IE8下的兼容性问题

2017年3月21日 by 王风坤 Leave a Comment

最近项目中需要实现所见即所得的可视化导出功能,我们使用的是miniui中的datagrid控件呈现数据,但很多情况下页面最终呈现的数据会经过转化处理成用户友好的数据,比如枚举类型会呈现相应的文本内容,所以我在每一行的数据源里面都添加了一个export属性,用来存放转化后的文本内容,这样导出的时候我就直接取export的值就可以了,不需要再次调用相应的方法去做转化处理。

但今天测试反馈了一个问题,这个页面在IE8下面不能加载下拉框的数据。通过复现操作发现IE8会报 "缺少标识符",但谷歌、IE11没问题。

使用IE8的调试工具查看发现报错位置在export属性这一行,export显示蓝色,export是es5新增新增的保留关键字,推测是IE8下的js引擎将其作为关键字处理了。

通过调试工具执行测试代码发现,报出了同样的错误,但如果改成[]的方式调用export属性 就可以正常执行。

C#
1
2
3
4
5
6
7
8
 
var a={}
undefined
a.export
"缺少标识符" // 报错
a["export"]
undefined // 正常
 

再测试其他保留关键字发现会出现相同的问题。

C#
1
2
3
4
5
6
 
var a={}
undefined
a.class=5
  "缺少标识符"
 

总结,IE8下的js引擎会将属性名为保留关键字的作为关键字处理,为了兼容性,最好使用[]调用。

Posted in: 技术相关 Tagged: export, ie8, js

FastMapper 高性能实体转换组件

2016年9月8日 by 王风坤 Leave a Comment

实体转换的方法有很多,最常用的就是直接写实体转换的代码,但这仅限于少量实体,如果有很多实体需要转换,这样做开发效率就太低了,所以很多情况下多数人都会用反射去实现,因为反射功能强大且实现简单,在实际使用中,反射带来的性能损耗相对不明显,但反射效率极低却是公认的事实。

用MSIL实现的好处是性能上与原生代码相近,同时兼具灵活性,主要工作量都在如何构建MSIL代码,一旦构建好MSIL,就可以反复利用了。

FasterMapper是一个使用MSIL(微软中间语言)实现的简单的实体转换器,在千万级实体转换上效率与原生静态代码转换相差10%左右,足以适应大多数转换需求。
但缺点是功能太少,只能对Class类型转换,且仅支持核心的转换功能及简单的属性映射功能,不同属性类型转换不够灵活,由于用到了表达式树,所以最低支持.net3.5

使用方法:
1.引用FastMapper.dll
2.创建类映射关系
var _mapFunc = FastMap.CreateMap().Compile();
3.使用生成的委托对类型实例进行转换
AClass a = new AClass();
BClass b = _mapFunc(a);

源码 https://git.oschina.net/wangfengkun/FastMapper

Posted in: 技术相关 Tagged: .NET, FastMapper

linux下使用 docker 部署 asp.net vNext

2016年3月24日 by 王风坤 Leave a Comment

以下方法在debian 3.16 下测试通过

  1. 升级apt-get
    apt-get update
  2. 安装curl
    apt-get install curl
  3. 安装docker
    curl -sSL https://get.docker.com/ | sh
  4. 获取asp.net镜像
    docker pull microsoft/aspnet
  5. 获取代码
    git clone https://xxxx XXX
  6. 进入代码所在目录
    cd XXX
  7. 创建Dockerfile
    FROM microsoft/aspnetCOPY . /app
    WORKDIR /app
    RUN ["dnu", "restore"]EXPOSE 5004
    ENTRYPOINT ["dnx", "-p", "project.json", "kestrel"]将以上内容添加到Dockerfile中
  8. 创建docker镜像
    docker build -t 镜像名 .
  9. 启动应用
    docker run -t -d -p 80:5004 镜像名
    -t 虚拟终端 -d 后台运行
    -p 端口映射 5004是docker内部的应用端口,80是主机端口,发送到主机80端口的内容会被转发到5004端口,进入源码的project.json中可以查看端口

参考 https://blogs.msdn.microsoft.com/webdev/2015/01/14/running-asp-net-5-applications-in-linux-containers-with-docker/

Posted in: 技术相关 Tagged: ASP.NET, asp.net5, docker, Linux, vNext

AutoMapper 基本使用

2016年3月5日 by 王风坤 Leave a Comment

AutoMapper用于实现两个不同类型间数据的转换,比如在一些ORM框架中,有些实体数据会被ORM跟踪状态并自动更新到数据库中,稍不注意就可能导致意外的更改,出于性能、安全、耦合性等各方面的考虑,我们一般会建立一个新的实体类,将ORM对象转换为新对象供我们操作使用。

这时我们就需要将原实例的数据传递给新实例,通常最直接的办法就是new一个新的实例,将原实例的属性值赋给新实例的属性即可,但问题在于,我们用到的实体类可能有几十个,这时我们就可以借助AutoMapper去实现这个转换过程了。
AutoMapper的优点:
使用约定的方式对属性进行映射,以下写法可以直接映射
a.属性名(不区分大小写)相同
b.GetXXX方法可以与属性XXX映射
c.带有_前缀的属性与不带_前缀的属性
d.集合可以直接映射
1.配置映射关系
AutoMapper使用前需要先创建类型之间的映射关系,使用Mapper.Createmap方法可以创建一个新的映射关系,如果牵涉不符合上述约定的转换,则需要用自定义方法ForMember实现。
常用的自定义转换配置有以下几种
C#
1
2
3
4
5
6
7
8
9
10
 
cfg.CreateMap<Poco, Entity>()
.ForMember(e=>e.Version,m=>m.UseValue(8888))
.ForMember(e => e.Version, m => m.Ignore())// 忽略Version属性
.ForMember(e=>e.UserName,m=>m.MapFrom(p=>p.LoginName))// LoginName 对应 UserName
.ForMember(e => e.Value, m => m.ResolveUsing(p => p.ConfirmValue > 0 ? p.ConfirmValue : p.Value))// 当ConfirmValue大于0时使用ConfirmValue,否则使用Value
.ForMember(e => e.IsLock, m => m.UseValue(false))// formember 即使设置了自定义值,但由于后面又添加了映射处理方法,所以最终会根据最后一个
.ForMember(e => e.IsLock, m => m.ResolveUsing(p => p.IsLock == 1))//不同类型之间转换 ResolveUsing可称之为万能方法
.ForMember(e => e.IsLock, m => m.Condition(p => p.ConfirmValue > 0))// Condition拥有更高的优先级
.IncludeBase<BasePoco, BaseEntity>()// 包含基类映射
2.执行转换
使用AutoMapper执行转换只需要调用Mapper.Map方法,比如我们创建四个类:BasePoco,Poco,BaseEntity,Entity,使用AutoMapper方法进行转换
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
var poco = new Poco
{
    LoginId = "x0001",
    CreateTime = DateTime.Now,
    Id = "1",
    LoginName = "userName",
    Value = 99,
    ConfirmValue = 85,
    Version = 1,
    IsLock = 1
};
 
var entity = AutoMapper.Mapper.Map<Entity>(poco);
 
PropOutput(entity);// 输出属性名、属性类型、属性值
 
var poco2 = AutoMapper.Mapper.Map<Poco>(entity);
PropOutput(poco2);
 
Console.ReadLine();

输出:
AmigaDOS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
---------------------------Entity----------------------------
Id[String]=1
Value[Int32]=85
UserName[String]=userName
CreateTime[DateTime]=2016/3/5 0:04:43
Version[Int32]=0
_Category[Int32]=5
IsLock[Boolean]=True
UserId[String]=x0001
---------------------------Poco----------------------------
Id[String]=1
Value[Int32]=85
LoginName[String]=
CreateTime[Nullable`1]=2016/3/5 0:04:43
ConfirmValue[Int32]=0
IsLock[Int32]=1
Version[Int32]=0
LoginId[String]=x0001

通过输出不难看出,对于名称不一致的属性,如果不做配置是不会转换的;对于类型不一致,无法做隐式转换的,我们可以通过配置对值做相应的更改,使其符合目标属性类型;对于绝大多数转换,都可以用ResolveUsing方法实现自定义转换,ResolveUsing也是转换中不折不扣的万能方法。

源码下载 ConsoleApplication2

Posted in: 技术相关 Tagged: automapper

CentOS安装mono

2015年7月13日 by 王风坤 Leave a Comment
1. 安装EPEL
yum install http://mirrors.hustunique.com/epel//6/x86_64/epel-release-6-8.noarch.rpm
2. 安装软件包
yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libgdi* libexif glibc-devel urw-fonts java unzip gcc gcc-c++ automake autoconf libtool make bzip2 wget
3. 下载mono源码并编译安装
cd /usr/local/src
wget http://download.mono-project.com/sources/mono/mono-2.10.8.tar.gz
tar zxvf mono-2.10.8.tar.gz
cd mono-2.10.8
./configure --prefix=/usr/local
make && make install
Posted in: 技术相关 Tagged: centos, Linux, mono

js中+[]为何会等于0

2015年7月11日 by 王风坤 Leave a Comment

js中+[]为何会等于0?

看过很多人对此有疑问,甚至觉得很NB,其实根本没那么复杂,只是这种写法我们平时用不到而已。

先分析+号,+在js中有三种含义:

1.数值运算,用于两个数字相加,如:1+1

2.字符串连接符,大多数C风格语言都会用+来连接两个或多个字符串并返回一个新的字符串,如:'a'+'b','a'+1

3.代表正负数,由于默认正数可以不写正号,所以大多数时候我们会省略+,如:+5与5完全等价,甚至可以用在数字运算中,1-+5===1-5(注意:1++5是不行的,两个+号连续表示递增,他的优先级要高于数值运算,而且递增运算符不能直接用于数字,所以会报错,写成1 + +5就可以了)

而这里的+正是作为一个正号出现。由于正号后面需要使用数值类型,而[]是一个数组类型,所以JS会尝试进行类型转换,转换方法必然使用JS自带的Number函数,最终+[]就变成了+Number([]),而Number会将[]转换为数字0,最终结果+0===0

Posted in: 技术相关 Tagged: javascript

System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本

2015年4月16日 by 王风坤 Leave a Comment

问题描述:服务器端装的是Windows XP 和Oracle 10g。在服务器端能够正常的访问Oracle数据库,但远程访问该数据库(使用VS 2005,客户端同样是Oracle10g)提示“System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本”。

    弄了一个下午加晚上,终于找到解决的办法:

    1.一定要关闭Windows 防火墙;

    2.找到ORACLE_HOME文件夹(服务器端是D:\oracle)。点击右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在权限列表中把“读取和运行”的权限去掉,再按应用(据说这是Oracle的一个Bug,在9i版本中也存在);重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认 “Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;

    3.重新启动计算机,让权限设置生效(也可以不重新启动,在运行里运行cmd打开命令窗口,运行命令iisreset,重启下IIS,就可以正常访问);

    4.最后客户端如果还不能访问,(我客户端用的是VS2005,用的是其内置的IIS测试代码)重新启动VS2005即可。

(http://www.cnblogs.com/strawberryww/archive/2009/03/20/1417404.html)

以上为网上查找的办法
补充办法:
如果Oracle客户端装在了NTFS压缩分区中,装到非压缩的NTFS分区。
Posted in: 技术相关 Tagged: oracle
1 2 … 13 下一页 »

近期文章

  • 金尚装饰。。没骗到我,哈哈
  • 利用syncthing搭建私有云
  • 多说即将关闭,又一个不能变现的项目倒下
  • 解决js保留关键字作为属性在IE8下的兼容性问题
  • FastMapper 高性能实体转换组件
  • linux下使用 docker 部署 asp.net vNext
  • AutoMapper 基本使用
  • CentOS安装mono
  • js中+[]为何会等于0
  • System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本

文章归档

  • 2018年二月
  • 2017年十一月
  • 2017年五月
  • 2017年三月
  • 2016年九月
  • 2016年三月
  • 2015年七月
  • 2015年四月
  • 2015年二月
  • 2015年一月
  • 2014年十二月
  • 2014年十一月
  • 2014年九月
  • 2014年八月
  • 2014年七月
  • 2014年六月
  • 2014年五月
  • 2014年四月
  • 2014年三月
  • 2014年二月
  • 2014年一月
  • 2013年十二月
  • 2013年十一月
  • 2013年十月
  • 2013年九月
  • 2013年八月

标签

.NET 10T 65279 ADSafe ajax AppDomain ASP.NET BOM头 C# CDMA CDN Classing{js} CoffeeScript cookie cookie丢失 css CyBoost device EF EFBBBF EntityFramework FTP Gif GifCam html5 iframe javascript jQuery js JSON Linux mysql oracle PHP sql windows live writer wordpress wordpress插件 免费 免费CDN 免费空间 免费软件 异常 数据库 系统加速

Copyright © 2018 王风坤的博客.

Beta WordPress Theme by themehall.com