How to send multipart file using Spring RestTemplate

Spring Framework Logo

This is an example for sending multipart file using Spring RestTemplate:

How to do when Oracle Vendor Code 28001

Oracle

Open SQL Developer and perform the following steps:

Right click on Connections > New Connection.

Connection Name: sys
Username: sys as sysdba
Password: sys (or your sys password)
Hostname: your database server IP
Port: 1521
SID: your sid

Click connect.

Expand Other Users, and choose the user with the expired password. Right click on the user and choose Edit User, enter the new password and confirm it.

If you want your password to never expire again uncheck Password expired (User must change next login).

If you want password never expired, execute following command:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

Source: http://stackoverflow.com/questions/16870466/change-password-in-sql-developer-after-ora-28001-the-password-has-expired

Sự khác nhau giữa ‘let’ và ‘var’ trong Javascript

Javascript

letvar đều là hai từ khóa được sử dụng để khai báo biến trong Javascript.

Tuy nhiên điểm khác biệt của chúng là phạm vi ảnh hưởng của biến được khai báo bởi hai từ khóa này khác nhau:

var có ảnh hưởng đến toàn bộ function chứa nó trong khi let chỉ có ảnh hưởng đến khối lệnh chứa nó, khối lệnh này có thể nhỏ hơn khối lệnh của một function, vì một function có thể chứa nhiều khối lệnh trong đó.

– Biến được khai báo với từ khóa let không thể truy cập trước khi biến đó được khai báo trong khối lệnh chứa nó. Nếu bạn cố gắng truy cập vào biến này thì một ngoại lệ ReferenceError sẽ được quăng ra.

– Nếu như cả hai biến được khai báo bằng letvar không nằm trong bất kỳ khối lệnh nào thì lúc này chúng là những biến toàn cục. Tuy nhiên, biến được khai báo bằng let sẽ không được thêm vào như một thuộc tính của đối tượng toàn cục windows như biến được khai báo bằng var. Ví dụ:

let me = 'go'; // globally scoped
var i = 'able'; // globally scoped
console.log(window.me); // undefined
console.log(window.i); // 'able'

– Nếu như bạn sử dụng strict mode, var cho phép bạn khai báo lại một biến bạn đã khai báo trước đó trong khi let thì không. Ví dụ:

'use strict';
let me = 'foo';
let me = 'bar'; // SyntaxError: Identifier 'me' has already been declared
'use strict';
var me = 'foo';
var me = 'bar'; // No problem, `me` is replaced.

Demo: http://jsfiddle.net/tcCp5/182/
Nguồn: http://stackoverflow.com/a/11444416

Switch giữa các tab trong các trình duyệt phổ biến bằng nút cuộn chuột (phần 2)

Qua bài Switch giữa các tab trong các trình duyệt phổ biến bằng nút cuộn chuột (phần 1), các bạn đã biết cách để mang tính năng chuyển đổi giữa các tab trong trình duyệt bằng cách dùng nút lăn chuột. Tuy nhiên có một điều hơi bất tiện là các bạn phải chạy file script để tính năng trên hoạt động. Vì vậy hôm nay mình sẽ hướng dẫn các bạn tự động hóa việc này bằng cách sử dụng công cụ có sẵn của Windows là Windows Task Scheduler.

Bước 1: Trước tiên các bạn mở Notepad lên và dán nội dung phía dưới vào.

Sau  đó các bạn chỉnh lại đường dẫn đến trình duyệt bạn thường sử dụng (dòng 10) và đường dẫn đến file script (dòng 35) và lưu lại thành file với đuôi .xml.

Bước 2: Nhấn tổ hợp phím Windows + R, nhập taskschd.msc và nhấn Enter để mở Windows Task Scheduler.

Nhìn qua bên phải các bạn sẽ thấy panel Action, nhấn vào Import task và trỏ đến file xml vừa lưu lúc nãy. Các bạn có thể thay đổi NameDescription nếu muốn và nhấn OK để import task.

Kể từ lúc này, mỗi khi bạn mở trình duyệt mà bạn đã cấu hình lúc nãy thì script sẽ tự động chạy theo.

Switch giữa các tab trong các trình duyệt phổ biến bằng nút cuộn chuột (phần 1)

Mình đang sử dụng trình duyệt Google Chrome trên hệ điều hành Ubuntu, và có một tính năng mình rất thích là mình có thể sử dụng nút cuộn chuột để switch giữa các tab mình đang duyệt.

