Thursday, December 17, 2015

Example:

 <system.web>
     <sessionState timeout="60"></sessionState>
  </system.web>
 
if not working, try this:
1,  go to IIS
2, Application Pools --> Advanced Setting 
--> change Time in Idle Time-out

--> Done!


 

Friday, November 20, 2015

Mozilla has one shareholder: you. As a non-profit, we can do more to protect the Web with your donations. If everyone reading this chipped in $3, we would be supported for another year. Donate now.

Wednesday, November 18, 2015

Ông Ito Junichi cho biết: “Khi tôi mới đến VN 20 năm trước, tôi thấy người VN cũng rất chăm chỉ như người Nhật”.
Thế nhưng chỉ sau đó ít năm: “Nhưng giờ thì tôi không còn cảm thấy điều đó nữa. Giờ tôi thấy người VN thích kiếm tiền nhưng không còn chăm chỉ như 20 năm trước nữa.”

“Một điều có thể thấy là người Việt Nam thường coi thường những người lao động chân tay như thợ hàn, công nhân lao động, công nhân xí nghiệp. Nhiều người trẻ chỉ thích làm trong những văn phòng tiện lợi, nhà có điều hòa.”
Khác với nước Nhật: “Ở Tokyo, trường đại học nổi tiếng nhất là Đại học Tokyo. Nhưng các sinh viên ở trường này nếu có đến làm cho công ty tàu hỏa của thành phố thì việc đầu tiên họ phải làm là dọn dẹp nhà vệ sinh, cắt vé. Họ phải học lao động bằng chân tay. Họ phải trải qua mọi việc từ dưới lên trên trước khi muốn trở thành sếp. Theo tôi, việc người trẻ không tôn trọng những người lao động chân tay là khuyết điểm rất lớn của xã hội”.
Trong khi đó, ở Việt Nam người trẻ lại coi thường lao động chân tay, nhiều công ty Nhật muốn nhân viên ra xí nghiệp chỉ dẫn cho công nhân nhưng nhân viên trẻ VN không muốn làm việc đó. Còn người Nhật thì họ trân trọng những người làm ra cái thìa, cái kính bởi họ có kĩ năng.
Ở Việt Nam, giờ có nhiều người tốt nghiệp đại học, nhiều người có bằng MBA nhưng họ chưa đụng tay làm những việc thật bao giờ cả. Họ chưa bao giờ làm những công việc tay chân lấm láp. Những người trẻ đó chỉ học trên giấy tờ, đọc sách nhưng họ chẳng hiểu gì thực tế cả.
Ông CEO này kể lại: “Tôi có họp với những người làm việc trong các lĩnh vực như chứng khoán, ngân hàng… để bàn về đầu tư một nhà máy, những người này cần tiền để làm nhà máy nhưng họ không hiểu gì về nguyên liệu thô, quy trình sản xuất hay thị trường… Tôi hỏi thì họ bảo “sếp tôi bảo phải làm”. Những người như vậy, họ chỉ hiểu được phần ngọn, phần bề mặt mà không hiểu hết mọi thứ…”
Để thấy rằng người Việt Nam chỉ thích lao động bàn giấy mà không gắn với thực tiễn, chỉ thích bề nổi mà không thấy cái bề sâu.
Thiết nghĩ giáo dục Việt Nam nên tạo điều kiện cho những người giỏi kĩ năng. Thay vì tạo điều kiện cho những người chỉ giỏi làm bài kiểm tra mà bỏ quên những người không giỏi làm bài kiểm tra nhưng có kĩ năng.

Wednesday, November 11, 2015

Công cụ được sử dụng

  1. FeedBurner : http://feedburner.google.com Dịch vụ này rất hữu ích, có thể trích xuất RSS để lấy Full content
  2. Ezinarticle : EzineArticles RSS Nguồn dữ liệu, site này được xem là Article directory uy tín nhất hiện nay, các bài viết được duyệt thủ công với thời gian đến 7 ngày và nội dung unique, không lỗi chính tả,ngữ pháp và nội dung thật sự có giá trị mới được approved, do đó, nguồn content này chất lượng tuyệt hảo .
  3. Blogspot : www.Blogger.com Dịch vụ blog miễn phí, hoặc wordpress.com  Nên chọn Blogger vì có sẵn giao diện theo chủ đề Niche .
  4. Software easyautoblogged : Phần mềm autoblog bán tự  động [ Download ]
