Fortinet vs Open Directory of Mac OS X Server

Posted by on | | 0 意見
        好久沒有玩一下系統,想說難得有這麼多台Mac的存在,應該開始架構Mac的管理環境,整合一下現有的服務,也減少MIS的負擔。

        先把Mac Server架起來,不到600元台幣,就把server下載,然後安裝好,再然後...(腦中空白)

        也還沒想好做什麼,先來查一下台北市圖書館,看有沒有什麼mac server入門的中文書,來個快速入門之類的,嗯...結果是沒有。

        那...先把Open Directory(OD)架起來好了,結果發現,要先把DNS架起來,才能開啟OD。如何設定OD,就下回有空閒時,再紀錄了;看起來架設不難,多摸幾下大概就了解它的關係。因為OD沒什麼可以設定的,只有開啟,建立新的OD檔,備份OD檔。

        但沒有玩過LDAP(OD),還不知它到底怎麼運用,於是就想說先和Router(FortiNet)的VPN登入整合看看好了,從過程中來再了解LDAP。

        所以先來紀錄一下,FortiNet vs OD的整合過程。網路文章很多,也不會太難找。設定目標是,只要是在OD特定群組的User,都可以使用VPN。簡易記一下自已在FortiNet的設定順序:
  1.         已經先建立好SSL-VPN的功能。
  2.         建立LDAP認證。(用戶設備-->認證-->LDAP)
  3.         在原本的VPN群組中,加入遠端群組。(用戶設備-->用戶-->用戶群組)
        以上是簡述,但過程中,著實踏了好幾個雷。

雷1:建立LDAP認證
        在設定畫面裡有一個選項:“通用名稱標識”
        原本一直沒搞懂它的用途,後來才了解,是要設定Forti從OD找Users資料時,要比對LoginID是在OD Schema中的哪個屬性;最後設定為“通用名稱標識”=“uid”才登入驗証成功。

雷2:也是在建立LDAP認證時
        在設定畫面裡有一個選項:“Bind Type”,有三個選項:簡單模式,匿名,正規模式
        不了解的是為何選“簡單模式”和“匿名”時,結果是一樣的。最後還是照網路的文章,選擇了“正規模式”。

雷3:最雷的是用戶群組的設定
        因為不想在FortiNet一個一個的user,來設定可否SSLVPN登入。想要指定在OD中,只要是符合的群組,就可以登入,但在設定“用戶群組”後,卻沒有作用(應該是Fortinet也不知如何從OD來驗證User vs Group)。只好東找西找,才發現原來還要改FortiNet的設定檔。

        要用CLI的方式變更及編輯,變更方式簡記如下:
  1. config user ldap //執行設定user的ldap
  2. show //顯示目前的設定
  3. edit "Open-Directory-Name" //編輯已建立的設定檔,記得改成你取的名字
  4. set group-member-check group-object //這行主要是告知Fortinet要check群組
  5. set group-object-filter "(&(objectclass=posixGroup)(memberUid=*))" //這行主要是告知Fortinet,查詢群組時要用的filter,如何找到群組中的user list
  6. end //確認並儲存
測試,連線成功,開心

【參考資料】
  • https://forum.fortinet.com/tm.aspx?m=117909
  • https://discussions.apple.com/thread/2025062?start=0&tstart=0







關於團隊組組的一些概念

Posted by on | | 0 意見
關於團隊組組的一些概念:

一個小組,應該有多少成員?(這和"人月神話"書中提的原則一樣)
http://blog.idonethis.com/two-pizza-team/

Two-Pizza Team(2PT)的用意:divisional vs functional
http://blog.jasoncrawford.org/two-pizza-teams

Responsibility 與 Accountability 的不同
https://dotblogs.com.tw/huanlin/2008/04/23/3233

Scaling Agile @ Spotify
https://www.scribd.com/document/113617905/Scaling-Agile-Spotify?ad_group=72705X1553005X02f4fb5a2588bbc707d839fbc691d0a1&campaign=Skimbit%2C+Ltd.&content=10079&irgwc=1&keyword=ft750noi&medium=affiliate&source=impactradius

