How to backup your last time with Xiaomi camera

I bought a Xiaomi camera, with 32GB microSD, it can record about 10 days, but it saves data to many folders, per folder has many files, the length of file less than 60 seconds. When I backup data from microSD to hard disk, it is difficult to watch because I must open file many many time.

So, I want to merge all file in the folder to one file and upload to youtube to easy to access. I have to code something.

The first, I install FFmpeg to my Mac, it is not easy as installing FFmpeg on Ubuntu, but I did. That’s ok, FFmpeg saves my life :p. This is my code:

Gán quyền một bucket cho một user

Gán quyền loằng ngoằng trên giao diện (console), thấy nó ghi full quyền rồi mà khi làm việc với thư mục con lại lỗi, hoá ra full quyền trên giao diện mới được như này:

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “Stmt1491906008000”,
“Effect”: “Allow”,
“Action”: [
“s3:*”
],
“Resource”: [
“arn:aws:s3:::kamaxuta”
]
}
]
}

Phải sửa thành như này mới thực sự full quyền:

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “statement1”,
“Effect”: “Allow”,
“Action”: [
“s3:GetBucketLocation”,
“s3:ListAllMyBuckets”
],
“Resource”: “arn:aws:s3:::*”
},
{
“Sid”: “Stmt1491906008000”,
“Effect”: “Allow”,
“Action”: [
“s3:*”
],
“Resource”: [
“arn:aws:s3:::kamaxuta”,
“arn:aws:s3:::kamaxuta/*”
]
}
]
}

 

Thay đổi kiến trúc hệ thống

Nghe có vẻ hầm hố, chả là hồi trước mình có viết một cái chrome extention để mỗi lần mở tab mới sẽ hiện ảnh một em gái xinh xinh. Hồi ấy làm ở VP9 nên dùng chùa server của VP9, sau đó nghỉ VP9 thì mua một cái VPS ở azdigi giá 170k/tháng để làm server crawl cũng như nghịch linh tinh.

Continue reading “Thay đổi kiến trúc hệ thống”

Update row in mongodb

Database TEST có một COLLECTION tên là IMAGES
Có một trường dữ liệu là URL, các url bắt đầu với 65.media và 67.media bị lỗi, phải sửa thành 66.media thì mới show được ảnh ra.
Với oracle hay mysql thì 30s là xong ngay.
Nhưng với ông mongodb này thì phải mày mò gần 30p, rút cục cũng update được:

db.images.find({url:/65.media/i}).forEach(function(e,i){ e.url=e.url.replace(“//65.media”,”//66.media”); db.images.save(e); });

Build a service with AWS Lambda and API Gateway

https://gofore.com/en/going-serverless-with-amazon-s3-and-lambda/

https://www.import.io/post/using-amazon-lambda-and-api-gateway/

https://blog.mitocgroup.com/building-scalable-web-apps-with-aws-lambda-and-home-grown-serverless-web-framework-e04c912d08f0#.pu0eolxh0

https://cloudofficer.co/adding-dynamic-functionality-to-your-static-website-using-aws-lambda-and-api-gateway/

View story at Medium.com

Bài hay: https://kennbrodhagen.net/2016/01/31/how-to-return-html-from-aws-api-gateway-lambda/

https://neo4j.com/blog/neo4j-aws-lambda-api-gateway-recommendation-engine/
http://blog.michaelschmatz.com/2016/04/02/how-to-build-an-image-host-using-aws-lambda-s3-and-dynamo/
http://readwrite.com/2015/11/16/how-to-build-an-api-amazon-lambda/
https://cloudnative.io/blog/2015/05/lambda-chat/
http://www.nethram.com/aws-lambda-tutorial-step-by-step-instructions-to-create-a-scalable-web-application-part-2/
http://www.bebetterdeveloper.com/coding/architecture/serverless-system-architecture-using-aws.html

Thành tựu

Thành tựu số 01: Hôm nay mình đã thực hiện buổi học đầu tiên với giáo viên tiếng anh người … Ukraina.

Chuyện học ở Preply.com: Tiếc tiền nên search ra một loạt các giáo viên 2$/h rồi gửi request, nhắn nhủ kiểu “hey, tao muốn học tiếng anh”. Cắm đầu cắm cổ không để ý một checkbox rất bé có nội dung là “cc cho tất cả các giáo viên nội dung tin nhắn này”. Thế là nhận được hàng loạt lời mời học của các giáo viên 10, 13, 15$/h, huhu, thích lắm cơ mà học giá đó tiếc quá. Phải vào từ chối cả loạt. Cơ mà có một cô giáo ở Kiev lại nhắn tin khá tận tình, bảo là “mày chê 10$ đắt thì mấy $ mầy học?” Mình nhắn lại là “5$ thì tao sẽ học”. Cô giáo bảo “ok, thế tao đặt giá cho mày 4$, học thử đi”. Ngon, tiến hành luôn. Hẹn cô giáo từ hôm qua, hồi hộp phết, nhưng hóa ra cũng không đáng sợ như mình tưởng. Học mới thấy vốn từ kém quá, muốn hỏi mà không nghĩ ra từ mà hỏi, nói chuyện thời tiết thì không nghĩ ra từ “tuyết” là gì để khoe là Việt Nam cũng có tuyết :)) Phát âm thì tệ không tả nổi :)) Ok ok, cố lên. Đi được bước đầu tiên rồi, chăm chỉ học từ và tập phát âm từng từ một, học tầm 10 buổi chắc là khá khẩm hơn, 20 buổi chắc là sẽ đủ dũng khí đi phỏng vấn bằng tiếng anh :))

Thành tựu số 02: Viết thêm được một extension nữa :v

Do nhu cầu học từ vựng để đọc sách, nói chuyện, đọc tài liệu, thi TOEIC, mình tìm các extension cho chrome xem có cái nào giúp học từ tiện lợi. Vì sao cứ chrome extension hoài vậy? Một ngày 10 tiếng  ở cty thì khoảng 6 tiếng mình nhìn vào màn hình chrome, new tab khoảng 100 lần hoặc hơn. Thế nên chrome và newtab gần như thế giới của mình :)) Mỗi lần newtab nhìn thấy một từ mới chả hơn là nhìn thấy cái ô facebook (recent tab) à? À nhìn các em xinh thì cũng thích đấy nhưng thời điểm này anh phải tập trung nguồn lực để lấy số với đời các em nhé, đợi anh có thông thạo tiếng anh thì sẽ lại dùng random beautiful girls.

PS: Tại sao nên dùng chrome? Vì chrome dùng đa tiến trình (multi process), tận dụng được các cpu đa nhân, firefox trời ơi vẫn dùng đơn tiến trình, hôm nọ đọc báo mới biết điều đó, thảo nào chrome tuy tốn ram nhưng mượt hơn firefox.

PS2: Cái newtab newword này lấy cảm hứng từ Magoosh Vocabulary, thiết kế của nó rất tinh tế dễ chịu, lại có cả phát âm, mình chưa đạt tới trình độ đó, nhưng có ưu điểm là có nghĩa tiếng Việt, hê hê. Dễ nhớ hơn.

Thôi đi ngủ cái đã.

Bash không phải tiếng người

Sáng nay, à, cả ngày hôm nay hì hục, rút cục cũng xong cái task “Run file sh from file”.

Bài toán thế này: Cho file A, trong file có nhiều dòng, mỗi dòng gồm nhiều tham số, mỗi tham số cách nhau bởi dấu chấm phẩy (;), đọc từng dòng và tách các tham số để tạo thành một câu lệnh và chạy câu lệnh đó. Tất cả viết bằng bash script.

Continue reading “Bash không phải tiếng người”

Mỗi tab một em

Mình rất ấn tượng với cái extention Momentum, ảnh của nó đẹp quá đi, nhìn rất phê.

Nhưng ngoài ngắm cảnh mình còn thích ngắm các em gái xinh, cũng có sẵn vài chrome extention như Hot girls hoặc Bikini, nhưng toàn là gái châu Âu, không hợp gu mình, nhìn không hợp mắt cho lắm. Quyết định là phải tự viết một cái extention cho Chrome, mỗi lần new tab là hiện ra một em gái Việt Nam.

Sau nhiều cố gắng thì cũng có một bản nháp dùng được, tải về tại đây 

Giải nén ra có thư mục newtab, paste vào trình duyệt Chrome dòng chrome://extensions/ rồi tích chọn Developer mode. Sau đó click vào Load unpack extention… rồi chọn thư mục newtab, open. Thế là xong, mỗi lần ctrl T sẽ hiện lên một ảnh ngẫu nhiên từ xkcn.info

Hoặc đơn giản là tải về từ Google Chrome Store

 

 

Viết API để gửi tin nhắn với telegram bot

Có hai việc chính:

– Tạo một con bot bằng cách chat với BotFather

– Viết api

Các công cụ cần thiết:

– Tài khoản telegram

– Nodejs và các gói liên quan, trong đó có gói telegram-node-bot

– Server để deploy api chạy ngày chạy đêm.

Tham khảo từ:

https://core.telegram.org/bots

https://www.npmjs.com/package/telegram-node-bot

Bắt đầu:

Tạo bot bằng cách chat với BotFather, đáng ra phải là BotMother chứ nhỉ :))

/start

/newbot

Chọn tên cho bot, không bắt buộc có chữ bot ở trong tên này

Chọn username cho bot, bắt buộc có chữ bot trong tên này.

Ok xong, bạn sẽ thấy một cái token để ném vào trong code.

Tạo file ping.js

Nhớ thay chỗ YOUR_TOKEN bằng token mà BotFather gửi cho bạn.

Ok, cho chạy đê node ping.js

Chat với bot, gõ ping gửi cho bot, log sẽ xuất hiện thông tin của user_id hoặc group_id mà bạn đang chat, tóm lấy nó – chính là cái chatId

Screenshot from 2016-05-20 14:38:33

Giờ mới đến phần chính, tạo file my_api.js

Chạy nào: node my_api.js

Paste link này vào trình duyệt:

http://localhost:3000/toTelegram?msg=tinnhan

Trên telegram bạn sẽ nhận được tin nhắn với nội dung tinnhan. Xong.