Category: 日常开发工作

  • SQL Server找出最占存储空间的表

    今天在有台服务器硬盘突然告警了,排查了一下发现是SQL Server的mdf文件太大,把硬盘给撑爆了。所以就有一个需求要在SQL Server里找出占用存储空间最多的表,进行清理。 下面是Amber和Qing贡献的一个SQL查询和运行效果。 CREATE TABLE #temp ( table_name sysname , row_count INT, reserved_size VARCHAR(50), data_size VARCHAR(50), index_size VARCHAR(50), unused_size VARCHAR(50)) SET NOCOUNT ON INSERT #temp EXEC sp_msforeachtable ‘sp_spaceused ”?”’ SELECT a.table_name, a.row_count, COUNT(*) AS col_count, a.data_size FROM #temp a INNER JOIN information_schema.columns b ON a.table_name collate database_default = b.table_name collate database_default GROUP BY a.table_name,…

  • 小米手机安装驱动及打开USB调试

    最近拿到2个新Android手机做开发用,分别是小米4和小米Note。这篇博文主要记录如何配置小米手机从而进行USB调试。 首先是要在PC机上安装驱动,豌豆荚一直提示无法装上,所以只好去小米官网现在驱动,手工安装,具体步骤是进入小米官网,点击最下方的服务支持下的相关下载链接,这时会进入资源下载链接,然后点击手机驱动就可以下载了。也可以直接从这个链接下载。下好驱动文件后,先解压到电脑里某个文件夹。 然后打开设备管理器,这时候应该会看到2个MI LTE的未知设备。设备前的感叹号表示小米手机还无法被当前系统识别,对2个未知设备分别点击右键,选择从步骤一里解压好的驱动位置更新驱动,更新完毕后应该会看到有一个Android Composite ADB Interface和Xiaomi Composite MDB Interface,这就表示驱动已经成功安装。 然后要启用开发者模式,从手机找到设置->关于手机->MIUI版本,连按几下就会自动启用开发者模式。 最后一步就是启用USB调试,从手机上找到设置->其他高级设置->开发者选项->USB调试就可以启用。 现在就可以通过USB连线的方式从小米手机上调试代码了,如果在开发环境里看不到小米手机的选项,记得看一下手机屏幕,一般是因为允许USB调试的对话框弹出的时候没有点确认引起的。

  • 在Azure Ubuntu虚拟机上安装WordPress

    之前楼主的WordPress网站都是跑在加拿大的一个Windows Server 2012服务器上,发布文章的时候总是感觉网络延迟有点大。并且网站长时间运行后,IIS会间歇性的出现消耗大量内存的情况,影响到其他网站,虽然人工重启一下IIS应用程序池可以解决,但是时间长了也烦不胜烦。现在索性迁移到Azure东亚数据中心的Ubuntu虚拟机上来。本文主要记录在迁移过程一些细节步骤。 首先从Azure的标准镜像库里选Ubuntu server,我选的是14.02 然后参考DigitalOcean的这个教程安装LAMP和WordPress 在Azure的管理门户上打开80端口 检查一下,这时候应该已经可以用类似http://blairubuntu.cloudapp.net/的地址访问WordPress了。 为了让网站更安全,到/var/www/html/wordpress目录下运行下面命令,设置正确的文件权限 sudo chown www-data:www-data -R * # Let apache be owner sudo find . -type d -exec chmod 755 {} ; # Change directory permissions rwxr-xr-x sudo find . -type f -exec chmod 644 {} ; # Change file permissions rw-r–r– sudo service apache2 restart 进入后台Setting->General里把Site Address…

  • 成为数据专家(Data Scientist)的技术路线路

    分享一张好图,原文来自Becoming a Data Scientist – Curriculum via Metromap,描述了想要成为数据专家,也就是所谓的Data Scientist,的技术学习的路线图。

  • Ubuntu里node命令无效解决方法

    在ubuntu里用sudo apt-get install nodejs安装Node.js后,会发现terminals里运行node命令(比如node –-version)时候会有No such file or directory的错误。引起这个错误的主要的主要原因是Node.js在ubuntu上默认被装到了/usr/bin/nodejs目录下,所以默认只能用nodejs来调用。 解决方法是运行下面命令,来创建一个文件连接,之后terminals里node就能正常工作了。 sudo ln -s /usr/bin/nodejs /usr/bin/node

  • 改变HyperV虚拟的Ubuntu屏幕分辨率

    Ubuntu14开始已经自带Hyper-V Integration Service,也就是说在Hyper-V里跑Ubuntu 14以上的版本的时候,再也不需要像以前的版本那样单独的安装Hyper-V Integration Service,因为所有的Hyper-V网卡驱动,显卡驱动和其他组件都已经内置了。 但是和操作系统的分辨率调整这一项,还是不如在Hyper-V里跑Windows的VM来的方便,默认的Ubuntu VM只有一种分辨率(1152×864),不能像Windows VM那样根据当前的窗口自动调节分辨率,自适应屏幕。 目前的解决方法只能是手工指定分辨率,下面是具体步骤。

  • C#实现接口类的时候返回一个完成的Task对象

    有时候实现一些接口类的全部方法,某些方法里必须返回一个task,创建一个新任务又怕开销太大,搜了一下,发现下面是一个比较常见的做法 return Task.FromResult(null); 如果用DotNet 4.6的话,就更简单了,直接返回Task.CompletedTask就可以了。 https://msdn.microsoft.com/en-us/library/system.threading.tasks.task.completedtask.aspx

  • The website is under heavy load解决方法

    在做网站做压力测试的时候,很容易模拟出每秒几百的http请求,如果要测试的网站是在nginx之后,这时候就会发现很多请求直接返回503 Service Unavailable错误,如下图所示。 这是由于在当前的并发请求过多的情况下,nginx默认会把请求放到一个队列里,一次排队让服务器处理。这个queue的上限默认是100,所以当请求超过queue上限的时候,nginx就会返回The website is under heavy load的错误信息了。 一个简单的解决方法便是修改passenger_max_request_queue_size,改成你需要的实际值,或者直接设成0,来禁用queue这个功能。 当然更好的方法是做服务器端的profiling,找出瓶颈,让每个http请求能更快的被处理完毕。 参考 http://stackoverflow.com/questions/20537185/the-website-is-under-heavy-load-ror https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html#PassengerMaxRequestQueueSize

  • 远程桌面访问Azure上的Ubuntu服务器

    首先要在Azure上建一个Ubuntu服务器,具体步骤本文略过。 用putty或者其他ssh工具连接到Azure上的Ubuntu服务器,目标主机的地址在Azure的管理门户里可以看到,国内Azure一般是个以chinacloudapp.cn结尾的地址,国际版Azure则是cloudapp.net。 运行sudo apt-get update,这个命令会保证所有的包都更新到最新版本。 运行sudo apt-get install ubuntu-desktop,这个命令会安装ubuntu桌面,中间某个地方提示你确认一下,点Y就可以继续。 现在Ubuntu桌面已经装上,但是在云上的服务器,没法通过本地的显示器来显示桌面,所以这时候要安装VNC server,命令是sudo apt-get install vnc4server  运行vncserver,这时候会让你输入远程连接桌面的密码。 运行vncserver -kill :1 修改.vnc/xstartup !/bin/sh # Uncomment the following two lines for normal desktop: unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc /usr/bin/gnome-session & [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic…

  • 安装Resharper的Visual Studio部分快捷键失效的解决方法

    装了Resharper的VS,有时候会莫名的快捷键失效。解决方法便是先重设VS的设置(Tools > Import and Export Settings > Reset all settings),然后在Resharper里重新应用所有快捷键。(Resharper > Options > Keyboard & Menus)