Time of Update: 2018-12-04
(fn..)可以用來建立匿名函數,比如:user=> (fn [x] (+ 2 x))#<user$eval328$fn__329 user$eval328$fn__329@f41393>接受一個參數x,然後加上2. 上面的調用使用fn定義了一個函數,但是並沒有執行。如果要立即執行,可以加上括弧和參數:user=> ((fn [x] (+ 2 x)) 5)7但是更多時候我們希望函數先定義,以後反覆使用,可以結合def:user=> (def f (fn [x] (+
Time of Update: 2018-12-04
這裡我解釋一下我的術語--將flexigrid綁定到server-side請求你們會從互連網上發現有很多例子,它們都使用了url屬性,就像這樣:$("#displays").flexigrid( { url: 'load_all_displays', method:'POST', dataType: 'json', width: 400, height: 420, colModel:[ {display: 'check', name: 'check', width: 30,
Time of Update: 2018-12-04
最近在閱讀SGI STL原始碼,其中紅/黑樹狀結構的實現比較有技術含量,但標準庫裡面是捆綁了其中的allocator, iterator(Rb_tree專用的),使用很多模板變數,實現對多種資料類型的處理。這些情況對於有較紮實C++基礎的人來說不成問題,但對於一般初學演算法,而又沒有太好的C++基礎的人來說有點困難。並且SGI STL中的實現代碼寫得很精巧,節省代碼,也高效運行,但會使得功能不夠深厚的人讀起來還是比較費勁。
Time of Update: 2018-12-04
剛才從論壇上面看到一個文章,我之前也碰到過這一類問題,所以記下來,算學習到新的東西。從回答者給出的不同的代碼,也從另一個側面看到了這個問題的多種思維解決方案。還是有不少東西可以學得到的。 學習到的內容:stuff函數的應用問題: 有一個使用者表(姓名,編號,愛好) user(name,id,hobby),裡面的資料有: 張三 001 籃球 張三 001 電影 李四 002 足球 王五 003 上網 李四 002 看美女現在要求寫一SQL語句,使查出結果為:
Time of Update: 2018-12-04
有時候,我們想要編輯flexigrid裡的資料。一個原位編輯器是需要的,現在不需要再彈出一個對話方塊了。這裡我會展示如何做到這點。我使用了jquery-in-place-editor庫。請參考官方網站:http://code.google.com/p/jquery-in-place-editor/step1: 在定義flexigrid模型的時候,添加一個函數來處理flexigrid的列$(document).ready ( function() {
Time of Update: 2018-12-04
光勇哥那天聽說我要介紹《高效能人士的七個習慣》, 和我說: 這個的確有點難度. 我也感覺到, 對於社會經驗還不太豐富的我來說, 的確是一個不少的挑戰, 但我必須把這個挑戰看作一個機會, 一個與有經驗的高手交流的機會, 如果我不說出來, 誰知道我這麼想過, 如果你們沒聽過, 怎麼知道也許有人和你的想法是一樣的, 或者你已經完全掌握了這些高效的習慣, 可以給我們介紹更好的經驗. 爭取能通過這個主題目, 達到雙贏的目的. 說實話, 講這個主題目是有不少壓力的. 我也考慮過,
Time of Update: 2018-12-04
原理是1.遍曆flexigrid產生的table對象,2.根據一定的規則(取決於業務需求)尋找到某行的某列值就是要匹配的值,然後返回input對象3.對該input對象調用attr('chceked','checked')方法,設定為勾選狀態。例子代碼://return input jquery object if the power.name is found in one row//otherwise null will be returnedfindPower : function
Time of Update: 2018-12-04
WinForm DataGrid 的DataGridTableStyle用法Part 1 自訂資料來源方式的代碼,首先在winform裡拖一個DataGrid進去。 privatevoid Form1_Load(object sender, System.EventArgs e) { //定義資料來源--DataTable DataTable dt=new DataTable("mytable"); //添加列
Time of Update: 2018-12-04
最近領導聽說我對7habits這本書有興趣, 提議我做一個關於高效能人士的七個習慣的演講, 因為之前也受這本書的影響很深, 所以接受了. 但是有時候有體會了, 寫出來與大家分享, 演說, 卻也不是一件容易的事情. 帶著目的, 我重新認真重讀此書. 我注意到了在 如何善用本書 一節中, 有這麼一段, 正符合我現在的情況: 其次,我建議你改以老師的角色來閱讀,除了吸收還要能複述。在閱讀過程中,應有心理準備,預計在48小時以內,與人分享或討論讀書心得。
Time of Update: 2018-12-04
把事情分兩個維度判斷: 重要與不重要, 緊急與不緊急. 這樣可以把日常事情分為四個種類: 重要且緊急, 重要不緊急, 不重要且緊急, 不重要不緊急. 當我第一次看到這個主題目的時候, 沒有去深入瞭解其中的理論, 便自認為, 生活中都應該重點把握重要而緊急的事情! 然而, 深入讀了本書的理論, 再經過實踐, 重要而緊急的事情做好了固然是需要的, 但重要而不緊急的事情處理好了, 那麼, 重要而緊急的事情將會變得處理起來簡單有效! 這才是高效辦事的一個理想的解決方案.
Time of Update: 2018-12-04
由於div沒有disabled屬性,因此不能簡單的通過設定disabled屬性達到效果。通常div中包含了用於輸入的tag,比如文字框,選擇框,按鈕等。因此問題轉化為disabled div中的input tag.這就很簡單了。通過JQuery 選取器 將div下的所有的input進行屬性設定,添加或者刪除disabled屬性。參考下面我的例子代碼:disablePowerConfig: function () {$("#powerConfig :input").attr('disabled',
Time of Update: 2018-12-04
前面的REST API還要繼續改進,因為Ajax調用通常都需要JSON格式的響應,所以修改test.clj檔案如下:(ns my-website.rest.test (:require [noir.response :as response]) (:use [noir.core :only [defpage]]))(defpage "/rest/:id" {:keys [id]} (response/json {:userId id})):require 引入了noir.response,
Time of Update: 2018-12-04
在使用SVN做更新代碼的時候,有時會碰到無法更新的情況,一般會提示如下的資訊,說是: Working copy 'E:\mySVNDirectory' locked Please execute the 'Cleanup' command. 按上面的意思是說你只要Clearnup一下就可以再更新了,但是很多時候,當你再點cleanup的時候,它會再提示你已經被鎖定,無法更新。 原因有可能是 1. 有檔案正在更新或上傳,該檔案夾被鎖定。
Time of Update: 2018-12-04
最好的設定檔寫法是採用clj檔案,下面先把前面的a.xml檔案改成a.clj檔案,內容如下:{:mongodb "localhost" :listen_port 7777 :login_timeout 200 :check_timeout 200}這裡定義了一個map。注意,localhost是字串,必須用雙引號。這裡用空格分開每個key/value組成的pair.在test.clj檔案中添加一行代碼:(ns my-website.rest.test (:require
Time of Update: 2018-12-04
當前namespace*ns* 指向的是當前namespace,通常是user. 不過如果在自己應用程式,比如我的my-website目錄下運行lein repl,然後在運行*ns*,得到的當前namespace就不不是user,而是:my-website.server=> *ns*#<Namespace my-website.server>建立namespace有幾種方法,最簡單的是用ns宏。下面建立了一個檔案config.clj(ns my-website.config)(
Time of Update: 2018-12-04
由於logback暫時不能用,所以這裡先用log4j頂一下。project.clj檔案如下:(defproject my-website "0.1.0" :description "example rest service" :dependencies [[org.clojure/clojure "1.4.0"] [com.novemberain/monger "1.4.1"]
Time of Update: 2018-12-04
本篇應該是最後一篇了。給出一個完整的可以用於產品環境的代碼。現在修改一下代碼邏輯,讓server變成一個echo伺服器。收到16位元組長度後,再接受字串。然後返回16位元組長度給用戶端,再返回字串。16位元組長度類型是unsigned short,在網路傳輸的時候採用big-endian 位元組順序。字串採用utf-8編碼格式。先來看一下我的newLISP用戶端類比程式:(define (quit-for-error) ((println (net-error))
Time of Update: 2018-12-04
首先設定flexigrid為單選模式:$("#subUsers").flexigrid({dataType: 'json',width: 237,height: 267,singleSelect: true,colModel : [{hide: '_id', name: 'id', width: 158, sortable: true, align: 'left'},{display: email, name: 'email', width: 158, sortable: true,
Time of Update: 2018-12-04
緊接上一篇,有了checkbox,使用者自然會點擊,一種做法是等使用者選擇完成後,用一個儲存按鈕來檢查出所有被選項,然後執行儲存的操作。不過我這裡的方法更加即時,任何一個checkbox點擊後,都會觸發一次事件函數。這裡用到前面的單擊行事件的技巧:$("#powers tbody tr td").click(accounts.selectPower);上面的代碼註冊了selectPower為flexigrid行單擊事件。selectPower : function () {'use
Time of Update: 2018-12-04
哦,這個其實很簡單。因為選中行僅僅是一個tr上設定了class='trSelected' 。setFirstSelected : function (grid) {grid.children('tbody').eq(0).children('tr').eq(0).attr("class","trSelected");},上面的函數接收參數grid,