2019年4月14日 星期日

Gitlab 備份與還原

目前公司還沒有考慮升級硬體,想想還是要做多點備份以防萬一

參考 : https://docs.gitlab.com/ee/raketasks/backup_restore.html

2019年3月23日 星期六

Docker 安裝流程

原本的 Docker 安裝流程是寫在另一篇文章中,後來覺得有必要寫更詳細一些
所以決定再寫一篇

2018年11月25日 星期日

GitLab 相關服務的設定

GitLab 相關服務的設定

  • SMTP
  • HTTPS

2018年11月20日 星期二

GitLab 安裝流程 (Docker Image)

新版的 GitLab 安裝流程已經相當簡單了
原本是打算架實體服務,看完官方教學後,馬上投入 Docker 的懷抱

參考文件 : https://docs.gitlab.com/omnibus/docker/

2018年11月19日 星期一

GitLab 架站心得

最近又想把專案做自動化流程,這次看中了 GitLab
原因是:

  1. 內建 CI/CD
  2. Git Issue Board 似乎可以取代 Mantis,比較適合目前的開發流程
  3. GitLab Runner 支援 Docker Image
    • 把編譯環境打包成 Docker Image,統一編譯環境
  4. 想導入 Code Review 機制
    • 主要是想把 Master Branch 鎖住,穩定品質
  5. Jenkins 已經玩過了,想玩點不一樣的 (不能說的袐密)

2018年11月4日 星期日

關於自動化的兩三事 - 後話

這篇是關於自動化的兩三事的後續,而自動化流程這件事到今天也完全沒有進展。主要原因大概是某些人只是想做產品,而不是想把產品做好。所以我在卸任產品的負責人之前,也都沒有主動提起自動化流程了。
一部份原因是被需求壓得喘不過氣,另一部份原因是失去了熱情

某一天突然發覺,這次的失敗打擊超乎我的想像!在無意識中我不願想起這個專案,自然也從沒有思考或和其它人討論這個專案失敗的原因。我明白如果不去思考失敗的原因,那麼未來就還會再度發生類似的情況;但我不知道的是…原來承認失敗真的不是一件容易的事

2018年2月25日 星期日

如何保護你的 Python 程式碼

在今年 2 月底時,公司的讀書會輪到我報告了
本來是想講怎麼破解得到 Python 的程式碼,後來覺得很多人會聽不懂
而且我們公司的是做安全的,教怎麼保護的方法還要正面一些

2017年8月1日 星期二

LeetCode題解 - 4. Median of Two Sorted Arrays [Hard]

There are two sorted arrays nums1 and nums2 of size m and n respectively.

Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).

2017年7月13日 星期四

LeetCode題解 - 3. Longest Substring Without Repeating Characters [Medium]

Given a string, find the length of the longest substring without repeating characters.

LeetCode題解 - 2. Add Two Numbers [Medium]

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

LeetCode題解 - 1. Two Sum [Easy]

1. Two Sum


Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.

LeetCode題解 - 前言

昨天半夜睡不著覺,主要是前天co-work後的心情很差
算一算,從年初到現在,竟然都是寫文件
大半年沒寫到code了…

2017年4月4日 星期二

快速架一個 CI Server - Jenkins 設定

這是第一次使用CI Server,當然也是第一次使用 Jenkins
它的選項非常多,實在是無法在短時間內完全理解

本篇是慢慢摸索之中,所留下的紀錄
未來有心得時,會再持續更新吧

2017年3月31日 星期五

快速架一個 CI Server - 其它環境建置

安裝其它環境時的筆記,以後也許還用的著呢

Environment Setup

  • MySQL 5.7
  • Maven 3.3.9
  • Sencha Cmd & ExtJS

2017年3月30日 星期四

快速架一個 CI Server - Jenkins 環境建置

本篇主要目的為建立 Jenkins 環境,關於 Jenkins 設定則另外介紹

Environment Setup

  • CentOS Linux release 7.3.1611 (Core)
  • JDK 1.7.0.131
  • Tomcat 7.0.76
  • Jenkins 2.48

Linux 作業系統就不多說了,我是安裝在 VM 上
Jenkins 官網中並沒有說明記憶體最低需求,但建議給 16GB (您真是愛開玩笑呢)
我給它 6GB,Jenkins plugins 不要裝太多還夠用

關於自動化的兩三事 - 前言

我在今年成為了一個產品的負責人,包含規劃各個功能將在什麼時間點會實現等等的
說實話,根本就是個坑
即沒有升職、也沒有加薪、雜事如雪片飛來…諸如此類的,並不是什麼嚴重的問題

該產品是 Web based service,似乎是我去年進公司那時候開始進行開發的吧
我有幫這個產品維護兩隻抓網的小工具,也正是我最初學習Python的契機
在成為該產品負責人之前,除了爬網工具之外,我甚至連網頁都沒打開過
簡單來說,就是一無所知

呵呵

2017年2月27日 星期一

Python setup.py 簡易研究

最近在公司開發 Python 專案時,有一些需求

  1. 保護 Source code 的方法。網路上其實可以找到很多方法,像是代碼混淆、加密、打包成一個可執行檔以及利用 Cython 將 Python 檔案轉換為 C,然後編繹成 Library 檔案 (Windows 為 pyd 檔案 , Linux 為 so 檔案)。最終採用了最後兩種方法
  2. 大多的專案最終都會有重覆的程式,所以想寫一個共用 Library 供開發使用

上述兩點都可以使用 Python Setup.py 來實現,所以要先了解 Setup.py 怎麼撰寫

2016年11月24日 星期四

Python 反編譯第一次就上手 ~ Pyinstaller reverse engineer

觀念要先釐清

  • Disassembler
    • A disassembler is a software tool which transforms machine code into a human readable mnemonic representation called assembly language.
  • Decompiler
    • Software used to revert the process of compilation. Decompiler takes a binary program file as input and output the same program expressed in a structured higher-level language.


這裡就不說明 python 的編譯、執行方法
可以上網找找 pyc, pyo 的資料,他們說明的都比我清楚

2016年10月25日 星期二

Git 自動版本號

以前公司都是使用SVN,產品都是自已先取一個名字,再加上流水號
然後在 Release Note 上註名 SVN REV (版本號)

前些日子突然想要自已寫一個自動產生版本號的腳本
利用 Git 實作一個簡單的版本管理