Hiển thị các bài đăng có nhãn IT_Development. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn IT_Development. Hiển thị tất cả bài đăng

Thứ Năm, 2 tháng 10, 2014

Cannot insert the value null into column 'diagram_id', table dbo.sysdiagrams

http://www.johnsoer.com/blog/?p=182

Cannot insert the value null into column ‘diagram_id’, table dbo.sysdiagrams

July 6th, 2009 | Author: Arjo Soer

When ever I copy the database from the production server to the development machine the database throws an error when updating a database diagram or creating a new database diagram. The error in question is

The solution to this problem is rather simple go to dbo.sysdiagram table and set change the diagram_id default value to 0. However when you right click to bring up the design window for the dbo.sysdiagram table the option is disabled.

Open up the columns and right click on the diagram_id column and select modify

This loads the sysdiagram design window from where you can set the default value of the diagram_id field

Save the changes and you will be able to update existing database diagrams and create new database diagrams.

Note this solution may not work for ever and has only been tested on sql server 2005.

Tags: Cannot insert the value null into column 'diagram_id', Diagram, table dbo.sysdiagrams

4 Responses to “Cannot insert the value null into column ‘diagram_id’, table dbo.sysdiagrams”

July 17, 2009 at 8:22 am

May be you need to set an autoincrement for this field?))

July 17, 2009 at 2:29 pm

I believe that is a better solution since with the current solutions once you create a second diagram it overwrites the first diagram.

  • Sudipta says:

March 30, 2012 at 3:39 pm

superb solution

August 26, 2012 at 7:18 am

Hey. Very cool web site!:0))

 




This email is free from viruses and malware because avast! Antivirus protection is active.


Thứ Bảy, 27 tháng 9, 2014

15 công nghệ thay đổi cách nhà phát triển làm việc

http://www.pcworld.com.vn/articles/cong-nghe/cong-nghe/2014/08/1235674/15-cong-nghe-thay-doi-cach-nha-phat-trien-lam-viec/

15 công nghệ thay đổi cách nhà phát triển làm việc

 

 

Bùi Lê Duy

Việc lập trình có thể nhanh hơn bạn nghĩ rất nhiều nhờ vào những công cụ mạnh mẽ.

 

Từ rất lâu, các nhà phát triển viết bằng ngôn ngữ Assembly để chương trình vừa nhẹ, vừa nhanh. Lúc ấy, họ cần có đủ ngân sách để thuê ai đó chuyển lại mọi nút bật/tắt phía trước hệ thống nào đó để nhập vào mã của họ, còn không thì họ phải tự mình làm. Cuộc sống quả đơn giản: phần mềm tải dữ liệu từ bộ nhớ, làm vài tính toán và gửi dữ liệu ấy lại. Đó là tất cả. 

Ngày nay, các nhà phát triển phải làm việc với đội ngũ ở khắp các châu lục, với mỗi thành viên nói thứ ngôn ngữ khác nhau, có bộ ký tự khác nhau, và điều tệ nhất là sử dụng các phiên bản trình biên dịch khác nhau. Vài đoạn mã mới, một số đoạn mã khác lại rất cũ lấy từ trong thư viện có từ chục năm qua mà có thể có hoặc không có mã nguồn. Tạo một đội ngũ nhân viên viết code có nhiệt huyết và giải quyết rốt ráo được những vấn đề nêu trên mới chỉ là bắt đầu của công việc lập trình viên hiện nay. 

Công việc nói cho máy tính biết phải làm gì khác xa với cách nay 5 năm vì mọi thứ đang có vẻ thay đổi rất nhanh. 

Dưới đây là 15 công nghệ đang khiến ngành lập trình chuyển mình một cách rất tự nhiên. Chúng thay đổi cách chúng ta làm việc với các nhà phát triển khác, cách chúng ta tương tác với khách hàng và cách chúng ta ngồi viết mã. Vì bạn không còn bắt gặp cảnh tay lập trình viên nào đó ngủ gục trên bàn phím máy tính như trước nữa.

Công cụ số 1: tích hợp liên tục
Khi bạn check in mã nguồn vào một repo (repository, nơi chứa mã nguồn trong quá trình phát triển ứng dụng) thì thường bạn có chút thời gian thư thái, làm tách cà phê và có thể đi ăn trưa. Thế là xong, vì các repo chứa mã nguồn hiện nay gắn chặt với các hệ thống biên dịch liên tục, có thể biên dịch trực tiếp mã của bạn, xem cẩn thận kiến trúc mã, chạy hàng loạt quy trình kiểm thử và bắt đầu đánh dấu (flag) ở mỗi đoạn mã bị lỗi. Bạn không còn phải canh chừng cái máy tính báo lỗi như trước nữa, mà hệ thống sẽ nhắn cho bạn biết qua email hoặc tin nhắn điện thoại di động về những chỗ nào cần sửa trong đoạn mã. Trở lại bàn làm việc, uống cà phê xong, trở lại bàn làm việc, máy tính đưa ra sẵn cả danh sách bạn cần làm để sửa đoạn mã bạn vừa check-in lên repo.

Công cụ số 2: framework
Đứng trên đôi vai gã khổng lồ nào đó bằng cách sử dụng lại công trình của kẻ khác không còn là ý tưởng gì mới lạ, nhưng là chuyện rất phổ biến ngày nay. Có rất ít chương trình nào được viết từ tờ giấy trắng. Cách tiếp cận ưa thích nhất hiện nay là chọn đúng framework, nghiên cứu API và bắt đầu viết các đoạn mã liên kết chúng với nhau, mà thường các API hầu như hoàn thành sẵn luôn công việc giúp bạn. Các trang web không được viết sẵn HTML hoặc CSS như trước nữa, mà mã nguồn thường bắt đầu với Ext JS, ExpressJS hoặc các tập mã khác đóng vai trò làm nền tảng.

Chắc rằng bạn có thể tiên phong và xây dựng một ứng dụng nào đó từ tờ giấy trắng nhưng đó có thể xem là hành động… "tự tử". Vì bạn chẳng thể nào bắt kịp với công việc mà người khác đã từng làm. Bạn không phải là thợ thủ công, bạn là thợ chuyên chỉnh sửa framework. Nếu bạn nghĩ tự mình viết được mã thì hãy dừng lại ngay và nghiên cứu vìa framework thì bạn sẽ nhận ra được điều này.

Công cụ số 3: thư viện
Họ hàng gần của framework là thư viện, là một tập hợp các giải pháp có sẵn, phổ biến mà người viết mã không thể "sống" được nếu không có chúng. Có thể nào viết mã cho trình duyệt mà không sử dụng jQuery? Có ai nhớ tới hàm tích hợp tên là GetElementByID? Chẳng thể nhớ được, vì các thư viện như jQuery hiện nay quản lý mọi thứ.

Người ta bàn về các ngôn ngữ lập trình ưa thích, nhưng ít người biết về họ lập trình như thế nào. Nếu bạn thuê một ai đó thì bạn cần hỏi về kiến thức hiểu biết về thư viện của họ. Một người lập trình JavaScript có thông thạo jQuery hơn Dojo không? Nhà phát triển game có thể sử dụng C++ nhưng câu hỏi thực sự là liệu anh ta có biết đến Allegro, Unity, Corona hay bất kỳ thư viện nào khác liên quan không. Kiến thức về thư viện rất quan trọng, quan trọng như chính đầu vào và đầu ra của một ngôn ngữ lập trình vậy.