團隊,不是分工的組織

Posted by on | | 0 意見
自已變成大主管後,發現思考的項目很管理面,越來越抽象的感覺。
最近和部們,分享一個觀念:

我們是一個團隊,不是分工的組織。
我們是一個團隊,不是分工的組織。
我們是一個團隊,不是分工的組織。

首要記得,我們是“團隊”。

“團隊合作”和“分工合作”,這二個是不一樣的概念;二個不同的概念,運行出來的組織,會是不一樣的結果。

“分工合作”,很容易讓組織被分化,因為分工的角度,只是為了把事情分派下去,結果只是讓人習慣顧到份內的事情,只要自已做好而已;進一步就會出現“本位主義”,認為別人應該要做好什麼事,再加上沒有常常有效溝通,慢慢的組織就會死了。所以分工可以創造效率,但它可能會影響溝通,進而影響信任,最終破壞團隊的向心力。

關於“溝通”,下次再和大家分享,這次主要是和大家提“團隊合作”。

“團隊合作”,不只是為了把事情完成而分工,團隊中,分工的是因為“補位”的概念。組織越大,會發生的情況也越多,越需要更多“補位”的動作。有“補位”意圖最明顯的組織,就是運動種類的團隊,像是棒球,一顆球打到1壘和2壘中間,這是誰要去接呢?有很多情況要判斷,但絶不能只有分工的想法。

所以“團隊合作”有一個重要的地方,就是大家的目標是一樣的,因為要完成團隊共同的目標,要最大效益化團隊的成果,當焦點放在團隊目標時,“補位”概念就會出現。

當公司成長越大,事情變的越多,組織的人越多,反而會很容易讓人忘了團隊的目標,變成見樹不見林的局面;很容易只看到分工,忘了共同的目標,忘了“補位”,久了團隊就僵化了。

“團隊目標”,它其實沒有太繁雜或太艱深,只要記得:

  • 在平常工作時,要常常想想團隊目前的目標。
  • 當發生問題時,想想自已如何和大家一起面對和承擔。
  • 有機會發生時,思考如何創造最大的團隊效益。


舉個例子,毎當開發一個案子,PO會專注做PO的工作,PG會專注做PG的工作,QC會專注做QC的工作,PO,PG,QC的目標是一樣的,目標就是把這一個案子做出有效成果。所以當需求發生變動時,不會是只有PO或SA負責,而是大家一起面對需求的變動;做法上可以有直接改變,也可鎖住不動;然而在一個共同的目標時,需求是可以變動的,因為只要是能創造最大成果效益的變動,大家就會一起努力完成。

我個人也很容易忙於許多的事情,陷入事情的因果關係,卻忘了團隊的目標,所以大家要時常提醒大家,不要忘了我們是“一個團隊”。“團隊目標”,不要因個人而影響了“團隊效益”,記得不是只有“分工合作”,還要彼此互相“補位”。

Onnie

如何在 macbook pro 中, 用virtualbox ,灌windows後,能使用macbook pro的webcam呢?

Posted by on | | 0 意見
找了好久,終於能成功了,步驟如下:

1. 要確認安裝 VirtualBox Extension Pack .

AngularJS Post to PHP

Posted by on | | 0 意見


在沒有特別修改程式的情況下,php 會拿不到 angularjs post 的資料,主要是因為在 post 傳送時,二者定義用的 content-type 不同,所以就發生拿不到資料的問題。

那不同的地方在哪裡呢?

首先來看AngularJS,
AngularJS 預設是用 content-type = application/json 來傳送資料,傳送的格式會變成:

POST / HTTP/1.1
Content-Type: application/json

{'id':'12341234'}


再來是PHP,
PHP 的 $_POST 是用 content-type = application/x-www-form-urlencoded 來接收資料,接收的格式會變成:

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded

id=12341234

不同的content-type,就有不同的request message body。

可以參考前輩的說明:
What's the difference between “Request Payload” vs “Form Data” as seen in Chrome dev tools Network tab

