Ubuntu: Oracle 10 XE 配置

上课要学 Oracle ,教学的平台是 Windows + Oracle 10g 。
我的系统是 Ubuntu ,发现安装 Oracle 10g 比较困难,取而代之的有一个 Oracle Express Edition.
也就是 Oracle 10 XE.

用起来倒是也差不多,反正我是喜欢在 Terminal 上工作的 XD

不过我自己在作实验的时候搞错了一些事情,本来创建了一个 tablespace ,但是 datafile 放在了 /tmp 里面,系统自己清空了,再操作的时候就会报错说 database could not open…

再有就是第一次安装的时候配置了 http 端访问端口成 81 ,这样以来不知道和哪里有冲突……一直访问不了。

其实解决所有这些问题只要执行

$sudo /etc/init.d/oracle-xe configure

根据向导指示就好了。

0 Comments

update-apt-xapi

update-apt-xapi 是一个索引扫描进程,会自动在后台启动。
用来扫描安装了的软件包,以建立索引。

事实上,用处还真的不大,而且它一扫描 CPU 马上飙升到接近 100% 。。。

所以各位看着不爽的可以删除之:

sudo apt-get autoremove --purge apt-xapian-index
sudo apt-get autoremove --purge

来源。

0 Comments

蛋逼

-美国人的三大爱好你知道是什么么?
-不知道。。。
-1 吃饭 2 蛋逼 3 一边吃饭一边蛋逼。

以上内容来自某北京小伙子。。

显然,这是一个冷笑话。。但是我今天的确想蛋逼一下,估计这是 pk14 的力量。。哈哈……

关于 twitter

我曾经在 twitter 上说过 ‘我虽然很努力 但是仍然融入不了 twitter 的世界。’ 然后一个神秘人物和我说那就去新浪围脖……其实这两者对于我来说是一样的:和一群陌生人蛋逼多少会让我不安,加之在我在 twitter 上发的消息大多石沉大海……所以, 对于我来说 twitter 还是作为一个真假掺半的消息来源比较好。

关于 饭否

我知道我知道,饭否当初是抄袭 twitter 的。但是我对饭否还是很有情感的。一个又一个事件让饭否崛起又被打压。而软禁之后,饭否的坚持也让我看到了有良知的 IT 人是什么样子。

不敢说宁为玉碎,不为瓦全,却敢说,饭否没有低头。只是身不由己,我个人,依然在等待。

通过饭否认识了一些人,其实不是很多,其中的一些到现在和我关系也还很好。其实你们都不知道,我扩展我的好友圈总是小心翼翼的。有的人有许多朋友,其实连他自己都知道,那些关系是佯装出来的,何必呢?这也就是为什么:

关于 IM

这也就是为什么我总清理好友的缘故了。没话说的,关系不熟的统统删除掉……爱谁谁。 I AM ON MY OWN.很多事情不想勉强,真的没有必要。

关于粗口

我突然觉得粗口是最源自内心的情绪表达,当然用的太烂了会惹人反感是肯定的。为什么会这么觉得呢?因为听 Lady Gaga 还有 BEP 的歌的时候每次听到 Bitch 这个词的时候我就无比的痛快。

你看你看,问题来了吧?人家可以在歌词里写这个。。人家有给 12 岁的小孩子作避孕套,就是不允许我们正常的表达我们心里所想的东西。

我们的生活已经扭曲了,他们却还告诉我们,这一切多么美好。

0 Comments

关于电视机的一则趣事

刚才想写 idiot 这个词,但是不确定自己拼写对不对,索性查了一下。结果发现,原来 idiotbox 是电视剧的 slang 。当然,是含有贬义的。

其实完全不难理解,想想电视机是怎样的一个东西呢?它放什么你就要看什么,无论是有用的还是没用的,无论是广告还是假新闻,无论是电视剧还是过时电影。其实电视机只是人民用来杀时间的一个工具罢了。傻傻的在那里坐着,不是 idiot 又是什么呢?

更加缺德的是,在一些地方的电视机里面还放许多不正常的东西,这些东西不正常在:

  • 他们一本正经的说着假象,杀人犯和贪污的人冠冕堂皇的坐在镜头了,油光满面的蔑视着电视台的你,可是同时你还在说,阿!!这是领导人!!
  • 明明是别人早就做好的东西,自己拿过来抄一遍,就说是自主产权,研究经费多少多少。。东西没见先进多少,研究人员的肚子可是一个比一个大(不论是男的还是女的)
  • 电视剧里面,原来的恐怖分子成了伟大崇高的人物,不用掐指都可算出天下形势。而那些真正的英雄呢?都成了走狗

真的还需要我举更多的例子么?其实所有看 idiotbox 的人都是 idiot 。

他们发自内心相信的事情,其实只是一些人杜撰出来的假象罢了。

0 Comments

一个 yes 引发的血案

有一个命令叫做 yes , 它默认是不断的写 y 到 stdout 上,在被杀掉之前呢,它会一直喋喋不休的啦~
很简单,要说这个东西想实现也很简单,但是我找到源码,让我自己看起来却没那么轻松……(毕竟主要的功能的确很简单,但是命令行参数的处理,还有文档,还有man这些的我是一点都不了解怎么作阿;p)
不过用

$yes > somefile.name