Công cụ số 4: API
Ngày xưa, các nhà lập trình lo ngại về cấu trúc dữ liệu. Họ sẽ gói mọi thông tin vào các khối dữ liệu, đếm từng byte, rồi đảm báo giá trị dữ liệu được đặt đúng chỗ để hàm pointer trỏ vào. Còn nay, trình biên dịch làm phần lớn công việc này.

Đến nay, chúng ta làm việc thông qua một giao diện tiện lợi hơn nhiều, với một cái tên nghe đầy thú vị: API. API nằm trên một máy tính hoàn toàn khác và có thể do một công ty hoàn toàn xa lạ chạy, nhưng mỗi khi cần liên kết gì đó, chúng ta lại sử dụng nó. Bạn muốn biết địa chỉ nhà nào đó, kèm theo cả kinh độ, vĩ độ? Có một API làm điều đó rồi, bạn chỉ việc gắn nó vào chương trình của mình.

Trong hầu hết trường hợp, dữ liệu không cần đóng gói quá kỹ. Kiểu đóng gói dữ liệu hồi xưa đến nay đã không còn phù hợp khi có những cấu trúc rất mở như  JSON hoặc XML. Bạn cần đảm bảo mình lấy đúng thứ dữ liệu cần có, và may mắn là có một thư viện làm điều ấy giúp bạn.

Công cụ số 5: nền tảng như một dịch vụ - PaaS
Ngày nay có ai tự ngồi tạo một trang web? Thay vì vậy, tạo một tài khoản trên một trang web của ai đó và tuỳ biến nó. Bạn chỉ việc điền vào vài trường thông tin và… xong một trang web, đơn giản như tải một video lên YouTube vậy.

Dĩ nhiên, nói vậy cũng có phần thái quá. Nhiều tuỳ chọn PaaS yêu cầu kỹ năng lập trình một chút để biết được cần đặt thông tin gì phù hợp. Ví dụ Azure của Microsoft muốn bạn bỏ vào các hàm JavaScript để xác định trang web xử lý như thế nào. Sau đó Azure gói chúng với thư viện tương ứng và bắt đầu chạy trên Note.js.

Công cụ số 6: trình duyệt
Hồi xưa khi người ta viết phần mềm cho máy tính để bàn, phần mềm cho máy chủ và phần mềm cho thiết bị, ba mảng này đều khác nhau hoàn toàn. Mỗi mảng có cách truyền thông riêng với người dùng. Bây giờ, mọi thứ đều qua trình duyệt. Khi bạn thiết lập một máy chủ file trong nhà để chứa nhạc, phim, bạn chỉ việc đến một địa chỉ URL của một trang web. Các widget cho máy tính bàn của Apple từng được việt bằng JavaScript và HTML nhiều năm qua. Nhiều ứng dụng di động đa nền viết bằng HTML và JavaScript có sẵn trong Apache Cordova.

Chắc chắn là có ngoại lệ. Những game tốt nhất vẫn cần nhiều tuỷ chỉnh riêng, không cần đến trình duyệt. Nhưng điều ấy cũng đang thay đổi khi ngày càng nhiều nhà phát triển JavaScript đang chuyển sang viết dạng screen canvas object. Ví dụ Angry Birds sẽ chạy trong một cửa sổ trình duyệt.

Công cụ số 7: bộ chứa ứng dụng
Tạo một máy chủ không phải chuyện dễ. Các nhà lập trình muốn chạy đoạn mã, rồi gửi ghi chú đến đội quản lý máy chủ để cài cho đúng phần mềm. Đôi khi nhóm này dùng đúng thư viện, nhưng thỉnh thoảng lại không đúng, thậm chí nguy hiểm hơn là sử dụng sai thư viện mà cho kết quả có vẻ là đúng.

Các bộ chứa ứng dụng (application container) hiện nay như Docker, cho phép chúng ta tạo một nút và kèm một bộ chứa mới mọi thư viện trong đó. Nếu chạy trên máy thử nghiệm, nó sẽ giống hệt như chạy trên máy chủ. Mọi thứ được đóng gói chung với nhau và không còn xảy ra tình trạng không tương thích giữa máy chủ và máy bàn nữa.

Công cụ số 8: kiến trúc như một dịch vụ - IaaS
Đội ngũ quản lý máy chủ trước đây có thể rất… thoải mái nhưng bây giờ họ lại có thêm công việc phải lo xoay quanh một lớp gọi là "đám mây", và công việc của họ giống như làm việc trong một data center toàn cầu, và họ trở thành "ông vua" đám mây này hoặc đám mây nọ. Vài nhà lập trình cần hỏi xin đội ngũ kiến trúc hạ tầng để tạo một máy chủ mới cho một dự án mới nào đó. Họ đơn giản chỉ đăng nhập vào một trang web, nhấn một nút và có ngay được một máy tính ảo chạy cho dự án ấy. Nghe qua quá dễ, nhưng những trang web quản trị IaaS như vậy khiến cho đội ngũ quản lý máy chủ không còn thư thái như trước nữa, chí ít là cho đến nay (hy vọng tương lai sẽ khác đi).

Công cụ số 9: Node.js và JavaScript
Có lẽ trước cả khi bạn sinh ra, máy chủ web chỉ hỗ trợ trang web HTML tĩnh. Tiếp theo, ai đó đã tảoa được máy chủ web động, có thể tương tác với cơ sở dữ liệu. Mỗi đội phát triển cần có một người lập trình cơ sở dữ liệu trong SQL, một người viết mã máy chủ PHP hoặc Java và một người thiết kế giao diện HTML. Và có thời mọi người đều yêu thích AJAX và JavaScript chạy trên máy khách, các trang web ấy cần thêm một người nữa để "nói chuyện" với ngôn ngữ đó.

Bây giờ, mọi thứ đều có thể làm với JavaScript. Dĩ nhiên, trình duyệt vẫn hỗ trợ được JavaScript và dĩ nhiên máy chủ cũng cần hỗ trợ (Node.js) và cơ sở dữ liệu máy chủ cũng cần hỗ trợ tương ứng (MongoDB và CouchDB). Thậm chí HTML cũng thường có kèm các đoạn mã JavaScript để nhúng framework như Ext JS hoặc jQueryMobile để có thể tạo mã HTML ở máy khách.

Công cụ số 10: thị trường thứ hai
Nếu bạn đang viết game thì có thể thuê hoạ sĩ nào đó để tạo bộ mô hình. Thậm chí bạn có thể thuê vài nhà lập trình để thêm hiệu ứng hình ảnh, làm cho game đẹp hơn. Hoặc bạn có thể "đi chợ" như Unity Asset Store và mua mọi thứ mình cần. Khi thực hiện bài này, bộ công cụ Tile A Dungeon Sewer Kit đang giảm giá 33%, là bộ công cụ để tạo những cảnh hầm ngục trong game (giá gốc 45 USD). Nhưng cho dù là ở giá chưa giảm thì vẫn rẻ hơn rất nhiều so với chi phí bạn thuê một hoạ sĩ.

Cũng có nhiều nơi bán sẵn các bộ plug-ins, extension, thư viện và add-on vừa hiệu quả, vừa tiện dụng. Với thư viện và framework, có vẻ lập trình giống như… đi chợ, làm sao mua cho đúng nguyên liệu.

Công cụ số 11: máy ảo
Ngày nay, viết mã để chạy trên một cỗ máy không còn nữa. Nhiều đoạn mã hiện nay đều chạy trên máy ảo, rồi dịch những tập lệnh đó thành mã mà bộ xử lý có thể hiểu và thực thi được. Máy ảo Java, máy ảo C#/.Net và bây giờ là engine JavaScript trở thành mục tiêu chính của các nhà lập trình.