Các tính năng của chương trình autoblog cho blogspot & wordpress
  • Không giới hạn số lượng autoblog và nguồn cấp dữ liệu, có thể tạo 100 autoblog
  • Tự  động Update hàng loạt feed và post lên các blog, chương trình tự động download các content mới và không post các bài đã có trong dữ liệu .
Setup 1 autoblog rất đơn giản qua các bước :
B1 : Chọn lĩnh vực : Chọn lĩnh vực chung chung hoặc Niche. VD: Lĩnh vực kinh doanh có các Niche như : kinh doanh dịch vụ, kinh doanh online , kinh doanh nông nghiệp , …. Truy cập http://ezinearticles.com/rss Nghiên cứu các cụm từ khóa để đặt tiêu đề, mô tả cho Niche site .
B2 : tạo blog miễn phí trên blogger.com, như bài viết trước đã gợi ý, nên đóng gói 1 giao diện blogspot để dùng cho nhiều blog một cách nhanh chóng, edit giao diện theo chủ đề, seo onpage thuận tiện .
B3: Nhập blog + feed vào chương trình . Thiên hạ đồn rằng autoblog có ưu thế ở số lượng, điều này đúng, với 1 blog có thể tạo nhiều nguồn nội dung. Trung bình 1 ngày site ezinarticle có 1 bài mới cho 1 Niche, hiện có hàng trăm Niche trên http://ezinearticles.com/rss và chưa kể có hàng nghìn site cung cấp nội dung khác. Do đó, 1 ngày giả sử  có 3 bài mới => 1 tháng có 90 bài mới .
Không cần update autoblog thường xuyên, có thể 1 tháng mới cập nhật 1 lần do các Niche site auto này không phải thể loại tin tức . Cần publish dần ở chế độ ” lên lịch ” để các bot không nhận ra đây lầ autoblog , nếu publish cùng lúc quá nhiều nội dung thì rõ ràng site phát triển bất thường . Về mặt SEO thì mục tiêu đạt Pagerank 1 cần có:
  • 3 Backlink PR 2
  • 15 Backlink PR 1

Sunday, November 8, 2015

 

private string ReplaceElements(string html)
{
    string patten = @"<\s*div[^>]*>(.*?)<\s*/div\s*>";
    string wrapper = @"
{0}
"
;     MatchCollection collection = Regex.Matches(html, patten);     foreach (Match match in collection)     {         string value = match.Value;         int marker = value.IndexOf(">");         string innterHtml = value.Substring(marker + 1, value.Length - (marker + 7));         if (Regex.Match(innterHtml, patten).Success)             innterHtml = this.ReplaceElements(innterHtml);         string wrappedText = string.Format(wrapper, innterHtml);         string modifiedValue = value.Replace(innterHtml, wrappedText);         html = html.Replace(value, modifiedValue);     }     return html; }  
use: 
 html = this.ReplaceElements(html); 
 
------------------------------------

Extract all text contents from webpage 

public string scrapeWebsite(string url)
    {
        string extractedContent = "";
 
        WebClient wc = new WebClient();
        wc.Headers.Add("HTTP_USER_AGENT", "Web-Scraper-Agent (your-custom-user-agent-here)");
        try
        {
            // Download the web page content from the URL
            extractedContent = wc.DownloadString(url);
 
            //Remove CSS styles, if any found
            extractedContent = Regex.Replace(extractedContent, "", "");
            //Remove script blocks
            extractedContent = Regex.Replace(extractedContent, "", "");
            // Remove all images
            extractedContent = Regex.Replace(extractedContent, "", "");
            // Remove all HTML tags, leaving on the text inside.
            extractedContent = Regex.Replace(extractedContent, "<(.| )*?>", "");
            // Remove all extra spaces, tabs and repeated line-breaks
            extractedContent = Regex.Replace(extractedContent, "(x09)?", "");
            extractedContent = Regex.Replace(extractedContent, "(x20){2,}", " ");
            extractedContent = Regex.Replace(extractedContent, "(x0Dx0A)+", " ");
        }
        catch (Exception e)
        {
            extractedContent = "Error on downloading: " + e.Message;
        }
        return extractedContent;
    }
 

Friday, November 6, 2015

Dưới dây là cập nhật thống kê các công cụ hỗ trợ SEO cần thiết.

