geoserver behind web server (apache/…)

geoserver behind web server (apache/…)

ปกติพวก Tomcat รันอยู่ port 8080 เวลาจะ redirect จาก apache ให้เข้าถึงได้จาก port 80 ต้องไปตั้งอะไรทำนอง

<Connector port="8081" …
              proxyName="www.mycompany.com
              proxyPort=”80″/>

ดู https://tomcat.apache.org/tomcat-7.0-doc/proxy-howto.html

แต่ในกรณี geoserver  เค้ามี config ให้ตั้งง่ายๆ เลย โดย log in admin แล้วก็

Settings – Global –> 4th input field is: ‘Proxy Base URL’. Enter your proxy sever and you’re done.  ===> ใส่แค่ https://aaa.bbb.ccc/ ก็พอ

ค้นพบโดยน้อง Sukoom@MM

ค้นพบโดยน้อง Sukoom@MM

เวลาใช้ Legacy boot (ไม่ใช่ UEFI) อย่าใช้ GPT

ลงเครื่อง server HP งานลูกค้างานหนึ่ง Ubuntu มองไม่เห็น Smart Array Storage นอกจากต้องลงท่ายาก ก็เลยใช้วิธีเปิดให้เป็น SATA AHCI ธรรมดา แต่ถึงกระนั้น ก็ต้องใช้ Legacy boot แทน UEFI ซึ่งจะเจอปัญหาว่าลงๆ ไปแล้ว grub install ไม่ได้ พบว่าสุดท้ายคือ อย่า init partition table ด้วย GPT ให้ใช้ แบบธรรมดา grub ถึงจะลงได้และบูตได้

Web server KeepAliveTimeout set เป็น 30 วิ แล้ว iphone app จะ happy

Web server KeepAliveTimeout set เป็น 30 วิ แล้ว iphone app จะ happy
(ก่อนนี้ set ไว้ต่ำมาก กลัวจำนวน processes บน server เยอะเกิน แล้ว app error “The network connection was lost” บ่อยๆ

http://stackoverflow.com/questions/25372318/error-domain-nsurlerrordomain-code-1005-the-network-connection-was-lost

As far as we can tell, when iOS 8 receive an HTTP response with a Keep-Alive header, it keeps this connection to re-use later (as it should), but it keeps it for more than the timeout parameter of the Keep-Alive header and then when a second request comes it tries to re-use a connection that has been dropped by the server.

Here are the solutions we have found so far:

– Increase the timeout parameter of the server above 30 seconds. It looks like iOS is always behaving as if the server will keep the connection open for 30 seconds regardless of the value provided in the Keep-Alive header. (This can be done for Apache by setting the KeepAliveTimeout option.

– You can simply disable the keep alive mechanism for iOS clients based on the User-Agent of your app (e.g. for Apache: BrowserMatch “iOS 8.” nokeepalive in the mod file setenvif.conf)

– If you don’t have access to the server, you can try sending your requests with a Connection: close header: this will tell the server to drop the connection immediately and to respond without any keep alive headers. BUT at the moment, NSURLSession seems to override the Connection header when the requests are sent (we didn’t test this solution extensively as we can tweak the Apache configuration)

http://stackoverflow.com/questions/25372318/error-domain-nsurlerrordomain-code-1005-the-network-connection-was-lost

https://www.ndchost.com/wiki/mail/test-smtp-auth-telnet

https://www.ndchost.com/wiki/mail/test-smtp-auth-telnet

perl -MMIME::Base64 -e ‘print encode_base64(“username”);’
perl -MMIME::Base64 -e ‘print encode_base64(“password”);’

user@localhost[~]# telnet exampledomain.com 25
Trying 1.1.1.1…
Connected to exampledomain.com (1.1.1.1).
Escape character is ‘^]’.
220-server1.exampledomain.com ESMTP Exim 4.66 #1 Wed, 09 May 2007 23:55:12 +0200
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
EHLO exampledomain.com
250-server1.exampledomain.com Hello  [1.1.1.2]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
AUTH LOGIN
334 VXNlcm5hbWU6
dXNlcm5hbWUuY29t
334 UGFzc3dvcmQ6
bXlwYXNzd29yZA==
 
235 Authentication succeeded

https://www.ndchost.com/wiki/mail/test-smtp-auth-telnet

วิกฤตไม่เป็นโอกาส #2

ต่อเนื่องจาก post ที่แล้ว

ขอขยายความว่า สิ่งที่ผมเสนอ ชัดๆ คือ

ให้มีการสร้างสภาพแวดล้อมที่เหมาะสม อันจะก่อให้เกิดธุรกิจบริการออนไลน์ของไทยที่แข่งขันได้กับยักษ์ใหญ่ต่างชาติ

ระยะเวลาการคงสภาพแวดล้อมดังกล่าว ไม่นาน ประมาณ 3-5 ปี

ผลลัพธ์ที่คาดหวัง

  • มีธุรกิจบริการออนไลน์ของไทยมาเข้าร่วมช่วงต้นโครงการสัก 20 บริการ
  • เมื่อจบโครงการ มีเหลือรอดไปแข่งขันได้ในระดับโลกสัก 3 บริการ ก็น่าพอใจแล้ว

ผมไม่ได้เสนอให้ ภาครัฐเอาเงินภาษีประชาชนมาพัฒนาบริการเองนะครับ ไม่ว่าจะทำเอง หรือ ตั้งงบจ้างทำ แบบนั้นคงอยู่รอดอยาก หมดเงินก็หมดกัน

ผมไม่ได้เสนอให้ เลือกเอกชนรายใดรายหนึ่งมาลงขันเงินให้ทำ เพราะมันจะไม่เกิดการแข่งขัน ต้องให้รอดจากการแข่งขันด้วยตัวเอง ขอแค่สภาพแวดล้อมในการแข่งขันให้เค้าแข่งได้ก็พอ

ผมแค่เสนอให้ภาครัฐ หรือ สมาคมธุรกิจใหญ่ๆ ร่วมกันสนับสนุนให้เกิดสภาพแวดล้อมดังกล่าวนี้

ตัวอย่างของสิ่งที่อยากให้มีในสภาพแวดล้อมนี้ ก็คือ ภาครัฐและองค์กรเหล่านั้นจะสนับสนุนธุรกิจที่อยู่ในโครงการ โดยจะเลือกใช้บริการก่อน บริการต่างชาติ เช่น

  • จะโปรโมตสนับสนุนให้ลูกค้ารวมถึงบุคลากรของตนเอง ใช้ บริการของไทย แค่ มือถือทุกเจ้า สนับสนุนก็เหลือแหล่ครับ เช่น ตั้งราคาแพ็กเกจที่ใช้บริการเหล่านี้ ถูกกว่า แพ็คเกจ facebook, youtube, LINE
  • รวมเอาลิงค์ไอค่อนบริการเหล่านี้ ติดไปบนมือถือที่ตนเองจำหน่าย แค่นี้ ผู้ใช้ที่ไม่ได้อะไรมาก ก็กดสิ่งที่ติดมากับเครื่อง ก็โอเคแล้ว
  • เลือกลงโฆษณา หรือ สนับสนุนทางการเงินในรูปแบบใดๆ กับบริการเหล่านี้ก่อน ที่จะไปลงกับบริการต่างชาติ
  • ด้านกฎหมาย ให้มีการช่วยเหลือด้านภาษีแก่องค์กรที่ลงโฆษณากับบริการเหล่านี้ อาจจะเป็นรายจ่ายคิดได้ 1.5 เท่าอะไรทำนองนี้ เพื่อให้เค้าเลือกลงก่อนที่จะไปลงก่อนบริการต่างชาติ
  • วาระแห่งชาติ ให้คนไทยร่วมกันสร้างเนื้อหาในบริการเหล่านี้ ในส่วนที่เกี่ยวกับองค์กรของท่าน แทนที่จะเอาไปใส่ในบริการต่างชาติ

แค่นี้ก็เหลือแหล่แล้วครับ ไม่จำเป็นต้องทุ่มเงินลงไปให้ใครแต่อย่างใด แค่มีพันธะสัญญาต่อกันว่า

พวกมึงทำนะ แล้วพวกกูจะใช้

แค่นั้นเอง นะครับ

ต่อความเห็นที่ว่า คนไทยจะทำได้เหรอ ผมเชื่อว่าทำได้ครับ คนไทยเก่งๆ มากมาย ไปเป็นพลังสมองและพลังกายให้ต่างชาติอยู่ก็มาก แค่ยังไม่มีเวทีให้เค้าได้ช่วยชาติ ก็ยังต้องเลี้ยงปากเลี้ยงท้อง มีอะไรให้ทำก็ต้องทำไปก่อน

ต่อความเห็นที่ว่า ทำไมต้องไปเสนอให้คนโน้นคนนี้ทำ ทำไมไม่ทำเอง คือ ผมมองว่ามันเป็นงานใหญ่ ที่ไม่สามารถทำได้สำเร็จลำพัง SME รายสองรายน่ะครับ มันต้องมีเจ้าภาพที่มีปากมีเสียงจำนวนหนึ่ง ที่มาช่วยกันสร้างวาระ และสัญญาว่าจะใช้

สิ่งที่ทำเองได้ บริษัทฯ ผู้เขียนทำอยู่แล้วครับ บริการอย่าง Longdo Map แผนที่ออนไลน์สัญชาติไทย ทำมา 10 ปีแล้ว แนวคิดคล้ายๆ Google Maps คือ ผู้ใช้ทั่วไปใช้ฟรี แล้วไปหารายได้เอาจากลูกค้าองค์กร

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

ซึ่งที่ผ่านมาก็หนักหนาสาหัสมาก คู่แข่งระดับโคตรใหญ่ทั้งนั้น ระดับโลก ระดับนานาชาติ เรียกได้ว่าไม่เห็นทางรอดเลย ก็ต้องเรียนว่ายังทำอยู่ได้ครับ ไม่ได้ขาดทุนด้วย (ขอขอบคุณลูกค้าทุกท่าน แฮ่ๆ) โดยไม่ได้มีแต้มต่อ และ สภาพแวดล้อมที่เอื้อให้เรามีแต้มต่อในการแข่งขัน แต่อย่างใด

ดังนั้น ถ้าสำหรับบริการ IT ที่เสนอข้างต้น ถ้ามีแต้มต่อให้บริการไทยหน่อย คิดว่าไปรอดอยู่แล้วครับ ให้โอกาสคนไทยด้วยกันเถิด

วิกฤตไม่เป็นโอกาส

จิบกาแฟยามเช้าวันเสาร์ 29 ส.ค.58 พร้อมหนังสือพิมพ์ฐานเศรษฐกิจ เหลือบไปเห็นข่าวนี้

จับใจความได้ว่า สมาคมโทรคมนาคมแห่งประเทศไทยฯ เค้าว่า ผู้ใช้ชาวไทยมีการบริโภคเนื้อหาจากต่างประเทศถึง 60% ก็คงพวก facebook, youtube ต่างๆ นานาที่เราๆ ท่านๆ ใช้กันอยู่ทุกวัน อย่างเยอะด้วย
ดังนั้นก็อยากจะเสนอรัฐบาลให้ดึงดูดพวกบริการต่างประเทศเหล่านี้

ให้มาตั้งระบบที่เมืองไทย 

แทนที่จะเป็นที่สิงคโปร์หรือมาเลเซียในปัจจุบัน ซึ่งทำให้บริษัทโทรคมฯ ต้องเสียเงินต่อค่าอินเทอร์เน็ตไปหาประเทศเหล่านี้เยอะมาก ซึ่งก็ต่อเนื่องทำให้ประชาชนต้องเสียค่าใช้อินเทอร์เน็ตแพงอีกทอด ถ้าเนื้อหาต่างๆ อยู่ในประเทศได้ก็ค่าใช้จ่ายตรงนี้ก็จะลดลง

มาตรการที่จะดึงต่างๆ ก็พวกใช้ให้ประโยชน์ด้านภาษี หรือ เงื่อนไขอะไรต่างๆ ก็ให้มันสะดวกขึ้น รวมถึงความมั่นคง อย่าไปเข้มงวดกับเค้ามาก ฯลฯ​ ทำไงให้เค้าอยากมา
อ่านในแว๊บแรกผมก็รู้สึกว่า
ฟังดูดีงาม
มาก
เราๆ ท่านๆ ก็จะจ่ายค่าเน็ตน้อยลง, เค้ามาลงทุน ก็เกิดการจ้างงาน การใช้ง่าย
แต่คิดให้ลึกลงไปอีกนิด
บริการอย่าง facebook, youtube ประชาชนเราใช้ฟรี เสพข้อมูลกันกระหน่ำจนประเทศไทยติดอันดับ 3 ของโลก ถามว่าทำไมเขาทำให้ใช้ฟรีๆ ครับ เพราะเขามีรายได้ รวยระดับโลกด้วย
รายได้จากไหนครับ?
จากโฆษณาไง
ยิ่งผู้ใช้ใช้บริการไหนมากเท่าไหร่ ธุรกิจหรือองค์กรอยากจะลงโฆษณาสินค้าบริการของตนเอง จากเดิมๆ ที่ลงกันในสื่อไทยๆ เว็บไทยๆ ก็ไม่ได้แล้ว ต้องไปลงผ่านบริการเหล่านี้

ซึ่งบอกได้เลยว่าเป็นปริมาณ เงินมหาศาล และมีแนวโน้มจะมากขึ้นเรื่อยๆ ทำไงได้ ก็ผู้ใช้คนไทยอยู่กันบนนี้

และเม็ดเงินเหล่านี้วิ่งตรงไปยังผู้ให้บริการในต่างประเทศ รัฐบาลไทยไม่ได้ภาษีสักสตางค์เดียวด้วย!
ท่านผู้บริหารประเทศ ผู้บริหารธุรกิจโทรคมนาคมฯ​ ทั้งหลาย ถามว่าทราบตรงนี้หรือไม่ครับ
ยิ่งเปิดให้เค้าเข้ามาตั้งระบบ แว๊บแรกอาจจะดีงาม แต่ระยะยาวคืออะไร?
แปลว่า ธุรกิจ ​IT ไทย ปิดประตูตายไปเลยครับ ไม่ต้องคิดทำแข่ง ยกตลาดประเทศให้ facebook, google เค้าไปเลย
ทำไมไม่พลิกวิกฤตเป็นโอกาสล่ะครับ
การที่บริการเหล่านี้อยู่ที่ต่างประเทศ ต้องจ่ายเน็ตแพงถ้าจะใช้ จริงๆ ควรจะทำให้มันยากที่จะใช้ 
ก็ดีแล้วนี่
แล้วก็รวมตัวกันทำของไทยขึ้นมา อะไรอย่าง facebook, youtube แน่นอนถ้าทำให้ดีเท่าเขาหรือเจ๋งกว่าเขาในวันนี้ อาจจะต้องใช้พลังมาก
แต่เริ่มต้นไม่ต้องขนาดนั้นนี่ เอาแค่ 20% ที่ทำให้รองรับ 80% ของการใช้งานของผู้ใช้
ก็เพียงพอแล้ว
เพียงแค่บริษัทโทรคมนาคมในไทยฯ ยักษ์ใหญ่ทั้งหลาย ประกาศสนับสนุน social network ของไทย ถ้าใช้พวกนี้ ค่าโทรถูกกว่า ค่าเน็ตถูกกว่า
ภาครัฐก็สนับสนุนด้วย องค์กรภาครัฐทั้งหลาย จะประชาสัมพันธ์ข้อมูลของตัวเองลงในบริการของไทยเท่านั้น และเม็ดเงินโฆษณาก็จะลงตรงนี้ แทนที่จะไปบริการต่างประเทศ
ทำให้มันเป็นวาระแห่งชาติ
โรงเรียน สถานศึกษาต่างๆ ก็เน้นๆ บริการของไทย
นี่แหละถึงจะเป็น Digital Economy อย่างแท้จริง
แค่นี้ก็เพียงพอสำหรับการเริ่มต้น หลังจากนั้นพอผู้ใช้เริ่มถ่ายเทมาที่บริการของไทย สัก 10-20 ล้านคน จะแข่งขันกับบริการระดับโลกก็ไม่กลัวแล้ว เชิญทุกเจ้ามาตั้งระบบที่ไทยเลย 
ไม่ใช่เรื่องที่ทำไม่ได้ครับ
ประเทศอื่นๆ เค้าไม่ได้ถูก Google, Facebook กินตลาดแทบจะ 100% เหมือนเมืองไทยนะครับ บริการอย่าง LINE, Naver, Baidu, Sina, Renren, Pengyou, QQ, Youku, WeChat ในญี่ปุ่น เกาหลี จีน เค้าสู้กับของฝรั่งได้สบายๆ
ทำไมล่ะ มือตีนก็เท่ากับเรา และของพวกนี้มันทำได้โดยไม่ต้องมีโรงงานลงทุนเป็นหมื่นล้านอะไร แค่มันสมองกับอุปกรณ์คอมพิวเตอร์ 
อย่าอ้าง เมืองไทยตลาดเล็ก เกาหลีใต้ ประชากรน้อยกว่าเรา

อย่าอ้าง คนไทยภาษาอังกฤษไม่ดี ประเทศพวกนี้ ภาษาไม่ได้ดีเด่กว่าเรา

อยู่ที่ว่าคิดจะสู้หรือเปล่าเท่านั้น!
ซึ่งผมเชื่อว่าถ้าคนอย่าง Mark Zuckerberg หรือ Steve Jobs หรือ Larry Page มาเกิดในเมืองไทย
มันสู้แน่ๆ ว่ะ
เรื่องอื่นๆ เมืองไทยเราก็ทำได้ มีบริษัทระดับโลกหลายเรื่องแล้ว อาหาร เกษตรกรรม น้ำเมา ปิโตรเคมี สื่อสาร เหลือแต่เรื่อง IT นี่แหละ

ซึ่งเริ่มตอนนี้ก็ยังไม่สายครับ แต่ต้องรวมพลัง มีจุดมุ่งหมายอันเดียวกัน
ท่านผู้มีอำนาจและโอกาสทั้งหลาย จะรวมพลังกันสู้ หรือ จะยกตลาดในประเทศถวายฝรั่งก็เชิญเลือกเอาเถิด

เทียบความเร็ว Symfony 2.7, Laravel 5.1, Drupal 8

เทียบความเร็ว Symfony 2.7, Laravel 5.1, Drupal 8
รันบน Ubuntu 14.04, 8GB, virtual machine บน Xen Server อีกที

โค้ดเบามากๆ แค่ generate random number

Laravel 5.1:
app/Http/routes.php:
Route::get(‘lucky’,’LuckyController@index’);

app/Http/Controllers/LuckyController.php:
middleware(‘guest’);
    }

    public function index()
    {
            $number = rand(0, 100);

            return ‘Lucky number: ‘.$number.”;
    }
}

Symfony:
<?php
// src/AppBundle/Controller/LuckyController.php
namespace AppBundleController;

use SymfonyBundleFrameworkBundleControllerController;
use SensioBundleFrameworkExtraBundleConfigurationRoute;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationJsonResponse;

class LuckyController extends Controller {
    /**
     *@Route("/lucky")
     */
    public function numberAction()
    {
        $number = rand(0, 100);

        return new Response(
            'Lucky number: ‘.$number.”
        );
    }
}

Drupal 8:

modules/hello_world/hello_world.routing.yml:
hello_world.lucky:
  path: ‘/lucky’
  defaults:
    _controller: ‘Drupalhello_worldControllerLuckyController::lucky’
    _title: ‘Lucky Number’
  requirements:
    _permission: ‘access content’

modules/hello_world/src/Controller/LuckyController.php
trigger(); # ไม่ให้ cache ผลลัพธ์
        $number = rand(0, 100);

        return array(
                ‘#type’ => ‘markup’,
                ‘#markup’ => ‘Lucky number: ‘.$number.”,
                //’#cache’ => [ ‘max_age’ => 0,], # ทำแบบนี้แล้วไม่เห็นมันจะไม่ cache
                //’cache’ => array( ‘max_age’ => 0,), # ทำแบบนี้แล้วไม่ cache แต่ผลลัพธ์มีกรอบสี่เหลี่ยมอะไรโผล่มาเพิ่มเฉย
        );

    }
}

ทดสอบด้วย ab

ab -c 10 -t 3

Symfony:
Document Path:          /ottos/lucky
Document Length:        42 bytes

Concurrency Level:      10
Time taken for tests:   3.002 seconds
Complete requests:      229
Failed requests:        27
   (Connect: 0, Receive: 0, Length: 27, Exceptions: 0)
