2014年3月3日

[訊真科技技術園地] GIT儲存檔案的方式:Git Pocket Guide




今天開會時提到,git儲存檔案的方式在這裡有比較詳盡的說明:

Every version of a file in Git is represented as a whole, with its own blob containing the file's complete contents. 
A fundamental design element of Git is that the object store uses content-based addressing. 
blob存的是整個檔案,但是它是 content-based addressing、也就是說,相同的檔案內容只會被儲存一次。

當前的檔案,如果有在之前的commit被儲存下來且沒有異動,那將不會儲存、而是指向先前commit時,該檔產生的SHA1 ID reference
詳參:
http://chimera.labs.oreilly.com/books/1230000000561/ch01.html#_object_ids_and_sha_1
--
The usefulness of hash-based object identifiers in Git depends on treating the SHA-1 hash of an object as unique; we assume that if two objects have the same SHA-1 fingerprint, then they are in fact the same object. From this property flow a number of key points:

Single-instance store......

|
|
|
ˇ
如何利用Dropbox將專案納入GIT版本控制

  1. switch to your working directory
  2. git init
  3. git add .
  4. use 'git status' to confirm the status
  5. git commit -m "init"
  6. use 'git status' to confirm the status
  7. switch to the dropbox folder, ex: cd ~/Dropbox/repos
  8. make a remote repo: mkdir _repositoryName.git
  9. git init --bare _repositoryName.git
  10. switch to your working directory
  11. git remote add origin _repositoryPath, ex: /home/erica/Dropbox/repos/repositoryName.git
  12. git push origin master
and if you want to checkout the project: git clone _repositoryPath _projectname

[訊真科技技術園地] New Java Time (Java8 SE)


分享一下最近看過的文章

New Java Time (Java8 SE)
http://ingramchen.io/blog/2014/02/brand-new-java-time.html


文章擷取

----------------------------------------------------------------------------------------------------------------

java.time.* API

首先來看 java.time 提供的新 API,它引進相當多的 class。好在常用的就只有幾個:LocalDateTimeInstantZoneOffsetClock。轉換的第一步驟是將過去使用 Date 物件的地方,都換成 LocalDate*,下面是一個常見的帳戶 entity:
public class Person {

  String name;
  LocalDate birthday;
  LocalDateTime createTime;
  LocalDateTime lastLoginTime;
  //你幾歲
  int age(LocalDate refDate) {
    return Period.between(birthday, refDate).getYears();
  }
  //生日到了沒?
  boolean isBirthday(MonthDay refDay) {
    return MonthDay.from(birthday).equals(refDay);
  }
  //距上次登入已經過了幾天
  long lastLoginDaySince(LocalDateTime refTime) {
    return Duration.between(lastLoginTime, refTime).toDays();
  }
}

//測試
@Test
public void variousDate() {
  LocalDate birthday = LocalDate.of(1985, 3, 16);
  LocalDateTime createTime = LocalDateTime.of(2014, 2, 3, 5, 0);
  LocalDateTime lastLoginTime = LocalDateTime.of(2014, 2, 7, 19, 11);
  Person person = new Person("Ingram", 
      birthday, createTime, lastLoginTime);

  LocalDate today = LocalDate.of(2014, 2, 28);
  assertEquals(28, person.age(today));
  assertTrue(person.isBirthday(MonthDay.of(3, 16)));
  LocalDateTime now = LocalDateTime.of(today, LocalTime.of(14, 51));
  assertEquals(20, person.lastLoginDaySince(now));
}



2014年3月2日

[訊真科技技術園地] GitHub新推出的程式編輯器

Dear all,

分享一些技術相關的資訊。

GitHub近日推出的一款程式編輯器,目前正在封測。

他宣稱是一款不同凡響的產品,希望改善舊有編輯器對初學者不友善的缺點,
「讓小學生從第一天開始學習程式到變成超強駭客時都能使用的編輯器」。

有Mac的朋友可以先下載試用。   https://atom.io/



2014年1月29日

又一篇炫耀文:尾牙之後的訊真流水席


訊真科技的優良傳統之一,乃是尾牙抽到大獎的幸運捧油們會自動自發的掏錢出來請公司同仁吃吃喝喝,今年也不例外。  謝謝各位大德的愛心和慈善心,也謝謝福委W哥的辛苦籌畫~~~

話不多說,以下就用圖片來向大家說明當日盛況吧    可惜小編這次沒有跟到 (咬手帕)

這是開席前的某一角

 





天兒啊~~~ 連續吃了那麼多天流水席,這些人怎麼都還吃得下去啊??  


宴會中最不可或缺的東西 ---- 呼乾啦~~~


喝酒之後寫code好像會變得更厲害??   (完全是錯覺)
 


賭性堅強的賭徒們在酒精的催化下漸漸露出了可愛的真面目~~  (原來是老闆帶頭 XD)
 


看到這幾張圖片讓小編不勝唏噓,感慨果然進訊真只有兩條路:一是發胖,二是瘦不下來
  (這樣會不會嚇到人?  小編開玩笑的啦,你看大家都那麼苗條是吧?!)

號外號外:年後還是有下午茶可以吃啊~~~

運動社團廣告文:減肥跑步團要開團啦!!!


2013年12月24日

聖誕夜前戲之下午茶

20131224 聖誕夜前戲之下午茶

在訊真工作的眾多好處之一就是員工是絕對不會被餓到

那天 R大 興緻沖沖的跑來問我要不要去吃蛋糕,我說「好啊,當然沒問題,哪來免費的蛋糕」「不用管,吃就對了!」