1) Công Cụ Hỗ Trợ Từ Google
♛ Google Webmastertool :https://www.google.com/webmasters/tools/home
♛ Google Analytic: https://www.google.com/analytics/web/
♛ Google Submit:https://www.google.com/webmasters/tools/submit-url
♛ Google Report:
♛ Google News: https://partnerdash.google.com/partnerdash/d/news#p:id=pfehome&a=100095465
♛ Google Thông báo: https://www.google.com/alerts
♛ Yêu cầu xem xét lại website: https://www.google.com/webmasters/tools/reconsideration?hl=vi&pli=1
♛ Từ chối liên kết,diallow : https://www.google.com/webmasters/tools/disavow-links-main?hl=vi
♛ Báo cáo Spam Rich Snippet : https://support.google.com/webmasters/contact/rich_snippets_spam?hl=en
♛ Google Forum Help : https://productforums.google.com/forum/#!forum/webmasters
♛ Báo cáo vi phạm DMCA :https://www.google.com/webmasters/tools/dmca-notice?hl=vi
♛ Báo Cáo Spam,Độc hại :https://www.google.com/webmasters/tools/spamreport?hl=vi
♛ Trợ giúp Rich Snippet:https://www.google.com/webmasters/markup-helper/u/0/?hl=vi
2) Kiểm Tra TF CF :
♛ https://majestic.com/reports/site-explorer

3) Công cụ kiểm tra thống kê tổng hợp
♛  http://smallseotools.com/
♛  http://moz.com/tools
4) Check Giá Trị Website :
♛ http://www.freewebsitereport.org/
5) Tuổi đời domain :
♛ http://web.archive.org/web/*/http://yourcutedog.com
6) Kiểm tra Backlink :
♛ https://ahrefs.com/
♛ http://www.openlinkprofiler.org/tools
♛ http://webmeup.com/
♛ https://majestic.com/reports/site-explorer?q=http%3A%2F%2F68xyx.com%2F&oq=http%3A%2F%2F68xyx.com%2F&IndexDataSource=F
7) Kiểm tra vị trí từ khóa
♛ http://myseotool.com/
♛ Phần mềm : Cute rank ...
8) Kiểm tra Spam Link:
♛ https://moz.com/researchtools/ose/
9)Đo tốc độ website:
http://gtmetrix.com/
10) Addon Seo Quake của chrome và firefox:
 Chrome : Download here
 Firefox : Download Here
10 ) Addon Check Domain Authority - Page Authority
 Toolbar by moz :https://addons.mozilla.org/vi/firefox/addon/seo-toolbar-by-seomoz/

Sunday, November 1, 2015

#frameWrap { position:relative; height: 360px; width: 640px; border: 1px solid #777777; background:#f0f0f0; box-shadow:0px 0px 10px #777777; } #iframe1 { height: 360px; width: 640px; margin:0; padding:0; border:0; } #loader1 { position:absolute; left:40%; top:35%; border-radius:20px; padding:25px; border:1px solid #777777; background:#ffffff; box-shadow:0px 0px 10px #777777; }

Javascript
$(document).ready(function () { $('#iframe1').on('load', function () { $('#loader1').hide(); }); });

Monday, October 26, 2015

Links:

http://www.seguetech.com/blog/2013/07/01/how-to-add-Google-Mapping-android-application

Sunday, October 25, 2015

Đây là bài tập thở giúp bác sĩ Nguyễn Khắc Viện sống thêm được 50 năm trong khi đã bị cắt gần hết phổi vì căn bệnh lao phổi.

 

 

1. Người sáng tạo ra phương pháp tập thở dưỡng sinh
Bác sĩ Nguyễn Khắc Viện (1913 - 1997) là một nhà nghiên cứu xuất thân trong gia đình khoa bảng ở xã Sơn Hòa, huyệt Hương Sơn, tỉnh Hà Tĩnh. Thân sinh ra ông là cụ Hoàng giáp Nguyễn Khắc Niêm, làm Thượng thư Bộ Lễ triều đình nhà Nguyễn.
Năm 1933, Nguyễn Khắc Viện tốt nghiệp tú tài triết học, tú tài toán học và tú tài tây, vào học trường Đại học Y khoa Hà Nội rồi sang Pháp học tiếp. Năm 1939 ông tốt nghiệp và được làm bác sĩ nội trú tại bệnh viện Trouseau - một bệnh viện lớn nhất Pari.
Tại đây, ông tiếp tục học và đỗ thêm bằng bác sĩ về ký sinh trùng và các bệnh nhiệt đới.
Năm 1942, ông bị lao phổi nặng, phải nằm điều trị ở bệnh viện Saint Hilaire du Touvet, Grenoble. Thời gian đó sự phát triển về y khoa còn hạn chế, bệnh lao phổi chưa có thuốc chữa khỏi.
Trong vòng 6 năm điều trị bệnh (từ 1943 - 1948), ông phải trải qua nhiều ca phẫu thuật điều trị lao phổi gồm có 7 lần mổ, cắt bỏ 8 xương sườn, cắt bỏ toàn bộ lá phổi bên phải và 1/3 lá phổi bên trái.
Lúc này, dung tích thở trong phổi của ông chỉ còn 1 lít, đây là dung tích thở của một người rất yếu. Theo chẩn đoán của các bác sĩ người Pháp, bác sĩ Nguyễn Khắc Viện chỉ còn sống được khoảng 2 năm nữa.
Tuy nhiên, bác sỹ Nguyễn Khắc Viện không chấp nhận nằm chờ chết. Ông đã nghiên cứu nhiều tài liệu và tìm ra phương pháp thở để tự chữa bệnh cho mình. Kết quả ông đã sống thêm được 50 năm nữa, hưởng thọ 85 tuổi.
Trong thời gian còn sống, bác sĩ Nguyễn Khắc Viện không những duy trì được sức khỏe tốt cho mình mà còn nhờ có sức khỏe ấy đã tích cực hoạt động, nghiên cứu và để lại rất nhiều tác phẩm trong các lĩnh vực văn học, triết học...
Bác sĩ Nguyễn Khắc Viện
Bác sĩ Nguyễn Khắc Viện
2. Bài tập thở dưỡng sinh "để đời"
Phương pháp tập thở của bác sĩ Nguyễn Khắc Viện được đúc kết trong bài vè 12 câu rất dễ nhớ như sau:
"Thót bụng thở ra, Phình bụng thở vào, Hai vai bất động, Chân tay thả lỏng, Êm chậm sâu đều, Tập trung theo dõi, Luồng ra luồng vào,  Bình thường qua mũi, Khi gấp qua mồm, Đứng ngồi hay nằm, Ở đâu cũng được, Lúc nào cũng được".
Theo GS Nguyễn Lân Dũng, bài tập thở có thể kết hợp hiệu quả nhất khi đi bộ, thích hợp cho những người cao tuổi. Đi nhanh hay chậm, ngắn hay dài là tùy thuộc vào sức khỏe mỗi người.
Trong khi đi, kết hợp với thở bụng êm dịu và sâu theo công thức: 4 bước hít vào, nhớ phình bụng ra, 2 bước ngừng thở, tiếp theo 8 bước thở ra, thót bụng lại. Việc tập thở sẽ phát huy tác dụng tốt hơn khi đi bộ ở nơi có không khí trong lành, tinh thần thư thái.
Thở 4 thì bằng nhau:
- Thì 1: Hít vào từ từ và nhẹ nhàng bằng mũi, hít sâu, êm dịu kéo dài đến mức có thể chịu được, đồng thời phình bụng ra.
Thì 2: Nín thở giữ hơi, thời gian bằng khi hít vào.
Thì 3: Thở ra từ từ, êm nhẹ và kéo dài, đồng thời bụng thót vào hết cỡ, thời gian bằng thì 1.  
Thì 4: Nín thở, thời gian bằng thì 1. Lúc mới tập, người tập có thể đếm 1, 2, 3, 4, 5 ở mỗi thì. Sau tăng thời gian lên bằng cách đếm đến 7, 8, 9, 10...
3. Vì sao phương pháp tập thở lại tốt cho sức khỏe?
Phương pháp thở của bác sĩ Nguyễn Khắc Viện thực ra không phải hoàn toàn mới. Nó chỉ là một sự tổng hợp của khí công, thiền, yoga, tai chi, dưỡng sinh… của Đông phương từ ngàn xưa, được nhìn bằng sinh lý học hô hấp hiện đại của một người thầy thuốc.
Việc tập thở sở dĩ có tác dụng tốt đối với sức khỏe là do cách thở trên giúp đưa được tối đa lượng oxy hữu ích vào cơ thể và tống được tối đa lượng khí Co2 ra, giảm bớt khối không khí độc trong đáy phổi.
Làm được điều này tức là người tập đã tăng đáng kể việc chuyển hóa máu đen thành máu đỏ, tăng cường lượng oxy cho cơ thể.
Việc tập thở chủ yếu vận dụng cơ hoành để tác động đến các cơ quan khác như các bộ phận trong ngực và bụng gồm tim phổi, gan, dạ dày, ruột, các nội tạng khác.
Không chỉ tác động đến cơ quan nội tạng, quá trình thở còn tác động đến cả xương sườn, lồng ngực, cột sống, xương ức và các bộ phận cơ mềm ở ngực và ở bụng