Tuy nhiên, tính năng này không có trong Google Chrome phiên bản cho hệ điều hành Windows, và các trình duyệt khác như Mozilla Firefox, Microsoft Edge, Opera,… Vì vậy, mình đã tìm hiểu cách để có thể giả lập tính năng này trên Windows.

Bước 1: Tải phần mềm AutoHotkey tại địa chỉ https://autohotkey.com/download/ và cài đặt vào máy tính.

Bước 2: Mở Notepad lên và dán đoạn mã này vào:

Lưu thành file có đuôi .ahk, sau đó chạy file này là bạn có thể switch giữa các tab trong 3 trình duyệt Google Chrome, Mozilla Firefox, Microsoft Edge.

Bạn nên cài đặt để file này khởi động cùng hệ thống để khỏi mắc công chạy file mỗi lần sử dụng.

Lyric Sender

PowerPoint Logo

Chào mọi người!
Tiếp tục với câu chuyện về công việc trong nhóm chiếu máy Ban Thanh niên Thủ Đức.
Như mình đã nói trong bài Vài điều tâm sự về công việc trong nhóm chiếu máy Ban Thanh niên Thủ Đức, một trong những vấn đề các thành viên nhóm nhạc mắc phải khi gửi file cho nhóm chiếu máy là các bạn không biết gửi cho ai.

Vì lý do đó nên mình đã cho ra sản phẩm mới: Lyric Sender.

Link: https://lyric-sender.herokuapp.com/
Description: Đây là một ứng dụng web sẽ giúp bạn gửi file bài hát cho các thành viên Nhóm chiếu máy Ban Thanh niên Thủ Đức.
Định dạng file cho phép gửi là doc và docx. Dung lượng tối đa của file là 5 MB.

Mục đích của sản phẩm là để gửi file bài hát hàng tuần cho nhóm chiếu máy Ban Thanh niên Thủ Đức, vì vậy các bạn vui lòng không gửi các file không liên quan. Nếu không, đây là hành động spam hộp thư của các thành viên nhóm chiếu máy Ban Thanh niên Thủ Đức.

Sản phẩm hiện đang trong giai đoạn public beta nên không thể tránh khỏi việc xảy ra lỗi. Vì vậy, mọi ý kiến đóng góp cũng như các lỗi phát hiện được các bạn vui lòng gửi email cho [email protected].

God bless you!

Vài điều tâm sự về công việc trong nhóm chiếu máy Ban Thanh niên Thủ Đức

PowerPoint Logo

Mình trở thành thành viên của nhóm máy chiếu cũng đã hơn nửa năm.
Công việc chủ yếu trong nhóm chiếu máy tất nhiên là chiếu máy. Tất nhiên cũng có những việc khác nữa.
Bình thường công việc của mình là:
– Nhận file bài hát do nhóm nhạc gửi sang.
– Làm slide chiếu bài hát.
– Đến chủ nhật thì đem máy lên setup máy chiếu, máy tính các kiểu rồi chiếu thôi.

Nghe thì có vẻ đơn giản, nhưng làm thì mới biết.
Mình thì chỉ nghỉ ở nhà thứ 7, nhiều khi cũng bận công chuyện nên đối với mình thì lý tưởng nhất là làm vào tối thứ 6, làm sớm còn có thời gian hiệu chỉnh nếu có sai sót.
Nhóm nhạc gửi bài trễ, thành ra nhiều khi chỉ bắt đầu làm slide trước giờ nhóm vài tiếng. Giờ thì đỡ hơn hồi trước nhiều, chắc do quen rồi. Cũng không tránh khỏi sai sót.
Cái khoảng thời gian hè mấy bạn về quê hết nên thường xuyên gửi trễ. Lúc đó, mình cũng bức xúc lắm, mà sau này Chúa giúp mình nhận ra rằng điều đó là sai, nên giờ mình không vậy nữa.
Cũng có lân la hỏi han mấy bạn trong nhóm nhạc thì cũng hỏi ra nhiều nguyên nhân, mà chủ yếu là các bạn không biết gửi cho ai, quên cũng có (làm rồi mà quên gửi, quên làm để gửi,…)
Nếu bạn nào chưa biết phải gửi cho ai thì đơn giản là các bạn gửi cho bất kỳ thành viên nào trong nhóm máy chiếu là được hoặc cứ gửi cho mình ha (email: [email protected]). Bình thường thì có email mới thì mình biết liền, nên nếu mấy bạn gửi cho mình thì mình sẽ chuyển file bài hát cho nhóm và reply lại cho các bạn ha. Còn nếu qua 12h thứ 6 mà các bạn không thấy mail reply lại thì nghĩa là mình chưa đọc mail của bạn nên file chưa được chuyển đến cho người chiếu.
Khi gửi email cho mình thì các bạn gửi với subject là: [NKTP][Năm-Tháng-Ngày] để mình dễ lọc thư nhé.
Ví dụ: [NKTP][2016-10-01]

