2018-02-22

Extended Tcl (TclX)

Extended Tcl (TclX)


這是 flightaware 修改的版本(for Tcl 8.6),更新了 build system,並且移除了 TkX extension。我在 ./configure 完以後順利編譯,但是使用的時候有點問題,會有 symbol 找不到。經過檢查以後,發現是 configure 需要正確加入新的檔案才行(如果一開始就先執行 autoconf 則不會有此問題)。我看了一下說明以後,發現沒有指定使用 autoconf,送出一個修正的 pull request,flightaware 也接受了這個小修正。

那麼為什麼我會需要 TclX 呢?因為我最近在試著簡化我自己的 Golang 環境(* 雖然我很少寫 Go,但是我需要測試某些東西的時候可能會需要,所以放一份),如果使用 openSUSE build service 提供的新版本,會一次安裝預料之外的版本數目,但是如果是使用穩定版本則沒有這個問題,只是要嘗試新版本就比較不方便(有可能是因為要使用 Go 來編譯 Go 本身所造成的影響)。

後來我想到,我可以寫一個 script 從官網下載以後解壓縮到指定目錄,如果檢查 .profile 不存在或者是沒有相關的環境變數,就建立檔案或者是寫入相關的環境變數,最後設定 .profile 的 owner 和 group。為了使用 chown,所以需要 TclX 才行。

2018-02-17

tcllib 1.19

在剛才我在看資料的時候,發現 tcllib 1.19 已經釋出了。


Overview ======== 7 new packages in 6 modules 52 changed packages in 35 modules 15 internally changed packages in 10 modules 359 unchanged packages in 105 modules 443 packages, total in 130 modules, total

2018-02-10

tdbchikaricp

tdbchikaricp: Tcl DataBase Connectivity Driver for HikariCP library


HikariCP is a solid high-performance JDBC connection pool.

不過這裡比較像使用 HikariCP 提供的連線方式之一(讀取設定檔案)來連線,並沒有使用 JDBC connection pool 的能力。大多數的 code 來自 TDBCJDBC,因為連上資料庫以後的行為就跟 JDBC 很類似了。


2018/02/12 更新
後來我才想到,其實可以在外面生成 HikariDataSource 物件再傳進來,所以有做一點小更新。

2018/02/12 更新
然後我又想到,既然 tdbchikaricp 實作在外面生成 HikariDataSource 物件再傳進來的功能,如果我小改寫以後,也許只要有支援 DataSource interface 的 library 就可以套用這個方式。晚上我會使用 Alibaba Druid 來測試,然後在 Github README.md 上寫如何使用的說明。

2018-02-04

TickleSharp

TickleSharp


這是我嘗試使用 .NET core 2.0 和 Tcl/TK 8.6 去編譯 TickleSharp v0.1 的結果。這是 C#  使用 P/Invoke 呼叫 Tcl/Tk functions 的套件,我發現…… 使用 .NET core 2.0 和 Tcl/TK 8.6 去編譯以後還是可以用。

只有在 openSUSE LEAP 42.3 上測試。

2018-01-31

Dockerfile for openSUSE, Tcl and Java

docker-tcl-java


本來是使用 -v 來對應 Docket Host 的目錄與 Docket image 裡的目錄,但是後來我發覺如果我只是要測試 tclBlend 在 Open JDK 9 的環境能不能編譯,我應該要做的是安裝 git 然後在這個環境下使用 git clone 取得 source code,再來測試是否可以編譯。

這樣就解決了我自己的困擾。因為一些使用的軟體還沒有遷移到 Java 9,所以我的主要使用環境還是 Open JDK 8。如果我需要測試 Open JDK 9 的部份,就可以使用 Docker 建立一個基本環境然後進行測試(而不會干擾到我自己的使用環境)。

Dockerfile for openSUSE, Tcl and Naviserver

docker-tcl-naviserver


How To Running Systemd on openSUSE Docker Container 的教學,照著建立以後,確認可以讓 systemd 執行。下一步就是嘗試加入 service,因為我之前嘗試建立並且拿到 openSUSE build service 編譯的 NaviServer RPM 有關於 systemd service 的部分,所以就使用 NaviServer 來測試了。

這還給我另外一個啟示,如果我可以在 docker image 和 docker host 之間同步或者是共用資料,就表示我可以將使用環境與開發環境作一定程度的分離。之前知道可以這樣弄,但是沒有嘗試過,也許該測試一下。

2018-01-23

Tclunqlite v0.3.3

檔案放置網頁

Tclunqlite

About

This is the UnQLite extension for Tcl using the Tcl Extension Architecture (TEA).

UnQLite is a in-process software library which implements a self-contained, serverless, zero-configuration, transactional NoSQL (Key/Value store and Document-store) database engine. This extension provides an easy to use interface for accessing UnQLite database files from Tcl.

Maing Change

  1. Update UnQLite version to 1.1.8

說明


這是一個小更新版本,更新 UnQLite 的版本。

2018-01-22

遷移與保存

SourceForge 很直接的將 CVS web 關掉,需要該計畫的管理者將 CVS 轉為 GIT 才行。

所以目前我建立的 RPM spec/build script 中,至少有三個會出現問題(因為只是快速檢查,所以我不確定是否有我沒檢查到的)。

三個的狀況都不相同。TclSOAP 1.6.7 使用 TclXML,而 CVS 的發展版本才是使用 tDom 的版本。如果 openSUSE  build service 我在上面有檔案,我會先暫時放檔案上去 github。

tktable 是比較新的版本 2.11 有可能會遺失,如果 openSUSE  build service 我在上面有檔案,我會先暫時放檔案上去 github。

TclVFS 已經遷移到 core.tcl.tk,所以需要使用 Fossil 來取得新版本並且更新內容。(無法順利 clone,要嘗試下載檔案以後處理的方式)

另外,tcl-dbus 也已經遷移(而且還刪除了所有的檔案),我暫時先把舊的檔案放到 github 上,有時間再處理。 (重建一次,嘗試下載檔案以後處理的方式)

ffidl

ffidl: Ffidl allows you to define Tcl/Tk extensions with pure Tcl wrappers calling any shared library installed on your system, including the Tcl and Tk core libraries.


ffidl-spec

openSUSE 上的是舊的,所以我把目前比較有更新的 ffidl 寫成一個 RPM spec,試著製作  RPM 以後安裝。ffidl.patch 參考 openSUSE 之前 spec 的寫法,讓 ffidl 在編譯的時候使用系統的 libffi,而不是自己編譯的。

我有放上去 openSUSE build service 上我自己的 projects,有順利編譯。

JSMin-Tcl

JSMin-Tcl


使用 Tcl 寫的 JavaScript minifier,我發現的時候覺得很有趣(一方面也是有點意外),FlightAware 居然用 Tcl 實作了一個自己版本的 JSMin。