Thursday, October 22, 2015

Khi bạn mua một hàng hóa hay dịch vụ nào đó trên mạng sử dụng công cụ thanh toán paypal như mua hosting, domain. Thường thì các nhà cung cấp dịch vụ hay hàng hóa đó đã liên kết với paypal để tự động gia hạn các dịch vụ khi hết hạn. Tính năng này rất là hữu dụng, nó sẽ giúp bạn tránh bị mất dịch vụ khi mà bạn quên không thanh toán khi đến hạn, paypal sẽ tự động từ một khoản tiền có sẵn trong tài khoản để gia hạn dịch vụ đó (trừ trường hợp tài khoản bạn không có tiền). Tuy nhiên sẽ rất là nguy hiểm nếu như dịch vụ đó bạn không còn sử dụng nữa, việc đòi lại tiền là rất khó. Trong bài viết này mình sẽ hướng dẫn cách tắt tính năng thanh toán tự động trong paypal, trong một số trường hợp các nhà cung cấp dịch vụ cũng cho phép bạn hủy tự động thanh toán trên trang chủ của họ.
Việc đầu tiền là bạn đăng nhập vào tài khoản của bạn trên paypal.com, chọn My Account > Profile > My money > chọn update trong mục My preapproved payments
hủy thanh toán tự động
Bạn sẽ thấy các trạng thái Status như:
Active: tính năng tự động thanh toán đang hoạt động.
Inactive: tính năng tự động thanh toán không hoạt động.
Canceled: tính năng tự động thanh toán đã bị hủy bỏ.
automatic payment cancel
Để thay đối bạn chỉ cần click vào đường link trong cột Merchant, tiếp theo click vào Cancel, một hộp hôi thoại xác nhận hiện ra bạn chọn Yes để hoàn tất.
hủy tính năng tự động thanh toán paypal
Chúc các bạn thành công.

Chào các bạn. Khi các bạn tiến hành cài đặt một số chương trình sẽ cần sử dụng tới các ActiveX (.ocx), nếu trên máy tính của bạn chưa  đăng ký các điều khiển này chương trình sẽ hiện ra một số thông báo lỗi như: “component ‘MSWINSCK.OCX’ or one of its dependencies not correctly registered:a file is missing or invalid”
Có nhiều các file .ocx khác nhau, sau đây mình hướng dẫn  các bạn cài đặt một số file mà mình đã gặp:
– Nếu bạn nhận được thông báo “component ‘MSWINSCK.OCX’ or one of its dependencies not correctly registered:a file is missing or invalid”, bạn tiến hành download file “MSWINSCK.OCX” về tại đây, sau đó bạn giải nén và đưa vào trong thư mục system32 trong ổ C. (C:WindowsSystem32.), sau đó bạn vào Start –> All Program –> Accessories –>kích chuột phải chọn Command Prompt, chọn Run as administrator. Sau đó bạn gõ regsvr32.exe mswinsck.ocx và ấn Enter.
– Nếu bạn nhận được thông báo lỗi file “comdlg32.ocx” bạn tiến hành download file vềtại đây, sau đó bạn cũng giải nén vào trong thư mục System32 và gọi chương trình Command Prompt với quyền administrator như trên, cuối cùng bạn lần lượt đánh 2 dòng lệnh là regsvr32 /u Comdlg32.ocx
regsvr32 /i Comdlg32.ocx
– Nếu bạn nhận được thông báo lỗi file “MSCOMCTL.OCX” bạn download file mscomctl.ocx về, sau đó giải nén vào thư mục System32 và trong chương trình Command Prompt bạn chạy với quyền administrator bạn gõ REGSVR32 MSCOMCTL.OCX.
Hi vọng bài viết sẽ giúp bạn cài đặt thành công một số file .ocx thông dụng.

=======================
Cập nhật:
Tải file và làm theo hướng dẫn:
https://www.dropbox.com/s/cgy5244cienqshz/Dang%20ky%20OCX%20MSCOMCTL.rar?dl=0

Wednesday, October 21, 2015

Tuesday, October 20, 2015

