網頁

2013年5月25日 星期六

mutt簡易安裝+gmail imap

mutt + gmail with imap protocol 大部分參考自:http://www.adamjiang.com/archives/891
 一開始,當然是先打開gmail的imap傳輸功能, 官方說明:http://support.google.com/mail/bin/answer.py?hl=zh-Hant&answer=13273
(待續...) 
接下來就是要配置~/.muttrc檔了!參考自http://www.andrews-corner.org/mutt.html
.muttrc
#.muttrc 
#======================================================#
# Folders
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed ="+[Gmail]/Drafts"
set trash = "imaps://imap.gmail.com/[Gmail]/Trash"
set mbox_type=mbox           # Mailbox type
set move=no                  # Don't move mail from spool
#======================================================#
# which editor do you want to use? 
# vim of course!
#set editor="vim -c 'set tw=70 et' '+/^$' 'set formatoptions+=mM' " 
set editor="vim -c 'set tw=70 et' '+/^$' " 
set edit_headers=yes      # See the headers when editing
#======================================================#
# Aliases

set alias_file = ~/mail/mutt_aliases # In their own file
source ~/mail/mutt_aliases           # Source them
set sort_alias=alias                 # Sort alphabetically
set sort_aux=reverse-date
#======================================================#
# Colours: defaults are a little bleak so experiment!

source ~/mutt/mutt_colors            # In their own file 

#======================================================#
# Odds and ends

set markers          # mark wrapped lines of text in the pager with a +
set smart_wrap       # Don't wrap mid-word
set pager_context=5  # Retain 5 lines of previous page when scrolling.
set status_on_top    # Status bar on top.
push <show-version>  # Shows mutt version at startup

charset-hook ^iso-8859-1$ utf-8
#set allow_8bit # Don't do any Quoted-Printable encoding on 8-bit data!
set rfc2047_parameters=yes
#unset strict_mime  #這個要設成no, assumed_charset才會有用
#charset-hook ^us-ascii$ big5 
set assumed_charset="big5:gb2312:gbk:gb18030:utf-8"#
set charset="utf-8"
#charset-hook !UTF-8 big5
#set send_charset="big5:gb2312:utf-8:us-ascii:iso-8859-1"
set locale="zh_TW.UTF-8"
set imap_user = "username@gmail.com"
#set imap_pass = ""
set header_cache =~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates
set smtp_url = "smtp://username@smtp.gmail.com:587/"
#set smtp_pass = ""
set imap_keepalive = 900
set move = no
~/mutt/mutt_colors
color    index         blue             black          Motorola
color    index         brightyellow     black          Seasar
color    index         brightwhite      brightgreen    uclibc
color    header        brightyellow     black          subject
color    hdrdefault    brightwhite      black
color    quoted        brightgreen      black
color    status        white            cyan
color    indicator     default          green
color    normal        brightwhite      black

2013年5月23日 星期四

Xelatex, beamer for persentation of UVA 846 Steps

%\documentclass{beamer}
%\documentclass[slidestop,compress,mathserif]{beamer}
\documentclass[slidestop,compress,mathserif,xcolor=dvipsnames]{beamer}
\usetheme{Berlin}
\usecolortheme{seahorse}
%\usecolortheme[named=black]{structure}
\setbeamercolor{section in head/foot}{fg=white,bg=gray!20!black}
\setbeamertemplate{items}[ball]
%\setbeamertemplate{blocks}[rounded][shadow=true] 
\setbeamertemplate{navigation symbols}{}
%\setbeamertemplate{headline}{} %<= to suppress the headline otherwise section and subsection will be displayed in the navigation bar
\setbeamertemplate{footline}{}
%\beamersetuncovermixins{\opaqueness<1>{25}}{\opaqueness<2->{15}} 
\let\Tiny=\tiny
\usepackage{fontspec}
   \setmainfont{WenQuanYi Micro Hei}
    \setsansfont{WenQuanYi Micro Hei Mono}
    \setmonofont{WenQuanYi Micro Hei Mono}
    \XeTeXlinebreaklocale "zh"
    \XeTeXlinebreakskip = 0pt plus 1pt
\begin{document}
\setbeamerfont{subsection in sidebar}{size=\tiny}
\setbeamerfont{title in sidebar}{size=\tiny}

\title{\fontsize{28}{35}\selectfont UVA 846\\ \fontsize{14pt}{20pt}\selectfont Steps}
%\author{Author Name}
\institute{}

\frame{\titlepage}

\section*{題意}
\begin{frame}
  \frametitle{題意}
  \uncover<1-> {給你兩個點X、Y\\}
  \uncover<2-> {從X走到Y \\}
  \uncover<3-> {利用下列走法規則 \\}
  \begin{itemize}
        \uncover<4-> {\item 第一步和最後一步的距離一定是1\\}
        \uncover<5-> {\item 下一步走的距離與上一步走的距離相同\\}
        \uncover<6-> {\item 下一步走的距離與上一步走的距離多或少1單位\\}
  \end{itemize}
  \uncover<7-> {找出從X走到Y的最小步數即可\\}
