VIA IDE 驱动问题
2014年9月03日 00:06
加载驱动就会死机,死的莫名奇妙,连 SysRq 都不能用。
但在内核启动的时候,传入参数 libata.dma=4 就会没有问题。
据说,该问题很早就存在了,而且相关开发人员并没有修改的打算。
Happy coding
加载驱动就会死机,死的莫名奇妙,连 SysRq 都不能用。
但在内核启动的时候,传入参数 libata.dma=4 就会没有问题。
据说,该问题很早就存在了,而且相关开发人员并没有修改的打算。
If you attempt to push a large set of changes to a Git repository with HTTP or HTTPS, you may get an error message such as error: RPC failed; result=22, HTTP code = 411. This is caused by a Git configuration default which limits certain HTTP operations to 1 megabyte. To override this limitation, update the postBuffer setting on your cloned repo.
try:
1. Update git to the latest version (2.7.7, as to now), then,
2.modify http.postBuffer: git config http.postBuffer 524288000
选自 http://forum.ubuntu.org.cn/viewtopic.php?f=74&t=153755&start=0
mencoder相当好, 用来合并av精华片段相当棒,价好量又足, 我一直都用它
mencoder可以做视频剪辑和视频格式转换。它既能在Windows操作系统上使用,又能在Linux操作系统上使用。它只能通过命令行的形式使用。
安装:sudo install mencoder
格式:
分割:
mencoder -ss 开始时间 -oac copy -ovc copy -endpos 终止时间 文件名 -o 目标文件名
合并:
mencoder -ovc copy -oac copy 文件名1 文件名2 -o 目标文件名
例一:
mencoder basket.rm -ovc lavc -oac lavc -o basket.avi
把basket.rm文件转换为basket.avi文件,其中,视频转换为mp4格式,音频转换为mp2格式。"-o basket.avi"定义转换成的文件名为"basket.avi","-ovc lavc"表示用默认的mp4格式编码图象,"-oac lavc"表示用默认的mp2格式编码声音。
例二:
mencoder basket.rm -ovc lavc -oac mp3lame -o basket.avi
"oac mp3lame"表示用mp3格式编码声音。
例三:
mencoder basket.rm -ovc lavc -oac mp3lame -o basket.avi -ss 5:00 -endpos 8:00
"-ss 5:00 -endpos 8:00"告诉mencoder仅仅转换从5分0秒到13分0秒的片段。
例四:
mencoder basket.avi -ovc copy -oac copy -o newbasket.avi -ss 5:00
-endpos 8:00
"-ovc copy"表示不作视频转换,"-oac copy"表示不作音频转换。这个命令把basket.avi文件中的5分0秒到13分0秒的部分拷贝到newbasket.avi文件中。
例五:
mencoder a1.avi a2.avi -ovc copy -oac copy -o asum.avi
这个命令把a1.avi和a2.avi文件合并为asum.avi文件。
例六:
mencoder basket.rm -ovc lavc -oac lavc -lavcopts vbitrate=100 -lavcopts abitrate=32 -o basket.avi
限制目的文件的大小。目的文件中,一秒种图象占用100kbit空间,一秒钟声音占用32kbit空间。较小的目标文件大小,一般意味着较低的图象和声音的质量。
在Windows下播放mencoder制作的mp4格式的文件,可能需要安装ffmpeg4解码器。
From http://hi.baidu.com/jn1net/blog/item/8431f7380d7db0d4d5622500.html
转载的文章,介绍了如何从 U 盘启动虚拟机。
可能是 XXX 防火墙近来发疯了,访问 google code 总是出错,所以把几个小项目转移到了 github 上,主要有:
在次做个记录,也欢迎有兴趣的人士来折腾它们。
尝试了一下 xelatex , 果然强悍,默认支持汉字,支持 UTF-8 编码, 并可以直接使用 TTF 字体,有时间再好好看看他的文档。
下面是一个简单的例子:
\documentclass[11pt,a4paper]{article} \usepackage{fontspec} \setmainfont[BoldFont=SimHei,ItalicFont=KaiTi_GB2312]{SimSun} \setsansfont[BoldFont=SimHei]{KaiTi_GB2312} \setmonofont{Microsoft YaHei} \begin{document} 世界,你好! \end{document}
使用方法和 latex 类似, 直接 xelatex filename.tex 就可以了。
上一篇日志中写到了 logviewer-mode , 昨天晚上稍作修改, 添加了 logviewer-level 支持,这里重新贴下代码, 并说明下几个基本的热键。
代码如下:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; logviewer.el --- Simple log viewer. ;; ;; Copyright (C) 2011, Yang, Ying-chao ;; ;; Author: Yang, Ying-chao <yangyingchao@gmail.com> ;; ;; This file is NOT part of GNU Emacs. ;; ;; 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 2 ;; 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, write to the Free Software ;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ;; ;; Commentary: ;; ;; This is a simple log viewer, with syntax highlight. ;; ;; To use logviewer, you should put logviewer.el into the top of load-path ;; of emacs, the add following lines into your .emacs: ;; (require 'logviewer) ;; ;; When log files are huge, it will try to split huge logs into small ones ;; to speed up loading. In that case, you can press "n" & "p" to go to next ;; part (or previous part) to the log file. You can custom variable ;; logviewer-split-line to proper number to control the size of the slice of ;; huge file. ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Code ;; custom hooks (defvar logviewer-mode-hook nil) ;; default mode map, really simple (defvar logviewer-mode-map (let ((logviewer-mode-map (make-keymap))) (define-key logviewer-mode-map "n" (lambda (&optional arg) (interactive "^p") (or arg (setq arg 1)) (logviewer-next-part t arg))) (define-key logviewer-mode-map "p" (lambda (&optional arg) (interactive "^p") (or arg (setq arg 1)) (logviewer-next-part nil arg))) (define-key logviewer-mode-map "R" 'logviewer-reload-file) (define-key logviewer-mode-map "F" 'logviewer-set-filter) logviewer-mode-map) "Keymap for PS major mode") (defvar logviewer-indent-width 4) (defvar logviewer-font-lock-keywords `( ;; Date & time. (,(rx symbol-start (group (or "ERROR" "FATAL" "error" "fatal" "WARNING" "warning")) ":" (group (+ (*? not-newline))) line-end) (1 font-lock-warning-face) (2 font-lock-comment-face)) (,(rx line-start (*? not-newline) (+ digit) ":" (+ digit) ":" (+ digit) (? "." (+ digit))) . font-lock-builtin-face) (,(rx symbol-start (group (*? not-newline) (+ digit) ":" (+ digit) ":" (+ digit) (? "." (+ digit))) (1+ space) (group (1+ (or alnum "-" "_" blank))) (? "["(* digit) "]")":") (1 font-lock-builtin-face) (2 font-lock-variable-name-face)) (,(rx symbol-start (group (or "info" "INFO" )) ":" (group (+ (*? not-newline))) line-end) (1 font-lock-function-name-face)) (,(rx symbol-start (group (or "DEBUG" "debug" )) ":" (group (+ (*? not-newline))) line-end) (1 font-lock-keyword-face) (2 font-lock-doc-face)) ) ) (defvar logviewer-mode-syntax-table (make-syntax-table) "Syntax table for Logviewer mode") ;; (modify-syntax-entry ?( "()" logviewer-mode-syntax-table) ;; (modify-syntax-entry ?) ")(" ;; logviewer-mode-syntax-table) (defvar logviewer-imenu-expressions '((nil "^\\(?:[fF]unction\\|Add-Class\\)\\s-+\\([-a-z0-9A-Z_^:.]+\\)[^-a-z0-9A-Z_^:.]" 1)) "alist of regexp identifying the start of logviewer definitions" ) (defvar logviewer-split-line 50000 "Lines when trying to split files.") (defvar logviewer-current-file nil "Log file viewed by logviewer") (defun logviewer-process-sentinel (process event) "description" (when (memq (process-status process) '(signal exit)) (let* ((exit-status (process-exit-status process)) (command (process-command process)) (source-buffer (process-buffer process)) ) (condition-case err (delete-process process) (error (let ((err-str (format "Error in process sentinel: %s" (error-message-string err)))) (message err-str))))))) ;;;; Overrite function provied by Emacs itself. (defun abort-if-file-too-large (size op-type filename) "If file SIZE larger than `large-file-warning-threshold', allow user to abort. OP-TYPE specifies the file operation being performed (for message to user)." (let* ((re-log-str (rx (or "LOG" "log" "Log"))) (log-cache (expand-file-name "~/.emacs.d/log_cache")) (cur-file nil) (process nil) (filename-base (file-name-sans-extension (file-name-nondirectory filename))) (out-file-prefix (format "%s/%s" log-cache filename-base))) (if (and large-file-warning-threshold size (> size large-file-warning-threshold)) (if (string-match re-log-str filename) ;; This is logfile. (if (y-or-n-p (format "LogFile %s is large (%dMB), really %s? " (file-name-nondirectory filename) (/ size 1048576) op-type)) (if (and (string= op-type "open") (executable-find "split")) (progn (if (file-exists-p log-cache) nil (mkdir log-cache t)) (setq logviewer-current-file (format "%s000" out-file-prefix)) (message (format "%s*" out-file-prefix)) (call-process-shell-command "rm" nil "*Messages*" nil "-rf" (format "%s*" out-file-prefix)) (setq process (start-process "Split-process" "*Messages*" "split" "--suffix-length=3" "-d" "-l" (format "%s" logviewer-split-line) (expand-file-name filename) out-file-prefix)) (set-process-sentinel process 'logviewer-process-sentinel) (push filename recentf-list ) (while (not (file-exists-p logviewer-current-file)) (sleep-for 0.5)) (set-buffer (get-buffer-create filename-base)) (toggle-read-only 0) (erase-buffer) (insert-file-contents logviewer-current-file nil) (switch-to-buffer filename-base) (toggle-read-only 1) (logviewer-mode) (error "See this instead") ) nil (error "Aborted") ) (when (not (y-or-n-p (format "YC: File %s is large (%dMB), really %s? " (file-name-nondirectory filename) (/ size 1048576) op-type))) (error "Aborted")) ) ) ))) (defun logviewer-is-tmpfile () "See whether current file is a temporary file or not." (if (string-match "log_cache" logviewer-current-file) t nil ) ) (defun logviewer-reload-file () "Reload current file." (interactive) (let ((pt (point))) (toggle-read-only 0) (erase-buffer) (insert-file-contents logviewer-current-file nil) (toggle-read-only 1) (goto-char pt) (message "Readload finished."))) (defun get-next-slice (num cc) "Get next file, or previous file. if direc = t, it returns next file, or it returns previous file" (let ((filename-pre nil) (filename-sub nil) (filename logviewer-current-file) (filename-sub-num 0) (sub-len 0) (new-seq 0) (fmt "") (bname (buffer-name)) (pre-rx (rx line-start (group (+? not-newline)) (group (+ digit)) line-end))) (if (string-match pre-rx filename) (progn (setq filename-pre (match-string 1 filename)) (setq filename-sub (match-string 2 filename)) (setq sub-len (length filename-sub)) (if cc (setq new-seq (+ (string-to-number filename-sub) num)) (setq new-seq (- (string-to-number filename-sub) num))) (if (string-match (rx (group (+? anything)) "-P" (+ digit)) bname) (setq bname (match-string 1 bname)) ) (list (format (format "%%s%%0%dd" sub-len) filename-pre new-seq) (format "%s-P%d" bname new-seq))) (error "Failed to parse filename")))) (defun logviewer-next-part (dir &optional arg) "view next/previous file" (interactive "^p") (or arg (setq arg 1)) (let ((n-list (get-next-slice arg dir)) (next-file nil) (bname nil)) (if (logviewer-is-tmpfile) (progn (setq next-file (car n-list)) (setq bname (nth 1 n-list)) (if (file-exists-p next-file) (progn (message (format "Now viewing: %s" next-file)) (toggle-read-only 0) (erase-buffer) (insert-file-contents next-file nil) (setq logviewer-current-file next-file) (toggle-read-only 1) (rename-buffer bname)) (progn (let ((msg nil)) (if dir (setq msg (concat "Head of log reached. File " next-file " does not exist!" )) (setq msg (concat "Head of log reached. File " next-file " does not exist!" )) ) (error msg))))) (error "This is the whole file"))) ) (defconst logviewer-levels '("FATAL" "ERROR" "WARRNING" "INFO" "DEBUG")) (defvar logviewer-filter-level 9 "nil") (defun get-lvl-str (num) "description" (let ((x (/ num 2)) (lst nil)) (while (>= x 0 ) (setq x (1- x)) (add-to-list 'lst (nth x logviewer-levels)) ) lst ) ) (defun logviewer-get-filter (lvl) "Get filter beyond LVL." (if (string= lvl "FATAL") (progn (setq logviewer-filter-level 1) (rx bow "FATAL:")) (if (string= lvl "ERROR") (progn (setq logviewer-filter-level 3) (rx bow (or "FATAL" "ERROR") ":")) (if (string= lvl "WARRNING") (progn (setq logviewer-filter-level 7) (rx bow (or "FATAL" "ERROR" "WARRNING") ":")) (if (string= lvl "INFO") (progn (setq logviewer-filter-level 9) (rx bow (or "FATAL" "ERROR" "WARRNING" "INFO") ":") )) ) ) ) ) (defvar logviewer-filter-list '() "nil") (defun logviewer-iter (reg-str) "" (if (search-forward-regexp reg-str (point-max) t) (progn (let ((pos1) (pos2)) (move-beginning-of-line 1) (setq pos1 (point)) (move-end-of-line 1) (setq pos2 (point)) (cons pos1 pos2) (add-to-list 'logviewer-filter-list (cons pos1 pos2)) (logviewer-iter reg-str) ) ) nil ) ) (defun logviewer-set-filter () "Set and show result of filter lvl" (interactive) (setq logviewer-filter-list nil) (let ((lvl nil) (cur-lvl logviewer-filter-level )) (setq lvl (completing-read "Filter Level: " logviewer-levels)) (if (string= lvl "DEBUG") (outline-flag-region (point-min) (point-max) nil) (progn (let ((logviewer-filter (logviewer-get-filter lvl)) (content (buffer-substring-no-properties (point-min) (point-max)))) (if (< cur-lvl logviewer-filter-level) (outline-flag-region (point-min) (point-max) nil) ) (goto-char (point-min)) (logviewer-iter logviewer-filter) (outline-flag-region (point-min) (point-max) t) (if (> (length logviewer-filter-list) 0) (let ((i 0) (len (length logviewer-filter-list)) (frange)) (while (< i len) (setq frange (nth i logviewer-filter-list)) (outline-flag-region (car frange) (1+ (cdr frange)) nil) (setq i (1+ i)) )) ) ))) ) ) (defun logviewer-setup-imenu () "Installs logviewer-imenu-expression." (require 'imenu t) ;; imenu doc says these 3 are buffer-local by default (setq imenu-generic-expression logviewer-imenu-expressions) (imenu-add-menubar-index) ) (defun logviewer-mode () "Major mode for editing Logviewer files" (interactive) (kill-all-local-variables) (setq major-mode 'logviewer-mode) (setq mode-name "logviewer") (set-syntax-table logviewer-mode-syntax-table) (use-local-map logviewer-mode-map) (set (make-local-variable 'font-lock-defaults) '(logviewer-font-lock-keywords)) (toggle-read-only t) (if logviewer-current-file nil (setq logviewer-current-file (buffer-file-name)) ) (run-hooks 'logviewer-mode-hook)) (add-to-list 'auto-mode-alist '("\\.log\\'" . logviewer-mode)) (provide 'logviewer)
主要热键有:
附截图三张:
昨天看了一下 Tron Legacy 这个电影,从中截了两张图, 彰显一下 Emacs 的魅力。
图2 : 不知道这个 hanoi tower 在影片中用来表示什么……