Máy ảo ngày càng phổ biến hơn, được dùng trong mọi mục đích. Trước đây, nếu bạn muốn tạo một ngôn ngữ mới thì bạn phải cần tạo toàn bộ stack mới từ preprocessor để đăng ký bộ cấp phát. Còn bây giờ, các ngôn ngữ mới nằm bên trên máy ảo. Clojure, Scala, Jython, JRuby…, chúng đều qua mặt mọi nỗ lực của Sun (bây giờ là Oracle) trong việc tạo máy ảo.

Điều này cũng tương tự trên thế giới trình duyệt. Chắc chắn là bạn có thể tạo trình duyệt và ngôn ngữ riêng cho mình, hoặc bạn có thể biên dịch đa nền cho nó để chạy trong JavaScript. Đó là những gì mà nhóm lập trình viên tự tạo công cụ như CoffeeScript. Nếu khả năng này chưa đủ khiến bạn bối rối thì thử xem ví dụ khác khi Google tạo ra GWT (Google Web Toolkit) để chuyển đổi Java thành JavaScript.

Công cụ số 12: cổng mạng xã hội
Trong thời kỳ đầu của Internet, bạn có thể tự làm trang web, rồi ngồi hy vọng mọi người có thể tìm được trang web mình tạo. Khi họ đến, họ đơn giản là phải nhớ URL gọn gàng, đẹp đẽ của bạn.

Nhưng đến nay, ngày càng nhiều trang web bị ảnh hưởng của những tên tuổi lớn như Facebook và Salesforce nuốt trọn. Nếu bạn tự tạo trang web, cho nó online rồi rất nhiều khả năng nó sẽ bị "mạng nhện" bám đầy vì người ta chỉ đến Facebook và các trang mạng xã hội khác để xem tin tức mà thôi.

Dĩ nhiên, giải pháp là tạo một ứng dụng Facebook hoặc Salesforce. Chúng cho bạn một con đường tích hợp vào nền tảng của họ. Nhưng cuối cùng, ứng dụng của bạn chỉ là cũng có thể bị người khác loại hoặc phớt lờ. Vậy bạn cần làm gì?  Một là bám vào những cổng mạng xã hội lớn, hai là tìm cách… quét mạng nhện.

Công cụ số 13: công cụ Devops
Trước đây, chúng ta cài phần mềm lên một máy chủ duy nhất. Bây giờ, chúng ta thuê máy chủ đại trà, có thể cần đến chục, trăm hoặc cả ngàn máy chủ để đáp ứng nhu cầu, và cài phần mềm lên tất cả máy chủ đó. Đương nhiên, việc cài đặt này không thể làm thủ công như trước nữa.

Bạn hãy gõ vào thanh tìm kiếm từ "devops" xem sao, kết quả trả về sẽ là các công cụ như Chef và Puppet, cho bạn quản lý máy chủ một cách tự động. Bạn đẩy phần mềm mới lên đám mây và những công cụ này sẽ giúp đồng bộ mọi mã, phần mềm lên mọi máy chủ. Chúng tự động hoá mọi công việc như bạn làm trên một máy chủ.

Vài dịch vụ như Google App Engine cũng làm chức năng tương tự vậy, nhưng trong nhóm sản phẩm của Google mà thôi. Mọi thứ bạn cần là vất cho nó một ứng dụng, phần còn lại là tự động. Thậm chí bạn không cần biết chuyện gì đang diễn ra bên dưới, bạn chỉ việc trả tiền phí CPU hàng tháng cho tài nguyên bạn thuê mà thôi.

Công cụ số 14: GitHub, SourceForce và các dịch vụ chia sẻ mã nguồn khác
Các trang web chia sẻ mã nguồn có thể là đóng góp tuyệt vời nhất đối với thế giới nguồn mở. Trước khi các dịch vụ như SoureForce xuất hiện, phần mềm là thứ gì đó bạn làm cho riêng mình. Nếu ai đó muốn sao chép mã nguồn thì họ phải liên hệ với bạn và bạn gửi cho họ một gói file nén nếu bạn thích.

Bây giờ, chia sẻ mã nguồn là một kiểu mạng xã hội. Các trang web như GitHub và SoureForce có tất cả mã nguồn cho mọi người xem và cập nhật. Chúng có cả tính năng chia sẻ, nhận xét, cập nhật mã nguồn ở một nơi ai cũng có thể dễ dàng tiếp cận. Bạn có thể đọc mã nguồn và đề nghị thay đổi, mọi thứ có trong một giao diện duy nhất. Liệu có dự án nào mỗi tuần có trăm ngàn lượt tải về không? Điều này sẽ không khả thi với mô hình chia sẻ mã nguồn cũ.

Dạng mô hình này rất phổ biến hiện nay, thậm chí cả những dự án bản quyền cũng làm theo. Các trang như GitHub và BitBucket hỗ trợ họ bằng cách bán những repo không chia sẻ rộng rãi, chỉ chia sẻ trong nhóm làm việc hoặc được cấp phép truy cập mà thôi.

Công cụ số 15: giám sát hiệu năng
Thời buổi đầu, việc giám sát khả năng của mã nguồn rất đơn giản. Bạn in thời gian mã nguồn bắt đầu chạy và thời gian kết thúc. Nếu bạn muốn chương trình "nặng" hơn thì thêm vài tính toán.

Nhưng nay lại khác, vì nhiều vấn đề không phát sinh khi chỉ chạy trên một máy tính. Thêm một profiler vào mã nguồn sẽ không phát hiện ra nghẽn cổ chai thực sự, mà phần lớn là do vài đa liên kết bất thường hoặc dữ liệu rườm rà gây ra. Các công cụ mới sẽ theo dõi các lệnh gọi liên quan đến mạng cũng như tốc độ thực thi của từng module. Đây là cách duy nhất cho nhà lập trình hiểu được phần nào đúng, phần nào chưa đúng.

Nhưng đây cũng chỉ là một cách quan trọng để biết được mô hình lập trình thực thi trên một máy tính khi triển khai trên mạng có các công cụ kết nối sẽ vận hành như thế nào, có thể tốt, có thể không.
 

Nguồn: Infoworld

 




This email is free from viruses and malware because avast! Antivirus protection is active.


Thứ Sáu, 26 tháng 9, 2014

Tại sao C++ 35 năm tuổi vẫn còn thống trị thế giới lập trình?

http://www.pcworld.com.vn/articles/cong-nghe/ung-dung/2014/08/1235729/tai-sao-c-35-nam-tuoi-van-con-thong-tri-the-gioi-lap-trinh/

Tại sao C++ 35 năm tuổi vẫn còn thống trị thế giới lập trình?

 

 

Bùi Lê Duy

Cha đẻ của C++ chia sẻ những suy nghĩ của ông về thế giới phát triển ứng dụng và các ngôn ngữ lập trình mới hiện nay.

Ông Bjarne Stroutstrup thiết kế ra ngôn ngữ lập trình C++ hồi năm 1979, và ngôn ngữ chuyên viết chương trình hệ thống này đã trở thành công cụ chính cho các nhà phát triển trên khắp thế giới, cho dù có nhiều ngôn ngữ cạnh tranh khác như Java, JavaScript, Python, Go và cả ngôn ngữ mới toanh mà Apple vừa đưa ra là Swift

