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
วันอาทิตย์ที่ 26 ตุลาคม พ.ศ. 2557
วันเสาร์ที่ 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.
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.
please visit this. Then i will do my test.
ป้ายกำกับ:
ip camera,
Kivy,
python,
raspberry pi,
twisted
วันจันทร์ที่ 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.
Then edit formula. My formula is. $ brew edit GstPython
$ 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
2. Install gstreamer
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
note: disable dirac because it's error.
6. Install gst-plugins-ugly
My installation would be.
note: x264 is a library that often used, don't forget
Luckily i have
Test videotestsrc with this
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
Edit GstRtspStreamer Formular
Install our Formula GstRtspStreamer
Yes, you can now have gst-rtsp-server library. You can go to make a test from git like this.
This will failed you! Please update path to support Brew
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
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
$ 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'
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"
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.
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?
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."
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
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.
When you listen for it, there is nothing to hear.
When you use it, it is inexhaustible.
วันเสาร์ที่ 9 สิงหาคม พ.ศ. 2557
The same topic with difference chapter.
Began with Twisted then Kivy event loop and Python3 Asyncio. The application development are going to change again.
The time for Asynchronous Ages has begun.
The time for Asynchronous Ages has begun.
วันเสาร์ที่ 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.:)
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
Embed Chromium
This is only my short note.
https://code.google.com/p/chromiumembedded/
https://code.google.com/p/chromiumembedded/
วันเสาร์ที่ 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!
.
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.
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.
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!
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.
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?
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...
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.
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
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.
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 จะกลายเป็นพื้นฐานของการสื่อสารข้อมูลซักที
เราก็จะพบว่านักพัฒนาจะทยอยพัฒนาแอพพลิเคชั่นได้หลากหลาย โดยไม่ต้องคอยไปกังวลถึงการใช้งานข้อมูลจำนวนมากมาก หรือ ต้องคอยกระจายโหลดการใช้งานไปยังหลาย ๆ เครื่อง แต่เรามักจะมุ่งพัฒนาระบบที่ต้องการ โดยปล่อยระดับของการใช้งานฐานข้อมูลให้เป็นหน้าที่ของ 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:
For my next self learning, it's time for Brewery
The reason are:
- Brewery is a set of Python Framework.
- SQLAlchemy is my favorite, and can learn at the same time with Brewery.
- When it's python, It's easy to tech other one.
- 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 เป็นกรรมกร" ให้มองตัวเองก่อนว่า คุณเป็นหรือไม่? ถ้าคุณคิดว่าคุณเป็น หรือสิ่งที่คุณทำอยู่เป็น ผมก็ยืนยันได้เลยว่า "ก็คุณนั้นแหละที่บอกว่าตัวเองเป็น"
ไม่ได้บอกว่ากรรมกรเป็นสิ่งลำบาก แต่อยากบอกว่า ถ้ารากฐานไม่ดี ต้นไม้จะงอกงามสูงใหญ่ได้อย่างไร?
และบ่อยครั้งจะเจอกับคำที่ว่า "พวก 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
และวันนี้ยิ่งเป็นการยืนยันของคำว่า สถาปัตยกรรมซอฟต์แวร์ กับการออกแบบซอฟต์แวร์ คนจำนวนมากเริ่มระบบจากการออกแบบซอฟต์แวร์ แล้วพอมันเริ่มขยาย ก็พบว่าสิ่งที่อยากได้จากข้อมูลที่มี มันยาก และลำบากมาก
แต่ถ้าเป็นการเริ่มจากทำสถาปัตยกรรมซอฟต์แวร์ก่อน ข้อมูลที่ต้องการจะได้มาอย่างง่ายดายมาก
และถ้าจะเริ่มแกะข้อมูลที่มีอยู่นั้น ก็คงไม่พ้นจากระบบ Business Intellegence เป็นแน่แท้ คิดว่าแค่บางส่วนของ BI ก็น่าจะพอมองอะไรได้บ้างแล้ว แต่กว่าจะเรียนรู้ข้อมูลเหล่านั้นจาก BI จนครบ คงต้องใช้บุคคลากรที่มีความสามารถ และความเข้าใจในข้อมูลที่ค่อนมากอยู่
แต่โชคดีของผมที่เคยผ่านเหตุการณ์ประมาณนี้มาแล้ว เลยทำให้รู้ว่า มันเหนื่อยอย่างไรบ้าง
ขอให้โชคดี
ปล. วันนี้ home brew นั้น ดูเหมือนจะเป็นฝันที่ค่อนข้างเป็นความจริงของชายที่ชื่อว่า วิChit
ป้ายกำกับ:
beer,
bi,
meeting,
nonthaburi,
online deal,
restaurant
วันเสาร์ที่ 29 มีนาคม พ.ศ. 2557
สร้างสิ่งใหม่ ๆ โดยไม่ต้องรู้ซะทั้งหมด
เดี๋ยวนี่ถ้ามีใครมาถามผมให้ทำโครงการโน้น โครงการนี้ให้ ผมชักเริ่มจะขยาดที่จะเริ่มสร้างตั้งแต่เริ่มต้นแล้ว
ไม่ใช่ว่าทำไม่ได้ แต่ว่า ทำไมต้องทำใหม่อยู่เสมอ
เดี๋ยวนี้มันต้องเริ่มจาก เอาอะไรมาต่อ ๆ กันแล้วเป็นงานได้บ้าง
แต่เมื่อเอาอะไรมาต่อกันแล้ว ถ้าต้องการรู้ลึก หรือ อยากจะแก้ไขอะไรที่จุดเริ่มต้น ค่อยเจาะลงไปหาสิ่งนั้น
ไม่ใช่ว่าทำไม่ได้ แต่ว่า ทำไมต้องทำใหม่อยู่เสมอ
เดี๋ยวนี้มันต้องเริ่มจาก เอาอะไรมาต่อ ๆ กันแล้วเป็นงานได้บ้าง
แต่เมื่อเอาอะไรมาต่อกันแล้ว ถ้าต้องการรู้ลึก หรือ อยากจะแก้ไขอะไรที่จุดเริ่มต้น ค่อยเจาะลงไปหาสิ่งนั้น
วันจันทร์ที่ 24 มีนาคม พ.ศ. 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.
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.
สมัครสมาชิก:
บทความ (Atom)