Skip to main content

Posts

Showing posts with the label Ruby

Không cần jq nếu đã có python/ruby

jq trở thành công cụ "làm tất cả" với các sysadmin. Trong khi jq được dùng để "query JSON" - truy cập dữ liệu trong 1 đoạn JSON thì nó cũng được dùng để kiểm tra syntax của 1 đoạn JSON. JQ là gì $ whatis jq jq (1)               - Command-line JSON processor   Photo by Thanh Soledas on Unsplash   Nhưng nếu máy đã có python/ruby, hay các ngôn ngữ trang bị sẵn stdlib JSON, sẽ không cần phải cài gì thêm cả: File bad.json ví dụ, thử dùng mắt thường tìm xem nó sai ở đâu: {   "name": "@exercism/typescript",   "description": "Exercism exercises in Typescript.",   "private": true,   "repository": {     "type": "git",     "url": "https://github.com/exercism/typescript"   },   "devDependencies": {   }, }

In ra màn hình số 1 - dùng ngôn ngữ nào nhanh/nhẹ nhất?

Nếu chỉ cần in ra mà hình số 1, ngôn ngữ lập trình nào sẽ chạy tốn ít RAM nhất? Thí nghiệm sau sẽ cho ta thấy các chương trình cần bao nhiêu RAM để chạy và in ra số 1, kết thúc dòng bằng một dấu xuống dòng (newline \n ). Ta dùng chương trình /usr/bin/time để có cả thông số về RAM ( RSS ) thay vì chỉ gõ time - lệnh builtin của bash. bash4.3 $ /usr/bin/time bash -c 'echo 1' 1 0 .00user 0 .00system 0 :00.00elapsed 100 %CPU ( 0avgtext+0avgdata 3064maxresident ) k 0inputs+0outputs ( 0major+136minor ) pagefaults 0swaps dash $ /usr/bin/time /bin/dash -c 'echo 1' 1 0 .00user 0 .00system 0 :00.00elapsed ?%CPU ( 0avgtext+0avgdata 1492maxresident ) k 0inputs+0outputs ( 0major+67minor ) pagefaults 0swaps mawk $ /usr/bin/time mawk 'BEGIN {print 1}' 1 0 .00user 0 .00system 0 :00.00elapsed 100 %CPU ( 0avgtext+0avgdata 1932maxresident ) k 0inputs+0outputs ( 0major+86minor ) pagefaults 0swaps

[Ebook] Tài liệu học lập trình miễn phí

 Tiêu chí: - Miễn phí - Chất - Nhóm theo ngôn ngữ. Bash 🤓 - LinuxCommand - ABS (Advanced Bash Scripting) Python 😘 - hướng dẫn Python Tiếng Việt - Tutorial - Dive into Python - The Hitchhiker’s Guide to Python! - Automate the Boring Stuff with Python - Invent Your Own Computer Games with Python - Hacking Secret Ciphers with Python - How to Think Like a Computer Scientist - SICP Python version - Learn Python the hard way - More ebooks:  http://pythonbooks.org/free-books/ Ruby 🙄 - Poignant Ruby - Learn Ruby the hard way   Haskell 😏 - Learn You a Haskell - Real world Haskell   C - Modern C

[Ruby] Cài đặt/sử dụng rbenv

Cho những ngày tháng không Facebook :"> Vì sao chọn rbenv ? Nhẹ Cài đặt đơn giản Sử dụng dễ Mỗi folder 1 gem version khác nhau được, hoặc set 1 version dùng chung (global) Không cần quyền sudo, user bình thường cũng có thể cài ruby và deploy 1 ruby app.   Cài đặt RBENV Hướng dẫn cài đặt này đã test cho Ubuntu 12.04 LTS. Cài cái gói phụ thuộc (Dependency packages) Phần này cần sudo để cài. sudo apt-get install autoconf bison buixld-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev git curl

Công cụ quản lý truy cập đến nhiều server

Mặc định là bạn dùng ssh 0. Quản lý file ~/.ssh/config Cần thì thêm, chán thì sửa Ví dụ: hvn@archhvn: ~ () $ head ~/.ssh/config Host saltlab     hostname 192.168.122.241     user hvn 1. Dùng storm -> cho fan python http://emre.github.io/storm/ Cài đặt: sudo apt-get install python-pip pip install stormssh Cách dùng: storm --help storm add --help 2. Dùng ghost-ssh => cho fan ruby https://github.com/bjeanes/ghost có thể cài bằng gem 3. Dùng PAC manager => cho fan GUI :D 

[Monitoring] StatsD

StatsD là tên của một NodeJS daemon (hay gọi khác là service), daemon này listen các message được gửi tới qua cổng UDP (mặc định là cổng 8125). chữ d ở cuối statsd là viết tắt cho daemon, giống như cách đặt tên phổ biến cho httpd, ftpd, rsyncd ... Từ cái tên này, có thể thấy StatsD là một daemon phục vụ cho việc thống kê (statistics). Người ta (Etsy) tạo ra StatsD để giúp cho việc thu thập dữ liệu trở nên dễ dàng hơn. Mô hình cơ bản nhất là trên 1 máy server, StatsD chạy và các webapp trên máy đó sẽ gửi các thông tin thống kê tới daemon này. StatsD chỉ phục vụ quá trình thu thập dữ liệu, sau đó nó có thể gửi tới một máy chạy graphite hay ganglia để thực hiện vẽ các đồ thị dựa trên dữ liệu thu thập được. Điểm đáng chú ý và hay ho nhất của StatsD (tức phần daemon) là nó rất đơn giản nên được implement trên nhiều ngôn ngữ khác nhau. Có thể kể tới:

[Programming] Kho báu

Kho báu Là nơi bạn sẽ tìm ra những kinh nghiệm quý báu, những đúc kết của cả 1 quá trình làm việc phức tạp và liên tục, sẽ giúp bạn trở thành 1 lập trình viên giỏi hơn.  Bạn rất khó tìm thấy nó trong 1 manpage   Cũng không dễ dàng tìm trong document hướng dẫn sử dụng software  Không biết có ai viết nó thành sách không  Cũng chẳng tập trung ở các blog ... Nhưng bạn sẽ tìm thấy kho báu này ở:

YAML là gì?

YAML ( http://www.yaml.org/ ) là 1 định dạng dũ liệu được thiết kế nhằm mục đích để người và máy (các ngôn ngữ lập trình) cùng đọc được. YAML được dùng vào mục đích tương tự JSON , XML nhưng ngắn gọn xúc tích hơn. Ví dụ về 1 đoạn YAML được biểu diễn như sau: -   name: HVN   mail:   hvn@familug.org -   name: SAM   mail:   hai.lt@familug.org http://yaml-online-parser.appspot.com/ Là 1 trang chuyển đổi YAML sang JSON. Bạn nên dùng trang này trong lúc đọc, vừa học vừa hành lúc nào cũng tốt hơn. YAML để làm gì?

PLEAC - học các ngôn ngữ lập trình theo kiểu "perl cookbook"

Là một dư án mã mở, PLEAC - Programming Language Examples Alike Cookbook chuyển đổi các ví dụ từ Perl Cookbook sang nhiều ngôn ngữ khác nhau. Một vài ngôn ngữ điển hình: Ocaml: http://pleac.sourceforge.net/pleac_ocaml/index.htm Perl: http://pleac.sourceforge.net/pleac_perl/index.html Groovy: http://pleac.sourceforge.net/pleac_groovy/index.html Python: http://pleac.sourceforge.net/pleac_python/index.html Ruby: http://pleac.sourceforge.net/pleac_ruby/index.html ...

Sửa lỗi ActionDispatch::Cookies::CookieOverflow trong Rails 3.x,4

Nguyên nhân do cookie để lưu session này đã đầy (giới hạn là 4KB thì phải?) Giải pháp: Lưu chỗ session này vào database, Rails có hỗ trợ dùng Active record. Có 1 số tut hướng dẫn tạo table trong db bằng chạy: $ rake db:sessions:create Thực tế mình chạy bị lỗi (Chả hiểu sao - nên viết lại tut này làm chỗ lưu trữ cho sau này). rake db:sessions:create rake aborted! Don't know how to build task 'db:sessions:create'

[Ebooks] Learn The Hard Way

Các cuốn sách ở đây là những nguồn tài liệu rất tốt cho những ai tự học lập trình. Bắt nguồn từ sự thành công của cuốn Learn Python The Hard Way , tác giả đã sản xuất hàng loạt các cuốn sách khác cùng style với cuốn trên.   Các cuốn sách đều có thể xem online ở dạng HTML. Python Ruby C SQL Regex Với triết lý: "Less Talk, More Code", các cuốn sách này ngày càng trở nên nổi tiếng :D

Cùng học ruby

Như bài viết trước vừa nói, tớ học ruby theo kiểu nhảy vào code vì bản thân RAM bé, ko hợp với kiểu nhồi sách rồi mới làm. Cùng tên với rất nhiều topic trên các forum mạng, nhưng đây sẽ không phải kiểu kêu gọi, đăng ký và bỏ đấy :v Mục tiêu của tớ là học ruby để config chef . Nhưng cái mục tiêu này hơi mơ hồ, vì thật ra tớ chưa dùng chef nên cũng không rõ phải học bao nhiêu, vậy nên mục tiêu đổi thành: học dùng các khái niệm thuộc core của ruby tương đương với python như list, dict, if else, for, while, viết function, viết class, cài đặt môi trường để code, sử dụng vài thư viện ... Bạn cũng nên set 1 cái mục tiêu trước khi nhảy vào học: ví dụ như học ruby + ruby on rail để làm 1 cái blog cho bản thân, để giải 20 bài PE ... :v Nội dung chính của post này: - chia sẻ tài liệu - giải thích thắc mắc - chia sẻ kinh nghiệm Ngày số 1:

Cài đặt và quản lý ruby qua rvm

RVM - Ruby Version Manager. Để cài đặt và quản lý được nhiều version của ruby trên máy tính. Tại sao rvm -> Without RVM, it’s pretty difficult to have more than one version of Ruby on your computer - tutsplus.com 1. Cài đặt $ sudo apt-get install build-essential git-core curl Cho các máy chưa có các gói này $ curl -L https://get.rvm.io | bash -s Để cài rvm, yêu cầu máy đã có sẵn gói curl echo '[[ -s "/home/lamdt/.rvm/scripts/rvm" ]] && source "/home/lamdt/.rvm/scripts/rvm"' >> ~/.bashrc Để thêm dòng [[ -s "/home/lamdt/.rvm/scripts/rvm" ]] && source "/home/lamdt/.rvm/scripts/rvm" vào file ~/.bashrc (làm tay cũng được). Lưu ý: Thay lamdt bằng tên user. $ rvm requirements Để cài các gói rvm yêu cầu cho linux $ rvm list known Để liệt kê các version của ruby có thể cài

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG