Why·Liam·Blog

人生若如初見

##第一部分:互联网仍呈现增长趋势

互联网增长继续,这是关键的趋势。我们要重新开始想象互联网。移动互联网发展迅速,计算平台再一次改变……中国有许多值得学习的地方:量 + 创新。现在的企业家也许是能力最强的企业家。许多公司纷纷谋求上市。传统产业也会随着新变化而变化。

解读:

PC 端互联网的增长速度也许已经过了黄金时代,但移动的到来让互联网整体规模呈倍增长。这种增长已经体现在量上(让没有 PC 的人通过手机上网)、速度上(通过 APP 将移动的时间变成上网时间),但还未真正体现在金钱上(移动端变现困难)。不过,我们已经看到 Twitter 移动收入超 Facebook,而 Facebook 移动收入已经占到总收入的 30%。移动时代也是一个碎片时代,版图的不确定性更高。在 PC 端上,入口的转移要慢些,但移动时代更快了。对于许多 PC 端巨头来说,这可能是一个最坏的时代,因为过去的权力不再稳固;也可能是一个最好的时代,因为它们一旦将权力从 PC 端安全转移到移动端,未来增长将不可限量。计算的平台再一次改变,首先是 OS、硬件、软件的大挪移,然后是用户的大迁徙,最后才是新商业模式的确立。由于移动时代更碎片化,创业公司风起,企业家们像一批批海盗,纷纷试水新航路。最终,必有胜者,更有负者。相信几年之后,在资本市场会迎来移动企业的 IPO 浪潮。

阅读全文 »

1. 利用 Glut 库,编写一个 OpenGL 程序,实现以下功能:

  • 仿照课本 2.4.3 的例子,绘制若干 OpenGL 基本体素(三角形、三角形带、四边形、四边形带)构成的球体,
  • 可以控制改变球的数量和球的体积,来改变基本体素的数量以及顶点的数量。
  • 可以通过改变 glPolygonMode,切换是否填充所绘制的基本体素。
  • 用函数 glutGet(GLUT_ELAPSED_TIME)(returns the time in milliseconds since

源程序如下:

阅读全文 »

##一、Ruby on Rails 介绍

Ruby on Rails 是一种结合 Ruby 语言与 Rails 平台的一种网页编程语言,Ruby 语言以自然、简洁、快速著称,全面支援面向对象程序设计,而 Rails 则是 Ruby 广泛应用方式之一,在 Rails 平台上设计出一套独特的 MVC 开发架构,采取模型(Model)、视图(View)、控制器(Controller)分离的开发方式,不但减少了开发中的问题,更简化了许多繁复的动作。

##二、Ruby on Rails 历史

于 2004 年 7 月,Rails 的创始人David Heinemeier Hanson从 37signals 公司的项目管理工具 Basecamp 里面分离出 Ruby on Rails,并且以开源方式发布。

Rails 在发布以后的短短的时间内就迅速获得很多开发人员欢迎,David 认为这归功于 Rails 设计为 opinionated software。Rails 当中有很多规矩从一开始就按照 David 的意见制定好了,所以在 Rails 上开发应用程序时,开发人员可以专注于应用程序自身的设计,省却那些花在了解及配置基础框架上面的时间。这也正是 Rails 很重要的精神「惯例优于配置」(Convention over Configuration),开发人员遵照 Rails 本身的惯例便可以省却配置组态档的时间;此外,Rails 虽然强调惯例的重要及便利性,但针对不同的需求,Rails 也提供修改的空间让开发人员可以进行自订的组态。

阅读全文 »

Ruby 开源许可

Ruby 2.0.0-p195 (md5: 0672e5af309ae99d1703d0e96eff8ea5) 稳定版 (推荐)
稳定版快照 这里的 tar』ed 和 gzip』ed 文件是最新稳定的 CVS。它应该比上次发布的版本更稳定。
开发版快照 这里的 tar』ed 和 gzip』ed 文件是最新的 CVS。它可能包含一些没有解决的问题。更多信息见

Ruby Core

在 Windows 平台下安装 Ruby 有几个选择。第一个选择是仅安装编译好的二进制文件。第二个选择是直接执行「一步安装」程序,假如您不知道如何安装 Ruby,

RubyInstaller 将是您最好的选择。(这种安装方式除 Ruby 之外,捆绑一些额外的资源库。)
Ruby 1.8.6 一步安装 (md5: 00540689d1039964bc8d844b2b0c7db6) 稳定版 (推荐)
Ruby 1.8.6 二进制 (md5: 3ec2a8a34d5db1f09cc8cad3f8305c28) 稳定版 (推荐)
Ruby 1.9.0 二进制 (md5: 489ee1bcd72e97f50b38b64fb354e661) 开发版 (实验)
Ruby 1.9.1-p0 二进制 (md5: 921db53c709ce20106610f7d229e24e1) 稳定版 (推荐)

阅读全文 »

GLUT 工具箱提供几种图形 3 维图形的函数:

如果需要用到长方体那就用 glScalef(x,* y,* z); 做自己想要的长方体,这儿的 x,* y,* z 分别对应 x,* y,* z 轴的缩放比例

不过居然没有看到圆柱体的函数。在网上搜索不少人说到的都是用一个 aux 开头的辅助函数库。但是这有个很大的缺陷,已经被 GLUT 库代替了

举个创建 2 次对象的简单例子:

阅读全文 »

The Why·Liam·Blog by WhyLiam is licensed under a Creative Commons BY-NC-ND 4.0 International License.

WhyLiam创作并维护的Why·Liam·Blog采用创作共用保留署名-非商业-禁止演绎4.0国际许可证

本文首发于Why·Liam·Blog (https://blog.naaln.com),版权所有,侵权必究。

本文永久链接:https://blog.naaln.com/2013/05/introduction-to-ruby-with-hand-painted-the-blackboard/

阅读全文 »

今天忽然感悟到为什么在进行变换之前要用 glPushMatrix();

这个函数,而在变换完毕后有用 glPopMatrix() 这两个函数了,赶紧记下来:

我们在变换坐标的时候,使用的是 glTranslatef(),glRotaef() 等函数来操作,操作的是什么呢?操作的是当前矩阵,我们也知道,这些坐标变换(翻转,旋转也好)都是通过操作矩阵来实现的,而矩阵相乘是会叠加的,当你用完一个变换函数后,当前操作的矩阵就被改变了,当你还停留在变换以前的思维,我在这个地方绘制恰好是我想要的时候,你会发现再绘制出来的不是在你想要的位置,因为你在操作变换的时候,当前矩阵被改变了。

比如你在默认情况下在原点画了一个球,然后又进行了一个变换,比如用 glTranslatef( 0.0, 0.0, 1.0 );沿 z 轴移动一定距离又画了一个球,然后你想再在原点画一个大一点的球覆盖原来的那个,当你绘制的时候就会发现,你现在绘制的球已不在你想像的地方了。

我们来做个实验: 代码如下:

阅读全文 »
0%