摘要:
体验一中添加了一个最基本的支架和一个简单的数据迁移,实现了一个基本的增删改查的功能列表。体验二中要在次功能上继续丰满一下功能。实现如下效果: 在每个公司中都包含有不同的部门,按照体验一中的方法,添加一个部门的支架,一个数据迁移。实现部门的增删改查功能。部门的数据结果如下: 具体方式省略。 简单创建了支架而没有定制应用,它将难以使用,为了给一个公司添加部门,将会边的很麻烦。我们把我们希望的页面和支架生成的部门的页面比较一下: Cid和Chargeuserid先不用做关联,手添即可,只是为了能够重新组织页面。 部门列表和创建部门的页面看起来和我们想要的页面上出现的内容非... 阅读全文
摘要:
接触ruby on rails 已经有一段时间了,想记录一下自己的rails历程。自己写一些小例子来帮助学习。 Rails 适用于那些以数据为中心的应用,很多应用的核心部分包括一个数据库,这些引用的存在的主要原因是为了让客户可以通过它们来操作数据库,而不是直接使用SQL。 Rails应用的组成部分: (1)ActionPack的应用框架。用来负责帮助生成数据驱动的交互页面来访问和修改数据库。 (2)Web服务器。可以是rails内置的web服务器也可以用apache等。 (3)数据库。可以是rails自带的sqLite或者是mysql等。 (4)对象-关系映射库。Rails... 阅读全文
摘要:
1:Update package repository.1 sudo apt-get update2:Install git and Curl. Git:是一个简单,快速,高效的版本控制系统。(对于安装ruby on rails 环境没有关系,只是为了在以后的开发过程中进行版本控制的时候使用。) Curl:是一个根据web协议获取文件的简单命令行工具。 1 sudo apt-get install git2 sudo apt-get install curl3:Install RVM and Dependencies.1 curl -L get.rvm.io | bash -s stable. 阅读全文
摘要:
最近工作需要用到定时任务。原来写java的时候也用到过类似的Scheduler的功能。 Ruby语言中也有同样功能的工具。rufus-scheduler。下面介绍一下rufus-scheduler。 定义: a Ruby gem for scheduling pieces of code (jobs). It understands running a job AT a certain time, IN a certain time, EVERY x time or simply via a CRON statement. 安装:gem install rufus-scheduler... 阅读全文
摘要:
apache有两种虚拟主机,一种是基于ip的,一直是基于域名的。 基于域名的虚拟主机允许多个域名共用一个ip地址。 今天在配置虚拟主机的时候遇见如下问题,http.conf配置的都正确,内容如下: 将NameVirtualHost*:80 的注释去掉。<VirtualHost*:80>ServerAdminroot@localhostDocumentRoot/www/virtualServerNamestation.domain40.example.com</VirtualHost><VirtualHost*:80>ServerAdminroot@local 阅读全文
摘要:
最近收拾东西,偶然发现大学时候的课本数据结构在乱丛当中,上大学时候看的比较多的一本。一阵感慨之后,果断重新翻看了两眼。看完线性表表这一章突发奇想想在实现一下链表。经过整整1天半的时间才就有了此文,主要是C++连怎么声明类都不记得了,囧。下面代码部分C++实现的线性表的链式表示和实现。C#是实现的静态链表。本人水平有限,如果有不恰当之处,望大家多多指点。口下留情。线性表: 是最常用且是最简单的一种数据结构。简言之,一个线性表是N个数据元素的有限序列。线性表有两种表现和实现方式。线性表的顺序表示和实现与线性表的链式表示和实现。线性表属于线性结构,线性结构有一下特点。存在惟一的一个被称作做" 阅读全文
摘要:
要了解计算机程序如何执行的,我们需要了解一个典型系统的硬件组成。如下图: 总线 贯穿整个系统的是一组电子管道,称作总线。它携带信息字节并负责在各个部件间传递。通常总线被设计成传送定长的字节块,也就是字。字中的字节数是一个基本的系统参数,个个系统中也一样。有的系统是4个字节的字长,有8个字节的字长,也有的小系统是用的1个字节或者2个字节的字长。 I/O设备 I/O设备是系统与外界的联系通道。包括用户输入的例如键盘和鼠标,输出的例如显示器、打印机、投影仪。以及用于长期存储数据和程序的磁盘。 每个I/O设备都是通过一个控制器或适配器与I/O总线连接起来。控制器和适配器之间的区别... 阅读全文
摘要:
类型,对象,线程栈和托管堆在运行时的相互关系(一)中说到类型,对象,线程栈和托管堆在运行时的相互关系。下面围绕CLR再来讨论这个问题。定义如下两个类。internal class Employee {public public Int32 GetYearsEmployed() { ... }public virtual String GenProgressReport() { ... }public static Employee Lookup(String name) { ... }}internal sealed class Manager : Employee {public overr 阅读全文
摘要:
一直在园子里都是瞻仰各位大牛,没有留下过一点痕迹。借用糗百中的一句话“光看不发掉人品啊”。从劳动节到现在菜鸟我一直跟智齿作斗争。来上面攒点人品,顺便培养写东西这种文艺修养。哈哈哈哈。。。垃圾是怎么产生的呢? 首先要明确一个问题,什么事垃圾呢?个人窃以为就是:不再被需求的资源。之所以这么说,是觉得这个“垃圾资源”当初也是为某个程序立下汗马功劳的,在后面也会讲到他自己不能决定自己的命运,人家需要就创建他,不需要就摧毁它。 在面向对象的环境中,每个类型都代表一种供程序使用的资源。比如文件、内存、网络、DB。这些资源也是经过一个或短或长的人生之后沦落为“废物”的。 资源的产生:调用IL指令ne... 阅读全文
摘要:
当系统加载一个CLR的进程,进程里面可能有多个线程,这时候系统会给这个进程创建一个大小为1M的线程栈。这个线程栈用来存放方法调用的实参,和方法内部定义的局部变量。下图展示了一个线程栈的栈内存。线程栈的存储是从高位内存地址向地位内存地址构建的。现在假设线程栈执行的代码要调用M1方法。在这个很简单的方法中,应该包含一些初始化这个方法的“序幕”代码,和一些“尾声”代码,负责在方法调用完成之后对方法进行清理。然后才返回给这个方法的调用者。M1方法调用开始时,M1的序幕代码在线程栈上分配局部变量name的内存。如下图然后M1调用M2方法,将name作为一个实参来传递。这造成name局部变量中的地址... 阅读全文