Ngoài ra, một điều nữa mình muốn nói là, file bài hát mà các bạn gửi cho nhóm chiếu máy làm dài mà thực ra không cần thiết. Làm theo như các bạn thì vừa tốn thời gian của các bạn mà cũng tốn thời gian của người làm slide bài hát.
Cụ thể, ví dụ một bài hát có lời 1, lời 2, điệp khúc. Các bạn muốn hát theo trình tự lời 1 -> điệp khúc -> lời 2 -> điệp khúc, thường các bạn sẽ đánh máy lời 1, điệp khúc, lời 2. Sau đó, phần điệp khúc thứ 2 các bạn copy phần điệp khúc đã đánh máy ở trên rồi dán xuống dưới.

{Tên bài hát}

{Nội dung lời 1}

{Nội dung điệp khúc}

{Nội dung lời 2}

{Nội dung điệp khúc}

Đây là việc làm không cần thiết:
– Nội dung như nhau, nhưng ví dụ như mình khi đọc thì mình phải đọc hết, bởi vì có những bài hai phần chỉ khác nhau một hoặc một vài chữ, nên chắc ăn mình phải đọc hết để biết có khác nhau hay không và khác chỗ nào.
– Khi các bạn copy rồi paste như vậy thì nếu như phần các bạn copy có lỗi chính tả thì nghĩa là phần được dán phía dưới cũng có lỗi y chang vậy. Thành ra thay vì chỉ sửa phần có lỗi ở trên thì làm như các bạn sẽ phải sửa cả hai chỗ có lỗi.
– Thực ra nếu mình biết hai phần y chang nhau thì đơn giản là mình dùng Ctrl+D trong PowerPoint để duplicate slides thôi, nhanh hơn. Hiện tại, mình phải tốn thời gian kiểm tra file bài hát để biết điều đó.

Nếu là mình làm file bài hát thì mình sẽ đặt tiêu đề cho các đoạn: Lời 1, Lời 2, Lời 3 hoặc Đoạn 1, Đoạn 2, Đoạn 3 (gì cũng được, chủ yếu là để mỗi đoạn có một cái tên).
Sau khi đặt tên như vậy thì sau này các bạn không cần copy rồi paste nữa. Ví dụ:

{Tên bài hát}

Lời 1:
{Nội dung lời 1}

Điệp khúc:
{Nội dung điệp khúc}

Lời 2:
{Nội dung lời 2}

(Điệp khúc)

Bạn muốn lặp lại phần nào ở chỗ nào thì bạn chỉ cần ghi tên phần đó trong dấu () là người khác sẽ hiểu.
Trường hợp hai phần chỉ khác nhau vài chữ thì bạn chỉ cần hightlight những chỗ khác nhau (bold, hoặc đổi màu chữ) và chú thích là phần đó tương tự phần nào là được.
Ví dụ:

Tôn thờ Cứu Chúa

Phần 1:
Tôn thờ Vua thiên đàng
Vua của muôn loài
Vua lìa nơi huy hoàng
Vì yêu thế nhân.

Vua Giê-xu yêu thương tha tội con
Ban bình an cho con khi hiểm nguy
Nơi dựa nương cho con, duy Chúa Giê-xu quyền năng.

Phần 2:
Tôn thờ Vua thiên đàng
Vua của muôn loài
Vua lìa nơi huy hoàng
Vì yêu thế nhân.

Vua Giê-xu yêu thương tha tội con
Ban bình an cho con khi hiểm nguy
Nơi dựa nương cho con, duy Chúa Giê-xu quyền bính.

Hai phần chỉ khác nhau chữ cuối cùng nên bạn chỉ cần đánh máy như sau là được:

Phần 1:
Tôn thờ Vua thiên đàng
Vua của muôn loài
Vua lìa nơi huy hoàng
Vì yêu thế nhân.

Vua Giê-xu yêu thương tha tội con
Ban bình an cho con khi hiểm nguy
Nơi dựa nương cho con, duy Chúa Giê-xu quyền năng.

Phần 2: (tương tự phần 1)
Tôn thờ Vua thiên đàng
Vua của muôn loài
Vua lìa nơi huy hoàng
Vì yêu thế nhân.