Node.js

  1. http://flippinawesome.org/2013/09/23/easy-api-scaffolding-with-simple-api-and-node-js/
  2. http://blog.modulus.io/nodejs-and-express-create-rest-api (May 2013)
  3. http://synthmedia.co.uk/blog/basic-nodejs-api-with-restify-and-save (May 2013)
  4. http://webapplog.com/tutorial-node-js-and-mongodb-json-rest-api-server-with-mongoskin-and-express-js/ (Jul 2013)
  5. http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/ (Apr 2013)
  6. http://webapplog.com/intro-to-express-js-simple-rest-api-app-with-monk-and-mongodb/ (Apr 2013)
  7. http://stackoverflow.com/questions/14990544/how-to-best-create-a-restful-api-in-node-js (Feb 2013)
  8. http://erichonorez.wordpress.com/2013/02/10/how-create-a-rest-api-with-node-js-and-express/ (Feb 2013)
  9. http://benaugarten.com/blog/2013/01/31/restful-a-better-rest-api-using-node-dot-js-with-express/ (Jan 2013)
  10. http://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/ (Nov 2012)
  11. http://pixelhandler.com/blog/2012/02/09/develop-a-restful-api-using-node-js-with-express-and-mongoose/ (Feb 2012)

PHP

  1. http://coreymaynard.com/blog/creating-a-restful-api-with-php/ (May 2013)
  2. http://net.tutsplus.com/tutorials/php/creating-an-api-centric-web-application/ (2011)
  3. http://www.youtube.com/watch?v=vJVQi7ZFSaQ (2010)
  4. http://www.particletree.com/features/how-to-add-an-api-to-your-web-service/ (2009)
  5. http://www.recessframework.org/page/towards-restful-php-5-basic-tips (2008)
  6. http://www.codewalkers.com/c/a/Miscellaneous/Create-Your-Own-Custom-API/ (2005)

Python

  1. http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask (May 2013)
  2. http://gotofritz.net/blog/weekly-challenge/restful-python-api-bottle/ (2012)
  3. http://myadventuresincoding.wordpress.com/2011/01/02/creating-a-rest-api-in-python-using-bottle-and-mongodb/ (2011)
  4. http://www.robertshady.com/content/creating-very-basic-api-using-python-django-and-piston (2010)

Rails

  1. http://apionrails.icalialabs.com (2014)
  2. http://collectiveidea.com/blog/archives/2013/06/13/building-awesome-rails-apis-part-1/ (Jun 2013)
  3. http://www.emilsoman.com/blog/2013/05/18/building-a-tested/ (May 2013)
  4. http://railsware.com/blog/2013/04/08/api-with-ruby-on-rails-useful-tricks/ (Apr 2013)
  5. http://mt.gomiso.com/2011/06/27/building-a-platform-api-on-rails/ (2011)
  6. http://www.whatcodecraves.com/articles/2008/11/25/how-to-make-an-api-for-a-rails-app (2008)
  7. http://www.xml.com/pub/a/2006/04/19/rest-on-rails.html?page=3 (2006)

ASP.NET Web API (C#/.NET)

  1. http://www.windowsazure.com/en-us/develop/net/tutorials/rest-service-using-web-api/ (Jun 2013)
  2. http://blog.ploeh.dk/2013/08/23/how-to-create-a-pure-f-aspnet-web-api-project/ (Aug 2013)
  3. http://dotnet.dzone.com/articles/web-api-aspnet-web-forms (May 2013)
  4. http://www.contentedcoder.com/2013/03/creating-your-first-web-api.html (Apr 2013)
  5. http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api (2012)
  6. http://www.asp.net/web-api/overview/creating-web-apis/creating-a-web-api-that-supports-crud-operations (2012)
  7. http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-entity-framework/using-web-api-with-entity-framework,-part-1 (2012)
  8. https://github.com/Factual/factual-csharp-driver/wiki/ASP.NET-Web-API-with-Factual-Driver-Example (2012)

Java

  1. http://www.ibm.com/developerworks/training/kp/j-kp-rest/
  2. http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch18s02.html
  3. http://docs.oracle.com/javaee/6/tutorial/doc/giepu.html
  4. http://www.myeclipseide.com/documentation/quickstarts/webservices_rest/
  5. http://rest.elkstein.org/2008/02/using-rest-in-java.html

Monday, October 19, 2015

Steps Required to Create Android Login Registration Application

1. Create a Home Screen Activity , Which will hold ‘Sign In‘ and ‘Sign Up‘ options.
2. Create layouts for home screen and ‘Sign In‘ and ‘Sign Up‘ Screens.
4. Create a SQLite  Database in the application’s context, so that we can save all required user data (‘Sign In‘ and ‘Sign Up‘ details).
5. Code Logic in Application’s Java files.
6. Run Android Login Registration app on Device/Emulator.
7. Download complete android example for this project.

Android Layouts for Login Registration Application

 See more...

and more this for other example 

//        Dialog windowContext context = this;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("www.google.com");
builder.setMessage("Are you sure?");
// Add action buttonsbuilder.setPositiveButton("Sign In", new DialogInterface.OnClickListener() {
    @Override    public void onClick(DialogInterface dialog, int id) {
        //Log.d("","You clicked Sing In button.");    }
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int id) {
       // Log.d("","You clicked Cancel button.");    }
});