Gần đây, ông Stroutstrup đã gặp gỡ báo giới để chia sẻ về vai trò của C++ hiện nay và những suy nghĩ của ông về những gì đang diễn ra trong thế giới phát triển ứng dụng, trong đó có cả ngôn ngữ lập trình Go của Google và Swift của Apple.

Vai trò của C++ hiện nay như thế nào khi có những ngôn ngữ kịch bản rất phổ biến xuất hiện như Python và JavaScript, bên cạnh đó còn có Java và thậm chí Go của Google? C++ có thể tồn tại, phát triển và lớn mạnh cùng với nhiều ngôn ngữ khác không?

Stroustrup: Cách nay hơn 20 năm, người ta từng dự đoán ngôn ngữ C++ không thể phát triển nổi, thậm chí sẽ bị quên lãng, nhưng nó vẫn phát triển. Cơ bản là chẳng có gì có thể xử lý tính phức tạp nhanh như C++. Nếu bạn làm trong lĩnh vực nhúng, nếu bạn phải viết chương trình xử lý hình ảnh, nếu bạn phải tạo ứng dụng truyền thông, nếu viết các ứng dụng tài chính, C++ vẫn thống trị. Bạn sẽ không thấy sự hiện diện của C++ nhiều trong các ứng dụng thông thường nhưng nó là thứ gì đó mà Google, Amazon, các engine tìm kiếm thực sự cần tăng tốc độ xử lý, và đó là nơi dành cho nó.

Ngôn ngữ Go của Google gần đây rất được cộng đồng chú ý. Quan điểm của ông về ngôn ngữ này như thế nào?

Có vẻ như đó là một trong những ngôn ngữ có thể làm vài thứ rất gọn gẽ. Nhưng thường những ngôn ngữ như vậy, tập trung vào việc "gọn gẽ" sẽ khiến chúng mất đi tốc độ xử lý và mất một chút tính phổ quát. Nhưng dĩ nhiên, chúng ta cần chờ thời gian trả lời.

Vài ngôn ngữ kịch bản mới được nhiều nhà phát triển dễ dàng chấp nhận. Ông có nghĩ C++ khó lôi kéo họ?

C++ được thiết kế để phát triển các ứng dụng cốt lõi, quan trọng, và nó luôn luôn được dùng cùng với một ngôn ngữ kịch bản nào đó khác. Lúc đầu, tôi dùng C++ để viết bất kỳ chương trình gì cần đến một ngôn ngữ lập trình thực thụ và tốc độ xử lý mạnh. Sau đó, tôi sử dụng nhân Unix như là ngôn ngữ kịch bản. Đó là cách mà nhiều ứng dụng ngày nay được tạo ra. C++ có được tốc độ cao, tính ổn định cao, chương trình gọn nhẹ, tiêu tốn ít điện năng và mọi thứ hay ho khác nữa. Tôi nói ra điều này không phải để lôi kéo ai cả, nhưng tôi đang nói đến các ứng dụng gọn nhẹ, đời thường. Vì đó không phải là lĩnh vực mà tôi làm. 

Apple vừa đưa ra ngôn ngữ Swift vào ngày 2/6 vừa qua. Ông có nghĩ đó là ngôn ngữ quan trọng mà các nhà phát triển nên tập trung vào nó?
Tôi nghĩ vậy. Các nhà phát triển từng chú ý nhiều đến Objective-C, và giờ là Swift đang đi đúng quỹ đạo mà Apple vẽ ra.

Một bài thuyết trình gần đây của ông cho rằng C++ đang đối diện với 2 thách thức: giúp các nhà phát triển giải quyết giải quyết vấn đề về tốc độ xử lý, quy mô ứng dụng; và tính phụ thuộc. C++ cũng phải giúp các nhà phát triển cảm thấy có "năng suất" hơn khi viết các đoạn mã bảo trì thông thường. Những vấn đề ấy đến nay như thế nào?

Tôi đang cố gắng giải thích hai điều này. Một là phải đào sâu vào tính hiệu quả, hiệu quả sử dụng phần cứng; và hai là đơn giản hoá việc viết code mới. Với C++ 11 và C++ 14, có vài cải tiến mới hướng đến hai yếu tố này. 

Phiên bản C++ không quan trọng mà chúng tôi dự kiến sẽ tung ra trong năm 2014 này là C++ 14. Thực chất thì nó đã được Clang và GCC tung ra rồi. Cách mà tôi mô tả nó là C++ 14 hoàn tất công việc mà chúng tôi khởi đầu từ phiên bản C++ 11. Khi bạn tung ra một phiên bản lớn nào đó, như C++ 11 chẳng hạn, thì có vài thứ không có trong đó chỉ bởi vì đến ngày đến giờ bạn phải tung nó ra theo lịch định. Và có vài thứ bạn không thể chỉnh sửa cho ngay ngắn được vì mọi thứ phải được sắp xếp cùng nhau và phải thử lại nhiều lần. C++ 14 là bổ sung hoàn thiện cho C++ 11.

Thay vì chỉ là ký hiệu lambda có trong C++ 11, lambda giờ đã có ngữ nghĩa nhất định. Có vài thứ khá kỹ thuật, như hàm, điểm quay về, biến loại trừ (deduction) phù hợp với lambda. Các cấu trúc cho hàm số, là những hàm số mà bạn chỉ có thể làm được khi biên dịch mã, bây giờ có thể chía vài vòng lặp For đơn giản. Chúng tôi có thêm vài biến template, có vài cải thiện cho bộ nhớ hệ thống. Cũng có vài loại hằng số mới do người dùng định nghĩa.

Còn vấn đề bảo mật trong lập trình, có tính năng nào mới cho các nhà phát triển làm để bảo vệ chương trình của họ? C++ có an toàn hơn các công cụ lập trình khác?

Tôi cật lực ủng hộ phần cứng thêm vào khả năng bảo mật. Xét về ngôn ngữ lập trình, nếu bạn muốn viết được một chương trình tốt thì hãy viết mã sao cho an toàn trước đã. Bạn có thể làm được điều này với C++. Đừng bao giờ khiến cho chương trình ở mức thấp nhất trở nên rối rắm, và đừng bao giờ chạy trình biên dịch nếu bạn không thể theo dõi được cái gì đang diễn ra. Cơ bản là bảo mật là một vấn đề của hệ thống.

Có điều gì ông muốn nói về phát triển phần mềm trong thời buổi hiện nay?

Chúng ta nên hướng đến một cấp phát triển ứng dụng chuyên nghiệp hơn. Có vài điều trong xã hội mà chúng ta buộc không nên phá vỡ, và hầu hết chúng đều dựa trên phần mềm. Và chúng ta cần xem lại hệ thống của chúng ta một cách tổng quát. Ngôn ngữ lập trình và chuỗi công cụ của chúng là một phần trong đó. Chúng ta cần nhìn vào cách chúng ta đào tạo các nhà lập trình như thế nào và chúng ta đặt trọng tâm vào tính ổn định như thế nào.
 

Nguồn: Theo Infoworld

 




This email is free from viruses and malware because avast! Antivirus protection is active.


Những điểm ấn tượng của Java 9

http://www.pcworld.com.vn/articles/cong-nghe/cong-nghe/2014/08/1235797/nhung-diem-an-tuong-cua-java-9/

Những điểm ấn tượng của Java 9

 

 

Thạch An

Công cụ Java thế hệ kế tiếp sẽ khiến việc phát triển nền tảng danh nghiệp có những cải tiến bao gồm các module và API mới được cập nhật.

Một số JEPs (JDK Enhancement Proposals) cho Java Development Kit 9 đã được cập nhật vào tuần qua, đưa ra những điểm đáng mong đợi đối với JDK 9- nền tảng dự kiến phát hành vào đầu năm 2016 dựa trên Java Standard Edition 9.