这样生成一个文件再压缩一下发给别人还是很要命的。

这样一来,几秒钟可以生成几百兆的文件,但是因为内容都一直,所以一压缩也就基本没什么东西了。比如我生成了一个将近 700MB 的文件压缩之后只有600多KB 然后某人解压缩的时候,电脑死机了。。哈哈 当然死机的原因是多方面的,主要还是机器太老的缘故哦?

这些都是在论坛讨论 出来的结果阿~~ 哈哈。。。
源码贴在这里,慢慢学习:

/* yes - output a string repeatedly until killed
   Copyright (C) 1991-1997, 1999-2004, 2007-2010 Free Software Foundation, Inc.

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* David MacKenzie <djm@gnu.ai.mit.edu> */

#include <config.h>
#include <stdio.h>
#include <sys/types.h>
#include <getopt.h>

#include "system.h"

#include "error.h"
#include "long-options.h"

/* The official name of this program (e.g., no `g' prefix).  */
#define PROGRAM_NAME "yes"

#define AUTHORS proper_name ("David MacKenzie")

void
usage (int status)
{
  if (status != EXIT_SUCCESS)
    fprintf (stderr, _("Try `%s --help' for more information.\n"),
             program_name);
  else
    {
      printf (_("\
Usage: %s [STRING]...\n\
  or:  %s OPTION\n\
"),
              program_name, program_name);

      fputs (_("\
Repeatedly output a line with all specified STRING(s), or `y'.\n\
\n\
"), stdout);
      fputs (HELP_OPTION_DESCRIPTION, stdout);
      fputs (VERSION_OPTION_DESCRIPTION, stdout);
      emit_ancillary_info ();
    }
  exit (status);
}

int
main (int argc, char **argv)
{
  initialize_main (&argc, &argv);
  set_program_name (argv[0]);
  setlocale (LC_ALL, "");
  bindtextdomain (PACKAGE, LOCALEDIR);
  textdomain (PACKAGE);

  atexit (close_stdout);

  parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version,
                      usage, AUTHORS, (char const *) NULL);
  if (getopt_long (argc, argv, "+", NULL, NULL) != -1)
    usage (EXIT_FAILURE);

  if (argc <= optind)
    {
      optind = argc;
      argv[argc++] = bad_cast ("y");
    }

  for (;;)
    {
      int i;
      for (i = optind; i < argc; i++)
        if (fputs (argv[i], stdout) == EOF
            || putchar (i == argc - 1 ? '\n' : ' ') == EOF)
          {
            error (0, errno, _("standard output"));
            exit (EXIT_FAILURE);
          }
    }
}
1 Comment

闲言。

今天是 2 月 22 日。面瘫大人说,今天不是很晴朗。可是我觉得今天不犯二都对不起天上的太阳。

XTX 老爷子真是好听阿。我爱雷鬼!不过,你们都明白,谁都比不过 Bob Marley 的!

说到 Bob Marley ,就要说我前两天订了一双 Nike iD. 的鞋子,颜色可真的是 红黄绿 阿!!无比华丽丽。不过在订鞋的时候只是为了全掌气垫要的那双 AirMax 没想到那个是带 plus 的,如此以来,一个月后,我的 touch 就可以多一项功能了~ 你们说我因为这么一双鞋子就天天早晨去学校的操场跑步怎么样?

过去的这几天真的是够丰富多彩的:

  • 有一天晚上用 touch 的豆瓣电台 app 跳歌跳到凌晨三点一点不想睡,又玩游戏到 5 点觉得心脏开始难受了,无比心慌的睡过去——你们猜怎么的?我听到鸡叫了。
  • 有一天晚饭吃的太多撑的难受的睡不着觉,其实转天还要出门
  • 三天跑了2趟市区,我这个无比折腾的阿我

接下来几天,我得老实老实,把假期里该做的事情都做完!

0 Comments

Django Django

的确很久没有更新技术相关内容了。但是这篇更多的像是一个提问贴。。

喊了好久要研究 Django ,现在终于算是正式开始了。 Django 的确很方便。有许多我想自己实现的东西都已经准备好了——所以我现在想要什么功能,在考虑怎么实现之前,总是先查 Django 本身有没有提供。这其中分页就是一个很好的例子,有 Paginator 就让一切变得很方便:

def show_worker(request):
    worker_list = Worker.objects.all()
    paginator = Paginator(worker_list, 25) #Show 25 workers per page
    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1
    #If page request is out of range, deliver last page of result:
    try:
        workers = paginator.page(page)
    except:
        workers = paginator.page(paginator.num_pages)

    return render_to_response('showWorker.html', {'workers':workers})

那关于上面的这个函数我有一个小疑问,就是怎么把它搞的通用一点?比如我有另外一些记录也要分页显示,怎么定义一个通用的(比如show_record)函数来通过参数传递而实现返回不同的内容??

def show_record(request, itemModel, amount, themeHTML, themeModelName):
    item_list = Worker.objects.all()
    paginator = Paginator(item_list, amount)
    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1
    #If page request is out of range, deliver last page of result:
    try:
        items = paginator.page(page)
    except:
        items = paginator.page(paginator.num_pages)

    return render_to_response(themeHTML, {themeModelName:items})

我这样写出来了一个,可是在调用的时候却什么都显示不出来??这是为什么?
请指教……

0 Comments