分类目录归档:Technique

有关工程设计行业两则

这两条notes是在与同事探讨行业前景时的一点思考,本来想写在本月notes里的,但是文字码上来发现字数可观,可以凑一篇日志了。


第一,管理者把图纸的质量和进度等的问题都归咎于工程师,其实是不对的,管理者需要反躬自省。管理者必须明确每个技术需求、挡掉不必要的干扰因素、争取合理的设计时间。而不是对需求方照单全收,把压力都放到工程师身上。

管理者也必须对工程师提倡设计、思考、学习精神、分享风气。 如果不明白这个道理,也不愿意明白这个道理,那么现实项目中管理者的主要工作之一就是甩锅。大声抱怨项目出现问题是因为工程师不愿加班,不愿出差,不懂沟通。其实根结在于,与工程师相比,很多管理者没有吧管理当成一个专业来对待,缺乏专业素养和应有的职业操守。

第二,我很反感将工程设计行业的从业者称为“设计师”,应该叫工程师比较妥当。从实际从业者的角色属性、承担的责任以及职业性质来看,工程师远比设计师更为妥帖。设计师的叫法将从业人员局限为画图匠、绘图工,抹杀了职业属性中的工程技术咨询属性,也卸掉了工程师对于项目执行阶段合理性和可执行所负有的重大责任。

我们在逐步挣脱设计行业枷锁,摆脱经济形势影响魔咒的过程中,想要实现逆势增长,必须摒除要么绘图,要么摆脱绘图的二元分裂症状,将未来的人才培养放在打造真正意义上的,负责任的,大写的“工程师”上面,否则,在千篇一律的dwg文件里,哪里能寻见“工匠”的一点影子呢?

高分辨率屏幕chm格式文件查看问题

手里有个15寸4k高分屏笔记本真是太让人苦恼,各种界面过小的问题。最近需要经常查阅chm文件,发现chm里有些内容都出现字体重叠等现象,完全无法使用。

解决方法其实和AutoCAD界面字体过小的办法是一样的。

第一步改注册表,方法同上面链接。

第二步下载这个文件:链接: http://pan.baidu.com/s/1nvbMCBJ 密码: wtc2

放入C:/Windows/文件夹即可。

不知道微软啥时候能把高分屏的问题解决掉。

简单粗暴绕过http劫持

小区宽带有http劫持的行为,严重影响网站访问,具体情况是这样。试了几个办法,均没有效果,有些方法甚至直接导致很多加载jquery库的网页无法访问。向工信部投诉?你懂的。工信部还是踢回给地方部门,地方的电信单位给我打电话,就说不是他管辖范围,无能为力。一声叹息。

不过,至少我能让自己的网站在劫持中独善其身吧!经过简单的测试,我发现这里的http劫持方法很简单,就是会劫持HTML页面中的一个加载的jquery库,其实就是劫持的一个js库。针对这种劫持,最简单的方法就是伪造一个js库给他“吃”就可以了。

怎么样,简单粗暴!

那wordpress来说,有两种方法:

(前提:新建一个空js文件,放到相应目录。例子里我放在根目录,文件名为“fuck_you_http_hijacked.js”)。

    1. 直接在模板header.php文件<head></head> 标签中添加:<script type=’text/javascript’ src=’https://fxpai.com/fuck_you_http_hijacked.js?ver=4.6.1′></script> 即可。一定要添加在所有js文件之前。标准的wp模板,只要放在wp_head(); 之前就可以了。
    2. 上面第一种方法显得没有格调。而且,后台界面的劫持也没有解决,写文章、发博客一样无法进行。那么,wp的插件钩子登场。在主题的functions.php文件中,加入如下代码:
//处理部分地区http劫持,导致的jquery加载不正常
function fuckHijacked(){
wp_register_script( 'fuckHijackedjs', get_bloginfo('wpurl').'/fuck_you_http_hijacked.js' );
wp_enqueue_script( 'fuckHijackedjs' );
}
add_action('init','fuckHijacked', 1);

要注意的是,add_action(); 函数第三个参数一定要尽量小,保证伪造的js库加载到所有js库之前。

至此,前台后台都可以无障碍访问了。但是,页面的“小广告”却没有根治,还要配合CSP设置进行内容保护。CSP全称Content Security Policy,具体介绍。我的csp设置是:

<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' *.duoshuo.com *.googleapis.com *.twitter.com *.baidu.com; frame-src 'self' *.weibo.com">

可根据自己网站的情况更改。


坦率地说,上面的方法,无论是伪造劫持目标文件还是csp,都不是非常“优雅”的方法。除了上面的方法,其实还有终极解决办法:给网站购买设置独立IP,然后安装ssl加密。但是,那不是得增加费用么,而且我的可怜小站是自己当日记本和业余爱好用的,搞那么高端明显没必要。

就这样吧。

小尺寸高分屏使用AutoCAD问题的解决方法

我出差是使用自备的华硕笔记本电脑,15寸4K分辨率屏幕,大量软件无法使用,例如AUTOCAD2014版本界面是如下样子:

cadhighdpi-1

所有图标都过小,无法看清。而且,右侧天正测试版插件文字均被遮挡,完全无法正常使用。眼神好也不行!

这是由于小尺寸高分屏下,软件没有做相应的调整,且微软的windows也没有系统级的解决方案,才导致这样的后果。

最简单的解决办法是强行将屏幕调整为1920×1080分辨率,调整后即可正常使用。但是,这样的话,系统使用的并不是最优分辨率,整个系统和所有软件的字体和图标都会明显地变模糊。这与通常的推测不太一样,高分辨率屏幕如果调整到底分辨率使用,难道不应该更清楚么?这个原因我也不太清楚,反正结果就是这样。

而且,切换到低分辨率,那我多花了不少银子买的高配笔记本不就完全浪费了么。有人说,那你要用cad的时候切换1920×1080,不用的时候再切换回4k分辨率不就行了?也是个办法,不过,由于windows系统的原因,改完分辨率之后,必须要重启系统才能完全生效。而且,这样一折腾,感觉自己就像一个傻叉一样。

那么,办法来了,开发者用一个很简单的办法解决了这个问题。

步骤1:创建注册表键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest,类型为DWORD,值设为1。(让系统优先使用外部manifest说明文件)

步骤2:下载以下链接文件:http://pan.baidu.com/s/1ntWxvZz ,其中acad.exe.manifest复制到CAD安装目录(acad所在目录.exe),TGStart.exe.manifest复制到天正所在目录(TGStart.exe所在目录)。

步骤3:注意,如果你之前设置过CAD软件的兼容性选项,请将“禁用高DPI缩放”设置取消。位置在“右键-属性-兼容性”选项卡中。这一点来源贴里面都没有提及,我估计这是导致很多人失败的原因之一。

至此,设置完成。打开软件即可正常使用。

这个办法是强制软件不使用高分屏自适应,保证软件界面尺寸正常。不过缺点是软件界面有些模糊,不过与能正常使用这一点比起来,模糊点算什么。


资料来源:

http://tieba.baidu.com/p/3025803161

http://tieba.baidu.com/p/4408807799

快速搭建简单办公网络手记

近两年做EPC项目,经常需要现场办公,由于设计院项目部通常比较微型,没有独立配备网络管理员的能力,需要自己动手搭建办公网络,方便大家办公。

现场设计人员和管理人员中,我的电脑水平相对较高,这个任务由我来完成。

整理一下现场的现有办公设备,一台二手Cannon打印复印一体机(无网络打印功能),几台HP打印机(无网络打印功能),一台2013年配置的HP服务器,好几个旧路由器,一箱子网线。还有十几台笔记本电脑。这所有的设备中,那台HP服务器可算是最为高级的了,据说是当年计划设置现场OA和现场BIM而规划设计的,价格不菲。

想了一下主要办公需求,发现没什么特别的,主要就是共享打印机,要是能有个共享文件的方法就更好了。这需求太简单了好么。

本着物尽其用的原则,我直接把HP服务器架上了,安装了一个Windows Server 2008 r2系统,用网线连接路由器,设置为固定IP,例如:172.16.0.200,方便其他服务设置。

然后,将没有网络功能的打印机由USB接口连接到服务器上,设置打印机共享。在服务器系统中设置Guest账户开启,在各同事的笔记本电脑端设置开启“网络发现”和“文件与打印机共享”,搜索网络打印机,安装即可使用。如果自动安装驱动程序失败,还需要在客户机上另行安装一遍打印机驱动。

由此,共享网络打印机就实现了。

这是,大家提出了更高的要求,能不能设置一个文件共享功能?之前所有的文件都上传到QQ群中,网速又不快,文件大小还有限制。我想过直接在服务器系统里设置个共享文件夹就行了,不过试了一下,使用体验太差。那么只能有请FTP服务器登场了。

我选择了Server 2008 r2自带的ftp建站服务。需要先增设系统IIS功能,而后在IIS里面建立FTP站点。过程很简单,baidu上教程一搜一大堆。由于没有外人使用,所以干脆直接设置一个FTP账号、一个文件夹,开放所有权限就行了。

为了方便同事使用,避免向没用过校园FTP的同事解释什么是FTP这个恼人的过程,我直接下载了一个开源绿色FTP软件,把账号设置好,拷贝给各位同事使用就行了。使用效果非常好,上传下载速度都能达到十几M/s。

这时候,其实任务已经完成了,在同事们的夸奖声中,我飘飘然起来,想着这么好的服务器怎能如此浪费?还能做些什么呢?对了,就是建一个网站。我给它起了个名字叫做“项目信息发布系统”,顿时高大上起来。

方案也非常简单,我直接采用了WAMP+WordPress组合。在服务器系统中安装WAMPserver64,更改端口为8080,避开IIS占用的80端口,配置apache的虚拟机,以便于网络中的其他同事访问。在WAMP中安装WordPress最新版本,禁用GOOGLE FONTS(后来发现新版本已经没有GOOGLE FONTS了),在内网通过172.16.0.200:8080即可访问。