builder.create().show();

Sunday, October 18, 2015

Ví dụ chữ (tôi là "Obama" của Việt Nam)

Code C# viết là: string str "Tôi là \"Obama\" của Việt Nam";

Dự án Android 01

Dự án Android của bạn bây giờ là một ứng dụng “Hello World” cơ bản có chứa một số tập tin mặc định. Dành ít phút để xem lại quan trọng nhất trong số này:

app/src/main/res/layout/activity_my.xml
Đây là file layout XML cho các hoạt động mà bạn thêm vào khi bạn tạo ra dự án với Android Studio. Sau khi tạo dự án mới, Android Studio trình bày tập tin này với cả cách nhìn văn bản và một bản xem trước của màn hình giao diện người dùng. Các tập tin bao gồm một số các thiết lập mặc định và một yếu tố TextView hiển thị thông báo, “Hello World!”
app/src/main/java/com.mycompany.myfirstapp/MyActivity.java
Một tab cho tập tin này xuất hiện trong Android Studio khi  quy trình tạo dự án mới hoàn thành. Khi bạn chọn tập tin để xem mã lệnh của class cho hoạt động (activity) mà bạn tạo ra. Khi bạn xây dựng và chạy các ứng dụng, các lớp hoạt động (activity) bắt đầu hoạt động và nạp file layout xuất ra “Hello World!”
app/src/main/AndroidManifest.xml
Tập tin manifest mô tả các đặc điểm cơ bản của ứng dụng và xác định từng thành phần của nó. Bạn sẽ tìm hiểu rõ hơn tập tin này và thêm các thành phần khác cho ứng dụng của bạn trong các bài học sau.
app/build.gradle
Android Studio sử dụng Gradle để biên dịch và xây dựng các ứng dụng của bạn. Có một tập tin build.gradle cho từng module của dự án của bạn, cũng như một tập tin build.gradle cho toàn bộ dự án. Thông thường, bạn chỉ quan tâm đến tập tin thebuild.gradle cho các module, trong trường hợp các ứng dụng hoặc module ứng dụng. Đây là nơi mà ứng dụng của bạn xây dựng phụ thuộc được thiết lập, bao gồm các thiết lập defaultConfig:
  • compiledSdkVersion is the platform version against which you will compile your app. By default, this is set to the latest version of Android available in your SDK. (It should be Android 4.1 or greater; if you don’t have such a version available, you must install one using the SDK Manager.) You can still build your app to support older versions, but setting this to the latest version allows you to enable new features and optimize your app for a great user experience on the latest devices.
  • applicationId is the fully qualified package name for your application that you specified during the New Project workflow.
  • minSdkVersion is the Minimum SDK version you specified during the New Project workflow. This is the earliest version of the Android SDK that your app supports.
  • targetSdkVersion indicates the highest version of Android with which you have tested your application. As new versions of Android become available, you should test your app on the new version and update this value to match the latest API level and thereby take advantage of new platform features. For more information, read Supporting Different Platform Versions.
See Building Your Project with Gradle for more information about Gradle.

Cũng lưu ý các thư mục con trong /res có chứa các tài nguyên cho ứng dụng của bạn:

drawable/
Thư mục cho các đối tượng có thể vẽ (chẳng hạn như bitmap) được thiết kế cho các độ phân giải màn hình khác nhau, chẳng hạn như độ phân giải trung bình (mdpi) và mật độ cao (hdpi). Thư mục drawable khác chứa tài nguyên được thiết kế cho mật độ màn hình khác. Ở đây bạn sẽ tìm thấy ic_launcher.png xuất hiện khi bạn chạy các ứng dụng mặc định.
layout/
Thư mục cho các tập tin xác định giao diện  ứng dụng của bạn sử dụng như activity_my.xml, thảo luận ở trên, trong đó mô tả một cách bố trí cơ bản cho lớp MyActivity.
menu/
Thư mục cho các tập tin định nghĩa các thành phần trong trình đơn của bạn.
values/
Thư mục cho các tập tin XML khác có chứa một tập hợp các tài nguyên, chẳng hạn như các định nghĩa chuỗi và màu sắc. Tập tin strings.xml định nghĩa “Hello World!” chuỗi hiển thị khi bạn chạy các ứng dụng mặc định.