所以解決方式有二:

  1. AngularJS改用application/x-www-form-urlencoded來傳送資料。
  2. PHP改用application/json來接收資料。




一些Solr常用的語法參數說明

Posted by on | | 0 意見

一些Solr常用的語法參數說明:

//=================================================
//查詢的欄位及內容
//格式 欄位名稱:查詢內容
//例如:q=name:一日遊 and name:*老街 or id:2
q – 查詢字串,必須的。

//=================================================
//要使用filter query,就要开启filter cache,
//并确保filter cache能容纳所有的filter query
//因為solr是按每个fq参数做cache
//q完才會再fq,
//例如:fq=name:一日遊
fq – 在q查詢符合結果中同時是fq查詢符合的。(fq=Filter Query)

MSSQL 定序(Collation) - Chinese_Taiwan_Stroke_CI_AS

Posted by on | | 0 意見

mssql 資料庫內的定序方式要一致,否則會無法查詢資料,
錯誤原因就是因為 定序方式不同,而無法執行 sql


查詢 資料庫 的 定序方式

SELECT name, collation_name
FROM sys.databases
WHERE name = N'DataBaseName'


查出所有 資料表 定序設為Chinese_Taiwan_Stroke_CI_AS的欄位

SELECT Table_Name,CoLumn_name,collation_name,*
FROM INFORMATION_SCHEMA.COLUMNS
WHERE collation_name='Chinese_Taiwan_Stroke_CI_AS'


請參考:

Set or Change the Database Collation

如何做 MSSQL 定序(Collation) 轉換

如何讓 IIS 的 SSL 支援到 TLS1.2 和 Forward Secrecy,在 SSLLABS 上得分在 A 以上呢?

Posted by on | | 0 意見


如何讓 IIS 的 SSL 支援到 TLS1.2,在 SSLLABS 上得分在 A 以上呢?

主要是參考這一篇,真的太感動了!!!
Achieving an A+ grading at Qualys SSL Labs (Forward Secrecy in IIS)


這真的是太少會碰到的問題,
最近又趕著讓我好幾年沒碰的 windows iis server,能符合對方的要求,
真是沒少燒了幾天的肝,

最簡單的方法是:
1.一定要升級到 windows 2008 R2,才有支援 TLS1.2

2.下載 IIS Crypto tool
https://www.nartac.com/Products/IISCrypto/

3.點選‘Best Practice’

4.取消支援 SSL 3.0, TLS_RSA_WITH_RC4_128_SHA 和 TLS_RSA_WITH_3DES_EDE_CBC_SHA

5.點選 " Apply ", 並重開機即可!

幾個 json api 設計的參考資料

Posted by on | | 0 意見


RESTful API 设计指南
http://www.ruanyifeng.com/blog/2014/05/restful_api.html

A standard for building APIs in JSON.
http://jsonapi.org/

REST Assured - Hypermedia APIs with Spring MVC
http://java.dzone.com/articles/rest-assured-hypermedia-apis

REST+JSON API Design - Best Practices for Developers
http://www.youtube.com/watch?v=hdSrT4yjS1g

HATEOAS
http://en.wikipedia.org/wiki/HATEOAS

DR. Roy T. Fielding - Representational State Transfer (REST)
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm

範例 - How to GET a Cup of Coffee
http://www.infoq.com/articles/webber-rest-workflow

讓 IIS7 支援 32位元的應用程序

Posted by on | | 0 意見


最近再移動 .net 的 web app,
從 windows 2003+iis 6 移到 windows 2008 R2 + iis 7,
發生了許多問題,
其中一個是,有些dll會無法載入,
can not load model xxxxxx,
原來是iis7預設只支援 64位元的 DLL, 所以也要手動打開對 32位元的支援。

讓 IIS7 支援 32位元的應用程序 (DLL):

進入command模式,輸入底下的指令即可!

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1


StartUp,創業初期,可以省成本的一些免費資源 - 整理中

Posted by on | | 0 意見


主機
https://www.openshift.com/