我們搭電梯上樓後,發現是高級的巧克力蛋糕跟起士蛋糕。
沒錯,在這聖誕節前一天,公司優秀的行政團隊為了體諒員工的辛勞,特別幫我們準備了下午茶甜點,讓寫 Code 之餘還可以順便訓練身形讓體型圓滿... orz  

於是這聖誕夜的前一天下午就在這愉快的心情中渡過。






2013年10月28日

訊真慶生趴之姐接生日快樂


訊真科技眾多的說不完的美好傳統之一乃是舉辦不怎麼驚喜的驚喜生日趴,主辦人為了獻給壽星一個難忘的回憶,絞盡腦汁設計慶生橋段,務求保密、驚喜、溫馨三效合一,但敵手的精明多疑和火眼金睛卻往往讓surprise提前破局。
這一次G小姐善用敵明我暗的優勢,設下了一個又一個的局,到底結局如何? 驚喜不驚喜? 就讓我們繼續看下去……

------------------------------ (轉圈圈的分隔線) ------------------------------

10/28,是身為PM但總自稱打雜小妹的T姊接生日。

T姊接平日待我很厚,來小慶祝一下她的生日吧』,
於是立馬手刀衝刺奔出帶回一個8吋蛋糕,再迅速想了個非常簡單的秘密計劃:


1.      請兩位捧油『請幫忙找跟她熟的捧油們,17:30六樓大會議室集合』
原設想大概十幾人,但這兩人問我還可以找誰,我說不設限,想找就找。結果啊結果,來了八百人這麼多!!!
好吧,公司是沒那麼多人,但也來了20~30人,擠得會議室滿滿滿,皇上還說搞這麼盛大之後怎麼辦,哈哈~只能說T姊接真是魅力無窮啊!!!

2.      串聯大主管SP,請他假開會之名行慶生之實找她。
結果SP開會中,還是在原訂要慶生的大會議室中!!! 於是變成了請公司最年輕的總機正妞V妹妹立馬假裝代通知壽星,再直奔會議室跟SP確認17:30要慶生,爽快答應。

3.      Happy Birthday!!!

                    |
                    |
                    |
                    |
                  But

本來啊本來,這一切非常乾單,但壽星本人自己不知哪裡生的疑心,搞得大家有點兒小慌亂。
1.      接到開會通知,壽星想起有欠東西還沒給,心生內疚之下,立馬傳訊息問SP開會的事,但SP沒帶電腦,所以 她˙起˙疑˙了˙!! 



(他只是沒帶電腦啊~姊姊~為何這樣要起疑??)


2.      時間一到,她乖乖前往六樓,發現會議室有人,又非常難得地不推開進去問,反倒直奔SP辦公室,發現人不在, →_→   所以她起疑了!!   
(因為他人在裡面開會當然不在辦公室啊~到底為何這樣要起疑??)

壽星起疑後,開始在六樓繞場閒晃,已經超過約好的17:30了,害得準時奔來卻來不及躲起來的捧油們跟著不知所措,只好開始裝忙碌(這時的人心浮動才是真正該起疑的時機,壽星反而不怎麼起疑XDDD),而端著蛋糕的小妹我一開始非常機靈地棄茶水間選洗水槽小空間裡點蠟燭,不然壽星這樣繞場閒晃早就被她一眼望穿(~),但她一靠近我這邊,超害怕她神來一筆打開那扇小門,就會噹啷地發現了,眼看著蠟燭都快滴壞蛋糕了,壽星終於默默承認是自己多疑了而乖乖走進會議室,危機立刻解除  *@_@*3分鐘內眾人從各樓層蜂擁而至,那興奮的騷動直比排隊進場看阿妹演唱會的嗨度哪!!   

根據壽星描述,進了會議室的門,完全沒跟我RAE過稿的SP還真的跟她開起會,壽星的疑心至此完全消滅。在SP還沒露餡前,藏了蛋糕敲了門問能不能進去,SP立刻說『就進來一起開會啊』,內心不禁讚嘆這公司的大家們都好有戲胞啊!!!

原本想搭配現場吉他自彈自唱著生日快樂歌進場,但內斂文青J先生太害羞,就派現場滿滿的人兒們出動人肉和聲機,再加上18歲的蛋糕,壽星本人立刻感動噴淚+心花朵朵開 ~>_<~+ 
驚喜慶生趴踢成功!!!  (萬歲~萬歲~~轉圈灑小花)




壽星本人事後表示他那一整天有偷偷在防範大家會做些什麼,所以才會疑東疑西,哼哼~哪可能那麼簡單被妳發現呢?!!!挖哈哈哈哈~    ↖(^ω^)↗


最後,最叫小妹驚嘆的是因為是臨時發動的慶生趴,也沒想過要請款,想說大家開心就好,但參加的每個人居然搶著一起付蛋糕錢,集資後居然還夠壽星連喝一個星期的飲料!!!說到底,壽星本人的魅力以及同事們的感情還真是好到啵兒棒啊!!!





2013年9月23日

炫耀文:中秋節過後


        中秋節連假過後,愛吃的同事們紛紛貢獻出各地的特產,美味又有特色的名產成功地削弱急著消腫的人們的抵抗意志,在深深地滿足了口腹之慾後,名產就只剩下圖片中看得到的部分。嗯~~大家的食力實力還是很堅強的!

         瞧瞧這圖片,看著看著挺賞心悅目的...... (硬是要說話的小編請忽略卡路里這東西,謝謝!)
     

編按:此為炫耀文無誤