Saturday, October 17, 2015

Anroid links: Learn

http://android.vn/threads/web-services-with-ksoap.77291/
https://duythanhcse.wordpress.com/2014/02/25/bai-46-su-dung-net-webservice-trong-android/

Thursday, October 8, 2015

Consider this very simple query (Assuming a scenario that not all the TimesheetLines are associated with a Job)
1
2
3
Select TL.EntryDate, TL.Hours, J.JobName
From TimeSheetLines TL
Left Join Jobs J on TL.JobNo=J.JobNo
A LINQ query using inner join is
1
2
3
4
5
6
7
8
9
10
11
var lines =
    from tl in db.TimeSheetLines
    join in db.Jobs on tl.JobNo equals j.JobNo
    where tl.ResourceNo == resourceNo
 
    select new
    {
        EntryDate = tl.EntryDate,
        Hours = tl.Hours,
        Job = j.JobName
    };
And a LINQ query performing left join is
1
2
3
4
5
6
7
8
9
10
11
12
var lines =
    from tl in db.TimeSheetLines
    join in db.Jobs on tl.JobNo equals j.JobNo into tl_j
    where tl.ResourceNo == resourceNo
 
    from j in tl_j.DefaultIfEmpty()
    select new
    {
        EntryDate = tl.EntryDate,
        Hours = tl.Hours,
        Job = j.JobName
    };
Notice that the only difference is the use of “into” with the join statement followed by reselecting the result using “DefaultIfEmpty()” expression. And here’s the generated SQL for the above LINQ expression.
1
2
3
4
SELECT [t0].[EntryDate] as [EntryDate], [t0].[Hours] as [Hours], [t1].[JobName] AS [Job]
FROM [dbo].[TimeSheetLine] AS [t0]
LEFT OUTER JOIN [dbo].[Jobs] AS [t1] ON [t0].[JobNo] = [t1].[JobNo]
WHERE [t0].[ResourceNo] = @p0
Another LINQ version which is more compact is:
1
2
3
4
5
6
7
8
9
var lines =
    from tl in db.TimeSheetLines
    from j in db.Jobs.Where(j=>j.JobNo == tl.JobNo).DefaultIfEmpty()
    select new
    {
        EntryDate = tl.EntryDate,
        Hours = tl.Hours,
        Job = j.JobName
    };
Similarly, this concept can be expanded for multiple left joins. Assuming that a TimeSheetLine will either have a JobNo or an IndirectCode, consider this SQL query:
1
2
3
4
Select TL.EntryDate, TL.Hours, J.JobName, I.IndirectName
From TimeSheetLines TL
Left Join Jobs J on TL.JobNo=J.JobNo
Left Join Indirects I on TL.IndirectCode=I.IndirectCode
The equivalent LINQ query is:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var lines =
    from tl in db.TimeSheetLines
    join j in db.Jobs      on tl.JobNo        equals j.JobNo         into tl_j
    join i in db.Indirects on tl.IndirectCode equals i.IndirectCode  into tl_i
    where tl.ResourceNo == resourceNo
 
    from j in tl_j.DefaultIfEmpty()
    from i in tl_i.DefaultIfEmpty()
    select new
    {
        EntryDate = tl.EntryDate,
        Hours = tl.Hours,
        Job = j.JobName,
        Indirect = i.IndirectName,
    };
And the generated SQL is:
1
2
3
4
SELECT [t0].[EntryDate] as [EntryDate], [t0].[Hours] as [Hours], [t1].[JobName] AS [Job], [t2].[IndirectName] As [Indirect]
LEFT OUTER JOIN [dbo].[Jobs] AS [t1] ON [t0].[JobNo] = [t1].[JobNo]
LEFT OUTER JOIN [dbo].[Indirects] AS [t2] ON [t0].[IndirectCode] = [t2].[IndirectCode]
WHERE [t0].[ResourceNo] = @p0
That’s all, left outer joins in LINQ are as easy as in T-SQL. Happy joining.
Update:
Notice that this post describes the approach to perform a Left Outer Join in LINQ To SQL as well as Entity Framework (version 4). The same is not true for Entity Framework version 3.5 since it does not support the DefaultIfEmpty keyword. To perform Left Outer Joins with Entity Framework 3.5, we need to create appropriate relationships (e.g 0..1 to 0..Many) in our Entity Model and they will be automatically translated into TSQL’s Left Join clause.