วันอาทิตย์ที่ 26 ตุลาคม พ.ศ. 2557

Learn from both Kivy and Twisted

I, myself searched for many months to see what can i integrate Kivy and Twisted together.

Now my idea is come true.

https://github.com/digitaltrails/piKam

วันเสาร์ที่ 11 ตุลาคม พ.ศ. 2557

Haskell, What is that for me?

Today one guy come and talk with me while he's waiting for finishing of laundering machine.  He asked me about freelance in Thailand.

Am i a freelance?

He said "with freelance i can earn money more than i work in company". Is that true?


It's depend on the job you do and what kind of people see you.

In Thailand, the local company in Thailand. Most of them think in difference way.

Let's he see.

Another topic he show me the Haskell Programming Language.  I heard this Haskell before , But i now in love with python.




วันอาทิตย์ที่ 5 ตุลาคม พ.ศ. 2557

Another Raspberry PI with Kivy and implementation on Twisted.

I visited this site last month. At that time i did not know how to use it. But now i have any idea to do with this.

please visit this. Then i will do my test.


วันจันทร์ที่ 29 กันยายน พ.ศ. 2557

Brewing Gst-Python

From the last post about gstreamer. I would like to do my work on Python. Then i have to brew gst-python again.

$ brew create http://anongit.freedesktop.org/git/gstreamer/gst-python.git --set-name GstPython

Then edit formula. My formula is. $ brew edit GstPython

require "formula"

class Gstpython < Formula
  homepage "http://gstreamer.freedesktop.org/releases/gst-python/1.3.90.html"
  url "http://anongit.freedesktop.org/git/gstreamer/gst-python.git", :using => :git
  sha1 ""

  depends_on "autoconf" => :build
  depends_on "automake" => :build
  depends_on "libtool" => :build
  depends_on "glib" => :build
  depends_on "gstreamer" => :build
  depends_on "pkg-config" => :build
  depends_on "pygobject3" => :build
  depends_on "libffi" => :build

  def install
    system "./autogen.sh"
    system "./configure", "--disable-debug",
                          "--disable-dependency-tracking",
                          "--disable-silent-rules",
                          "--prefix=#{prefix}"

    system "make"
    system "make install"
  end

end

But!!!

Remember i've not install any python yet. Yes we use python site-packages from /usr/local/lib/python2.7/site-packages/ . Homebrew can have their python environment. Then we have to install python first.

First we have to uninstall our previous python package first. Then install python by $ brew install --verbose python 

Then you will have to install GStreamer again. 

It's time to brewing get-python from now.

$ brew install --verbose GstPython

Then you can try the installation by 
Python 2.7.8 (default, Sep 29 2014, 18:34:51) 
Type "copyright", "credits" or "license" for more information.

IPython 2.2.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: from gi.repository import Gst, GObject

In [2]: Gst.version()
Out[2]: (1L, 4L, 1L, 0L)



วันอาทิตย์ที่ 28 กันยายน พ.ศ. 2557

Streaming IP Camera to Kivy Video

Finally, after spend 3 weeks with Mac OS X Yosemite , Raspberry Pi, IP Camera that support RTSP Protocol.

Kivy is an amazing framework to start with. It's not new language but it's a new idea to bring the softwares together. GStreamer is a multimedia framework.  I used this for media-handling. It's recommend by Kivy. Compiling this framework is awesome. Homebrew , another tool to get package for Mac. Previously i used fink. OS X Yosemite is my Favourite OS.

I do IP camera streaming by install MJPEG Server on Raspberry PI. But it's a Moving JPEG. Then i want to do more on RTSP and If i have luck, i can stream also audio too.

IP Camera on the market today are support both MJPEG an RTSP. But if you want to get both Video and Audio you need RTSP.

Then, this is my target.

First install Kivy. You can easily install Kivy by get the package on the Kivy web site. But I'm interesting to set up GStreamer on OS X Yosemite..

Let's compile the GStreamer.

First you need to install Homebrew. Again you can install Homebrew easy by follow the instruction from the web site.

If you install GStreamer follow the instruction on Kivy. You will only get few of pipeline. I need more pipeline!

(If you're on Debian. Believe me, Building GStreamer on Debian is very funny and easy!)

You have to read more instruction on Homebrew.

0. Install Xcode and Xcode Command Line Tool (CLT)
Without Xcode and Xcode Command Line Tool you will get error when compiling. Please see detail.

1. Install pygobject3 
$ brew install pygobject3

2. Install gstreamer
$ brew install gstreamer --with-gobject-introspection

After you've build gstreamer. Please see the core elements from $ gst-inspect-1.0  . It will help you to understand what gstreamer is.

I recommend to also install gst-libav. it's former ffmpeg.
$ brew install gst-libav


3. Install gst-plugins-base
Before you install gst-plugins-base please see $ brew edit gst-plugins-base  output. Then you command will be $ brew install gst-plugins-base --with-orc --with-gtk+ --with-libogg --with-pango --with-theora --with-libvorbis --with-gobject-introspection 

At this plugins i would recommend you to see the plugin list here. Then you can decide which plugins you need to install. 

After finished please see $ gst-inspect-1.0 output. You will see the list of plugins.

4. Install gst-plugins-good
Again, see the plugins list here. Then run $ brew edit gst-plugins-good . My installation would be

$ brew install gst-plugins-good --with-gobject-introspection --with-orc --with-gtk+ --with-aalib --with-libcdio --with-esound --with-flac --with-jpeg --with-libcaca --with-libdv --with-libshout --with-speex --with-taglib --with-libpng --with-libogg

Again. after finished please $ gst-inspect-1.0 output.

5. Install gst-plugins-bad
Then for gat-plugins-bad i also do the same way. My installation would be

$ brew install gst-plugins-bad --with-gobject-introspeciton  --with-faac --with-facc2 --with-gnutls --with-libdvdread --with-libexif --with-libmms --with-rtmpdump --with-schroedinger

note: disable dirac because it's error.

6. Install gst-plugins-ugly

My installation would be.
$ brew install gst-plugins-ugly --with-gobject-introspection --with-mad --with-jpeg --with-libvorbis --with-cdparanoia --with-lame --with-two-lame --with-libshout --with-aalib --with-libcaca --with-libdvdread --with-libmpeg2 --with-a52dec --with-liboil --with-flac --with-gtk+ --with-pango --with-theora --with-libmms --with-x264 --with-opencore-amr

note: x264 is a library that often used, don't forget

Luckily  i have

Total count: 163 plugins, 612 features

Test videotestsrc with this

$ gst-launch-1.0 videotestsrc ! autovideosink


It's amazing output on OpenGL. This is a very very famous test source for beginner.

The part to install GStreamer with plugins is completed here. But we need gst-rtsp-server

Please visit GStreamer RTSP Server Library page here.

7. Install GStreamer RTSPServer
For this you can now install gst-rtsp-server from ./autogen.sh . But for me. I'm have to do some with brew

Create brewing GstRtspStreamer
$ brew create http://anongit.freedesktop.org/git/gstreamer/gst-rtsp-server --set-name GstRtspServer

Edit GstRtspStreamer Formular
$ brew edit  GstRtspServer
Then i do a bit of change. This is my version of GstRtspServer Formular.
require "formula"

class Gstrtspserver < Formula
  homepage "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/"
  url "http://anongit.freedesktop.org/git/gstreamer/gst-rtsp-server", :using => :git, :tag => "1.4.2"
  sha1 ""

  depends_on "autoconf" => :build
  depends_on "automake" => :build
  depends_on "libtool" => :build
  depends_on "gettext" => :build
  depends_on "glib" => :build
  depends_on "pkg-config" => :build

  depends_on "gtk-doc" => :build
  depends_on "gstreamer" => :build
  depends_on "gst-plugins-base" => :build

  def install
    system "./autogen.sh"
    system "./configure", "--disable-debug",
                          "--disable-dependency-tracking",
                          "--disable-silent-rules",
                          "--prefix=#{prefix}"
    system "make"
    system "make install"
  end

end

Install our Formula GstRtspStreamer
$ brew install --debug --verbose  GstRtspServer

Yes, you can now have gst-rtsp-server library. You can go to make a test from git like this.
$ git clone --branch 1.4.2 git://anongit.freedesktop.org/gstreamer/gst-rtsp-server

$ cd gst-rtsp-server

$ ./autogen.sh

This will failed you! Please update path to support Brew
$ export PATH="/usr/local/opt/gettext/bin:$PATH"

$ ./autogen.sh

$ ./configure

$ make

Let's go to example folder 
$ cd examples/

Then Launch RTSP Server
$ ./test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"

From VLC try to open the network streaming from the streaming you see!

But for me i want to show you the easy from GStreamer, gst-launch-1.0 

Open new terminal and then try this command
$ gst-launch-1.0 rtspsrc location=rtsp://127.0.0.1:8554/test  ! rtph264depay ! decodebin ! autovideosink

Yes for the proxy rtsp-server you can change 'videotestsrc' to 'v4l2src'

Because i'm test on the Raspberry Pi with Raspberry PI Camera Module. It's easy to try!

Kivy Layout.
It's also easy to display the Video Stream from Kivy Please try to change your widget like this

    Video:
        source: 'rtsp://127.0.0.1:8554/test'
        size_hint: .5, .5

        state: 'play'




วันพุธที่ 17 กันยายน พ.ศ. 2557

Another i like most on Mac OS X Yosemite

I wonder about the new Mac OS X Yosemite feature,

Instead show the flag i'm using on keyboard layout, Now is the first Thai character is "Ko Kai"


วันอาทิตย์ที่ 14 กันยายน พ.ศ. 2557

a Problem with Kivy on RTSP Video Streaming

2 days for searching and trying to Play RTSP IP Camera in Kivy.

It was no video show any on Kivy, no error !

It's not easy for me to find someone to help me continue develop Kivy to support RTSP now in Thailand.

Should i continue with Kivy?

updated: 25 Sep 2014

I'm back. Kivy is awesome.

วันจันทร์ที่ 8 กันยายน พ.ศ. 2557

Asynchronous TV channel preview.

Request from myself at this post http://hanattaw.blogspot.com/2014/09/blog-post.html

The Asynchronous can solved this problem easily?


วันจันทร์ที่ 18 สิงหาคม พ.ศ. 2557

How to understand asyncio from python3 for me?

It is not easy for someone who is coding with synchronous applications before. For me, luckily i was learn from twisted matrix for a while.

So i read many from twisted and more on tonado framework. Then asyncio is very interesting to learn.

Please visit http://www.getoffmalawn.com/blog/playing-with-asyncio

I wish twisted will going to get asyncio from python3 as soon as.


updated: 20 Aug 2014
More documentation here http://www.drdobbs.com/open-source/the-new-asyncio-module-in-python-34-even/240168401?queryText=The%2BNew%2Basyncio%2BModule%2Bin%2BPython%2B3.4

update: 21 Aug 2014
Any twisted very briefly can be found here. http://www.aosabook.org/en/twisted.html

update: 29 Aug 2014
asyncio will avoid the "series of asynchronous callback chain."

วันเสาร์ที่ 16 สิงหาคม พ.ศ. 2557

Asynchronous solve the asynchronous problems

When people start to learn about asynchronous problems. I thing! easy way to learn it from problem.

The Asynchronous Problem has to be solved with asynchronous way.

Please have a seat at this video.

http://www.youtube.com/watch?v=9WV7juNmyE8


วันพฤหัสบดีที่ 14 สิงหาคม พ.ศ. 2557

Twisted Way!

Even it's not easy for me to understand. But i will try https://glyph.twistedmatrix.com/2012/12/the-twisted-way.html

When you look for it, there is nothing to see.
When you listen for it, there is nothing to hear.
When you use it, it is inexhaustible.


วันเสาร์ที่ 9 สิงหาคม พ.ศ. 2557

วันเสาร์ที่ 26 กรกฎาคม พ.ศ. 2557

Kivy, another UIX for new device.

Long time on web application development. First we thought web application can easy to deploy on many operating systems and devices.

Some use java applet, flash. But when the applications are more complicated. The better way to do is going back to server side again. Then we began to use java script to do client functions.  Javascript framework are continue developing. We've switch to new framework over and over because we need the simple usage that hide the complex of javascript behind.

When personal devices are popular.  Most of users use web browser do some general purpose, like searching. Developer do responsive UI for many kind of screen width. Many standard come out like HTML5.  But it is 1 step behind user need.

After a few months with Kivy. The development for myself is changed.

Web is only is web, high-level of networks, data infrastructure. We going to use web-service to scales our application and support many kind of devices.

So i going to use Framework like Kivy to change the way.

Please try..

Webpy, Flask, Django, Tornado Web, Kivy

Then i live with Python.:)

วันศุกร์ที่ 11 กรกฎาคม พ.ศ. 2557

วันเสาร์ที่ 5 กรกฎาคม พ.ศ. 2557

Why Python?

Many people ask me about this question!

My answer is "It's easy"

I, personally grew with C before and try to do next with Java, Then do more big projects with PHP.
But meanwhile i often use Python.

Someone ask me to go to Ruby. But as my answer I'm lazy to go to Ruby.

Python, for me is more fun. I can extend my new job base on Python!

.

วันพฤหัสบดีที่ 3 กรกฎาคม พ.ศ. 2557

Software is...

When Software is no longer support, maintain! It's mean dead.

To many software support and maintain styles..



Software is like Love, When you're not maintain. It's worst.

Twisted -> Raspberry PI -> Kivy

It's an amazing to go to Kivy for me.

After i few month do some on twisted and then Raspberry PI. Now i'm on Kivy.

That was because we need more GUI. And Web browser is not my choice now.


วันเสาร์ที่ 14 มิถุนายน พ.ศ. 2557

ikea, Size does matter

With my new coming kitchen, I will not make build-in kitchenware. But i will try to find the ready made product.

ikea, is my choice now.

With 30 km. from my home. It's not easy to drive there and make a shopping. So let shop online.

IKEA is huge on both online and offline. It's not easy to find my solution.

But with these applications. It's possible now.

http://www.ikea.com/ms/th_TH/customer_service/mobile.html

http://www.ikea.com/ms/th_TH/customer_service/ikea_services/kitchen_planner.html

That is technology help up!

วันอาทิตย์ที่ 8 มิถุนายน พ.ศ. 2557

Twisted Python

For the reasons to discover the serial port programming, i would like to try Twisted Matrix.

Twisted Matrix it's very interesting for me long time ago. Unfortunately i've not time enough to discover this.

I hope i will do some thing about Serial Programming with Twisted Matrix.

Updated! June 11, 2014
I recommend you to read http://krondo.com/blog/?p=1209

It's an introduction to Asynchronous Programming.

วันเสาร์ที่ 31 พฤษภาคม พ.ศ. 2557

TRACK?

Yesterday i visited the website http://blog.hexxeh.net/

There was an information about Pebble.

Today i come back to Facebook. Pebble is now one of recommend page!

What 's happen?




วันเสาร์ที่ 17 พฤษภาคม พ.ศ. 2557

Raspberry Pi

The world "Raspberry Pi" was the nothing to me until now. I have a simple project to quickly continue develop for one of the company.

It's web server on #Raspberry Pi. It's a small project to complete hospitality service in hospital.

But it's first time to go with #Raspberry Pi.


Read again...

วันพฤหัสบดีที่ 8 พฤษภาคม พ.ศ. 2557

Device is only a key.

I've just think about the future of devices, personal device! When services are ready, The device on your hand will be the key to access the services.

First i though device will be personal server, But now it 's clear that Server will be on cloud and user will allow the service talk to each other.

The storage on device is only need for do some temporary purpose. But all data will be backup on cloud.

Devices are new data entry. Big Data will be.

วันจันทร์ที่ 28 เมษายน พ.ศ. 2557

Common Web Design

Long time ago. Many people started to use the monitor at 800x600. But Now there are a lot of screen width and height. With many type of devices. It's difficult to create an web application and deploy to every device with the same user interaction.

The responsive concept is coming. You should read this http://code.tutsplus.com/tutorials/mobile-first-with-bootstrap-3--net-34808


วันอาทิตย์ที่ 27 เมษายน พ.ศ. 2557

CMS made simple

Usually, when i want to do the enterprise application on PHP. I will decide to go with codeigniter. But it's not easy to when you need only simple thing like simple cms with only authenticate/authorize module.

Then after do searching. Bolt is my choice. It's come with simple cms management with user authentication and authorization module.

Please try.

วันอาทิตย์ที่ 20 เมษายน พ.ศ. 2557

เมื่อ web กลายเป็นพื้นฐานของการสื่อสารระหว่าง application

เมื่อพื้นฐานของการใช้งานข้อมูลนั้นไม่ได้ต้องคอยเรียกข้อมูลผ่านทาง SQL หรือ ฐานข้อมูลโดยตรง เช่นเรามักจะใช้ hibernate หรือ sqlalchemy ในการใช้งานข้อมูล

เราก็จะพบว่านักพัฒนาจะทยอยพัฒนาแอพพลิเคชั่นได้หลากหลาย โดยไม่ต้องคอยไปกังวลถึงการใช้งานข้อมูลจำนวนมากมาก หรือ ต้องคอยกระจายโหลดการใช้งานไปยังหลาย ๆ เครื่อง แต่เรามักจะมุ่งพัฒนาระบบที่ต้องการ โดยปล่อยระดับของการใช้งานฐานข้อมูลให้เป็นหน้าที่ของ data framework ต่าง ๆ ไป

และเมื่อได้มีการพัฒนาแอพพลิเคชั่นหลากหลายมากขึ้น แน่นอนแอพพลิเคชั่นเหล่านั้นอยากคุยกัน ทุกวันนี้คงหาคนที่เข้าใจฐานข้อมูลหลาย ๆ ชนิดยากขึ้นไปทุกที ดังนั้นจึงมีความคิดอยากให้แอพพลิเคชั่นคุยกันได้โดยผ่านขบวนการสักอย่าง ที่ไม่ต้องเข้าไปถึงการเข้าถึงข้อมูลที่ต้องการผ่านทาง ฐานข้อมูล

และนั่นเริ่มเห็นบทบาทของ web service ชัดเจนขึ้น แม้กระทั่งระบบจัดการ user ในระบบเดี๋ยวนี้ยังไม่ต้องพัฒนาเองเลย มีให้เรียกใช้กันข้ามแพลฟอร์มเลย

ขั้นตอนต่อมาภายหลังที่เราจะเห็นนี่คงถึงเวลาที่ web จะกลายเป็นพื้นฐานของการสื่อสารข้อมูลซักที

วันพฤหัสบดีที่ 10 เมษายน พ.ศ. 2557

Moving to "Data a Brewery"

3 years with Pentaho. It was an amazing!

For my next self learning, it's time for Brewery

The reason are:

  1. Brewery is a set of Python Framework.
  2. SQLAlchemy is my favorite, and can learn at the same time with Brewery.
  3. When it's python, It's easy to tech other one.
  4. Pentaho is not easy for beginner (esp. for my students).




วันพุธที่ 9 เมษายน พ.ศ. 2557

ถึงเวลาขยับ Level

ด้วยความรู้เท่าที่มีคงไม่พอสำหรับจะขยับขยายไปต่อที่ BigQuestion ดังนั้นถึงเวลาอ่านอีกแล้วครับท่าน

วันศุกร์ที่ 4 เมษายน พ.ศ. 2557

Programmer/Developer เหมือนกรรมกร?

ต่อจาก "ถ้าไม่มีใครทำ ก็เสกมันขึ้นมา" ผมมักจะเจอกับบุคคลที่หมดไฟ หรือไม่ก็หมดความตั้งในการทำงานทางด้าน Develop ต่อ

และบ่อยครั้งจะเจอกับคำที่ว่า "พวก programmer/developer มันกรรมกร" "พวก programmer เป็นพวกใช้แรงงาน" "เป็นงานล่างสุดของสายงานนี้

ว่าไปนั่น....

ผมขอตอบจากประสบการณ์ที่ผมมีให้ตามนี้

ถ้าคนที่เป็น programmer หรือ developer อยู่ แล้วมองว่าตัวเองเป็นคนใช้แรงงาน ผมขอถามว่า "ถ้าเราใช้ programmer/developer 1 คน ทำงานหนึ่งเสร็จภายใน 1 วัน  แล้วถ้าผมเพิ่ม programmer/developer เป็น 10 คน คุณคิดว่างานจะเสร็จขึ้นเร็วไหม?"

งานที่ programmer/developer ไปหยิบ module, library, framework ต่างๆ มาสร้างเป็นระบบ ได้อย่างรวดเร็ว ไม่ต้องไปสร้างเองตั้งแต่ต้น ผมถามว่า เค้าเป็นแรงงานหรือเป็นอะไรกันแน่

มีช่างก่อสร้างคนไหนที่จะไปสร้างสิ่งก่อสร้างพิลึกกึกกือ ได้โดยไม่เคยจับอิฐหินปูนทรายเลย