Điểm nổi bật tại thời điểm này là hệ thống mã nguồn module. Oracle đã lên đầu tư cho module Java này thông qua dự án Jigsaw vốn dành cho JDK 8 và các JEP hiện nay cũng được phát triển tại đây. Standard Edition Java đã được mở rộng hơn với các thiết bị nhỏ với công nghệ tiên tiến. "Hệ thống mô-đun trở nên đủ mạnh để JDK và các mã nguồn lớn khác mở rộng nhưng vẫn dễ dàng tiếp cận với nhà phát triển", Oracle Mark Reinhold, kiến trúc sư trưởng trong Java Platform Group cho biết

Jigsaw không phải là tính năng bổ sung mới duy nhất đối với Java 9. Hỗ trợ dành cho JSON (JavaScript Object Notation) trong định dạng trao đổi dữ liệu là tính năng quan trọng nhất, cùng với sự phát triển API, mã bộ nhớ cache, và cải tiến khóa.

Những tính năng đáng chú ý của JDK 9:

Mã nguồn module

Mã nguồn JDK sẽ được thiết kế lại thành các module, hệ thống tích hợp sẽ được tăng cường khả năng biên dịch các module và ranh giới được thực thi tại thời điểm thiết lập.

"Dự án Jigsaw với mục đích thiết kế để tạo ra hệ thống module chuẩn cho Java SE Platform và ứng dụng cho nền tảng riêng hoặc JDK. Mục tiêu chính nhằm mở rộng cho các thiết bị nhỏ hơn, cải thiện an ninh bảo mật và cho phép cải thiện hiệu suất ứng dụng. Ngoài ra sự thay đổi này còn hỗ trợ các nhà phát triển bằng những công cụ lập trình mới tốt hơn. Một dự án khác là Penrose đang thử nghiệm khả năng tương tác giữa Jigsaw và hệ thống thành phần OSGi  trên Java. JEPs tiếp theo sẽ nâng cấp Java Runtime Environment, JDK hình ảnh và một số module khác.

Thu gọn JSON API

Đây là một API là xử lý và tạo ra thông tin và dữ liệu không chỉ thông qua các JavaScript Object Notation mà còn dựa vào một số tập con Javascript thay thế XML. JSON đã trở thành ngôn ngữ cầu nối cho các dịch vụ Web và đó là lúc Java SE thông qua các tính năng để tương tác với nguồn tài nguyên hay dòng dữ liệu. Tính năng này được thiết kế đề hỗ trợ các chức năng cần cần thiết phổ thông nhất và tận dụng ngôn ngữ Java 8/9 và thư viện.

Cập nhật quá trình API

Điều này sẽ cải thiện các API  trong việc quản lý điều hành các quy trình hệ thống và được thiết kế để khắc phục những hạn chế API hiện tại mà thường buộc nhà phát triển sử dụng mã nguồn gốc. Một số tính năng mới như Java SE 7, ghi chú JEP, hỗ trợ hiệu suất hệ điều hành; API mới tuy nhiên cần phải phân biệt được sự khác nhau của các hệ điều hành, đặc biết là trên Windows. Thiết kế của API này cần phải phù hợp có thể triển khai trên các thiết bị nhỏ hơn với mô hình hệ thống điều hành khác nhau. Nó cũng được đưa vào môi trường máy ảo Java giả lập thành hệ điều hành.

Mã phân đoạn bộ nhớ cache

Nỗ lực này được thiết kế để phân chia thành đoạn mã bộ nhớ cache, mỗi đoạn có chứa mã biên dịch của một loại đặc biệt, để cải thiện hiệu suất và cho phép mở rộng.

Smart Java Compilation giai đoạn 2

Dự án này được thiết kế để cải thiện Javac (trình biên dịch ngôn ngữ Java) - công cụ cho phép sử dụng mặc định trong JDK thiết lập và trong các dự án lớn khác với JDK. Việc này được thực hiện đã được chứng minh tính hiệu quả, ngoài ra không chỉ cải thiện tốc độ tổ chứng mà còn cho phép tăng khả năng thiết lập.

 

 




This email is free from viruses and malware because avast! Antivirus protection is active.


Ngôn ngữ lập trình R phổ biến trong giới thống kê

http://www.pcworld.com.vn/articles/san-pham/phan-mem/2014/08/1235775/ngon-ngu-lap-trinh-r-pho-bien-trong-gioi-thong-ke/

Ngôn ngữ lập trình R phổ biến trong giới thống kê

Đánh giá

1

2

3

4

5

6

7

8

9

10


Bùi Lê Duy

Theo một nhà nghiên cứu, ngôn ngữ lập trình R đang phát triển rất nhanh trong cộng đồng phân tích số liệu, vượt qua cả các gói ứng dụng phổ biến xưa nay như SAS, SPSS và MATLAB.

Ngôn ngữ lập trình R đang nhanh chóng trở thành ngôn ngữ phổ biến trong các gói ngôn ngữ dữ liệu truyền thống như SPSS, SAS và MATLAB, ít nhất là theo một nhà phân tích dữ liệu về ngôn ngữ lập trình. 

"Trong suốt mùa hè vừa qua, R là phần mềm phân tích được sử dụng nhiều nhất trong các bài viết học thuật chuyên sâu, chấm dứt một kỷ nguyên 16-năm của SPSS", ông Robert Muenchen viết trong một bài blog gần đây, tổng kết thống kê của ông. 

Muenchen đánh giá tính phổ biến của các gói phần mềm dữ liệu bằng cách theo dõi tần suất người sử dụng đăng tải các nghiên cứu khoa học được công bố và số lượng người nhận xét gói phần mềm trong các thảo luận trên forum, blog, danh sách công việc và các nguồn khác. 

Trong khảo sát này của ông Muenchen, các nhà nghiên cứu tiếp tục sử dụng các gói phần mềm truyền thống trong hầu hết công việc của họ, có thể kể đến như các gói của SAS và MATLAB, cũng như gói SPSS của IBM. 

SPSS dẫn đầu với hơn 75.000 trích dẫn trong các bài báo khoa học được liệt kê trong kết quả tìm kiếm của Google Scholar. SAS theo sau, đứng thứ 2 với 40.000 trích dẫn. R được sử dụng hơn 20.000 dự án nghiên cứu. 

Ngoài ra, khi Muenchen tìm con số trích dẫn từ năm 1995, ông nhận ra rằng SPSS đã giảm kể từ năm 2007. SAS cũng theo chiều hướng của SPSS, đạt đỉnh hồi năm 2008. Ngược lại, R tăng rất nhanh, nhanh hơn cả các gói như Statistica và Stada. 

Ông Muenchen đề cập: "Xu hướng SPSS giảm và R tăng trong suốt quãng mùa hè vừa qua cho thấy R đang trở thành ngôn ngữ hàng đầu trong các gói phân tích dữ liệu được sử dụng trong các bài báo khoa học. Vì quá trình đăng tải các bài báo in xuất bản trước một thời gian trước khi đưa lên mạng, tạo chỉ mục tìm kiếm… nên chúng tôi chưa thể xác định chính xác điều gì sẽ xảy ra trong năm tới."

R là ngôn ngữ lập trình chức năng, nguồn mở, được thiết kế chuyên cho điện toán dữ liệu và đồ hoạ.