圖片
http://cloudinary.com/
https://www.flickr.com/
http://www.picasaweb.com/

DNS
http://www.godaddy.com/
http://www.zoneedit.com/

訊息
https://www.hipchat.com/
http://www.mailgun.com/
https://parse.com/

版本控管
https://bitbucket.org/
https://github.com/
http://cloudforge.com/

CDN
https://www.cloudflare.com/

vi 輸入方向鍵上下左右,會出現ABCD

Posted by on | | 0 意見
vi在“輸入模式”(inser mode)時:
1.輸入方向鍵會出現ABCD
2.倒退鍵(Backspace)沒有用

可以在user的家目錄下,新增檔案“.vimrc",在檔案中加入下列2行內容:
set nocompatible
set backspace=2

存檔離開。
再重新使用vi時,方向和倒退鍵就有用囉~

ci session database table for postgresql

Posted by on | | 0 意見

CREATE TABLE  ci_sessions (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(45) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity bigint DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id)
);

CREATE INDEX last_activity_idx ON ci_sessions(last_activity);

如何讓 Codeigniter 支援 CAS ?

Posted by on | | 0 意見
環境:ubuntu + php


1.安裝 php pear

apt-get install php-pear


2.安裝 php curl

apt-get install php5-curl


3.用pear安裝 phpcas

pear install  http://downloads.jasig.org/cas-clients/php/current.tgz


4.在codeigniter中,安裝phpcas的libs

請參考:

CAS Authentication Library for CodeIgniter






yii 如何隱藏 index.php

Posted by on | | 0 意見


1.apache開啟 rewrite 模組:
sudo a2enmod rewrite

2.修改apache設定檔,允許.htaccss:
/etc/apache2/sites-enabled/000-default:

  ...
    AllowOverride All
    ...

vagrant 共用目錄 的權限

Posted by on | | 0 意見


Vagrant 操作時,本機和vm之間會共用一個目錄,在vm上,是掛在/vagrant下!

但在vm裡,沒法chmod 或 chown /vagrant裡的任何東西,就造成一些任務上的不便,
找到一個方法,就是在本機中,修改Vagrantfile的設定,指定權限:

PostgreSql如何新增使用者

Posted by on | | 0 意見

psql 進入後,下底下的指令即可:

CREATE USER username WITH PASSWORD 'password';
ALTER USER username  WITH PASSWORD 'password' VALID UNTIL 'infinity';
ALTER USER username  WITH PASSWORD 'password' VALID UNTIL 'Jan 31 2030';

參考資料:
http://www.postgresql.org/docs/8.0/static/sql-alteruser.html
http://www.cyberciti.biz/faq/howto-add-postgresql-user-account/

mac + svn , eclipse/aptana/titanium + subclipse , javaHL

Posted by on | | 0 意見


mac上,我常用的開發工具之一就是 eclipse 類的工具,像是aptana,titanium...,
習慣用的版本控管是svn,
這裡紀錄一下需要安裝的plugin。

我mac上的subversion版本是:
$ svn --version  --> svn, version 1.7.10 (r1485443)

  • eclipse上要裝個pluging - subclipse:
http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA

裝好後,因為subclipse需要 javaHL 這個lib,但mac上的svn預設是沒有,
我是透過 homebrew 這個套件管理程式來安裝,

sublime text - 好用的文字編輯器

Posted by on | | 0 意見

這款軟體,真的是蠻好用的,
跨平台,支援windows,mac,linux,
而且終生免費試用,
只是3不5時會跳出donate的訊息,就看您本人用的滿不滿意囉~

怎麼用?
看底下的介紹,功力就應該可到某種呈度的火候~

官網 - http://www.sublimetext.com/
中文文章教學 - http://docs.sublimetext.tw/
英文影片教學 - https://tutsplus.com/course/improve-workflow-in-sublime-text-2/

好好學囉~

PostgreSql 如何本機登入呢?

Posted by on | | 0 意見

** OS系統:
本機只能用 postgres 這個user,來操作 postgresql
#sudo -s
#su postgres

進入 postgresql 的指令:psql
#psql