Total transferred:      70282 bytes
HTML transferred:       9597 bytes
Requests per second:    76.27 [#/sec] (mean)
Time per request:       131.110 [ms] (mean)
Time per request:       13.111 [ms] (mean, across all concurrent requests)
Transfer rate:          22.86 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   0.3      0       4
Processing:    39  128  45.8    126     279
Waiting:       39  128  45.8    126     279
Total:         39  128  45.8    126     280
ERROR: The median and mean for the initial connection time are more than twice the standard
       deviation apart. These results are NOT reliable.

Percentage of the requests served within a certain time (ms)
  50%    126
  66%    146
  75%    162
  80%    169
  90%    183
  95%    200
  98%    232
  99%    252
 100%    280 (longest request)

Laravel:

Document Path:          /ottol/lucky
Document Length:        42 bytes

Concurrency Level:      10
Time taken for tests:   3.018 seconds
Complete requests:      111
Failed requests:        6
   (Connect: 0, Receive: 0, Length: 6, Exceptions: 0)
Total transferred:      116778 bytes
HTML transferred:       4658 bytes
Requests per second:    36.78 [#/sec] (mean)
Time per request:       271.918 [ms] (mean)
Time per request:       27.192 [ms] (mean, across all concurrent requests)
Transfer rate:          37.78 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   0.8      1       5
Processing:   119  262  78.9    249     609
Waiting:      118  261  78.9    249     608
Total:        121  262  79.1    250     611

Percentage of the requests served within a certain time (ms)
  50%    249
  66%    283
  75%    306
  80%    330
  90%    353
  95%    404
  98%    447
  99%    473
 100%    611 (longest request)

Drupal 8:
Document Path:          /ottod8/lucky
Document Length:        2340 bytes

Concurrency Level:      10
Time taken for tests:   3.006 seconds
Complete requests:      78
Failed requests:        14
   (Connect: 0, Receive: 0, Length: 14, Exceptions: 0)
Total transferred:      233052 bytes
HTML transferred:       182508 bytes
Requests per second:    25.94 [#/sec] (mean)
Time per request:       385.440 [ms] (mean)
Time per request:       38.544 [ms] (mean, across all concurrent requests)
Transfer rate:          75.70 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   1.2      1      10
Processing:   152  362  74.7    360     592
Waiting:      152  362  74.6    360     592
Total:        154  363  74.6    360     593

Percentage of the requests served within a certain time (ms)
  50%    360
  66%    398
  75%    411
  80%    414
  90%    460
  95%    487
  98%    521
  99%    593
 100%    593 (longest request)

ความเร็วเรียงตามผลลัพธ์เลย Symfony < Laravel < Drupal

Laravel Notes

Laravel Notes

composer global require “laravel/installer=~1.1”
laravel new blog
setfacl -R -m u:www-data:rwx -m u:pattara:rwx storage bootstrap/cache/
setfacl -dR -m u:www-data:rwx -m u:pattara:rwx storage bootstrap/cache/
vi config/app.php # เปลี่ยน timezone, whatever
vi config/database.php

php artisan config:cache
php artisan down
php artisan up

app/Http/routes.php
app/Http/Controller.php

Symfony / Doctrine/ PostgreSQL

Symfony / Doctrine/ PostgreSQL

แปะไว้ประหยัดเวลาครั้งหน้า

เวลาจะสั่ง
(อ้างถึง http://symfony.com/doc/current/book/doctrine.html)

php app/console doctrine:database:drop –force
php app/console doctrine:database:create

เวลา set ใน app/config/parameters.yml

1. ต้องมี  single quote คร่อม
 database_password: “123456”

2. กำหนดให้ database_user เป็น “staff” ต้องสร้าง database ชื่อ staff ไว้ด้วย ไม่งั้นมันจะ 
SQLSTATE[08006] [7] FATAL:  database “staff” does not exist

สงสัยคนเขียน Symfony ใช้ MySQL เป็นหลัก

http://symfony.com/doc/current/book/doctrine.html

สำนัก Project X แห่งชาติ

ผมเคยตั้งคำถามว่า อุตสาหกรรมรถยนต์ของไทยที่ใครเรียกว่าเป็น ดีทรอยท์แห่งเอเชีย แล้วทำไมไม่เห็นมีรถยนต์ยี่ห้อของไทยสักยี่ห้อ?

สอบถามคนในวงการก็ได้รับแต่คำตอบว่า โอ ขนาดนั้นมันยาก ไม่ทันแล้ว คนไทยไม่ไหว ทำไม่ได้หรอก ฯลฯ 
เราเป็นได้แค่ฐานรับจ้างการผลิตให้ต่างชาติ กำไรส่วนบนสุดนั้นบริษัทเจ้าของยี่ห้อเอาไป เหลือให้เราแค่ค่าแรงขั้นต่ำๆ ก็โอแล้วล่ะ
จริงหรือ?
เหลียวมองมาวงการไอที ถามว่า ตั้งแต่เช้ามาท่านได้ใช้ผลิตภัณฑ์ IT อะไรของคนไทยบ้างครับ ฮาร์ดแวร์หรือซอฟต์แวร์ก็ได้ คิดเป็นกี่ % ของทั้งหมดที่ใช้ในแต่ละวัน เกิน 10% มั้ย?
ขอพาดพิงถึงโครงการดิจิทัลอีโคโนมีอีกครั้ง ผมได้มีโอกาสไปร่วมระดมสมองอยู่ครั้งหนึ่ง คุยๆ ในกลุ่มจับใจความได้ว่า เราก็ตั้งเป้าให้ภายใน 3 ปี ทุกหน่วยงานมี IT ใช้กันกว้างขวางและมีประสิทธิภาพ
แค่นั้นเองหรือครับ? ถ้าแค่จะใช้เทคโนโลยี ไม่ต้องถึงกับตั้งกระทรวงใหม่มั้ง ทุกวันนี้ภาคเอกชน ภาคปัจเจกชน เค้าใช้เทคโนโลยีกันเก่งจะแย่ 
ทำไมกรอบความคิดก็ยังอยู่ที่ คนไทยเป็นได้แค่ผู้ใช้ หรือ อย่างดีก็เอามา customize เล็กๆ น้อยๆ ปลายน้ำ เท่านั้น
โครงการระบบรางที่เราจะทำกันเยอะแยะไปหมด ทั้งความเร็วสูง ความเร็วปานกลาง ผมก็ได้ยินแต่เรื่องจะให้ประเทศโน้นประเทศนี้มาทำ กู้ๆ เงินมาสร้างๆ 
ไม่เห็นได้ยินว่าเราจะถือโอกาสนี้พัฒนาเทคโนโลยีอะไรของเราเองเลย 
ผมเชื่อว่า ถ้าคิดว่าทำไม่ได้ ก็จะทำไม่ได้อย่างนี้แหละ ตลอดไปและตลอดชาติ 
เราจะไม่มีวันมีรถยนต์เป็นของตนเอง ไม่มีผลิตภัณฑ์ทางเทคโนโลยีอะไรเจ๋งๆ เป็นของตนเองจนกว่าจะมีคนรุ่นถัดไปที่กล้าคิด และกล้าทำ มาเปลี่ยนความคิดนี้
คนไทยเราไม่ใช่ไม่เก่งนะ ระดับมันสมองก็มีมาก แต่จำนวนมากทำงานบริษัทข้ามชาติกันดีกว่า เงินเดือนดี บริหารงานมีระบบ ก็ต้องกินต้องใช้อ่ะนะ

เก่งมากหน่อยก็ทำ start-up เป็นธุรกิจของตนเอง สักพักก็มีต่างชาติมาลงทุน, ซื้อ, ชวนไปอยู่ต่างประเทศ ฯลฯ ตามสูตร
สิ่งที่ประเทศชาติต้องการอย่างยิ่งตอนนี้ จึงไม่ใช่กระทรวงใหม่ที่มาผลักดันการใช้ IT
แต่คือ ความกล้าคิด ที่จะผลักดันให้ประเทศไทยพลิกกลับมาเป็นผู้ผลิตทางเทคโนโลยีบ้าง
ซึ่งก็ต้องยอมรับความจริงว่าไม่ใช่ว่าอยู่ดีๆ จะเนรมิตให้ประเทศเรากลายเป็นมหาอำนาจทางเทคโนโลยี มันไม่ใช่ง่ายๆ มันต้องมีกลยุทธ์ที่แยบยล มันต้องครบวงจรทั้ง
R – Research
D – Development
E – Engineering
C – Commercial
ไม่ใช่มีแค่ R&D นักวิจัยคิดว่าวิจัยไรดีว้า ทำเสร็จออกมา เอ้าใครอยากเอาไป commercialize บ้าง ทำไมไม่ค่อยมีล่ะ

มันต้องกลับข้างกัน C – Commercial ต้องเป็นตัวนำ เราจะทำอะไร เป้าหมายคืออะไร ทำอย่างไรถึงจะอยู่รอด แข่งขันได้

จากนั้นต้นน้ำ R&D ต้องสนับสนุน และทำให้มันเป็นจริงในระดับอุตสาหกรรมด้วย Engineering
สุดท้ายต้องแข่งขันได้ในระดับ Commercial ซึ่งอาจต้องจำเป็นใช้เทคนิคพวก regulation ต่างๆ มาให้เกิดการแข่งขันที่_ไม่เท่าเทียม_แต่ยุติธรรม เพื่อให้รายใหม่แข่งได้
ผมจึงมองว่า น่าจะมี หน่วยงานที่มีหน้าที่สร้าง Mission ที่ง่ายๆ สั้นๆ และผลักดันทุกวิถีทางที่จะทำให้ Mission นั้นสำเร็จ 
หน่วยงานต้องมีอำนาจข้ามกระทรวง เพราะงานแบบนี้ต้องใช้หลายวงการรวมถึงภาคธุรกิจด้วย 
ไม่ใช่แค่ภาครัฐเอาเงินมาทุ่ม จ้างงาน เอกชนมาทำ แล้วจบ แบบนั้นมันอยู่ไม่ยืด มันต้องให้อยู่ในธุรกิจของตัวเองต่อไปได้ด้วย
Mission เช่น
1. ตู้โดยสารรถไฟต้องเป็นยี่ห้อที่ผลิตในประเทศไทยเท่านั้น
หัวรถจักร ถ้ายากไป ก็ไม่เป็นไร แต่ตู้โดยสาร คนไทยน่าจะทำได้นี่
กระตุ้นให้เกิดผู้ประกอบการสัก 2-3 ราย ผลิตแบบคุณภาพดีๆ หวังส่งออกด้วย
2. รถยนต์ยี่ห้อของประเทศไทย
ไม่ต้องเป็นรถยนต์แห่งชาติของรัฐบาลครับ แบบนั้นอยู่ไม่รอดระยะยาว, แต่ผลักดันให้เกิดธุรกิจรถยนต์ของคนไทย โดยหลายๆ ส่วนไม่จำเป็นต้องทำเอง เช่น เครื่องยนต์ ยากนัก ซื้อมาก่อน ฯลฯ
แต่การ design, branding, การตลาด ต้องทำเอง 
วิธีผลักดันง่ายๆ ก็ออกกฎรถยนต์ภาครัฐทั้งหมดต้องมีรถที่เป็นยี่ห้อของไทยไม่ต่ำกว่า 50%? แค่นี้ก็สร้าง demand มหาศาลแล้วไหม
3. บริการทาง IT ของคนไทย ระดับ 10 Million users มากกว่า 10 บริการ
อ้างถึงบทความ ดิจิทัล อีโคโนมี ของใคร? อย่างที่บอก ปัจจุบันต่างชาติกินรวบ

นิยามของคำว่าของคนไทย คือ ธุรกิจส่วนวิจัยและพัฒนาต้องอยู่ในเมืองไทย, server ต้องอยู่ในเมืองไทย, เสียภาษีประเทศไทย

กระตุ้นด้วยมาตรการทางภาษี ถ้าธุรกิจใช้บริการเหล่านี้ได้ลดภาษี และ ภาครัฐให้เลือกใช้บริการของคนไทยก่อนเท่านั้น
มาตรการกระตุ้นเหล่านี้ (พูดให้ชัดคือ มาตรการกีดกันต่างชาติ เพื่อให้ของไทยสู้ได้) อาจฟังดูจีนๆ สักนิด ฟังดูไม่เสรี ไม่โลกาภิวัฒน์ แต่เป็นสิ่งที่จำเป็น และในฐานะผู้ใช้ต้องทนใช้ของที่ห่วย (กว่าระดับโลก) สักแป๊บ เชื่อว่าไม่นานครับ และต้องทำให้แยบยล
พอปั้นให้ธุรกิจเหล่านี้ใหญ่โตระดับหนึ่งแล้ว ก็กลับมาปล่อยเสรีเต็มที่ได้ครับ ยกตัวอย่างธุรกิจของไทยใหญ่ๆ ปตท., ThaiBev, Central พวกนี้เค้าแข่งระดับโลกได้แล้ว
และงานของ Mission นั้นๆ ก็ถือว่าหมดไป ครบทุก Mission สำนักงานนี้ก็ปิดตัวไปได้
ไม่ง่าย แต่เชื่อว่าทำได้และท้าทายมาก และจะดึงคนเก่งๆ ของเราให้กลับมาทำงานเพื่อชาติ และให้โอกาสพวกเขาในการดำเนินธุรกิจใน Mission นั้นๆ ระดับโลกต่อไปด้วย!

เราสามารถโพสต์ blogger ทาง e-mail ได้

โดยไปตั้งค่าไว้ก่อนว่าถ้าส่งถึง callmeott.xxxxxx@blogger.com จะเข้าเป็น Post ฉบับร่างให้เลย

ข้อดีคือ เขียนใน gmail ซึ่งสามารถแปะรูปจาก clipboard ได้ง่ายๆ (cut&paste)
(เขียน blog มันเหนื่อยตอน upload รูป)

Digital Economy ของใคร?

โทรศัพท์มือถือ Smartphone สงครามเหลือแค่ระหว่างสองตระกูลหลัก แอนดรอยด์และไอโฟน จากอเมริกาทั้งคู่ ไอโฟนเครื่องก็ทำโดย Apple อเมริกา ส่วนแอนดรอยด์เครื่องส่วนใหญ่น่าจะจากเมืองจีน ไม่ก็เกาหลี Samsung, LG ไม่ก็ไต้หวัน Asus

นั่งทำงานเบื่อๆ หรือ ยังไม่เบื่อ เราก็เช็ค facebook ของอเมริกา ติดต่อสื่อสารก็แน่นอน ต้อง LINE จากบริษัทเกาหลีในญี่ปุ่น ประชาชนอย่างเราก็ซื้อสติกเกอร์กันสนุกมือ
ล่าสุดมี LINE Pay ด้วยจ่ายเงินซื้อของโน่นนี่ สะดวกสบาย

องค์กรภาครัฐภาคเอกชน จะให้เท่ห์ก็ต้องทำ LINE สติกเกอร์ขององค์กรหน่อย ไว้แจกขำๆ

แสนเบื่อเรียกรถแท็กซี่ทีไรก็ไม่ไป ก็ไปใช้ GrabTaxi สิ (มาเลเซีย) มีตังค์หน่อยก็ Uber (อเมริกา) มันช่างแสนสะดวก

ไปเที่ยวพักผ่อนทำยังไงดี จองโรงแรมก็ต้อง Agoda (อยู่ในเครือ Priceline ของอเมริกา?) หรือ ใหม่ล่ามาแรงก็จองผ่าน Airbnb ประหยัดกว่า และใครมีห้องพักคอนโดว่างๆ ก็ไปฝาก Airbnb ไว้ หารายได้เสริม

จับจ่ายใช้สอยเดี๋ยวนี้ก็ต้อง E-Commerce อยู่บ้านคลิกๆ ของก็มา Lazada (เยอรมัน?) แสนสะดวกสุดๆ หรือว่าจะ Tarad (ญี่ปุ่น?) ดี

ธุรกิจจะลงโฆษณาออนไลน์ ยุคนี้จะมีอะไรสะดวกไปกว่าลงกับ facebook หรือ Google แค่กดๆ คลิกๆ ก็เสร็จ มีเว็บมีคนดูเยอะ ก็เอาพื้นที่ไปให้เค้า เดี๋ยวก็ได้เงินใช้
search engine บ้านเรา Google กินรวบ ส่วนแบ่งตลาดน่าจะ 99.999999%

คนรุ่นใหม่ดู Youtube มากกว่าทีวี จะลงโฆษณาก็ไปลงกับ Youtube สิ มาออก 3/5/7/9 ทำไม

ธุรกิจต้องมีระบบคอมพิวเตอร์ ยุคนี้จะไปซื้อเครื่องคอมพิวเตอร์เองก็หมดสมัย ใช้ cloud กันดีกว่า นี่เลย Amazon AWS, Google, Microsoft Azure ฯลฯ

ทั้งหมดเป็นเพียงตัวอย่างของโลกยุคใหม่ซึ่งเปลี่ยนจากหน้ามือเป็นหลังเท้า ผมไม่ปฏิเสธว่าทั้งหมดนี่คือนวัตกรรม
เป็นสิ่งที่ทำให้ชีวิตเราดีขึ้น มันคือหนทางแห่งอนาคตที่เราปฏิเสธไม่ได้

แต่นวัตกรรมเหล่านี้ ให้บริการโดยบริษัทต่างชาติ เม็ดเงินจากผู้ซื้อไหลไปหาตัวกลางที่อยู่ต่างประเทศแทนที่จะวนเวียนอยู่ในประเทศ ทุกครั้งที่คุณนั่ง Uber ที่จองโรงแรมไปเที่ยวในเมืองไทยก็ตาม ค่าต๋งส่วนหนึ่งหายไปสร้างความมั่งคั่งให้ต่างประเทศครับ

และมิหน้ำซ้ำ รายได้ของบริการต่างประเทศเหล่านี้ ประเทศไทยก็เก็บภาษีอะไรไม่ได้ด้วย เสียหายเป็นเด้งที่สอง

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

อาจจะต้องเรียนรู้จากจีน มั้ง

แปะไว้หน่อย จำไม่ค่อยได้

แปะไว้หน่อย จำไม่ค่อยได้

วิธีใส่ใน start up ของซอฟต์แวร์ที่ลงด้วย Homebrew บน Mac OS X

To have launchd start privoxy at login:
    ln -sfv /usr/local/opt/privoxy/*.plist ~/Library/LaunchAgents

Then to load privoxy now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.privoxy.plist

Or, if you don’t want/need launchctl, you can just run:
    privoxy /usr/local/etc/privoxy/config

วิธีใช้ TOR บน Linux ด้วย wget

วิธีใช้ TOR บน Linux ด้วย wget

http://superuser.com/questions/404732/how-to-use-wget-with-tor-bundle-in-linux
=====================================================
on Ubuntu or Debain, install package “torsocks”

sudo apt-get install torsocks

After that, use wget like this:

torsocks wget http://foo.onion/data.bar

http://superuser.com/questions/404732/how-to-use-wget-with-tor-bundle-in-linux

Ubuntu 14.04 HHVM postgresql set up

Ubuntu 14.04 HHVM postgresql set up

ตามนี้

https://github.com/PocketRent/hhvm-pgsql/tree/releases

คือ 
cd /etc/hhvm
wget https://github.com/PocketRent/hhvm-pgsql/raw/releases/3.7.0/ubuntu/trusty/pgsql.so
vi php.ini

เพิ่ม

# Ott July 4, 2015
# https://github.com/PocketRent/hhvm-pgsql/tree/releases
extension_dir = /etc/hhvm
hhvm.extensions[pgsql] = pgsql.so
# Test with hhvm –php -r ‘var_dump(function_exists(“pg_connect”));’

แล้วก็ /etc/init.d/hhvm restart

https://github.com/PocketRent/hhvm-pgsql/tree/releases

LEMP stack installation on Ubuntu 14.04

LEMP stack installation on Ubuntu 14.04

Nginx:
apt-get install nginx
แล้วก็ แก้ /etc/nginx/sites-available/default

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name localhost;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

        # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
        #location /RequestDenied {
        #       proxy_pass http://127.0.0.1:8080;
        #}

        error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/html;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #

        # อันนี้กรณีถ้าจะใช้กับ PHP เดิม ต้องลง php5-fpm และแก้ /etc/php5/fpm/php.ini ให้มี cgi.fix_pathinfo=0
แต่ถ้าจะใช้ hhvm ก็เปลี่ยน location ~ .php ตรงนี้เป็น  include /etc/nginx/hhvm.conf;
        location ~ .php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+.php)(/.+)$;
                # NOTE: You should have “cgi.fix_pathinfo = 0;” in php.ini

                # With php5-cgi alone:
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

        # deny access to .htaccess files, if Apache’s document root
        # concurs with nginx’s one
        #
        location ~ /.ht {
                deny all;
        }
}

HHVM

# installs add-apt-repository
sudo apt-get install software-properties-common

sudo apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
sudo add-apt-repository “deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main”
sudo apt-get update
sudo apt-get install hhvm

# If you are getting segfaults
sudo apt-get install hhvm-dbg

# Living on the edge (rebuilt everyday, unstable)
sudo apt-get install hhvm-nightly

# Segfaults in the nightly
sudo apt-get install hhvm-nightly-dbg

https://github.com/facebook/hhvm/wiki/prebuilt-packages-on-ubuntu-14.04

แล้วก็ให้มันเชื่อมโยงกัน
* $ sudo /usr/share/hhvm/install_fastcgi.sh
(ซึ่งเหมือนมันจะสร้าง /etc/nginx/hhvm.conf ให้)

* $ sudo /etc/init.d/hhvm restart
ให้มัน autostart
update-rc.d hhvm defaults

ทดสอบโดยใส่ /usr/share/nginx/html/info.php
<?php

echo phpinfo();

ทำเป็น commandline เลย
/usr/bin/update-alternatives    –install /usr/bin/php php /usr/bin/hhvm 60

[Ubuntu] วิธี lock  package ไม่ให้โดน upgrade  ไปรุ่นที่สูงกว่านี้

[Ubuntu] วิธี lock  package ไม่ให้โดน upgrade  ไปรุ่นที่สูงกว่านี้

ตั้งใน /etc/apt/preferences.d/slony ดังนี้ มันจะยึดโยง package ให้อยู่ในเวอร์ชั่นที่กำหนด ไม่โดนอัพเวลาสั่งอัพเดต

Package: postgresql-9.1-slony1-2
Pin: version 2.0.7-3build1
Pin-Priority: -1

Package: slony1-2-bin
Pin: version 2.0.7-3build1
Pin-Priority: -1

session#2 Material Design by Michael Yeung

session#2 Material Design by Michael Yeung

5 ปีที่แล้ว UI google แตกระแหงมาก web, android app, web mobile+ios
4 ปีที่แล้ว google ลองทำ Holo theme (icecream sandwitch)
2014 เปิดตัว Material Design

Holo ก็ดีแต่ยังไม่ converging ระหว่าง web / mobile

same functions shown on different screens
ได้ 2014 UX Awards Gold Winner “Best Contribution To UX”
Concepts
1. Tangible Surfaces
layer เป็นชั้นๆ
มี Depth (แล้วมันต่างจาก iOS7 ยังไง)
มีเงา
Z-value ==> Elevation + Transient delta (กระเด้งนิดๆ ตอนกด)
Interaction Cues: เวลา scroll จะให้ความรู้สึกมีหลายชั้น แต่ละอันเลื่อนไปไม่เท่ากัน
Cards อารมณ์เหมือน piece of self-contained block of information (paper) มีขอบ และดูลอยๆ จากพื้นนิดๆ

2. Print-like Design 
Refined typography
Typographic Scale 
เค้าว่า google เปลี่ยนเรื่อง font face / typographic เทียบสองรูปให้ดู ก็ดูไม่ออกว่ะ ว่าแตกต่างกันยังไง
Weight มี Bold / Medium / Regular / Light / Thin
Baseline grids + keylines เรียง text/element ให้มันดูตรงๆ กัน
Geometric Iconography เป็น set ของ standard icons 
เค้าเน้นให้ใช้ Bold / Vibrant Colors
สีมี Primary (แสดง Branding ของ App) และ Accents (สีตกแต่งที่เข้ากัน)
Immersive contextual imagery ใส่รูปเยอะๆๆ จะได้ดูกลมกลืน, ง่ายๆ (เหรอ??)

3. Meaningful motion
effect motion/transform ต่างๆ ให้มันต่อเนื่อง และเกี่ยวข้อง เช่น กดรูปอัลบั้มเล็กๆ แล้วตัวมันก็เหมือนเด้ง โตขึ้นมา ไม่ใช่อยู่ดีๆ ไปไหลมาจากด้านข้าง
Users initiate change กด clear ในเครื่องคิดเลข แล้วเหมือนมีคลื่นมาลบตัวเลขหายไปหมด หรือ กด Back ไป home แล้ว content ค่อยๆ ลบออกไป กลับไปหน้า Home 
กดปุ่ม แล้วมันทำอะไรเสร็จ แล้วปุ่มก็เปลี่ยนตัวเองเป็นแบบเสร็จแล้ว

4. Adaptive Design 
ผู้ใช้ปัจจุบันมีหลายจอ 
content เดียวกัน จอขนาดต่างกัน ก็ควรแสดงให้มันไปในทางเดียวกัน

โดยสรุปแล้ว ความเห็นตัว Material Design มันดีขึ้น ถ้าเทียบกับ design เดิมๆ ของ Google ที่ค่อนข้างหลากหลายมาก

แต่จะว่าไปจริงๆ แล้วมันคือ Effort ของ Google ที่จะ Unity UI ของตัวเองเฉยๆ หรือเปล่า แล้วก็เรียกชื่อใหม่ ปรับเล็กๆ น้อยๆ ให้มัน ไฉไล แต่ถ้าถามว่าเทียบกับ Design ของ IOS หรือ ค่ายอื่นๆ มันก็ไม่ได้มีอะไรที่ breakthrough / innovative มากนักหรือเปล่านะ ไปก็ไปในแนวทางทำนองนี้
เรื่อง Cards หรือ ตุ่มเดียวเด่นๆ ในแต่ละหน้า (ไม่รู้เรียกอะไร) มันก็เป็นแค่โหมดนึงที่จะแสดง content บางอย่างนะ ไม่ได้เหมาะกับทุกอย่าง

ชอบรูปแบบการพูดของแต่ละ speaker ตรงที่มีการจัดมาเป็น ข้อๆ มันทำให้เข้าใจภาพรวมง่ายดี ว่าทั้งหมดเขาพยายามจะสื่ออะไร

มาฟัง Google Developer Summit 2015

มาฟัง Google Developer Summit 2015

session แรก Adom Koch พูดเรื่อง Building for the next billion users

#10 responsiveness
– touch latency = actual + perceived latency
100ms ผู้ใช้ทนได้
perceived latency ลดได้ โดย UI ต้องตอบสนองก่อน (touch feedback) immediately

#9 design

Use an App Bar (ดีัยังไง ยังไม่เข้าใจ)
เลือก navigation mode ให้ถูกต้อง
AppCompat for backward compat

#8 Anticipate
pre-fetch content รู้ว่า user กำลังกด ก็โหลดมารอเลย
ใช้ “JobScheduler”

#7
be start about mobile data usage
ต้องรู้ว่าตอนนี้ผู้ใช้ ต่อ 2G, 3G, … และเรียกใช้งานให้เหมาะสม
monitor network connectivity changes 
connected != actvie
app ควรมีให้ดูว่าใช้ network ไปเท่าไหร่  (?)

#6 webp
24-34% better than jpeg
28% better than png (no loss in visible quality)
เค้าว่าลดปริมาณข้อมูลได้ 30%

#5 put your APK on a diet
เค้าว่าขนาดของ APK matters
Google Play smart updates 
ทำไงอย่าให้ user ปิด auto updates
Launcher icons ให้เก็บใน mipmap-hdpi อย่าเก็บใน  Drawable (?)

Remove unused code and resources
minifyEnabled = true
shrinkResources=true

#4
keep graphic performance smooth
60fps = 16ms per frame
reduce “actual” latency

minimize layout overdraw and layout depth
only run UI updates and logic on the UI thread (อื่นๆ ควรอยู่ใน background thread ให้หมด)
memory allocations can cuase GC (ซึ่งจะทำให้อึ้ง)
– แนะนำให้ใช้ Glide / Picasso (?)
Use on-devices tools, GPU profiling / overdraw

# 3 Battery
พวกกินเยอะ คือ screen, mobile network, และการไป block ทำให้มันเข้า low power ไม่ได้
อย่าใช้ WakeLocks โดยไม่จำเป็น
Use FLAG_KEEP_SCREEN_ON and WakefulBroadcastReceiver
ใช้ JObScheduler API
Batch network transfers รวมๆ กันดีกว่า

#2 Memory
Reduce memory usage
more background memory usage ทำให้ multitasking ช้าลงและ efficiency ลด
Subclass IntentService, not Service 
ใช้ GCM, JObScheduler, AlarmManager, etc.
ActivitiyManager.isLowRamDevice() –> 512MB + 800×480 or less screen

#1 App Architecture
– network requests อย่าเรียกซ้ำ ให้รู้จักเก็บไว้ (local db หรือ bounded disk cache)
– หน้าจอควรัยงต้องใช้ได้ ถึงแม้ network เน่า
– never block UI for long running operation ใช้ inline loading spinners หรือ AsyncTask (only for UI related background operations)

android
motto เค้า
be together, not the same

ปัญหาคือ Time Machine backup แต่ละครั้ง ขนาดมันโตขึ้นเรื่อยๆ จนเป็นสิบ GB เลยอยากรู้ว่ามัน backup อะไรนักหนา

ปัญหาคือ Time Machine backup แต่ละครั้ง ขนาดมันโตขึ้นเรื่อยๆ จนเป็นสิบ GB เลยอยากรู้ว่ามัน backup อะไรนักหนา 

ค้นเจอ http://hints.macworld.com/article.php?story=20080714124323976 ได้ความว่ามีคนเขียน script ดู Time Machine backup ชื่อ timedog ดาวน์โหลดได้จาก https://code.google.com/p/timedog/

โหลดมาแล้วก็ไปที่ /Volumes/Time Machine Backups/Backups.backupdb/ แล้วก็สั่ง

timedog -d 5 -l

มันจะขุดค้นมาให้ว่า folder แต่ละอันที่ backup ขนาดเท่าใด

แล้วก็ค้นพบว่า ต้นตอปัญหาคือ Thunderbird มันเล่นเก็บเมล์ folder ละไฟล์เดียว มีเมล์เพิ่มมาอันนึงก็ต้อง backup ทั้งไฟล์ เลยจัดการ exclude เอาออกซะจากรายการสิ่งที่ต้อง backup (มันเป็น ImapMail อยู่แล้วไม่เป็นไร เครื่องหายก็ sync จาก server ใหม่เอาละกัน)

http://hints.macworld.com/article.php?story=20080714124323976

วิธีขยายรูปให้ได้ตามขนาดที่ต้องการ โดยคงสัดส่วนและขนาดรูปเดิม แค่เติมพื้น background เข้าไป ด้วย imagemagick เช่น…

วิธีขยายรูปให้ได้ตามขนาดที่ต้องการ โดยคงสัดส่วนและขนาดรูปเดิม แค่เติมพื้น background เข้าไป ด้วย imagemagick เช่น สร้างภาพ 1200×628 จาก input.png โดยเอารูปเดิมไว้ตรงกลาง และเติมสีพื้นสีขาวให้กับส่วนข้างๆ

convert input.png -resize 1200×628 -gravity center -background white -extent 1200×628 output.png

Apple บอกว่าแจก Pages, Numbers, Keynote ฟรี แต่จะใช้ได้ต้องสำหรับเครื่องที่เพิ่งซื้อใหม่ (ต้องผูก account ตอนแรก)…

Apple บอกว่าแจก Pages, Numbers, Keynote ฟรี แต่จะใช้ได้ต้องสำหรับเครื่องที่เพิ่งซื้อใหม่ (ต้องผูก account ตอนแรก) แต่มีวิธีที่จะลงกับเครื่องเก่า กล่าวคือ ให้ไปดาวน์โหลด iWork09 รุ่น Trial มาลงก่อนทีนึง (ตามรายละเอียดด้านล่าง หรือ http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iWork/Trial/2Z693-6764.01022009.awq23/iWork09Trial.dmg )  แล้วค่อยใช้ App Store สั่ง Update ก็จะได้รุ่นล่าสุด

1. Visit this Softpedia link to download a free trial of iWork ’09.
2. Click Download, and then click External Mirror 1.
3. Double-click on the downloaded file. This will open up a window with a couple of files inside.
4. Double-click Install iWork ’09 Trial and follow the installation instructions.
5. After installation, close out the install windows and wait a few minutes for your Mac to recognize the newly-installed apps.
6. Next, open up the App Store app and click on the Updates tab at the top. You should see updates for Pages, Numbers and Keynote.
7. If you don’t see updates for these apps yet, close out of the App Store and wait a few minutes before opening it back up.

http://www.gottabemobile.com/2013/10/23/video-showcases-lumia-1520s-new-light-reflect-coating/

http://www.gottabemobile.com/2013/10/23/video-showcases-lumia-1520s-new-light-reflect-coating

วิธีเพิ่ม hard disk ให้กับ Xen VM มากกว่า 6 disks

วิธีเพิ่ม hard disk ให้กับ Xen VM มากกว่า 6 disks 
(มันจะทำทาง UI ไม่ได้ ต้องใช้ command line)

https://techhelplist.com/index.php/tech-tutorials/41-misc/316-xenserver-create-and-attach-virtual-disk-from-xe-cli

# xe vm-list

uuid ( RO)           : ebb8f4ff-1b56-fa22-df84-c0689a3d47e1
     name-label ( RW): vmgoback
    power-state ( RO): running

[root@GDXEN01~]# xe vdi-list name-label=”SAN2-1″
uuid ( RO)                : 0a323777-b1f0-4794-bca3-f45097f8e31d
          name-label ( RW): SAN2-1
    name-description ( RW):
             sr-uuid ( RO): 10e4b583-d69e-8d29-d782-8c1c7f0e060c
        virtual-size ( RO): 2147483648000
            sharable ( RO): false
           read-only ( RO): false

[root@GDXEN01~]# xe vdi-list name-label=”SAN2-2″
uuid ( RO)                : f2b03488-6af6-4477-b04b-749b2774dfd3
          name-label ( RW): SAN2-2
    name-description ( RW):
             sr-uuid ( RO): 10e4b583-d69e-8d29-d782-8c1c7f0e060c
        virtual-size ( RO): 2147483648000
            sharable ( RO): false
           read-only ( RO): false

[root@GDXEN01~]# xe vdi-list name-label=”SAN2-3″
uuid ( RO)                : 8dfc4fdf-b567-498d-bb5a-a85a606444fa
          name-label ( RW): SAN2-3
    name-description ( RW):
             sr-uuid ( RO): 10e4b583-d69e-8d29-d782-8c1c7f0e060c
        virtual-size ( RO): 2147483648000
            sharable ( RO): false
           read-only ( RO): false

[root@GDXEN01~]# xe vdi-list name-label=”SAN2-4″
uuid ( RO)                : a37626c1-f59f-454f-88eb-12a821158497
          name-label ( RW): SAN2-4
    name-description ( RW):
             sr-uuid ( RO): 10e4b583-d69e-8d29-d782-8c1c7f0e060c
        virtual-size ( RO): 2147483648000
            sharable ( RO): false
           read-only ( RO): false

[root@GDXEN01~]# xe vdi-list name-label=”SAN2-5″
uuid ( RO)                : 4669a2b1-34fc-463b-9735-58343a7d75ea
          name-label ( RW): SAN2-5
    name-description ( RW):
             sr-uuid ( RO): 10e4b583-d69e-8d29-d782-8c1c7f0e060c
        virtual-size ( RO): 2147483648000
            sharable ( RO): false
           read-only ( RO): false

สร้าง VBD
# xe vbd-create vm-uuid=ebb8f4ff-1b56-fa22-df84-c0689a3d47e1 device=7  
                          vdi-uuid=0a323777-b1f0-4794-bca3-f45097f8e31d bootable=false mode=RW type=Disk
ca220c6b-ddc5-b05a-ffa2-364e02b09ea9

# xe vbd-create vm-uuid=ebb8f4ff-1b56-fa22-df84-c0689a3d47e1 device=8  
                          vdi-uuid=f2b03488-6af6-4477-b04b-749b2774dfd3 bootable=false mode=RW type=Disk
e5f1840b-0927-c233-094c-d87c7a725ce1

# xe vbd-create vm-uuid=ebb8f4ff-1b56-fa22-df84-c0689a3d47e1 device=9  
                          vdi-uuid=8dfc4fdf-b567-498d-bb5a-a85a606444fa bootable=false mode=RW type=Disk
addba0b3-b9e1-53bb-c11e-e05e5c3ea22b

# xe vbd-create vm-uuid=ebb8f4ff-1b56-fa22-df84-c0689a3d47e1 device=10  
                          vdi-uuid=a37626c1-f59f-454f-88eb-12a821158497 bootable=false mode=RW type=Disk
7d2e63c5-40fb-78f5-6e10-95ff4b7ebdff

# xe vbd-create vm-uuid=ebb8f4ff-1b56-fa22-df84-c0689a3d47e1 device=11  
                          vdi-uuid=4669a2b1-34fc-463b-9735-58343a7d75ea bootable=false mode=RW type=Disk
aafc5b27-88e2-a550-6cf1-2be4cb071fb1

จากนั้นก็เข้าไปกด Activate ใน  XenCenter

https://techhelplist.com/index.php/tech-tutorials/41-misc/316-xenserver-create-and-attach-virtual-disk-from-xe-cli

ถ้าข้อมูลใน postgresql เป็น UTF-8 แล้วเกิดอยาก dump ออกมาเป็น shp ที่เป็น TIS-620 ด้วย pgsql2shp ให้

ถ้าข้อมูลใน postgresql เป็น UTF-8 แล้วเกิดอยาก dump ออกมาเป็น shp ที่เป็น TIS-620 ด้วย pgsql2shp ให้

 pgclientencoding=”WIN874″ pgsql2shp ….

Xen 6.2 ใช้ guest OS Ubuntu 14.04 แล้วมันจะบูตไม่ขึ้น

Xen 6.2 ใช้ guest OS Ubuntu 14.04 แล้วมันจะบูตไม่ขึ้น

วิธีแก้คือ

Modify /usr/lib/python2.4/site-packages/grub/GrubConf.py on the XenServer machine
from 
“if arg.strip() == “${saved_entry}”:”
to 
if arg.strip() == “${saved_entry}” or arg.strip() == “${next_entry}”:

อ้างถึง
http://ubuntuforums.org/showthread.php?t=2216358&page=2&p=13006428#post13006428

http://ubuntuforums.org/showthread.php?t=2216358&page=2&p=13006428#post13006428

จะใส่ ISO file ให้  Xen server มองเห็น จากเครื่องตัวมันเอง ทำได้โดย

จะใส่ ISO file ให้  Xen server มองเห็น จากเครื่องตัวมันเอง ทำได้โดย

1. copy iso ไฟล์มาวางใน  /root  (scp มาจากไหนก็ว่าไป)
2. xe sr-create name-label=”Local ISO” type=iso device-config:location=/root device-config:legacy_mode=true content-type=iso
มันก็จะโผล่ใน xen server เป็น   Local ISO storage

สร้างไฟล์ลายน้ำ (water mark) แบบง่ายๆ ด้วย Google Charts

สร้างไฟล์ลายน้ำ (water mark) แบบง่ายๆ ด้วย Google Charts
http://chart.apis.google.com/chart?chst=d_text_outline&chld=FFFFFF%7C11%7Ch%7C000000%7Cb%7C%C2%A9%20Longdo

http://chart.apis.google.com/chart?chst=d_text_outline&chld=FFFFFF%7C11%7Ch%7C000000%7Cb%7C%C2%A9+Longdo

OS X 10.10 Yosemite มันเปลี่ยน bahavior ของปุ่ม สีเขียว (มุมบนซ้ายของ App Window) ใหม่ จาก Zoom เป็น full screen…

OS X 10.10 Yosemite มันเปลี่ยน bahavior ของปุ่ม สีเขียว (มุมบนซ้ายของ App Window) ใหม่ จาก Zoom เป็น full screen ถ้าอยากให้ได้ function Zoom เหมือนเดิม ต้องกด option ค้างก่อนกดปุ่มเขียว

หรือ ไม่ก็ไปเอา RightZoom http://www.macupdate.com/app/mac/30591/right-zoom มาลง แล้วก็ตั้ง Short cut ให้มัน (ผมตั้งเป็น Command+M) เอาไว้ทำ zoom สบายกว่าเดิม เพราะ

1) ไม่ต้องกด mouse ใช้คีย์บอร์ดสะดวกกว่า
2) เป็นการซูมที่ถูกต้องด้วย (คือ ซูมแล้วเต็มจอ) ถ้าใครใช้ Mac จะทราบดีว่าปกติมันจะซูมแบบไม่เต็มจอ ไม่รู้ใช้หลักการอะไรของมัน ซูมไปครึ่งๆ กลางๆ บ้าง เต็มจอบ้าง

http://www.macupdate.com/app/mac/30591/right-zoom

google+ นี่มันจะไม่ปรับปรุง UI บ้างเลยหรือไงนะ มันใช้พื้นที่ได้เปลืองมากๆ แถมยังอ่านยากสุดๆ ต้อง scroll mouse…

google+ นี่มันจะไม่ปรับปรุง UI บ้างเลยหรือไงนะ มันใช้พื้นที่ได้เปลืองมากๆ แถมยังอ่านยากสุดๆ ต้อง scroll mouse แหลกราญ เทียบกับ facebook แล้ว UI/UX เหมือนเทียบเด็กอนุบาล กับ เด็กมัธยม

หรือว่ามันเปลี่ยน theme ได้ไหม

หรือว่าเปิดบน Mac เลยไม่สวย

ใช้งานภาษาไทยบน Linux/Free Software/Open Source ได้ทุกวันนี้ต้องขอบคุณคนนี้

ใช้งานภาษาไทยบน Linux/Free Software/Open Source ได้ทุกวันนี้ต้องขอบคุณคนนี้

Originally shared by Theppitak Karoonboonyanan

กลับมาทำงานกับโค้ดตัดคำของ Mozilla อีกครั้งเพราะ #IceBucketChallengeTH (โดยเลือกตอบด้วย Iceweasel Challenge แทนด้วยบั๊กนี้: https://bugzilla.mozilla.org/show_bug.cgi?id=425915) เลยทำให้นึกย้อนอดีตเมื่อ 7 ปีที่แล้วที่นั่งเขียนโค้ดส่วนนี้

มันนานขนาดที่ผมเองก็จำรายละเอียดไม่ได้แล้ว ได้ blog ที่ตัวเองเขียนไว้ช่วยฟื้นความจำ

http://thep.blogspot.com/2007/03/on-mozilla-stuffs.html

เจอปัญหา geoserver บางทีมันหา bounding box ของ layer ผิด (น้อยกว่าที่ควรจะเป็น) ทำให้แผนที่แสดงออกมาไม่ครบ…

เจอปัญหา geoserver บางทีมันหา bounding box ของ layer ผิด (น้อยกว่าที่ควรจะเป็น) ทำให้แผนที่แสดงออกมาไม่ครบ  ค้นไปค้นมาก็เจอว่าปัญหามันอยู่ที่ PostGIS’ “estimated extent” function ซึ่งวิธีแก้แบบบ้านๆ ก็คือ  disable ฟังก์ชั่นนี้ทิ้งไปซะ ซึ่งจะทำให้ geoserver ต้อง full scan เพื่อหา bounding box ซึ่งมันจะนานหน่อย แต่มันก็ให้ค่าที่ถูกต้อง

โดย Paul Ramsay:
replace the existing function(s) with a no-op so that GeoServer is forced to fall back to a full scan:

 create or replace function st_estimated_extent(text,text) 
 returns box2d as ‘select null::box2d’ language sql;

 create or replace function st_estimated_extent(text,text,text) 
 returns box2d as ‘select null::box2d’ language sql;

http://gis.stackexchange.com/questions/75536/geoserver-not-reading-bounding-box-from-postgis-geometry-correctly

http://gis.stackexchange.com/questions/75536/geoserver-not-reading-bounding-box-from-postgis-geometry-correctly

มีใครพอทราบว่ามี เนื้อหาพจนานุกรม ที่เป็นฟรี หรือ open source ของภาษา ลาว พม่า เขมร มาเลย์ เวียดนาม อินโดนีเซีย…

มีใครพอทราบว่ามี เนื้อหาพจนานุกรม ที่เป็นฟรี หรือ open source ของภาษา ลาว พม่า เขมร มาเลย์ เวียดนาม อินโดนีเซีย รวมถึงภาษาถิ่นในละแวกเอเชียตะวันออกเฉียงใต้ไหมครับ

เทียบ speed NFS mount จาก remote glusterfs directory (เป็นแบบ node เดียว ไม่มี replication ใดๆ) เทียบกับ remote ZFS

เทียบ speed NFS mount จาก remote glusterfs directory (เป็นแบบ node เดียว ไม่มี replication ใดๆ) เทียบกับ remote ZFS 

copy file เล็กๆ ขนาด 10-40KB ประมาณ​ 17 MB

ZFS:
real    0m10.845s
user    0m0.140s
sys     0m1.512s

GLUSTERFS: (mount  ด้วย _netdev,noatime,nodiratime,direct-io-mode=disable)

real    0m12.482s

ก็ไม่ช้ากว่ามากนี่แฮะ แต่ตอนแรกที่ลอง ไม่ได้ mount ด้วย option เหล่านั้น

รวมฮิตคำสั่ง glusterfs เอาไว้ดูง่ายๆ ภายหลัง

รวมฮิตคำสั่ง glusterfs เอาไว้ดูง่ายๆ ภายหลัง

apt-get install python-software-properties
add-apt-repository ppa:semiosis/ubuntu-glusterfs-3.5
apt-get update && apt-get install glusterfs-server
gluster volume create gotiles replica 2 transport tcp vm1:/data/gluster/gotiles vm2:/data/gluster/gotiles
gluster volume start gotiles

add to /etc/fstab
vm1:/gotiles /glusterfs/gotiles glusterfs defaults,_netdev,backupvolfile-server=vm2 0 0

Reusing the brick paths:
setfattr -x trusted.glusterfs.volume-id $brick_path
setfattr -x trusted.gfid $brick_path

รวมฮิต คำสั่ง ZFS เอาไว้ดูง่ายๆ ภายหลัง

รวมฮิต คำสั่ง ZFS เอาไว้ดูง่ายๆ ภายหลัง

# zpool create dataz  

# zpool list

# zpool status

# zfs create dataz/map-images

# apt-get install nfs-kernel-server
# zfs get sharenfs data
# zfs set sharenfs=on data
# zfs set sharenfs=’rw=@10.1.0.0/24‘,no_subtree_check,async,no_root_squash data

Terminal ใน Mac พื้นมันสีดำ เวลา ls ซึ่งมันจะแสดงดี มันจะแทบมองไม่เห็นบางสี เช่น directory สีน้ำเงินเข้ม…

Terminal ใน Mac พื้นมันสีดำ เวลา ls ซึ่งมันจะแสดงดี มันจะแทบมองไม่เห็นบางสี เช่น directory สีน้ำเงินเข้ม ให้เปลี่ยนสีโดยใส่ใน ~/.profile ดังนี้

export CLICOLOR=1
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx

http://apple.stackexchange.com/questions/33677/how-can-i-configure-mac-terminal-to-have-color-ls-output

แปะไว้ก่อนเผื่อต้องใช้ วิธีการแปลง encoding ใน pgsql2shp เช่นใน db เป็น utf-8 แต่อยากได้  shp ที่เป็น tis-620

แปะไว้ก่อนเผื่อต้องใช้ วิธีการแปลง encoding ใน pgsql2shp เช่นใน db เป็น utf-8 แต่อยากได้  shp ที่เป็น tis-620

ตอนนี้ใช้วิธี dump ออกมาเป็น utf-8 แล้วใช้ qgis แปลงเอาไปก่อน

http://gis.stackexchange.com/questions/31165/pgsql2shp-encoding-problem

http://gis.stackexchange.com/questions/31165/pgsql2shp-encoding-problem

จะให้รันโปรแกรมหนึ่งๆ ใน windows ตอนเปิดเครื่องทุกครั้ง ขี้เกียจรันมือ ต้องทำยังไง

จะให้รันโปรแกรมหนึ่งๆ ใน windows ตอนเปิดเครื่องทุกครั้ง ขี้เกียจรันมือ ต้องทำยังไง

คำตอบคือ มันจะมี folder ชื่อ Start Up ให้โยนอะไรที่อยากจะรันไปไว้ในนั้น

ปัญหาคือ ใน  windows 7 หาตาม  path ที่คุ้นเคยแล้ว ไม่เจอ

สรุปมันอยู่ที่ C:UsersAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

อ้างอิง
http://social.technet.microsoft.com/Forums/windows/th-TH/d3686615-cc56-4be7-a214-617afc7923bc/startup-folder-windows-7-?forum=windowsclientth

http://social.technet.microsoft.com/Forums/windows/th-TH/d3686615-cc56-4be7-a214-617afc7923bc/startup-folder-windows-7-?forum=windowsclientth

mount GlusterFS ผ่านทาง NFS ธรรมดา

mount GlusterFS ผ่านทาง NFS ธรรมดา

หลังจาก set-up glusterfs อะไรจนเสร็จแล้ว ทั้ง server client  มันก็ใช้งานได้โอเค แต่ก็เกิดความอยากลอง mount มาที่  glusterfs volume ด้วยวิธี nfs ปกติบ้าง 

ต้องทำคือ [Ubuntu]
1. ลง rpcbind เพื่อให้มี  portmap service

2. แก้ /etc/glusterd/nfs/nfs-server.vol เติม
   option rpc.register-with-portmap on
ในส่วน volume nfs-server

หลังจากนั้นจาก client ก็ mount มาประมาณนี้ได้
 mount  -o tcp,vers=3 -t nfs 10.0.0.15:/gluster1 /gluster1

#map   #longdomap #geoserver #longdo

#map   #longdomap   #geoserver  #longdo
วาดแผนที่เส้นชั้นความสูง (contour lines) มาอยู่พักหนึ่ง สังเกตว่าวาดมาได้เรื่อยๆ ตั้งแต่ภาคเหนือไล่ลงมา จนถึงประจวบฯ​ แล้วก็หายไป นั่งไล่อยู่ว่าหายไปได้ยังไง สุดท้ายพบว่า ในฐานข้อมูลนั้นมีข้อมูลครบ สร้าง contour line จาก DEM GeoTIFF ที่สกัดจาก SRTM มายัดเข้าฐานข้อมูล

งานนี้ใช้ geoserve render ปรากฎว่ามันมองเห็นว่าข้อมูลมีแค่ถึงประมาณประจวบ ไล่ไปไล่มา เหมือนมันใช้ st_estimated_extent ในการหา bounding box ของข้อมูล ใน postgresql/postgis ลองทำตามก็ได้ผลดังนี้

95 11.0477085113525,110.000839233398 25.0004177093506

ซึ่งผลลัพธ์มันไม่ถูก (latitude 11.0477 นั่นคือประมาณประจวบฯ พอดี) ข้อมูลจริงๆ ใส่ไปตั้งแต่แถวมาเลเซีย latitude ~ 5 ซึ่งถ้าใช้ st_extent ไม่ใช่ st_estimated_extent ก็ให้ผลที่ถูกต้องอยู่

ก็เลยลอง force bound ใน geoserver แล้วยังไงมันก็ยังไม่ยอม render สุดท้ายพบว่า เพราะปกติใช้  gwc (caching service) (กล่าวคือ เรียกไปที่ geoserver_url/geoserver/gwc/service/wms?….  อะไรทำนองนี้) แล้วมันทำยังไงไม่ก็ไม่ยอมใช้ bound ใหม่ (ลองล้าง cache ก็แล้ว, restart ก็แล้ว) สุดท้ายลองเรียกตรง ไปที่ /geoserver/wms?… ก็มาเลย

สรุป
1. bounding box ที่มัน  automatic หาให้ มันผิดกันได้
2. gwc ก็อาจจะมึนๆ ถ้าสงสัยให้ลองเรียกตรงๆ

จบข่าว

กำลังลอง GlusterFS (เป็น distributed file system) http://www.gluster.org/ หลักๆ เพื่อเป็น automatic backup…

กำลังลอง GlusterFS (เป็น distributed file system) http://www.gluster.org/ หลักๆ เพื่อเป็น automatic backup และกระจายโหลด ใครเคยใช้ มีปัญหา ดีไม่ดีอย่างไร ช่วยแนะนำด้วยนะครับ ตอนนี้ลองกับบริการที่คนใช้น้อยๆ ก่อน ถ้าดีเดี๋ยวจัดใส่ Longdo Map

Homepage

เจอปัญหา drupal มันชอบมี error ต่อไปหา memcache ไม่ได้

เจอปัญหา drupal มันชอบมี error ต่อไปหา memcache ไม่ได้

ลอง google ดูเจอ

http://www.couchbase.com/forums/thread/memcache-timeouts-app-logs

ลองดู messeges ของ memcache server ก็เจออะไรทำนองนี้

[27105943.508413] net_ratelimit: 133 callbacks suppressed
[27105943.508416] nf_conntrack: table full, dropping packet.
[27105943.519000] nf_conntrack: table full, dropping packet.
[27105943.534600] nf_conntrack: table full, dropping packet.
[27105943.534782] nf_conntrack: table full, dropping packet.
[27105943.540423] nf_conntrack: table full, dropping packet.
[27105943.542609] nf_conntrack: table full, dropping packet.
[27105943.548504] nf_conntrack: table full, dropping packet.
[27105943.554372] nf_conntrack: table full, dropping packet.
[27105943.569737] nf_conntrack: table full, dropping packet.
[27105943.573252] nf_conntrack: table full, dropping packet.

เลยลองแก้ตามเขา

เดิม

# sysctl net.ipv4.netfilter.ip_conntrack_max
net.ipv4.netfilter.ip_conntrack_max = 65565

# sysctl net.ipv4.tcp_max_tw_buckets
net.ipv4.tcp_max_tw_buckets = 262144

# sysctl net.ipv4.netfilter.ip_conntrack_tcp_timeout_established
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000

# sysctl net.ipv4.tcp_window_scaling
net.ipv4.tcp_window_scaling = 1

เลยลองแก้ใน /etc/sysctl.conf 

net.ipv4.tcp_max_tw_buckets = 1000000
net.ipv4.netfilter.ip_conntrack_max = 4194304
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 120
net.ipv4.tcp_window_scaling = 1

ลองดูอาการอีกที

http://www.couchbase.com/forums/thread/memcache-timeouts-app-logs

จด setting ของ VMWare Fusion ที่ใช้ไว้กันลืม

จด setting ของ VMWare Fusion ที่ใช้ไว้กันลืม

ปัจจุบันใช้ notebook Mac แล้วข้างในมี Windows อยู่ใน VMWare (ส่วนบรรดา Linux อยู่ใน  server farms จ้ะ) แล้วก็จะ set VMware ดังนี้ เพื่อให้เวลาใช้ windows แล้วคุ้นชิน

VMWare preferences — Keyboard & Mouse Profile

[x] Enable Key Mappings

เพิ่ม map command key –> alt
option –> win

command control option p –> alt prt scrn (keyboard mac ไม่มี ไม่รู้จะกดยังไง)

ส่วนใน windows ก็รัน autohotkey เสริม เพื่อให้ใช้ command + space เปลี่ยนภาษาได้ จะได้เหมือนๆ กับบน windows
!Space::Send, {Alt Down}{Shift}{Alt up}
(เดิมเคยต้องใส่ว่า ==> LAlt & Space::Send, {Alt Down}{Shift}{Alt up})

ใช้แบบนี้ชินล่ะ แล้ววันนี้อยู่ดีๆ มัน reset setting หายไปเฉย เลยต้องมา set ใหม่ เลยจดไว้หน่อย

ส่วนใน Mac ก็ลง XtraFinder มันจะทำให้ใน finder สามารถ copy/paste/enter/backspace/F2 อารมรณ์ได้เหมือน windows explorer

เพิ่งรู้ว่าบน Mac ถ้าจะพิมพ์ตัว umlaut ภาษาเยอรมัน เช่น ü ö ä ไม่ต้องเปลี่ยน keyboard layout เป็นเยอรมัน ก็ได้ ใช้…

เพิ่งรู้ว่าบน Mac ถ้าจะพิมพ์ตัว umlaut ภาษาเยอรมัน เช่น ü ö ä ไม่ต้องเปลี่ยน keyboard layout เป็นเยอรมัน ก็ได้ ใช้ layout US แล้วกด ALT+U ทีนึง แล้วก็พิมพ์ u o a ก็จะได้ ü ö ä ตามลำดับ ในคำเช่น München (เมืองมิวนิค)

ปัญหาต้องคอยเปลี่ยน encoding เวลาผู้ใช้ Mac Mail client ส่งเมลหา Thunderbird (encoding จะมาเป็น cp874 ซึ่ง…

ปัญหาต้องคอยเปลี่ยน encoding เวลาผู้ใช้ Mac Mail client ส่งเมลหา Thunderbird (encoding จะมาเป็น cp874 ซึ่ง Thunderbird ไม่รู้จัก)

ตามนี้เลย
http://wiki.opentle.org/Thai_thunderbird

แต่ของผมพบว่าต้องเปลี่ยน PATH หน่อย

Mac OS: /Applications/Thunderbird.app/Contents/MacOS/res/charsetalias.properties

เพิ่มบรรทัด cp874=TIS-620

http://wiki.opentle.org/Thai_thunderbird

net อืดๆ (apt-get update ไปที่ security.ubuntu.com แล้วค้างๆ แต่เปิดผ่าน browser แล้วเข้าได้) ลองเลย disable IPv6 ดู…

net อืดๆ (apt-get update ไปที่ security.ubuntu.com แล้วค้างๆ แต่เปิดผ่าน browser แล้วเข้าได้) ลองเลย disable IPv6 ดู ปรากฎว่าลื่นปื้ดเลย

edit /etc/sysctl.conf เติม 3 บรรทัดนี้ แล้วก็ sysctl -p

# IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

http://www.noobslab.com/2012/05/disable-ipv6-if-your-internet-is.html

iMovie นี่มันบางที export HD ตรงๆ ไม่ได้ (มัน gray out ไม่ให้เลือก เพราะอะไรของมันก็ไม่รู้ ทั้งๆ ที่ source video ก็…

iMovie นี่มันบางที export HD ตรงๆ ไม่ได้ (มัน gray out ไม่ให้เลือก เพราะอะไรของมันก็ไม่รู้ ทั้งๆ ที่ source video ก็ original size แล้ว) ต้องใช้ท่าพลิกแพลง แล้วก็ได้ ชัดแจ๋ว

http://www.wikihow.com/Export-an-iMovie-Video-in-HD

http://www.wikihow.com/Export-an-iMovie-Video-in-HD

เอา Macbook Pro ต่อ จอ  DELL 27″ ได้มาใหม่ ได้แค่ครึ่งวัน ถอยกลับมา 24″ เพราะ resolution มันสูงเกิน 2560×1400…

เอา Macbook Pro ต่อ จอ  DELL 27″ ได้มาใหม่ ได้แค่ครึ่งวัน ถอยกลับมา 24″ เพราะ resolution มันสูงเกิน 2560×1400 ฟอนต์มันเหลือตัวเล็กนิดเดียว และ Mac มันปรับให้แสดงทุกอย่างใหญ่ขึ้นแบบง่ายๆ ไม่ได้ (แต่ Windows ได้นะ) ก็เลยต้องถอย สงสัยศาสดายังไม่ได้ออกแบบมาให้ใช้กับ 27″ ได้ดี

เดี๋ยวนี้ในรถชักขี้เกียจฟังวิทยุ ก็โหลดวิดิโอลง Podcast ไปเปิดดู ฝึกภาษาอังกฤษด้วย สองสามวันนี้ดู Keynote งาน Mac…

เดี๋ยวนี้ในรถชักขี้เกียจฟังวิทยุ ก็โหลดวิดิโอลง Podcast ไปเปิดดู ฝึกภาษาอังกฤษด้วย สองสามวันนี้ดู Keynote งาน Mac World 2007 ตอนเปิดตัว iPhone, วันนั้น Steve Jobs solo คนเดียว 2 ชม. มีแขกขึ้นมาบ้างประปราย แต่หลักๆ เป็น SJ ยังอ้วนท้วน และเป็นการนำเสนอที่มีพลังมากๆ ทว่าเป็นธรรมชาติ เหมือนกับการคุยเล่านำเสนอ ไม่ถึงกับเป็น flawless show เหมือน keynote ในยุคปัจจุบัน และวันนั้น Eric Schmidt จาก Google ก็มาด้วย ในฐานะพันธมิตรเรื่อง Search และ Maps, ตอนท้าย SJ พูดตอนนึงว่า iPhone มีนวัตกรรมต่างๆ มากมาย จดสิทธิ์บัตรไปกว่า 200 ชิ้น และ “We intend to protect them” … คงนึกไม่ถึงว่าไม่กี่ปีต่อมา partner สำคัญรายนี้จะกลายเป็นคู่แข่งไปฉิบ

ต้องการคำนวณดังนี้

ต้องการคำนวณดังนี้

-20037508.342789 + 798/1024 * (20037508.342789+20037508.342789)

ลองด้วย Javascript ได้

11192826.925854795

แต่ถ้า PHP
$x=  -20037508.342789 + 798/1024 * (20037508.342789+20037508.342789);
print $x;

ได้ 11192826.925855

อยากได้ละเอียดๆ ต้อง

bcscale(10);
$x=  bcadd (-20037508.342789 , bcmul(798/1024 , (20037508.342789+20037508.342789)));
print $x;

11192826.9258547929

แต่ทำไมไม่เท่ากับ JavaScript??

ใช้ Mac OS X ไปเรื่อยๆ ชักชินกับวิธีการเปลี่ยนภาษาที่กดปุ่ม cmd+space พอกลับมาใช้ windows ก็ชักไม่ชินกับ Alt+shift…

ใช้ Mac OS X ไปเรื่อยๆ ชักชินกับวิธีการเปลี่ยนภาษาที่กดปุ่ม cmd+space พอกลับมาใช้ windows ก็ชักไม่ชินกับ Alt+shift อยากให้ใช้ cmd+space ได้ด้วย

วิธีการคือให้ติดตั้ง http://www.autohotkey.com/ แล้วก็ใส่บรรทัดนี้ใน script ของมัน

!Space::Send, {Alt Down}{Shift}{Alt up}

ปล. อดีตใส่ว่ายังงี้ แต่รุ่นใหม่ๆ ไม่ work ล่ะ
LAlt & Space::Send, {Alt Down}{Shift}{Alt up}

http://www.autohotkey.com/

เวลาทำภาพ hillshade ด้วย gdaldem hillshade เขาว่าให้ใส่ option -compute_egdges แล้วจะแก้ปัญหาขอบภาพมีสีดำๆ ซึ่ง…

เวลาทำภาพ hillshade ด้วย gdaldem hillshade เขาว่าให้ใส่ option -compute_egdges แล้วจะแก้ปัญหาขอบภาพมีสีดำๆ ซึ่ง option นี้จะมีใน gdal 1.8.0 ขึ้นไปเท่านั้น ซึ่ง gdal-bin ที่มากับ  Ubuntu มันจะค่อนข้างจะเก่า ก็เลยต้องเพิ่ม  PPA Ubuntu GIS โดยให้สั่งว่า

add-apt-repository ppa:ubuntugis/ppa

และก่อนนั้นอาจจะต้อง apt-get install python-software-properties ก่อน

G+ มันจะให้เราใส่รูปภาพปกใหญ่ๆ ไปทำไมว่ะ กรูจะดูเนื้อหา ไม่ได้เดินชมพิพิธภัณฑ์ภาพนะ

แสนสิริ Home Care Less or More?

โครงการของแสนสิริฯ นั้นยอมรับว่ามีความโดดเด่นมาก โดนใจลูกค้าสุดๆ ไม่ว่าจะเป็นรูปลักษณ์ สไตล์โครงการ แบบบ้าน การขาย การตลาด digital กิจกรรมต่างๆ ของลูกบ้าน ฯลฯ เอาเป็นว่าจัดอยู่ระดับหัวแถวของเมืองไทยเลยล่ะ เปิดขายแต่โครงการ หมดเอาๆ ทั้งๆ ที่ราคาก็ไม่ได้ถูก ก็ต้องยอมรับ

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

แต่สิ่งที่แสนสิริฯ​น่าจะปรับปรุงคือบริการ Home Care

หลังจากที่เราตกลงใจซื้อบ้านแล้ว ตรวจรับ และ โอนกรรมสิทธิ์แล้ว ปัญหาต่างๆ ภายในบ้าน จะถูกดูแลโดยบริการที่เรียกว่า Home Care ซึ่งจะรับประกันภายหลังการขายเป็นเวลา 1 ปี

ทว่าคุณภาพของบริการของ Home Care นั้น ต่ำกว่าบริการอื่นๆ ของแสนสิริฯ อย่างเห็นได้ชัด
ผมเข้าอยู่บ้านนี้มาเกือบสองปีแล้ว ปัญหาต่างๆ ของ Home Care ก็ยังแก้ไม่เสร็จ จนไม่แน่ใจว่ามันเป็นที่ฝีมือ หรือ ทางเทคนิคของงานก่อสร้างจริงๆ

เจ้าหน้าที่ก็เปลี่ยนบ่อย คนแรกมาจดรายการไว้หมด แก้ไปได้อย่างสองอย่าง ย้ายที่ คนใหม่มา มีปัญหาตรงไหนบ้างนะคะ ขอจดใหม่ เอ้า จดใหม่ แก้ไปสองสามงาน ย้ายที่ คนใหม่มา มีตรงไหนบ้างนะครับ อืมม

หลังๆ โทรตามเยอะๆ ก็ไม่รับสาย ไม่โทรกลับ นานๆ ทีโทรกลับ นานมากๆ ก็บอก โอมันนานแล้ว เลยเวลารับประกันแล้วหรือเปล่าครับ

หลังๆ มีเทคนิค คือ โทรไปโวยกับ call center เลย ให้เขาช่วยตาม เหมือนจะได้ผลนะ

นัดหมายมาซ่อม คุยกันไว้สองงาน มาถึง ทำแค่งานเดียว อีกงาน งง อ้ะ เวลาเหลือ ทำก็ทำ แต่ไม่มีวัสดุ ต้องออกไปซื้อก่อน รถติด กลับมาไม่ทัน ไว้ทำอีกวัน คือกระผมต้องหยุดงานมาเฝ้าพวกคุณนะครับ เขาคงคิดว่าเราไม่มีไรทำ อยู่บ้านตลอด

หลังบ้านแตกร้าวเป็นรอยจำนวนมาก แก้เป็นรอบที่ 8 ได้แล้วมั้ง ก็ยังไม่หาย ไม่รู้เป็นที่อะไร วัสดุ หรือ ฝีมือ แต่ก็ยังดีที่ยังสัญญาว่าจะแก้ให้ต่อไป

กระเบื้องในห้องน้ำห้องนอนแตก เขาก็แก้ให้แต่ทำไงรู้ไหมครับ เลาะกระเบื้องออกไปเหลือผนังปูนโป๊ๆ แล้วก็บอกว่าเดี๋ยวไปสั่งกระเบื้องก่อน  รอไปเดือนนึง ค่อยเอามาปิดให้ เฮ้ยทำไมไม่สั่งให้เรียบร้อยแล้วค่อยมาเลาะมาปิดวันเดียวกันล่ะ งง ไหม

ส้วมมีกลิ่น มีอยู่ห้องเดียวที่มีกลิ่น แก้แล้วก็ไม่หาย เนี่ยเดี๋ยวเขียนนี่เสร็จต้องโทรตามอีก แก้เป็นรอบที่สามแล้วมั้ง

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

บางอย่างก็ไม่แก้ให้ อาจจะเป็นข้อจำกัดจริงๆ

เสาหน้าบ้านแตกร้าว Home Care บอกมันเป็นเสาหลอก แตกแน่ๆ แก้ไปก็แตก แต่ก็ยังดีอุตส่าห์แก้ให้ 1 ครั้ง แล้วไม่ถึงเดือนผ่านไปก็แตกใหม่จริงๆ ก็ปล่อยมันแตกไป อืม

พื้นโรงรถเริ่มแตก Home Care บอกไม่แก้ ไม่รวมในขอบเขต

คือ ถามว่า Home Care แย่มากมั้ย มันก็ไม่ได้เลวร้ายมากอะนะ ก็แก้ให้หลายอย่างมากแล้ว และจุดที่เป็นปัญหาก็ไม่ถึงกับทิ้งงาน อย่างน้อยก็ยังดีที่รับฟัง และแก้ไขให้ มาตลอด แต่มีความรู้สึกเหมือนมันไม่มืออาชีพยังไงชอบกล คือ เทียบกับ ส่วนอื่นๆ ของแสนสิริฯ​ ดูการตลาด การขาย การออกแบบ ฯลฯ นี่ผมว่าแผนกนี้ค่อนข้างด้อยๆ นะ

ทำไมแสนสิริไม่ใช้ผู้รับเหมาแบบมืออาชีพ (ดู http://callmeott.blogspot.com/2013/05/blog-post.html) ซึ่งผมว่าน่าจะดีกว่านี้นะ นัดหมายเป๊ะๆ มาเป็นทีม วัสดุ อุปกรณ์พร้อม แลดูมืออาชีพมากๆ

มันจะแพงขึ้นอีกสักกี่ตังค์ สำหรับบริษัท มหาชน ระดับนี้ กำไรระดับนี้ ผมว่าเจียดเงินมาทำด้านนี้ให้ดีๆ แก้งานให้มันประทับใจ รวดเร็ว มันอาจจะเป็นจุดขายที่เด่นๆ ได้เลยนะครับ

ผู้รับเหมา สองแบบ

ช่วงสองสามปีที่ผ่านมา มีประสบการณ์ซ่อม/ซื้อ/ตรวจรับ/เก็บงานซ่อมแซมบ้านมาพอสมควร เจอผู้รับเหมาอยู่ 2 แบบ 

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

กับ อีกแบบคือแบบแพงแต่กระเป๋าตังค์จะรั่ว คือ เป็นบริษัท การบริการแทบจะเป็นอุดมคติ มีหัวหน้ามาดู มาตามเวลานัดเป๊ะๆ เก็บรายละเอียดหมด ส่งใบเสนอราคา เขียนชัดเจนว่าจะทำอะไรบ้าง ใช้วัสดุอะไร งานเล็กก็ยอมมาทำ, ก่อนงาน 1 วันโทรคอนเฟิร์ม มาถึงหน้างานตรงเวลา ข้าวของครบ ช่างทุกคนแต่งตัวยูนิฟอร์ม รู้นาทีของตน ทำเร็วโคตร ชำระเงินรูดบัตรเครดิตก็ได้ ออกบิลก็ยังได้ รับประกันผลงาน 1 ปี มีเสียในสิ่งที่ทำไป ซ่อมให้ฟรี

แต่แพงโคตรๆ เลยล่ะ น่าจะ 2-3 เท่าของแบบแรกได้ เรียกใช้เฉพาะอะไรที่มันฉุกเฉิน น้ำรั่ว อะไรพวกนี้ที่รอไม่ได้ และเรียกแบบแรกก็ไม่ยอมมา

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

dtac คิดตังค์ผิด สองครั้งแล้วนะ

ก่อนนี้ผมเป็นคนประเภทไม่ค่อยได้เช็ครายละเอียดพวกบิลค่าใช้จ่ายอะไรเท่าไหร่ อาศัยความคิดว่า บริษัทมหาชนระดับนี้ มันจะปล่อยให้ผิดมาได้ย้งไง ต้องมีระบบตรวจสอบหลายขั้นหลายตอน แต่ในช่วงปีที่ผ่านมาปรากฎว่าโดนคิดตังค์ผิดไปสองรอบครับ เลยต้องขออนุญาตบันทึกไว้เป็นอุทาหรณ์

ตัวผมเองใช้ dtac มาตั้งแต่เริ่มทำงาน ปี 1996 (สมัยเรียนไม่มีโทรศัพท์มือถือใช้นะครับ เด็กสมัยนี้อาจจะไม่เข้าใจ นัดเพื่อนก็ต้องนัดเวลา โทรตามก็โทรตู้สาธารณะ หลังๆ มีเพจเจอร์ค่อยยังชั่ว) ก็ใช้เป็นเบอร์หลักมาตลอดจนถึงปัจจุบัน ช่วงต้นปีที่แล้ว (2012) ติดตามภรรยาไปเยอรมัน ประมาณ 9 วัน ซึ่งก่อนไปก็ได้ไปติดต่อขอเปิด roaming และเปิดอินเตอร์เน็ตซึ่ง dtac เขามี package วันละ 25 MB คิดเงินประมาณ สามร้อยบาทหรือไงเนี่ย ซึ่งก็ได้ให้เจ้าหน้าที่เปิด package แบบที่ว่า ตลอดระยะเวลาที่ไป คิดง่ายๆ คือ ใช้งานได้วันละ 25 MB จะเสียเงินประมาณ 3,000 บาท (คร่าวๆ นะครับ) ก็โอเค

ตอนแรกคิดว่า 25 MB มันจะทำไรได้วะ แต่เอาเข้าจริงๆ ก็พอได้อยู่นะครับ เพราะว่าเวลาที่อยู่ที่พัก หรือ บ้านเพื่อน ฯลฯ เราก็มี WIFI อยู่แล้ว จะ up รูป ดู youtube อะไรก็ทำตอนนั้น แต่ตอนเดินทางก็เปิดแค่ฉุกเฉินจริงๆ เปิดดูแผนที่แว็บๆ, เช็คเมล, อ่าน facebook ก็ยังพอได้นะ ซึ่งทาง dtac เขาก็อุตส่าห์มี app บน iphone ให้เราดูว่าแต่ละวันใช้ไปกี่ MB ซึ่งก็ดีมาก แถมเวลาใช้ใกล้ๆ จะถึง limit จะมี sms มาเตือนด้วย ซึ่งเราก็จะดู app นี้ตลอด และมั่นใจใช้ไม่เกินแน่ๆ

จนกลับมาเมืองไทย สิ้นเดือนครับ บิลมา หมื่นกว่า ซึ่งจริงๆ มันควรจะแค่ประมาณ 3,000 บวกค่าโทรค่าอะไรก็ไม่น่าจะเกิน 5,000 ดูรายละเอียดก็เป็นค่า Roaming Net เนี่ยล่ะ บอกว่าวันนี้ใช้เท่านั้นเท่านี้ ไม่เกิน 25 MB แต่มีอยู่วันนึงใช้ 490 MB ซึงเป็นวันที่บินกลับด้วย เครื่องออกบ่ายๆ ตอนเช้าก็ไม่ได้ทำไรเลย เก็บกระเป๋า ขับไปสนามบิน แทบไม่ได้เล่น Net เลยด้วยซ้ำ น่าจะน้อยกว่าวันอื่นๆ ด้วย โทรไป call center เขาก็ว่าตามบิล ผมก็แย้งว่ามันจะเป็นไปได้ไง แถมดูใน app ของ dtac เองก็เห็นอยู่ว่าวันนั้นแทบไม่ได้ใช้อะไรเลย น้องเขาก็ว่า ค่ะ ค่ะ เดี๋ยวเช็คให้ สักพักใหญ่ๆ ก็โทรกลับมาว่า สงสัยระบบคิดผิด ตัดออกให้ละกัน จบ

อืม ถ้าไม่ได้โทรไปโวยจะเป็นไงเนี่ย จ่ายฟรี ห้าพัน

โอเคไม่เป็นไรผิดพลาดกันได้

อีกครั้งหนึ่งเมื่อเดือนที่ผ่านมานั่นเอง (ปี 2556) ซึ่งค่าโทรศัพท์ผมแต่ละเดือนดูง่ายๆ คือ จะประมาณพันนิดๆ (มีค่า net unlimited และก็ package อะไรสักอย่าง ซึ่งก็โทรเต็มที่ ก็ปริ่มๆ ไม่ค่อยเกิน ยกเว้นโทรไปต่างประเทศ) อยู่ดีๆ ค่าโทรกระโดดไปสองพัน ผมก็ หือ เราทำไรหว่า โทรไปเมืองนอก ก็นิดเดียว มาจากไหนอีกพัน โทรไปถาม call center บอกว่าเป็นค่าอินเตอร์เน็ตค่ะ ผมก็บอก อ้าว ก็ผมใช้ unlimited package แล้วจะคิดค่า Net อะไรอีก ใช้เกิน limit 2G (เกินทุกเดือน) คุณก็ตัดความเร็วผมนิ มีคิดตังค์เพิ่มด้วยเหรอ) น้องเขาก็บอก อ่าว เหรอ อะ ค่ะ ค่ะ เช็คก่อนค่ะ

สักครู่ใหญ่ๆ โทรมา อ๋อ คิดตังค์ผิดค่ะ มันช่วงรอยต่อ package หมด ไม่ได้ต่ออันใหม่ให้ ช่วงนั้นเลยคิดเป็นค่า Net ราคาปกติ เดี๋ยวทำใบลดหนี้ให้ค่ะ จบกันง่ายๆ

เฮ้ย แล้วคนที่ไม่ได้เช็ครายละเอียด จ่ายๆ ไปตามนั้น ก็ซวยดิครับ มันควรต้องมีบทลงโทษ หรือ ค่าทำขวัญ หน่อยป้ะ ไม่งั้นเราไม่รู้ในแต่ละเดือน คุณแอบใส่ข้อผิดพลาดแบบนี้ให้กับผู้ใช้สักกี่คนจากหลายล้านคน ก็กลายเป็นรายได้ไม่รู้เท่าไหร่ ผมว่ามันไม่ค่อยแฟร์เท่าไหร่นะ

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

อย่างไรก็ตามในกรณีทั้งสอง ทาง call center ของ dtac (1678) ก็ได้ให้ความช่วยเหลือเป็นอย่างดี รับฟัง และ แก้ไข ปัญหาจนลุล่วง ด้วยความสุภาพอ่อนน้อมครับ ในจุดนี้ต้องขอชม มา ณ ที่นี้

[หัดเล่น S4] แว๊บแรก ความรู้สึกจากคนที่ใช้ iPhone อย่างเดียวมาสองสามปี คือ S4 เบาจริง แต่ form factor แปลกๆ…

[หัดเล่น S4] แว๊บแรก ความรู้สึกจากคนที่ใช้ iPhone อย่างเดียวมาสองสามปี คือ S4 เบาจริง แต่ form factor แปลกๆ จับถือยาก ต้องเกร็งนิ้ว หรือ ไม่ก็ต้องใช้สองมือเล่น, UI ไม่สวย ไม่เนียนเลย ใช้เนื้อที่เปลืองโคตรๆ เหมือน G+, มีแต่ space เต็มไปหมด, แต่ในความรกรุงรัง มันมีอะไรให้กดเล่นเยอะดีแฮะ แถมให้ Dropbox มาอีกตั้ง 53.5 GB แฮ่ๆ ลองเล่นไปเรื่อยๆ แล้วจะรายงานความคืบหน้าต่อไป

เจอเครื่องมีปัญหาเปิด Chrome กับ facebook แล้ว ใส่ความเห็นใน post ไม่ได้, Timeline ไม่ขึ้น, post ก็ขึ้นไม่กี่อัน…

เจอเครื่องมีปัญหาเปิด Chrome กับ facebook แล้ว ใส่ความเห็นใน post ไม่ได้, Timeline ไม่ขึ้น, post ก็ขึ้นไม่กี่อัน กดดูเพิ่มไม่ได้ ปรากฎว่า เข้า Chrome Setting แล้ว uncheck ตรงข้อ “Predict network actions to improve page load performance” แล้วหาย มันคืออะไรฟะ option นี้

เปิด Longdo Map layer ใน QGIS วิธีการคือ Add Raster Layer จาก filter XML เหล่านี้นะครับ เผื่อใครสนใจลอง

เปิด Longdo Map layer ใน QGIS วิธีการคือ Add Raster Layer จาก filter XML เหล่านี้นะครับ เผื่อใครสนใจลอง 
http://api.longdo.com/map-tools/qgis/

format Solid State disk บน Linux

format Solid State disk บน Linux

หลักๆ คือ fstab mount option ให้ใส่ “discard” เพื่อใช้ TRIM
และ parition ต้องเริ่มต้นที่ sector ที่หารด้วย 512 ลงตัว เขาว่าให้ใช้ 2048 

http://apcmag.com/how-to-maximise-ssd-performance-with-linux.htm

http://apcmag.com/how-to-maximise-ssd-performance-with-linux.htm

หลังๆ พบปัญหาลง Linux server ด้วยแผ่น CD Ubuntu 12.04.x LTS (ปกติใช้ LTS ตลอด) แล้วบูตขึ้นมาเห็น menu grub ปั๊บ กด…

หลังๆ พบปัญหาลง Linux server ด้วยแผ่น CD Ubuntu 12.04.x LTS (ปกติใช้ LTS ตลอด) แล้วบูตขึ้นมาเห็น menu grub ปั๊บ กด Enter เพื่อให้มันบูต แล้วก็จอมืดเลย สรุปคือมันเป็นปัญหาเครื่อง boot manager ถ้าใช้ UEFI มันจะเป็นปัญหาดังกล่าว ลองเปลี่ยนเป็น BIOS boot manager แล้วก็บูตได้ปกติ ไม่เชิงเป็นการแก้ปัญหาเท่าไหร่นัก 🙂

xcode ในหน้าจอ UI designer สมมติมีปุ่มหนึ่ง แล้วอยากกระโดดไปยังโค้ด IBAction ที่เราผูกกับปุ่มนั้นๆ…

xcode ในหน้าจอ UI designer สมมติมีปุ่มหนึ่ง แล้วอยากกระโดดไปยังโค้ด IBAction ที่เราผูกกับปุ่มนั้นๆ ไว้แล้วนี่ทำไงนะครับ กดขวามันก็เห็นแต่การผูก

Migrate mysql จาก 5.0 ไป 5.5.

Migrate mysql จาก 5.0 ไป 5.5. สั่ง mysqldump –all-databases พบว่าเอาไปใส่เครื่องใหม่ทันทีไม่ได้ เวลา restore มันจะมี error ตามนี้เลย http://dba.stackexchange.com/questions/7885/error-on-import-of-mysqldump-file-illegal-double-value-found-during-parsing

วิธีแก้คือให้สั่ง 

replace 1.79769313486232e+308 ‘1.79769313486232e+308’ —

ซะก่อน

http://dba.stackexchange.com/questions/7885/error-on-import-of-mysqldump-file-illegal-double-value-found-during-parsing

เคยลง squid แบบมีใช้ pam authen แล้วพอ do-release-upgrade แล้วเดี้ยงไป วันนี้ลองมา set ใหม่เลยเปลี่ยนเป็นเอาแบบ…

เคยลง squid แบบมีใช้ pam authen แล้วพอ do-release-upgrade แล้วเดี้ยงไป วันนี้ลองมา set ใหม่เลยเปลี่ยนเป็นเอาแบบ simple basic authentication 

squid.conf

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

แล้วก็อะไรประมาณ

acl authenticated_user proxy_auth REQUIRED
acl our_networks src 192.168.1.0/24 192.168.2.0/24
http_access allow our_networks authenticated_user

เพิ่มเติม ดู http://yajith.blogspot.com/2008/11/enabling-basic-authentication-in-squid.html

อีกปัญหานึงคือ เวลาลงเครื่องที่ใช้ UEFI (Unified Extensible Firmware Interface) แล้วเครื่องบูตไม่ได้…

อีกปัญหานึงคือ เวลาลงเครื่องที่ใช้ UEFI (Unified Extensible Firmware Interface) แล้วเครื่องบูตไม่ได้ เหตุผลคือผมมักจะแบ่งpartition เอง เป็น /, swap, /data วิธีแก้ (รู้จากตอนแอบให้มัน ทำ guided partitioning) คือ สร้าง partition แรกให้เป็น UEFI boot loader หรือ boot area อะไรทำนองนี้ แล้วมันก็จะบูตได้!

ปัญหา classic อันนึงของคนใช้ Ubuntu/Linux กับ server ก็คือ มันบูตเร็วเกินกว่าที่ raid จะ assemble เสร็จ วิธีแก้คือ…

ปัญหา classic อันนึงของคนใช้ Ubuntu/Linux กับ server ก็คือ มันบูตเร็วเกินกว่าที่ raid จะ assemble เสร็จ วิธีแก้คือ ต้อง ให้มัน delay นิดนึง ซึ่งวิธีหลายๆ สำนักอาจจะบอกให้ใส่ rootdelay=x เข้าไปที่ grub config แต่ลองกีที่ก็ไม่สำเร็จ สุดท้ายใช้วิธีนี้

แก้ /etc/initramfs-tools/scripts/init-premount/mdadm 
เติม

sleep 15 # (คือ 15 วินาที)

เข้าไปตอนต้นไฟล์เลย

แล้วก็

update-initramfs -u;
update-grub; 

ตอนบูตมันก็จะรอ 15 นาทีก่อนมองหาดิสค์

Dell server R210 upgrade Ubuntu 10.04 –> 12.04 ผลที่ได้คือ บูต เห็น grub แล้วก็หน้าจอขาววาบ ไม่เห็นอะไรต่อ ปัญหาคือ…

Dell server R210 upgrade Ubuntu 10.04 –> 12.04 ผลที่ได้คือ บูต เห็น grub แล้วก็หน้าจอขาววาบ ไม่เห็นอะไรต่อ ปัญหาคือ มันคงมีปัญหาอะไรสักอย่างกับ graphics mode ซึ่งเครื่อง server ไม่ต้องการ server อยู่แล้ว วิธีแก้คือ แก้ /etc/default/grub uncomment บรรทัดนีี้

GRUB_TERMINAL=console

แล้วก็ update-grub ; reboot

สร้าง RAID-1 mirror แบบตอนแรกให้มีแค่ ลูก เดียว แล้วให้เพิ่มอีกลูกทีหลัง ให้ใส่คำว่า “missing”

สร้าง RAID-1 mirror แบบตอนแรกให้มีแค่ ลูก เดียว แล้วให้เพิ่มอีกลูกทีหลัง ให้ใส่คำว่า “missing”

mdadm –create /dev/md0 –level=1 –raid-devices=2 missing /dev/sdb2

Ubuntu upgrade 10.04 -> 12.04 bugzilla 4 พังด้วย error

Ubuntu upgrade 10.04 -> 12.04 bugzilla 4 พังด้วย error

/usr/bin/perl: symbol lookup error: lib/x86_64-linux-gnu-thread-multi/auto/Template/Stash/XS/XS.so: undefined symbol: Perl_Istack_sp_ptr

วิธีแก้คือ เอา directory นี้ออกมาจาก bugzilla “x86_64-linux-gnu-thread-multi” แล้วสั่ง ./checksetup.pl อีกรอบ

เริ่มหัดใช้ Mac OS X มีข้อสงสัยหลายอย่าง

เริ่มหัดใช้ Mac OS X มีข้อสงสัยหลายอย่าง
1. ทำไม trackpad “Tap to click” ไม่ enable by default? มันไม่ “Natural” สำหรับชาว ​Mac ฤา

2. พอใส่ Keyboad input ภาษาไทย shortcut ที่ใช้สลับภาษา คือ command-space มันก็ไปตีกับ spotlight search shortcut ทำไมมันตั้ง default มาให้ตีกันแบบนี้ หรือ คนส่วนใหญ่ที่ใช้ mac ไม่สลับภาษากันเลยหรือ และอยากเปลี่ยนเป็น

3. ลงเสร็จมี ssh, zip, screen มาให้เสร็จ​! ถูกใจแฟน Unix แต่ดันไม่มี wget? แล้วจะลงเพิ่มนี่ เช่น fink, Home Brew ต้องลง xcode ก่อนเลยเหรอ ผู้ใช้ทั่วๆ ไป ไม่ใช่โปรแกรมเมอร์ ไม่มึน?

4. จอ 13.3″ resolution 1440×800 default font size ตัวไม่เล็กกันเหรอพี่น้อง เพิ่งจนตาหยี

g+ นี่ UI ไม่ไหวอย่างแรง ใช้พื้นที่เปลืองมาก เปิดเข้ามามีส่วนสาระข้อมูลดูได้น้อยมาก ต้อง scroll mouse กันมากมาย…

g+ นี่ UI ไม่ไหวอย่างแรง ใช้พื้นที่เปลืองมาก เปิดเข้ามามีส่วนสาระข้อมูลดูได้น้อยมาก ต้อง scroll mouse กันมากมาย จุดนี้ควรปรับปรุง ไม่รู้มีใครบ่นบ้างไหม เทียบกับ facebook นี่ information ต่อ space ratio ห่างกันลิบ หรือมันมี setting ตรงไหนที่เปลี่ยนโหมดเป็นแบบ compact ได้ไหมหว่า

นอกเหนือจากพจนานุกรม, ท่านทราบหรือไม่ว่า Longdo ยังมีบริการสืบค้นกฎหมายไทย “Longdo Law” อยากดู พรบ.

นอกเหนือจากพจนานุกรม, ท่านทราบหรือไม่ว่า Longdo ยังมีบริการสืบค้นกฎหมายไทย “Longdo Law” อยากดู พรบ. พรก. รวมถึงรัฐธรรมนูญฉบับต่างๆ เปิดดูได้ทันที http://law.longdo.com/

และสามารถส่ง link เชื่อมตรงเนื้อหากฎหมายหนึ่งๆ ให้เพื่อนดูได้ เช่น http://law.longdo.com/law/68/

ใช้งานได้ฟรี

พระราชบัญญัติล้างมลทิน 2550 ที่กำลังเป็นข่าวครับ http://law.longdo.com/law/509/rel199/

ประมวลกฎหมายอาญา มาตรา 157 เรื่องการละเว้นการปฏิบัติหน้าที่โดยมิชอบ http://law.longdo.com/law/717/#CS157

ประมวลกฎหมายอาญา มาตรา 112 ที่เป็นประเด็นมาก่อนหน้านี้ (นิติราษฎร์) http://law.longdo.com/law/717/#CS112 ทำความเข้าใจกับเนื้อหาสาระของตัวบทกฎหมาย ก่อนแลกเปลี่ยนความเห็นทางการเมืองด้วยความรู้ความเข้าใจ ไม่ถูกฝ่ายหนึ่งฝ่ายใดชี้นำ

Upgrade Ubuntu เป็น 12.04 แล้วเจอปัญหา startmysql ไม่ได้ ต้องไปแก้ config my.cnf comment out ตรงบรรทัดนี้ออก

Upgrade Ubuntu เป็น 12.04 แล้วเจอปัญหา startmysql ไม่ได้ ต้องไปแก้ config my.cnf comment out ตรงบรรทัดนี้ออก

#default-character-set = utf8
#default-collation     = utf8_general_ci

ต้องใช้เป็น
character_set_server  = utf8
collation_server      = utf8_general_ci

[ประชาสัมพันธ์] บริษัท เมตามีเดีย เทคโนโลยี จำกัด (เจ้าของเว็บไซต์ Longdo.COM)…

[ประชาสัมพันธ์] บริษัท เมตามีเดีย เทคโนโลยี จำกัด (เจ้าของเว็บไซต์ Longdo.COM) ตัวแทนจำหน่ายอย่างเป็นทางการของซอฟต์แวร์ Pentaho ร่วมกับ GrayMatter Software Services ตัวแทนจำหน่ายระดับ Platinum และ Pentaho Corporation ร่วมกันจัดสัมมนา “Pentaho Business Intelligence Platform” ในวันที่ 18 พฤษภาคม 2555 13:00-17:00 สำหรับผู้ที่สนใจใช้งาน Pentaho ในองค์กรและธุรกิจ

Pentaho เป็น Open Source Business Intelligence Platform ที่มีประสิทธิภาพ และมีค่าใช้จ่ายในการใช้งานไม่สูง สามารถช่วยลดต้นทุนด้านซอฟต์แวร์ลงมาได้มากถึง 80% เทียบกับ commercial solutions อื่นๆ ทำให้ได้รับความนิยมอย่างสูงในหลายๆ ประเทศทั่วโลก

ผู้สนใจร่วมฟังสัมมนา สามารถดูรายละเอียด และ ลงทะเบียนออนไลน์ได้ที่ http://pentaho.mm.co.th/

http://pentaho.mm.co.th/

เคยคิดจะทำเป็นบริการหนึ่งของ Longdo ตั้งแต่ ต.ค. 2007 แต่คงไม่ได้ทำแล้ว เอาไอเดียมาแปะไว้เผื่อใครมีไอเดียคล้ายกัน

เคยคิดจะทำเป็นบริการหนึ่งของ Longdo ตั้งแต่ ต.ค. 2007 แต่คงไม่ได้ทำแล้ว เอาไอเดียมาแปะไว้เผื่อใครมีไอเดียคล้ายกัน

Longdo Wall

Concept: เป็น blackboard หรือกำแพง ให้คนมาดู, แลกเปลี่ยนข่าวสารกันได้.
ที่มาของชื่อ: คล้ายๆคำสั่ง “wall” ของ UNIX สมัยก่อน ที่สั่ง wall ออกไปแล้วทุกคนก็เห็น

วิธีใช้งาน
[public mode]
1. แค่ใช้ browser เปิดไปที่ URL http://wall.longdo.com/walls/
ถ้ายังไม่เคยมีใครเข้ามาก่อน ระบบก็จะสร้างหน้าเว็บเป็นรูปกำแพงใหม่ขึ้นมา ถ้ามีคนสร้างแล้วก็จะเข้าไปต่อเชื่อมกับกำแพงนั้น
กำแพงคือหน้าจอพื้นว่างๆ เหมือน desktop ที่เราสามารถดูและทำอะไรกับมันได้

2. ผู้ใช้สามารถ
-เปลี่ยนสี/ลวดลายพื้นกำแพง
– spray ถ้อยคำบนกำแพง
-เอา object ไปแปะบนกำแพง object ที่เป็นไปได้เช่น chat window, รูปภาพ, วิดิโอ, รวมถึงไฟล์แบบอื่นๆ หรือกระทั่ง folder (ข้างในมีไฟล์ต่อไป)
– ลบ object ออกจากกำแพง (ย้ายไป trash folder)
– ลบกำแพง
– ดาวน์โหลดกำแพง: object บนกำแพงทุกอย่าง สามารถโหลดลงมาเป็น 1 zip file ได้

-ใน public mode ไม่ต้อง login, เข้ามาถึงก็เล่นได้เลย, ไม่มีการ check permission ของคนที่จะร่วมแจม, ไม่มีการเก็บ log, ลบกำแพงแล้วก็ลบข้อมูลทิ้งไปเลย
-เหมาะกับการใช้งาน copy & paste ข้อมูลระหว่างเครื่อง, หรือคุยกับเพื่อนๆ แลกเปลี่ยนข้อมูลสนุกๆ ไม่เน้นสาระ และไม่ต้องการให้มี record

[private mode] (phase 2)
– มีการ login, สร้างกำแพงแบบ private หรือเฉพาะ group คนที่รู้จัก
– มีการสร้าง role ได้ และ associate user/role permission เข้ากับกำแพง
– มีการเก็บ log อาจจะเป็นวันๆ, auto ล้างกำแพง
– มีระบบ search ที่ย้อนหลังไปแต่ละวันได้
– เหมาะสำหรับการใช้งานแบบเป็นเรื่องเป็นราวมากขึ้น เช่น กระดาน MM Staff จะเป็นข่าวสารที่สมาชิก MM คุยกันในแต่ละวัน ใครมีอะไร update, วันนี้ไปกินอะไรดี, … ซึ่งวันรุ่งขึ้นก็จะล้างกระดาน
ใหม่ แต่ยังคงกดย้อนไปดูได้

[advanced features]
– backup/restore กำแพงได้
– โยนวิดิโอ หรือ power point ลงไปบนกำแพงได้
– มีโหมดที่ คนนึงกด play วิดิโอ/power point แล้วทุกคนเห็นเหมือนกัน เหมือนใช้ในการเรียนการสอนได้

แนวทางหาเงิน (phase 3)
– แสดง relevant ads ที่เกี่ยวข้องกับสมาชิกกำแพงนั้นๆ หรือ contents ของกำแพง
– ขาย “กำแพง” appliance สำหรับใช้ในองค์กร/intranet

ใช้ Windows 7 แล้วมันก็เตือนให้ update service pack1 แต่กดกี่ครั้งๆ มันก็จะติดตั้งไปสักพักแล้วก็ขึ้น Unable to…

ใช้ Windows 7 แล้วมันก็เตือนให้ update service pack1 แต่กดกี่ครั้งๆ มันก็จะติดตั้งไปสักพักแล้วก็ขึ้น Unable to install ServicePack 1: Unknown error Code 8024200D เปิดหาข้อมูลดูสักพัก สรุปเหมือนว่ามันโหลดไฟล์จาก Net มาไม่ได้ (ด้วยเหตุผลอะไรสักอย่าง) ต้องโหลดไฟล์ service pack 1 ทั้งยวง เช่น windows6.1-KB976932-X86.exe มาที่เครื่องก่อนแล้วติดตั้งถึงจะผ่าน

http://www.microsoft.com/download/en/details.aspx?id=5842

http://www.microsoft.com/download/en/details.aspx?id=5842

RAID เพี้ยนๆ อยูดีๆ ก็

RAID เพี้ยนๆ อยูดีๆ ก็

md1 : inactive sdb4[0] sda4[2](S)
3778117504 blocks

ซึ่ง mdadm –assemble /dev/md1 มันก็จะบอกว่า
mdadm: device /dev/md1 already active – cannot assemble it

สุดท้ายเลยต้อง

# mdadm –stop /dev/md1
# mdadm –assemble /dev/md1 /dev/sdb4 –run
# mdadm –add /dev/md1 /dev/sda4

ถึงจะกลับขึ้นมา

แต่ดูท่าไม่ค่อยดี อาจถึงเวลาของมัน

Ott