Muenchen là nhà thống kê, quản lý mảng hỗ trợ bộ phận điện toán tại đại học Tennessee, Mỹ, ngoài việc xác nhận tính phổ biến của R, ông cũng là giáo viên giảng dạy R trên danh nghĩa Revolution Analytics. Ông còn được cộng đồng công nhận là chuyên gia về phân tích điện toán, viết mã cho SAS, SPSS và nhiều gói R khác. Ông cũng từng làm việc trong ban cố vấn của SAS, SPSS trước khi IBM mua lại hồi năm 2009.

Theo IDC, ngôn ngữ R trở nên phổ biến một phần là vì nó là nguồn mở, miễn phí và các nhà nghiên cứu có thể tải nó về để bắt đầu một dự án nào đó mà không phải tốn tiền.

Trong nghiên cứu của Muenchen, ông không phân biệt giữa các phiên bản khác nhau của R, có thể đó là phiên bản nguồn mở hoặc phiên bản dành cho doanh nghiệp của Revolution Analytics, hoặc là bản nguồn mở của R Project

Cũng có một số dấu hiệu khác cho thấy tính phổ biến của R. Nhiều đăng tải tìm việc trên Indeed.com yêu cầu thành thạo R nhiều hơn so với SPSS, mặc dù vẫn có vài nhà tuyển dụng cần đến SAS. Số lượng sách và forum thảo luận về R cũng nhiều hơn SAS và SPSS.
 

Nguồn: Theo Computerworld

 




This email is free from viruses and malware because avast! Antivirus protection is active.


Thứ Năm, 25 tháng 9, 2014

10 ngôn ngữ lập trình đang trỗi dậy

http://www.pcworld.com.vn/articles/san-pham/phan-mem/2014/08/1235726/10-ngon-ngu-lap-trinh-dang-troi-day/

10 ngôn ngữ lập trình đang trỗi dậy

 

 

Hoàng Anh

Sự phát triển của thiết bị công nghệ khiến những ngôn ngữ lập trình cũ khó có thể đáp ứng, điều đó dẫn đến sự bùng nổ nhiều phương thức tiếp cận mới để giải quyết vấn đề.

Ceylon 1.0.0

Tương tự: Java

Bản quyền: Apache v2

Ceylon

Tổng quan: Đã có một thời gian các nhà phát triển tại Red Hat đã cùng nói với nhau rằng: "Java sẽ thật tuyệt vời nếu nó chỉ có thể làm việc này và không làm việc kia". Sự thiếu chuyên môn hóa dẫn đến nhiều phiền toái và Ceylon ra đời. Ngôn ngữ này chạy trên JVM và Node.js, và có thể khắc phục những yếu điểm kinh điển của Java. Thay vì XML, Ceylonsử dụng cú pháp khai báo JSON trên dữ liệu cấu trúc cây, và có tính năng nhập tài nguyên tĩnh, một hệ thống mô-đun, và hỗ trợ khá nhiều cấu trúc không tồn tại trong Java, chẳng hạn như sequence (trình tự), intersection (tương giao), và  union types (hàm union).

Clojure 1.6

Tương tự: Lisp

Bản quyền: Eclipse Public License 1.0

Clojure 1.6

 

Tổng quan: Cái nhìn chung về Clojure thì có thể coi như là Lisp trên JVM. Ngôn ngữ lập trình này chạy trên JVM và có thể truy cập vào các frameworks và thư viện Java. Người sáng tạo ra Clojure muốn nhắc đến ngôn ngữ như một công cụ để lập trình thiết kế đồng thời thiết lập chức năng. Nói cách khác nền tảng lập trình này phụ hợp với xử lý đa lõi hoặc các ứng dụng phân phối rộng rãi. Clojure khi được so sánh với Ruby và Ceylon thì ngôn ngữ này phù hợp nhất cho các lập trình viên phục vụ toán học hay khoa học. Nhưng với mô hình lập trình chức năng ngày càng tăng, Clojure xứng đáng một cái nhìn gần gũi hơn về khoa học điện toán.

Egison 3.3.3

Tương tự: Lisp

Bản quyền: MIT

Egison 3.3.3

 

Tổng quan: Egison là một ngôn ngữ chức năng nhằm thực hiện mô hình phù hợp với một loạt các kiểu dữ liệu. Tác giả của Egison, Satoshi Egi tuyên bố rằng: mô hình kết hợp các ngôn ngữ lập trình hiện có chỉ được hỗ trợ khi các dữ liệu được lưu trữ trong hình thức có cấu trúc liệt kê như danh sách. Egison được thiết kế cho phép các mô hình phù hợp được thể hiện theo những cách khác nhau dựa trên các kiểu dữ liệu; để xử lý mô hình phi tuyến, chẳng hạn như nhiều lần xuất hiện của cùng một biến trong mô hình; và để tạo ra mô hình chức năng có thể nhận hoặc trả kết quả.

Groovy 2.2

Tương tự: Java

Bản quyền: Apache License 2.0

Tổng quan: Ngôn ngữ mới này được xem là phiên bản mở rộng của Java. Groovy về cơ bản đã mở rộng cú phát của Java chạy trên JVM và có thể sử dụng các thư viện classes.  Nhưng một phần tính năng của Groovy không có trong nguyên bản Java: "static/dynamic typing,mainly nhưng tương tự về quá tải toán tử (overload operator) và hỗ trợ biểu thức chính quy (regular expression) và cho phép việc kiểm tra an toàn các đối tượng null với wrapping expressions (biểu thức cuốn) trong cú pháp đặc biệt (syntactic sugar). Ngôn ngữ này đã hấp dẫn được các tên tuổi lớn như: LinkedIn và Wired đã sử dụng Groovy, ngoài ra Grails sử dụng Groovy Web framework cho trang web của mình

Hack 1.0

Tương tự: PHP

Bản quyền: PHP/Zend licenses

Hack 1.0

 

Tổng quan: Facebook đã có thời gian ban đầy sử dụng nền tảng chạy PHP có tên gọi là HHVM- và mạng xã hội này đã bước xa hơn khi tạo ra một ngôn ngữ mới tương tự như PHP có tên gọi là Hack. Ngôn ngữ lập trình mới này giúp PHP có chu kì phát triển trở nên rực rỡ hơn bao giờ hết, những tính năng mới được bổ sung ở đây như thêm đối tượng trong static typing (kiểu tĩnh), Lambda Expression (Biểu thức Lambda)... Nhiều đoạn code PHP hiện tại hoạt động ở trong Hack giúp dễ dàng về mặt lý thuyết trong quá trình chuyển đối ngôn ngữ lập trình nhưng có thể là ngôn ngữ thay thế trong tương lai.

Jeeves

Tương tự: ML

Bản quyền: MIT

Biểu tượng của Jeeves

 

Tổng quát: Jeeves đã được tạo ra để giúp các lập trình viên làm một việc: thực thi các chính sách bảo mật cho dữ liệu động thông qua ứng dụng. Trong quá trình sử dụng Pythong, nhiều lập trình viên đã cho rằng có quá nhiều kĩ thuật bảo mật vượt qua giới hạn cho phép. Chính sách dữ liệu để tạo ra cac dòng chạy và khả năng quản lý riêng biệt từ các ứng dụng. Câu hỏi đặt ra là làm thế nào đảm bảo an toàn dữ liệu đã trở thành vấn đề nan giản và Jeevesđể đảm bảo tương lai tốt đẹp hơn.

Julia 0.2.1

Tương tự: Python

Bản quyền: MIT

Julia 0.2.1

 