Vua Giê-xu yêu thương tha tội con
Ban bình an cho con khi hiểm nguy
Nơi dựa nương cho con, duy Chúa Giê-xu quyền bính.

Hy vọng nhận được sự hợp tác của các bạn trong những lần sau các bạn gửi bài hát cho nhóm chiếu máy. Cảm ơn các bạn đã đọc những tâm sự dài dòng này của mình. God bless you!

Talk about PokemonGo

PokemonGo

Tuần này có gì hot? PokemonGo.

Đó là chủ đề hot của tuần này:
– Đi làm thì đồng nghiệp rủ nhau đi bắt PokemonGo.
– Facebook tràn ngập hình ảnh, live stream khoe thành tích,…
– Facebook liên tục nhận được lời mời chơi PokemonGo.

Đọc báo thì thấy những lợi ích PokemonGo đem lại cho thế giới nói chung và những người chơi nói riêng đã bị lấn át bởi những điều tiêu cực phát sinh:
– Người chơi sử dụng mọi cách thức để gian lận nhằm đạt thứ hạng cao trong trò chơi: fake GPS, di chuyển PokeStop đến vị trí có lợi cho mình,… chỉ vì lười di chuyển.
– Vì mải mê với trò chơi, không để ý đến xung quanh dẫn đến tai nạn giao thông, cướp tài sản, án mạng,…
– Nhiều người bất chấp thời gian và địa điểm bắt pokemon. Nhiều PokeStop trong game là nhà thờ.

Mình không chơi PokemonGo, cũng không có gì tự hào về điều đó. Sự kiện này làm mình nhớ đến câu Kinh Thánh:

Nhưng trước hết, hãy tìm kiếm vương quốc Đức Chúa Trời và sự công chính của Ngài, thì Ngài sẽ ban cho các con mọi điều ấy nữa. (Matthew 6:33)

Tìm kiếm Chúa quan trọng hơn, thậm chí là quan trọng nhất.

Suy nghĩ xung quanh Olympic Rio 2016

Olympic Rio 2016

Tuần vừa rồi, mình lên núi tu luyện.

Trong lúc lên núi, có rất nhiều sự kiện xảy ra trên thế giới. Ở đây mình sẽ nói về Olympic Rio 2016.

1. Câu chuyện đầu tiên: VĐV Hoàng Xuân Vinh giành HCV nội dung 10 súng ngắn hơi.
Chuyện này báo chí nói nhiều rồi nên mình không nhắc lại. Những điểm nhấn mà các bài báo nói đến, mình tạm tổng hợp ở đây:
– HCV đầu tiên sau 60 năm Việt Nam tham gia Olympic, và phá luôn kỷ lục của Olympic.
– Đối thủ cạnh tranh trực tiếp là VĐV của nước chủ nhà Brazil (áp lực tâm lý lớn).
– Mọi thứ chỉ ngã ngũ sau phát bắn cuối cùng của VĐV Hoàng Xuân Vinh. Trước đó, không ai nghĩ rằng đó là chiến thắng dành cho VĐV Hoàng Xuân Vinh khi mà các phát bắn trước không đạt được số điểm cao như VĐV nước chủ nhà.
Và sau khi kết quả đã có thì những thông tin được báo chí “đào”:
– VĐV Hoàng Xuân Vinh cận nặng (2,5 độ).
– Trang bị thi đấu nghèo nàn.
– Điều kiện tập luyện thiếu thốn.
– Quá khứ cơ cực.

Thêm một điều nữa để người Việt Nam tự hào sau những cái tên: Ngô Bảo Châu, Nguyễn Hà Đông,…

2. Câu chuyện thứ hai: Từ khóa: Sun Yang
Câu chuyện này thì các bạn có thể tự đọc tin trên mạng.

3. Câu chuyện thứ ba: Nhiếp ảnh gia bị cướp dàn máy ảnh trị giá 40000$.
Các bạn có thể đọc tại đây: https://tinhte.vn/threads/nhiep-anh-gia-bi-cuop-dan-may-anh-tri-gia-40000-chi-trong-10-giay-cap-nhat-da-bat-duoc-ten-trom.2631629/.

Đối với mình:
Sau khi đọc câu chuyện thứ nhất và thứ hai, mình nhớ đến câu Kinh Thánh sau:
[bible]1Cor 1:27-29[/bible]