\end{frame}

\section*{Input and Output}
\begin{frame}
  \frametitle{Input and Output}
    Input \\
    3     //The number of test cases \\
    45 48 // 1 1 1 \\
    45 49 // 1 2 1 \\
    45 50 // 1 2 1 1 \\
    Output \\
    3       \\
    3       \\
    4       \\
\end{frame}

\section{思考路線}
\subsection{}
\begin{frame}
  \frametitle{怎樣才可以做到最少步數?}
  \begin{itemize}
    \uncover<1->{\item{一次能走越大的距離越好}}
    \uncover<2->{\item{單邊一直加1?}}
    \uncover<3->{\item{左右邊一直加1?}}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{$n^2$ trick}
  1 + $\cdots$ + n-1 + n + n-1 + $\cdots$ + 1 = n$^{2}$
\end{frame}

\section{解題方法}
\subsection{}
\begin{frame}
  \frametitle{演算法}
  \uncover<1->{d = X-Y  // d 表示X到Y的距離 \\}
  \uncover<2->{n = $\lfloor\sqrt{d}\rfloor$  // n 表示取$\sqrt{d}$的整數部份\\ }
  \vspace{\baselineskip}
  \uncover<3->{if d == n$^2$ \\ \qquad return 2n-1 \\ \vspace{\baselineskip}}
  \uncover<4->{if 0 < d-n$^2$ <= n \\  \qquad return 2n \\ \vspace{\baselineskip}}
    \uncover<5->{if n < d-n$^2$ < 2n+1 \\ \qquad return 2n+1  \\ \vspace{\baselineskip}}
\end{frame}

\begin{frame}
  \frametitle{說明}
    \uncover<1->{第一種情況,當 d == n$^2$ \\
                 \qquad 最短的步數走法必然是1+$\cdots$+(n-1)+n+(n-1)+$\cdots$+1\\
                 \qquad $\therefore$ 最短步數為 2n-1 步\\
                 \vspace{\baselineskip}}
  \uncover<2->{第二種情況,當 d-n$^2$ <= n  \\
               \qquad 先利用第一種情況的解法,走n$^2$單位\\
               \qquad 剩下還有一個小於等於n的值,插入可放置的位置即可\\
               \qquad $\therefore$ 最短步數為 2n 步\\
               \vspace{\baselineskip}}
  \uncover<3->{第三種情況,n < d-n$^2$ < 2n+1 \\
               \qquad 先利用第一種情況的解法,走n$^2$單位,再插入n\\
               \qquad 最後在插入小於等於n的值\\
               \qquad $\therefore$ 最短步數為 2n+1 步\\}
\end{frame}
\subsection{}
\begin{frame}
  \frametitle{小證明}
  \uncover<1->{proof: d-n$^2$ < 2n+1\\}
  \uncover<2->{\qquad    \qquad $0  < n < \sqrt{d} < n+1$\\}
  \uncover<3->{\qquad    \qquad $n^2 < d < n^2+2n+1$ \\ }
    \uncover<4->{\qquad  \qquad $0 < d-n^2 < 2n+1$ \\}
\end{frame}
\end{document}

PDF:UVA 846 Steps(Result)

2013年5月22日 星期三

為何Lisp語言流行不起來?

為何Lisp語言流行不起來?

因素1:Lisp真的不是很好學,與C相比,它的變化性實在是太大了,有時候真的會有不知道怎麼寫才是最好的寫法!!

因素2:現代大部份的程式設計師,應該不太能叫做程式設計師了!為什麼不能叫「程式設計師」呢?
       因為現在大部份的設計工作其實都是交給專業的設計師去設計的,而「程式設計師」只是負責
       針對設計師的設計規格實踐出來而已。所以我覺得現代大部份的「程式設計師」已經不能稱為
       「程式設計師」了,應該稱為「程式實踐者」。做為一個稱職的「程式實踐者」來說,他們需要
       一套簡潔、明了的程式語言來完成他們的工作,像C、C++、Java等等,這些語言在我看來易讀、
      易懂、變化不大,並且大部份的「有程式經驗的人」,都應該會使用過這些語言,這樣一來在合作
      與溝通上也會比較方便與快速。由於以上這些原因,C、C++、Java便成為了「程式實踐者」的主流
      語言,然而Lisp呢?因為Lisp是針對「程式設計師」設計的語言,是一種富有創造性的語言,但相對
      來說,Lisp對一般的「程式實踐者」並沒有太大的幫助,反而因為變化性太大而沒辦法讓他們掌握,
      反而導致他們投入其它程式語言的懷抱!

可惜我好像連「程式實踐者」都達不太到

2013年5月20日 星期一

黑客與畫家

最近看完了黑客與畫家,覺得Paul Gram的確是一個很聰明的人,他深深的了解到,其實兩、三個互相的朋友一起來開發程式,才是最有效率的,不但如此,他還透過了Lisp,這神奇的語言來完成Viaweb。讓我不得不驚嘆他的眼光與他的想法,當然還有他的運氣啦!