การที่มีคนบอกว่า "programmer/developer เป็นกรรมกร" ให้มองตัวเองก่อนว่า คุณเป็นหรือไม่? ถ้าคุณคิดว่าคุณเป็น หรือสิ่งที่คุณทำอยู่เป็น ผมก็ยืนยันได้เลยว่า "ก็คุณนั้นแหละที่บอกว่าตัวเองเป็น"

ไม่ได้บอกว่ากรรมกรเป็นสิ่งลำบาก แต่อยากบอกว่า ถ้ารากฐานไม่ดี ต้นไม้จะงอกงามสูงใหญ่ได้อย่างไร?

วันพฤหัสบดีที่ 3 เมษายน พ.ศ. 2557

ด๊อกแต้ แดง

วันนี้ไปรับฟังเรื่องราวของธุรกิจ ออนไลน์ ประเภทหนึ่ง ซึ่งมีจำนวนของข้อมูลที่ไหลเข้าระบบมากมาย แต่วันนี้เท่าที่ฟังแล้วนั้น ไม่น่าจะใช่ปัญหาของระบบซอฟต์แวร์ที่ใช้อยู่ แต่หากเป็นปัญหาของการเข้าใจข้อมูล และนำข้อมูลเหล่านั้นมาเปลี่ยนเป็นความรู้มากกว่า

และวันนี้ยิ่งเป็นการยืนยันของคำว่า สถาปัตยกรรมซอฟต์แวร์ กับการออกแบบซอฟต์แวร์ คนจำนวนมากเริ่มระบบจากการออกแบบซอฟต์แวร์ แล้วพอมันเริ่มขยาย ก็พบว่าสิ่งที่อยากได้จากข้อมูลที่มี มันยาก และลำบากมาก

แต่ถ้าเป็นการเริ่มจากทำสถาปัตยกรรมซอฟต์แวร์ก่อน ข้อมูลที่ต้องการจะได้มาอย่างง่ายดายมาก

และถ้าจะเริ่มแกะข้อมูลที่มีอยู่นั้น ก็คงไม่พ้นจากระบบ Business Intellegence เป็นแน่แท้ คิดว่าแค่บางส่วนของ BI ก็น่าจะพอมองอะไรได้บ้างแล้ว แต่กว่าจะเรียนรู้ข้อมูลเหล่านั้นจาก BI จนครบ คงต้องใช้บุคคลากรที่มีความสามารถ และความเข้าใจในข้อมูลที่ค่อนมากอยู่

แต่โชคดีของผมที่เคยผ่านเหตุการณ์ประมาณนี้มาแล้ว เลยทำให้รู้ว่า มันเหนื่อยอย่างไรบ้าง


ขอให้โชคดี

ปล. วันนี้ home brew นั้น ดูเหมือนจะเป็นฝันที่ค่อนข้างเป็นความจริงของชายที่ชื่อว่า วิChit

วันเสาร์ที่ 29 มีนาคม พ.ศ. 2557

สร้างสิ่งใหม่ ๆ โดยไม่ต้องรู้ซะทั้งหมด

เดี๋ยวนี่ถ้ามีใครมาถามผมให้ทำโครงการโน้น โครงการนี้ให้ ผมชักเริ่มจะขยาดที่จะเริ่มสร้างตั้งแต่เริ่มต้นแล้ว

ไม่ใช่ว่าทำไม่ได้ แต่ว่า ทำไมต้องทำใหม่อยู่เสมอ

เดี๋ยวนี้มันต้องเริ่มจาก เอาอะไรมาต่อ ๆ กันแล้วเป็นงานได้บ้าง

แต่เมื่อเอาอะไรมาต่อกันแล้ว ถ้าต้องการรู้ลึก หรือ อยากจะแก้ไขอะไรที่จุดเริ่มต้น ค่อยเจาะลงไปหาสิ่งนั้น

วันเสาร์ที่ 11 มกราคม พ.ศ. 2557

mod_php to mod_fcgid

10 Years with mod_php. Today i decide to migrate to mod_fcgid.

Mod_php had been served our services for long time and work well from beginning. But now we have more need to go than mod_php can serve.

Then we are going to move to mod_fcgid. With fcgid we can do a lot of configuration style. Easy process management and we can install many php-version to serve our legacy php application.

For management purpose, we can freely control easy application and license more efficiency.  Developers and Implementation Man can do their job without know each other.