Câu chuyện thứ ba nhắc mình về cách mà bọn trộm sử dụng để trộm mất dàn máy ảnh của vị nhiếp ảnh gia cũng là một trong những cách mà ma quỷ khiến mình mất tập trung vào Đức Chúa Trời:
– Nhắm vào cá nhân, đánh riêng lẻ. (Ê-phê-sô 6)
– Bám đuôi, đợi thời cơ khi chúng ta mất cảnh giác.
[bible]1Pet 5:8[/bible]
– Sử dụng nhiều chiến thuật để tăng tỉ lệ thành công:
+ Đánh lạc hướng, gây mất tập trung.
+ “Đưa ra” những chỉ dẫn có vẻ đúng nhưng thực ra là hoàn toàn sai, sai không thể bàn cãi. (Ma-thi-ơ 4)
+ Sử dụng “chiến lợi phẩm” để ngụy trang, tiếp tục phi vụ mới. (Cái này gợi nhớ tới chuyện Sa-tan lấy hình con rắn cám dỗ bà Ê-va trong Sáng-thế-ký 3).

Câu chuyện của mình xin tạm kết ở đây.

{Javascript} Chuyển đổi từ kiểu String sang kiểu boolean

Javascript

Tình hình là hôm nay đọc bài này trên blog của một tác giả nước ngoài thấy hay nên mình quyết định dịch và đăng lại. Nguồn bài viết được để ở cuối bài. Mình chỉ dịch những phần mình thấy quan trọng nên nếu bạn nào muốn có thể coi bài gốc nhé.

Chắc hẳn khi đọc tiêu đề bài viết thì có thể trong đầu một vài bạn đã xuất hiện một vài giải pháp. Tuy nhiên, nếu muốn biết đó có phải giải pháp mà mình sắp đề cập đến thì chắc chắn bạn phải theo dõi hết bài viết.

Có một vài cách để chuyển đổi từ kiểu String sang kiểu boolean trong Javascript. Tuy nhiên, bạn phải viết code thật cẩn thận, nếu không, bạn sẽ có thể gặp những lỗi rất khó chịu. Vì vậy, mục tiêu của bài viết này đó là đem đến cho bạn một giải pháp.
1. Có thể giải pháp đầu tiên bạn nghĩ ra là thế này: if(string) ...
Trong một số trường hợp, nó sẽ làm việc, nhưng không phải tất cả. Hãy theo dõi ví dụ dưới đây:

Vấn đề của đoạn code này là nó chỉ đúng khi biến string tồn tại.

2. Giải pháp số 2: Tạo đối tượng kiểu boolean từ một String?

Hãy xem tiếp ví dụ sau

Giải pháp này cũng không dùng được. Lý do ở đây rất đơn giản, vì hàm Boolean(String s) không cố gắng kiểm tra xem giá trị chuỗi input là “true” hay “false” mà nó kiểm tra xem chuỗi input có phải là giá trị non-false hay không (vd: false–0, undefined, an empty string, null,…). Vậy nên cho dù chuỗi string có giá trị là “true” hay “false” thì chắc chắn nó cũng không phải chuỗi rỗng nên điều kiện Boolean(string) luôn cho kết quả là true.

3. Giải pháp là đây: Chỉ đơn giản là so sánh chuỗi với “true”

Rất đơn giản phải không các bạn, tuy nhiên, mọi thứ vẫn chưa kết thúc, chúng ta sẽ viết gọn hơn nữa.

Đến đây thì vấn đề đã được giải quyết xong.

Nguồn: http://heyjavascript.com/javascript-string-to-boolean/

Suối Đục và cái xe máy

Wave Alpha

Chả là hôm bữa đi công tác xã hội ở Suối Đục về, đầu tuần đi làm, hết giờ chạy xe về thì xẹp lốp, phải dắt bộ cả mấy trăm mét. Lúc đầu, mình còn tưởng là xe cán phải đinh. Khi đến chỗ sửa xe, chú sửa xe nói là lốp mòn nên bị xì hơi, phải thay lốp mới.

Trong lúc ngồi đợi thay lốp mới thấy cảm tạ Chúa, nếu hôm đi Suối Đục mà lốp bị như thế thì 2 anh em dắt bộ biết chừng nào mới về đến nhà. Cả buổi dắt bộ chưa chắc ra tới tiệm sửa xe.

Chuyện chỉ có vậy thôi.

(Ai chưa biết Suối Đục ở đâu thì tự Google nhá.)

Disabled ads script

No advertise

Sau một hồi Google thì cũng đã disable được mớ script khó chịu của host chèn vào.

Giờ vào website không thấy quảng cáo nữa.

Hết thông báo!

%d bloggers like this: