天天の記事簿

一個 蘿莉控 技術宅的世界

08/10
11:42

CentOS 6.X使用RPM包升级GLIBC

之前一段时间经常被 “libc.so.6: version `GLIBC_2.14′ not found” 这个报错信息折腾,出现这个报错的原因就是当前系统安装的 GLIBC 版本低于软件编译时使用的 GLIBC 版本。

 

这也是 CentOS 非常不适合折腾的原因之一,一些软件经常用到的底层 API 或编译器版本都非常低。

CentOS 7.X 倒还好,GLIBC Version 2.17,GCC Version 4.8.5,基本满足需要,但是 CentOS 6.X 的 GLIBC Version 2.12,GCC Version 4.4.7,基本不满足需求…

看看别人家的坂本,比你不知道要高到哪里去了

 

由于一直使用 CentOS 6.X 系统,以前一出问题就直接编译源码,想想其实挺麻烦的。现在就打算直接使用 RPM 包升级,方便快捷,只是比源码编译自由度低些,这里把具体方法及链接记下来,以作备忘。

Read More →

01/23
15:06

使用Parted为磁盘分区

在 Linux 中,为磁盘分区通常使用 fdiskparted 命令。通常情况下,使用 fdisk 可以满足日常的使用,但是它仅仅支持 2 TB 以下磁盘的分区,超出 2 TB 部分无法识别。

而随着科技的进步,大容量硬盘已经步入我们的生活,10 TB 的 HDD、16 TB 的 SSD 也已面世,仅仅能识别 2 TB 的 fdisk 很明显无法满足需求了,于是乎,parted & GPT 磁盘成为了绝佳的搭配。

 

这里博主适当讲解下使用 parted 为 MBR 以及 GPT 磁盘分区的方法,也算是作为备忘。

Read More →

01/20
19:57

在VMware中使CentOS利用桥接上网

在 VMware 中可以使用三种方式上网:桥接(Bridge)、网络地址转换(NAT)、仅主机(HOST-ONLY)。

如何选择正确的方式上网,直白地说,就是以下几点:

要使虚拟机能连接互联网,并且外部网络或局域网能访问到虚拟机(独立公网 IP 或局域网 IP),使用桥接模式

要使虚拟机能连接互联网,但是不在意虚拟机与宿主机是否能通信(比如连接 SSH),外部网络不能访问虚拟机,使用 NAT 模式

要使虚拟机不能连接互联网,但是需要虚拟机与宿主机相互通信,使用 HOST-ONLY 模式

 

这里记录下在 VMware 中使 CentOS 利用桥接上网的方法(其实网上方法是可行的…)

Read More →

05/10
00:06

hierarchyid列出树形的全部子树数量

hierarchyid 这个数据类型是 MSSQL 2008 开始支持的一个新的数据类型,用于表示树形结构中的位置。

当时以为使用 hierarchyid 可以做到无限分层的分类,其实并不。MSDN 上就提示说:hierarchyid 类型中所用的编码限制为 892 字节。所以如果节点字节数可能会超过 892 字节,就无法使用 hierarchyid 数据类型。MSDN的介绍

 

先墨迹下拷贝介绍 hierarchyid 的函数。hierarchyid 列出树形的全部子树数量的 SQL 语句在最后。

hierarchyid 系统类型提供了 10 个函数来实现各种功能,分别是:

 

GetAncestor( n ) :返回表示 this 的第 n 个祖先的 hierarchyid

如果传递的数字大于 GetLevel() ,则返回 NULL。如果传递的是负数,则引发异常。

 

GetDescendant( child1 , child2 ) :返回父级的一个子节点。

返回作为父节点的后代的一个子节点。

  • 如果父级为 NULL,则返回 NULL
  • 如果父级不为 NULL,而 child1child2NULL,则返回父级的子级。
  • 如果父级和 child1 不为 NULL,而 child2NULL,则返回一个大于 child1 的父级的子级。
  • 如果父级和 child2 不为 NULL,而 child1NULL,则返回一个小于 child2 的父级的子级。
  • 如果父级、child1child2 都不为 NULL,则返回一个大于 child1 且小于 child2 的父级的子级。
  • 如果 child1 不为 NULL 且不是父级的子级,则引发异常。
  • 如果 child2 不为 NULL 且不是父级的子级,则引发异常。
  • 如果 child1 >= child2,则引发异常。

GetDescendant 是确定的,因此,如果使用相同的输入调用 GetDescendant(),它将始终生成相同的输出。不过,生成的子级的确切身份可能因其与其他节点的关系而异。

Read More →

04/19
14:58

SQL Server将DataTable传入存储过程(Table Value Parameter)

博主在做毕业设计的时候,需要用到事务处理和多次将数据写入不同的表中,但是 SQL Server 数据库是不支持数组类型变量的,想要实现数组的功能,可以通过 XML 和数据表的方法实现,但是实现方法非常繁琐。

于是寻找其他更方便的解决方案,就发现了从 SQL Server 2008 开始,数据库开始支持“用户定义表类型”。通过它,可以实现将 .NET 程序构造的 DataTable 直接作为参数传入存储过程。

博主在运用的时候,遇到了些许问题,现在将它记录下来,以备今后查询。

Read More →

04/7
20:57

ASP.NET强制使用新的SessionId

博主最近忙着做毕业设计,在做的时候也遇到了些问题,例如:

博主毕业设计是做一个管理系统,用户的登陆信息当然是以 Cookie 的形式保存,但是有时需要使用 Token 来验证信息有效性,于是使用 SessionId+Salt 的散列值作为 Token 的值。但是博主很少用 Session 来保存信息,经过查找和学习,了解了强制使用新的 SessionId 的方法。

Read More →

03/3
00:10

Android手机安装靠谱的Google服务框架

博主为了玩 COC ,弄了个低成本的 Android 手机,方便带到学校玩。

但是 COC 需要安装 Google 的服务,现在的国产和国行 Android 手机早已经不带 Google 的服务框架了,所以安装 Google 的服务框架必须得自己手动下载。而且困难的是,Google 官方并不提供 Google 服务框架的安装包,国内各大下载站的东西…博主个人一般不会从下载站下载东西,总觉得不靠谱啊…

Google 的软件版本与 Android 版本大概有关系,大概也没有关系…博主不知道…_(:3」∠)_

 

写这篇博文的目的只有一个:我要 Mark 几个可以下载到靠谱的 Google 各软件的网站。其实还有一个目的是凑一篇文章出来,省得好久不更新…不要被别人看见了喵~

要安装 Google 的软件,请先 ROOT 手机,没 ROOT 就不用看下去了。

Read More →

02/25
10:44

Mono之CheckBoxList选中状态自动取消

Mono 为 .NET 应用程序部署在 Linux 系统上提供了可能,但是这毕竟不是微软自家的东西,还是有许多 Bug 的。

刚刚部署了一个自己写的网站,就马上遇到了问题:CheckBoxList 控件在 AutoPostBack 为 true 的情况下出现选中状态自动取消

 

具体情况是这样的:无论原本 CheckBoxListItem 是否被选中,只要改变了任何一个 Item 的选中状态,全部的 Item 都会变成未选中的状态,而且就算将它选中,它还是会自动取消。

 

查了很多资料,最后知道了是因为 Mono 下的 CheckBoxList 的 Bug,CheckBoxList 无法记住 State,所以每次都会被取消…

Mono 的 CheckBoxList 的 Bug 存在很长时间了,至少我找到了 2010 年的 issue,而且还标注为“已修复”。或许 Mono 团队修复了 CheckBoxList 在其他情况下的 Bug,但是这个 Bug 依旧没有被修复。这里是 Mono 的 Github 上的相关内容。

Read More →

02/24
15:55

解决Mono+Jexus出现Error running vbnc: Cannot find the specified file的问题

安装完成 Mono + Jexus 后,把自己写的 .NET Web 往服务器上一传,就发现,报莫名其妙的错误。

把错误提示打开以后,就不停地 500 错误,就跟下面一样(笑)

500
500

最后定位到错误为 Error running vbnc: Cannot find the specified file

一搜,知道了 vbnc 错误是因为没有安装 Visual Basic 的编译器,官方DOCS

Read More →