这时候可以说已经超额完成任务了。

但是,都做到这个程度了,我怎能轻易罢手!有同事问我:能不能在外网(即Internet网)访问这些服务呢?我当然不会敷衍,立即回复说“可以”。因为,早就有成熟的解决方案了。业界最为著名的当然要数“花生壳”了,什么?你在路由器设置里见过?那就对了,它就是搞“内网穿透”用的。

在花生壳注册一个账号,免费申请一个他们二级域名。在服务器端安装花生壳客户端(不需要在路由器里设置),登录,将一个域名解析到本地ip和端口上,我这里当然就是172.16.0.200和8080,然后将使用外网80端口选项勾选。注意,这时要记得更改Wordpress设置里的网址选项,改为这个二级域名。如果已经无法访问WordpPress,那么只能到phpmyadmin里面修改数据库了。这时,外网访问这个二级域名,就可以看到这个网站了。

又有人问了,FTP可以外网使用么?当然可以,原理是一样的。不过有个问题,就是目前花生壳免费的解析流量只有1G/月,很快就用完了,基本承担不起网页以外的服务。想要实现也简单,那就向花生壳交钱呗。

至此,这个服务器在我看来已经不算浪费了,而且整个过程也没花多长时间,工作之余抽空搞一搞就行了。还方便了大家使用,何乐不为?

需要说明一下,如果没有服务器,使用旧电脑也可以实现这所有功能。不安装Server 2008 r2系统也可以,安装Win7或Win10就行了。

就这样吧。

WordPress 4.6 诚意更新

说实话,WP更新算是比较频繁,但已经很久提不起我的兴趣了。属于安全方面的更新必不可少,默默无闻我也心存感激。但功能上的更迭缓慢,还是让我有点失望。

今天打开后台,发现系统又双叕更新了,还是习惯性的点击(同时在想,之前说好的静默更新呢?),update完成后,同样出现新功能介绍。不同的是,这次增加的新功能,让我感觉一股清流迎面而来。

  1. Streamlined Updates
    这个可以直译为“顺滑更新”吧,说穿了就是让更新功能用上了ajax,不用在更新过程中把页面跳来跳去了,着实高大上啊。
  2. Native Fonts
    woo,终于想开了,不在后台使用google open fonts了,这个太影响后台相应速度了。之前我还啪啪地忙着用各种方法禁用open fonts呢。而且,theme里我也不建议用google fonts,除非特殊展示页。汉语页面好像没什么人用特殊字体,除非有专业的字体美工,或提取固定字段的特殊字体后再加载(例如,非学派的logo字体)。
  3. Editor Improvements
    第一个编辑功能是“Inline Link Checker”,翻译过来就是“编辑模式链接检查”功能(抱歉没做到信达雅),这个功能可以让作者在编辑过程中检查链接有效性,避免了添加链接失误且难以检查的问题。
    第二个功能是“Content Recovery”,翻译过来就是“本地文章内容恢复”功能(不要吐槽我的翻译),强调本地恢复,就是利用浏览器本地存储特性实现内容恢复,避免因为网络原因导致文章数据丢失,使文章内容可靠性更高。

同时,历年的官方theme也同步更新了,具体更新了什么我并不关心,因为反正我也不用。

关于开发者部分和其他功能更新,可以看这篇文章link

wamp本地解析域名进行wordpress调试

之前记录了把wordpress站点移植到本地进行调试的过程。其实,还有可以改进的地方。之前要实现wp在本地顺利访问,需要修改远数据库中的site_url和home值为localhost/xxx。改完之后,文章里的链接和媒体的链接,都还是原来的域名,虽然可以通过使用插件或者直接写sql语句完成替换,但这样一来数据本身发生了变化,无法回用到站点上进行部署,还可能会产生意外错误。

那么最完美的解决方法就是在本地对域名进行解析,达到完全模拟线上运行的目的。

  1. 找到apache系统的httpd.conf文件(不同的部署方式位置会有所不同),确保

    LoadModule vhost_alias_module_modules/mod_vhost_alias.so

    语句生效(语句前没有#)。

  2. 找到apache系统的xxx/extra/httpd-vhosts.conf文件(位置视部署方式而定),增加配置,例如:
    <VirtualHost *:80>
    	ServerName fxpai.com
    	DocumentRoot D:/wamp/www/wp/
    	<Directory  "D:/wamp/www/wp/">
    		Options +Indexes +FollowSymLinks +MultiViews
    		AllowOverride All
    		Require local
    	</Directory>
    </VirtualHost>

    域名和目录按照实际使用情况填写。

  3. 找到系统hosts文件,例如windows系统一般在c:/windows/system32/drivers/etc/目录下。打开文件添加解析域名,例如:
    127.0.0.1 fxpai.com

    ,域名视具体情况填写。

  4. 重启wamp或其他apache系统。
  5. windows系统打开cmd命令行,输入ipconfig /flushdns刷新dns记录。

访问你解析的域名,就可以正常访问本地网站了。