Tổng quan: Julia được thiết kế cho nền tảng điện toán kĩ thuật và trong khoa học. Trình biên dịch Julia  được hỗ trợ bởi LLVM và một số tiêu chuẩn mới nhanh hơn so với Matlab, Mathematica, và R - nhưng công cụ được phát triển cho toán học và mở rộng trong khoa học kĩ thuật. Julia còn hỗ trợ khả năng vĩ mô của Lisp để mở rộng chức năng của ngôn ngữ lập trình. Khả năng của tùy biến trong việc sử dụng thư viện khá tốt nên khá dễ dàng để chuyển đổi từ Python sang Julia

Nimrod 0.9.2

Tương tự: Python, Pascal

Bản quyền: MIT

Nimrod.

 

Tổng quan:  Nimrod biên dịch xuống C (với C ++ và Objective-C là tùy chọn) và không cần một máy ảo hoặc runtime. Tác giả có ý định để cho ngôn ngữ này sử dụng để lập trình hệ thống, bởi vì Nimrod có thể truy cập phần cứng trực tiếp và có khả năng điều hướng đến thao tácquản lý bộ nhớ trong (garbage-collected) và quản lý bố nhớ thủ công. Ngôn ngữ cũng cho phép người sử dụng xác định các nhà khai thác và  macro, và các ràng buộc đã được viết cho nhiều thư viện phổ biến và các ứng dụng của bên thứ ba: Windows và POSIX API, GTK2, OpenGL.

OCaml 4.01

Tương tự: The ML theorem-proving language, and to some degree Lisp

Bản quyền: Q Public License

OCaml 4.01

Tổng quan: Hầu hết các ngôn ngữ lập trình thường có xu hướng rơi vào một trong ba nhóm: chức năng (Lisp), bắt buộc (C), hoặc hướng đối tượng (Java). OCaml làm tất cả những điều đó, và một số dự án gần đây đã thực hiện theo làn sóng của OCaml như Hack của Facebook, Mirage hệ điều hành dự án Xen. Thiết kế kiểu tĩnh của nó có thể không không phải là giải pháp mạnh nhât nhưng một số ngôn ngữ khác đang được manh nha lấy lại để sử dụng như Microsoft F # là một ví dụ.

Racket 6.0

Tương tự: Lisp, Scheme

Bản quyền: LGPL

Racket 6.0

Tổng quan: Một biến thể của Scheme, mà bản thân ngôn ngữ này cũng lại là một biến thể của Lisp. Racket được thiết kế đủ mạnh để tạo ra ngôn ngữ lập trình mới, đơn giản và mạnh mẽ, đủ để được sử dụng cho lập trình ứng dụng truyền thống - Naughty Dog sử dụng ngôn ngữ này cho các kịch bản trong một số trò chơi của họ, và các trang web Hacker News được phát triển sử dụng Scheme. Không giống như các ngôn ngữ Lisp giống khác, hệ thống vĩ mô Scheme bao gồm các trình biên dịch, vì thế tính năng có thể được thêm vào ngôn ngữ  có thể tạo ra một Racket.

 

 

 




This email is free from viruses and malware because avast! Antivirus protection is active.


Thứ Ba, 10 tháng 6, 2014

GIỚI THIỆU OPENSTACK

http://www.dsp.vn/default.aspx?id_NgonNgu=VN&id_ThucDon_Sub=16&TinChinh=0&id_TinTuc=2465&TrangThai=BanTin

GIỚI THIỆU OPENSTACK

 

 

Openstack là một cloud software được thiết kế để chạy trên các sản phẩm phần cứng như x86, ARM. Nó không có yêu cầu gì về đặc tính phần mềm hay phần cứng, nó tích hợp với các hệ thống kế thừa và các sản phẩm bên thứ ba. Nói cách khác, nó có thể thích nghi với hạ tầng kỹ thuật sẵn có mà không gây ngắt quãng.

 

Ban đầu, OpenStack được phát triển bởi NASA và Rackspace, và ra phiên bản đầu tiên vào năm 2010. Định hướng của họ từ khi mới bắt đầu là tạo ra một dự án nguồn mở mà mọi người có thể sử dụng hoặc đóng góp. OpenStack dưới chuẩn Apache License 2.0, và vì thế phiên bản đầu tiên đã phát triển rộng rãi trong cộng đồng được hỗ trợ bởi hơn 9000 cộng tác viên trên gần 90 quốc gia, và hơn 150 công ty bao gồm Redhat, Canonical, IBM, AT&T, Cisco, Intel, PayPal, Comcast và một nhiều cái tên khác. Đến nay, OpenStack đã cho ra đời 6 phiên bản và tháng 10 này một phiên bản mới được phát hành là Havana.

Cloud là gì?

Đầu tiên, hãy tìm hiểu xem, đám mây điện toán là gì. Các công nghệ đám mây được xây dựng trên các công nghệ đã có như ảo hóa và clustering để ảo hóa các tài nguyên phần cứng, phần mềm, lưu trữ, và network thành những đơn vị có tính linh hoạt mà có thể phân phối một cách nhanh chóng để đáp ứng theo nhu cầu. Do đó, hơn mô hình tĩnh cũ, các server phần cứng được dùng cho các nhiệm vụ khác nhau, các cấu hình mạng và storage tĩnh, tất cả những thiết bị cụ thể này được đưa vài một "bể tài nguyên chung". Nó hiệu quả cho việc sử dụng phần cứng, và nhanh chóng khi muốn tăng hay giảm tùy nhu cầu. Thậm chí, bạn có thể cấu hình tự phục vụ cho người dùng để họ có thể lấy bất cứ những gì họ cần và bất kì khi nào.

Private cloud được dùng trong các doanh nghiệp, chúng ta có các public cloud như Amazon's EC2 và Rackspace Cloud. Bạn có thể kết hợp private và public cloud để tăng hiệu quả sử dụng. Ví dụ, giữ những dữ liệu nhạy cảm trong private cloud và sử dụng public cloud cho việc chia sẻ, testing và lưu trữ dữ liệu không quan trọng.

Tất cả tài nguyên tính toán có thể chia sẻ được trên cloud, và có 3 dạng dịch vụ cơ bản:

·        SaaS: softeware as a Service.

·        PaaS: Platform as a Service

·        IaaS: Infrastructure as a Service

OpenStack inside?

Tiếp đến, hãy đi sâu vào bên trong OpenStack

OpenStack không phải là một dự án đơn lẻ mà là một nhóm các dự án nguồn mở nhằm mục đích cung cấp các dịch vụ cloud hoàn chỉnh. OpenStack chứa nhiều thành phần:

OpenStack compute: là module quản lý và cung cấp máy ảo. Tên phát triển của nó Nova, nên khi bạn đọc về Nova thì hiểu đó là OpenStack compute. Nó hỗ trợ nhiều hypervisors gồm KVM, QEMU, LXC, XenServer... Compute là một công cụ mạnh mẽ mà có thể điều khiển toàn bộ các công việc: networking, CPU, storage, memory, tạo, điều khiển và xóa bỏ máy ảo, security, access control. Bạn có thể điều khiển tất cả bằng lệnh hoặc từ giao diện dashboard trên web.

OpenStack Glance, là OpenStack Image Service, quản lý các disk image ảo. Glance hỗ trợ các ảnh Raw, Hyper-V (VHD), VirtualBox (VDI), Qemu (qcow2) và VMWare (VMDK, OVF). Bạn có thể thực hiện: cập nhật thêm các virtual disk images, cấu hình các public và private image và điều khiển việc truy cập vào chúng, và tất nhiên là có thể tạo và xóa chúng.

