Thứ Sáu, 28 tháng 12, 2018

2018 Karl Terzaghi Lecture: Geotechnical Stability of Waste Fills

Dr Rudolph Bonaparte delivered the 2018 Karl Terzaghi Lecture at IFCEE 2018 in Orlando, FL,
on March 8, 2018.

Thứ Bảy, 8 tháng 12, 2018

Julia vs. Python: Chọn Julia cho data science?

(Nguồn xem ở đây)

Với nhiều lĩnh vực có thể dùng tới Python, có lẽ phân tích dữ liệu là có ảnh hưởng nhiều nhất. Python có hệ sinh thái vô cùng phong phú với libraries, tools, và applications giúp cho công việc của ngành khoa học máy tính và phân tích dữ liệu trở nên tiện lợi và nhanh hơn rất nhiều.
Nhưng với các developer đằng sau ngôn ngữ lập trình Julia – dành riêng cho “khoa học máy tính, khai thác dữ liệu, đại số tuyến tính quy mô lớn, phân phối và tính toán song song” – Python vẫn chưa nhanh và tiện dụng theo như kì vọng của họ.

Julia là ngôn ngữ lập trình gì?

Được tạo ra vào 2009 bởi nhóm 4 thành viên và ra mắt cộng đồng trong năm 2012, Julia là giải pháp giúp thay Python và các ngôn ngữ khác khi làm về khoa học máy tính và xử lý dữ liệu. “Chúng tôi rất tham lam” – nhóm phát triển viết. Họ luôn đòi hỏi nhiều hơn nữa:
Chúng tôi muốn một ngôn ngữ open source, với giấy phép tự do. Chúng tôi muốn tốc độ của C và sức mạnh của Ruby. Một ngôn ngữ đồng tính, với các macros thật sự như Lisp nhưng lại có các ký hiệu toán học như Matlab. Một ngôn ngữ dễ dùng cho nhiều mục đích khác nhau như Python, thật dễ khi nói về số liệu như R và tự nhiên khi liên quan tới quá trình string của Perl. Chúng tôi muốn nó phải thật dễ học nhưng lại vẫn thỏa mãn ngay cả kẻ khó tính nhất. Nó cũng phải vừa interactive và compiled.
Sau đây là cách thức để Julia có thể đạt được những điều trên:
Compiled, không interpreted, cho tốc độ. Julia là just-in-time (JIT) compiled sử dụng LLVM compiler framework. Cho phép nó có khả năng đạt được tốc độ tương tự như C.
Cú pháp ngắn gọn như hữu dụng. Các cú pháp của Julia khá tương đồng với Python, nhưng đồng thời lại vô cùng mạnh mẽ.
Các lợi ích từ dynamic typing với static type. Bạn có thể chỉ định type cho variables. Nhưng bạn cũng có thể tạo ra cấp bậc của types nhằm có thể xử lí các variables của một vài types nhất định.
Có thể sử dụng Python, C, và Fortran libraries. Julia có thể trực tiếp sữ dụng những libraries của C và Fortran. Nó cũng có khả năng dùng code của Python thông qua PyCall library.
Metaprogramming. Julia programs có thể tạo ra những Julia programs khác, thậm chí sửa đổi chính code của chúng, theo cách tương tự như các ngôn ngữ lập trình như Lisp.

Julia vs Python: Thế mạnh của Julia

Julia được thiết kế ngay từ đầu với mục đích dành cho khoa học và tính toán số. Do đó mà không có gì ngạc nhiên khi nó có nhiều thế mạnh nằm trong lĩnh vực này:
Nhanh hơn khi ở default. Julia’s JIT compilation và type declarations giúp cho việc nó có thể chiến thắng phiên bản Python (không được tinh chỉnh). Tuy rằng Python có thể trở nên nhanh hơn nhờ vào libraries, third-party JIT compilers (PyPy), và tool nhưng nếu so ở mức default thì Julia lại chính là người chiến thắng.
Thuật toán thân thiện với toán học. Nhóm người dùng chính mà Julia nhắm tới là các developer sử dụng các ngôn ngữ tính toán khoa học như Matlab, R, Mathematica, và Octave. Các thuật toán của Julia sẽ nhìn trông giống các công thức toán học, nhờ đó mà người mới học sẽ tiếp thu nhanh hơn.
Quản lý bộ nhớ tự động. Như Python, Julia không đè nặng user với việc allocating và giải phóng bộ nhớ. Ý tưởng ở đây chính là việc dù bạn có nhảy qua Julia, thì những tính năng tiện dụng của Python vẫn có mặt trên ngôn ngữ lập trình này.
Parallelism – tính song song. Toán học và tính toán khoa học sẽ phát triển khi bạn có thể sử dụng mọi nguồn tồn tại trên máy, đặc biệt là với nhiều core. Cả Python và Julia đều có thể điều hành hoạt động song song. Nhưng thuật toán của Julia sẽ nặng phần top hơn so với Python.

Python vs Julia: Thế mạnh của Python

Python là một ngôn ngữ đa dụng, vừa dễ học cũng như được đánh giá là một trong những lựa chọn tốt nhất cho khoa học máy tính. Một số nguyên nhân vì sao Python vẫn là ứng viên sáng giá đối với khoa học dữ liệu.
Julia arrays là 1-indexed. Do điều này khiến cho nó không thật sự tương thích với Python và C vốn bắt đầu từ 0. Do đó mà tuy rằng Julia vô cùng thích hợp trong lĩnh vực toán học và tính toán nâng cao nhưng nó lại không hề mạnh với những lĩnh vực khác như Python.
Julia vẫn còn quá trẻ. Chỉ mới ra đời từ 2009, dù rằng ngôn ngữ đã có phát triển vượt bậc nhưng hiện tại nó vẫn chưa tới được phiên bản 1.0 chính thức của mình.
Python có nhiều packages hỗ trợ hơn. Trong khi đó, Julia với tuổi đời trẻ tất nhiên sẽ cần tới việc đa dạng hóa các package dành cho nó nhằm có thể thật sự phát triển vượt bậc.
Python có cộng đồng vô cùng đông đảo. Dù rằng các thành viên của Julia đều là những developer đầy nhiệt huyết nhưng khi so với Python thì nó vẫn vô cùng nhỏ bé.

Thứ Hai, 3 tháng 12, 2018

International Society for Soil Mechanics and Geotechnical Engineering Lectures

CHALLENGES IN SHORING DEEP EXCAVATIONS IN URBAN AREAS
Presenter: Dr. Marc Ballouz
Title: Challenges in Shoring Deep Excavations in Urban Areas
Launching Date & Time: 13th of December 2016 12:00pm GMT




mballouz-webinar


COMBINED LOADING OF OFFSHORE FOUNDATIONS
Presenter: Prof. Mark Cassidy
Title: Combined Loading of Offshore Foundations
Launching Date & Time: 24th of August 2016 12:00pm GMT