OpenStack Object Storage, như là cái tên, nó dùng để quản lý lưu trữ. Nó là một hệ thống lưu trữ phân tán cho quản lý tất cả các dạng của lưu trữ như: archives, user data, virtual machine image … Có nhiều lớp redundancy và sự nhân bản được thực hiện tự động, do đó khi có node bị lỗi thì cũng không làm mất dữ liệu, và việc phục hồi được thực hiện tự động.

Identity Server quản lý xác thực cho user và projects.

OpenStack Netwok: là thành phần quản lý network cho các máy ảo. Cung cấp chức năng network as a service. Đây là hệ thống có các tính chất pluggable, scalable và API-driven.

OpenStack dashboard cung cấp cho người quản trị cũng như người dùng giao diện đồ họa để truy cập, cung cấp và tự động tài nguyên cloud. Việc thiết kế có thể mở rộng giúp dễ dàng thêm vào các sản phẩm cũng như dịch vụ ngoài như billing, monitoring và các công cụ giám sát khác.

Hãy trải nghiệm với OpenStack

Chúng ta hãy đừng chỉ nhìn vào OpenStack, chúng ta nên cài đặt và trải nghiệm với nó. Nó được thiết kế để quản lý các trung tâm dữ liệu lớn và sử dụng hàng perabyte dữ liệu, những bạn cũng có thể cài đặt nó trên PC. Nó được chứa trong hầu hết Linux distribution nên bạn có thể cài đặt nó chỉ như các phần mềm khác, từ bộ quản lý gói yêu thích.

Feel free to jump ahead and start testing it!

 

Thứ Tư, 13 tháng 11, 2013

5 Best (and Easy) Open Source Website Builders

http://www.smallbusinesscomputing.com/biztools/5-best-and-easy-open-source-website-builders-.html

5 Best (and Easy) Open Source Website Builders

By Carla Schroder | Published on: 28-Dec-11

It is essential to have a Web presence for your business, even if it's no more than a simple information page. Your customers will look for a website to learn about your business before they look for a phone book or newspaper ad. You can publish and maintain your website yourself, and with these five open source site builders, it's inexpensive and easy.

First Things First

A website and an email address are two essential components of your branding, so you should have your own registered domain name. Let's say your business is Golden Touch Tattoos. You want your customers visiting goldentouchtattoos.com and emailing you at artist@goldentouchtattoos.com.

Using a free service like Gmail, Hotmail or Yahoo looks amateurish, and why should you promote their businesses? The email address artist@gmail.com doesn't support a consistent identity or help people remember you. It costs only about $16 per year to keep a registered domain name, and it's easy to find registrars.

Next you need to find a Web hosting service. These abound, and don't spend more than $50/month for a service with lots of features and lots of choices for site builders. The Internet is powered by free-of-cost open source, so it doesn't cost much for a Web host to offer all the bells and whistles. The hosting business is cutthroat and full of bad hosts, so visit Web Hosting Talk to find out which hosts are good and which hosts you should avoid.

Please resist the temptation to load your shiny new site with special effects, animations, weird fonts and garish color schemes. Your customers want information, and they want to find it quickly.

Remember that posting contact information, like email and phone numbers, is just the first part -- who will answer the phone, who will reply to emails? Will they reply quickly and knowledgeably? If you enable forums and commenting, who will moderate them? Not weeding out spammers, trolls and mean people, and not replying quickly and courteously to site visitors, are all good ways to chase away customers.

Here, for your consideration, are five open source website builders -- in order from small-and-simple to large-and-feature-crammed. They all come with multiple themes for customizing their appearance, spam filters, support multiple languages, require no coding knowledge, and should all be available at any good Web host.

Textpattern

Textpattern is a nice choice for a text-heavy site with, for example, lots of tutorials, detailed product information, announcements, press releases or a CEO blog full of deep thoughts. You can easily post and organize images as well.

Textpattern uses a Web-based administration console and includes slick tools like a plain text-to-Web-page converter, human-readable clean URLs (which are also search engine optimization-friendly, very flexible organization and categorization, and nice control of reader comments. Writing and editing new content is fast and intuitive, and its layout controls don't drive you crazy -- you can actually make your pages and articles look the way you want without a fight.

Dotclear

DotClear, like Textpattern, is friendly to writers and editors with easy formatting, editing and layout tools that don't get in your way. It offers modules for importing your content from other blogs and nice multi-media management.

Better yet, it includes features not present in most other site builders: accessibility for Braille displays and screen readers. Don't forget your vision-impaired or keyboard/mouse-impaired customers, because their money spends exactly the same as everyone else's, and even in this modern 21st century they're still overlooked by most businesses.

Wordpress.com

Wordpress is two different things: Wordpress is free open source blogging software that you download and install on your own Web server, and Wordpress.com is a site that hosts Wordpress blogs, with both free and paid services. It's the most popular blogging site, and for good reason -- Wordpress is fast to learn.

You can literally create and publish a new site in a few minutes. If you're brand-new to building your own website, I recommend signing up for a free Wordpress account for practice. This includes 3GB of storage, a statistics system so you can see where your traffic is coming from, spam filter and 100+ free themes.

A free Wordpress account isn't adequate for a business site, because you can't use your own domain name. Instead you get a subdomain like mysite.wordpress.com. This is fine for a personal site or for practice, but for a business you should spend a few bucks to use your own domain name.

Wordpress.com charges $17 to $24 per year for a custom domain name. If you are verbose and publish much content, or you want to post lots of photos or videos, extra storage costs $19.97 to $289.97 per year, depending on how much you need. There are no bandwidth charges.

Video hosting costs $59.97 per year, and it's pretty slick. It supports high- and low-definition videos, and when you upload your video Wordpress.com automatically converts it to the correct format. Wordpress supports forums, image galleries, videos, blogs, newsfeeds and pretty much everything you might ever need.

Plone

Plone doesn't get much buzz, which is surprising for such an excellent, elegant site builder. It is known for its polish, speed and user-friendliness. It has superior editing tools, excellent search and indexing and painless upgrades.

It renders pages correctly in all Web browsers, even the ancient Internet Explore 6, which still holds about 10 percent market share. Wordpress and Drupal use database backends, which has some advantages but at the cost of greater complexity. Plone stores binary files and file data in the filesystem, and is very efficient in terms of server speed and storage.

Plone's one downside is complexity, which is hard to avoid with a fully-featured content management system (CMS), so the initial setup is more work than Wordpress. After the initial setup, it's fairly painless to administer with a nicely-organized administration interface.

Drupal

Drupal is the most flexible site builder and CMS, which also makes it the most future-proof. You can start small, learn your way around, add features and content at your own pace, and Drupal will grow with you. Its administration interface is a sleek, dynamic overlay with controls appropriate to the page you are on, so everything you need is always in front of you.

Drupal has a huge developer and user community cranking out cool themes and extensions day after day, so if there is some specific feature you want it's probably out there somewhere. It's a bit overkill for a simple site, but if you want the option to grow over time and add features, then Drupal's a great choice.

Carla Schroder is the author of The Book of Audacity, Linux Cookbook, Linux Networking Cookbook, and hundreds of Linux how-to articles. She's the former managing editor of Linux Planet and Linux Today

(Chơi cho vui) AIRDROP CHAINGE FINANCE - dự án xây dựng ứng dụng ngân hàng số cho mọi người

 Không hiểu lắm về cái này, tuy nhiên thấy quảng cáo khá nhiều, lại chỉ cung cấp vài thông tin cá nhân (mà mấy ông lớn như facebook với goog...