
Design Patterns: The Adapter Pattern
Design Patterns: The Adapter Pattern## Tiếp tục chuỗi bài viết về design pattern, trong bài viết lần trước chúng ta đã cùng tìm hiểu về facade design pattern thông qua việc dựng một class facade để thực hiện quản lý hệ thống lớn và phức tạp. Bài viết lần này chúng ta sẽ cùng tìm hiểu về một ...

Quản lý kết nối chung tới Database khi sử dụng JDBC
1. Vấn Đề Thời gian gần đây, do phải code ứng dụng chạy được trên cả server windows và unix nên tôi có quay trở lại code Java. (mặc dù có rất nhiều lựa chọn khác) Cảm giác ban đầu là code Java khá dài, và khoảng thời gian không dùng tới java cũng chừng 2 năm nên đôi lúc thấy rất nản. Tuy ...

một số sự thay đổi dễ nhận biết khi chuyển từ laravel 4.2 lên 5.1
laravel 5.1 là một bản update rất lớn so với các bản laravel 4.x.chính vì thế đối với lập trình viên đang sử dụng laravel 4.2 khi bắt đầu update lên laravel 5.1 sẽ không tránh khỏi một thoáng ngỡ ngàng. Trịnh Tiến Mạnh viết 10:53 ngày 12/08/2018

Sử dụng CoreData lưu trữ dữ liệu trên iOS
Giới thiệu Core Data bao gồm một số các đối tượng framework được tích hợp để cung cấp các chức năng lưu trữ dữ liệu. Core Data Stack được minh họa như hình dưới đây: Như chúng ta có thể thấy trong hình trên, các ứng dụng iPhone nằm trên đỉnh của ngăn xếp và tương tác với các đối tượng dữ ...

Giới Thiệu Về Celluloid - Part 2
Đây là phần 2 trong series về Celluloid, nếu các bạn chưa xem phần 1, hãy xem ở đây nhé: Giới thiệu về Celluloid - Part 1 Celluloid có rất nhiều những công cụ hữu ích giúp việc lập trình đồng thời (concurrent programming) trở nên dễ dàng hơn bao giờ hết (honho) Futures Rất nhiều trường ...

Share Facebook tutorial
Hi cả nhà, đến hẹn lại lên viblo lại sắp có thêm 1 bài viết hướng dẫn của thanh niên cùi bắp. Bài viết này mình sẽ hướng dẫn tạo tài khoản cũng như share facebook cho ứng dụng ios. Phần share facebook sẽ gồm 2 phần: share facebook sử dụng social network và share sử dụng grapth api. I. Đăng kí acc ...

Convert giữa các hệ chữ Nhật với gem Mojinizer
**Nguồn:** https://github.com/ikayzo/mojinizer - Gem giúp chuyển đổi giữa các hệ chữ Hiragana, Katakana, Romaji. - Chuyển đổi giữa các kiểu input Zenkaku và Hankaku. 1. Cài đặt gem 'mojinizer' 2. Sử dụng Các method được sử dụng để convert và detect đã được thêm vào class String sau khi ...

クリップ機能について
今回はClip機能について紹介します。 「こないだ良い記事を見つけたけど、どうやって検索したか忘れてしまった」 「読んでいる途中で急用が出来てしまい、どの記事だったか分からなくなってしまった」 といったようなことを経験したことのある方は結構いらっしゃると思います。 曖昧な記憶を頼りにキーワード検索してみたり、最新の投稿から順に探したりなど大量の記事の中から見つけるのはかなり大変です。 しかしVibloの「Clip機能」を使えば時間も手間もかけることなく、いつでも気になった記事を見返すことが出来ます。 使い方は簡単です。 気になる記事を見つけたら、ページ上部の右サイドバーにあ ...

Kiểm thử Agile và vai trò của kiểm thử viên Agile
Ngày nay, quy trình phát triển phần mềm Agile đang ngày càng khẳng định thế mạnh và tính hiệu quả của nó đối với các dự án phần mềm lớn nhỏ, nhằm nâng cao chất lượng của sản phẩm phần mềm và hỗ trợ quá trình phát triển. Đi cùng song song với nhiều quy trình phát triển phần mềm khác, thì ...

How to pass values between controllers in AngularJS
Sometimes we are in a situation where there is a need to pass values between controllers in AngularJS app. In this post I will show a way to do that by: Using factory or service to store data I think this is the best way to share values between controllers. So let's us create an example app to ...

Hướng dẫn sử dụng Chef
Trong loạt bài về Vagrant trên Viblo (link 1, link2), chúng ta đã tìm hiểu những khái niệm cơ bản về Chef, cũng như sử dụng các cookbook có sẵn trên mạng để tự động cài các package cần thiết. Trong bài viết này, mình sẽ giúp các bạn hiểu hơn về Chef để có thể tự tạo một cookbook cho riêng mình. ...

Cucumber cơ bản- Ngôn ngữ Gherkin
Cucumber là một công cụ kiểm thử tự động acceptance test dựa trên việc thực thi các functions. Kịch bản test unit (scenarios) sẽ được viết trước và thể hiện nghiệp vụ, sau đó source code mới được cài đặt để pass qua tất cả các stories đó. Ngôn ngữ được cucumber sử dụng là ...

Đồng bộ dữ liệu Core Data với Parse Service (Phần 1)
Ở trong bài viết trước tôi đã trình bày về cách tạo 1 ứng dụng lưu dữ liệu trực tiếp lên Parse Service, việc này giúp cho dữ liệu luôn được đồng bộ giữa nhiều thiết bị, tuy nhiên việc này có hạn chế là chương trình không thể hoạt động nếu không có mạng internet. Trên thực tế, các chương trình đều ...

[CakePHP] Xuất dữ liệu ra Excel sử dụng thư viện PHPExcel (p2)
Ở phần 1 tôi đã trình bày sơ qua về cách tích hợp PHPExcel vào CakePHP. Bài này tôi xin chia sẻ thêm một vài tính năng khác như cách thiết lập awidth, height của dòng cột, cố định vị trí dòng cột, hay style cho cell dữ liệu để nội dung được thân thiện hơn, hay phục vụ cho việc in ấn file. Việc ...

Vấn đề adjustViewBounds của ImageView trong API level 17 trở xuống
Chào các bạn, hôm nay mình muốn chia sẻ với các bạn một vấn đề nhỏ liên quan đến ImageView mình đã gặp phải trong quá trình làm. Có lẽ vấn đề này các bạn ít quan tâm vì ít dùng đến. Tuy nhiên, mình hi vọng khi các bạn gặp phải sẽ không mất thời gian để tìm hiểu giải quyết vấn đề. Vấn đề mình muốn ...

AWS CloudFormation
AWS CloudFormation AWS CloudFormation cung cấp cho các nhà phát triển và quản lý hệ thống một phương pháp khởi tạo và quản lý dễ dàng các nguồn tài nguyên AWS, cung cấp cũng như cập nhật chúng một cách có thứ tự và dễ dự đoán. Bạn có thể sử dụng các template mẫu của AWS CloudFormation hoặc sử ...

KVC and KVO in iOS
1. Introduction “KVC“ and “KVO” KVC (Key-Value-Coding) and KVO are one of the most popular concept that iOS’s developers usually listen about. But for understanding their meaning and how to use them the right way is very important for whom, who want to make your code ...

Human Reaction, Animal Reaction or React.Js
Creating an dynamic web application always involved working with Backend development Frontend development In the backend we need programming language such as PHP, Ruby, Python, Perl ...etc. That can run on server in order to generate webpage and send back to client . As for the ...

Top Pageについて
初回である今回はTop Pageの機能について紹介します。 まずは投稿上部のそれぞれのタブにどういった記事が表示されているかを紹介します。 ### New Posts ユーザーの投稿した最新の投稿が表示されています。 ### Follow 自分がフォローしているユーザーの投稿を新着順に表示しています。 ### Top Clips ユーザーにクリップされた回数が多い投稿順に並べられています。 有用な記事を素早く簡単に見つけることが出来ます。 クリップ機能について詳しくはこちら! ### Top ...

Java Synchronized Blocks
Khi chúng ta bắt đầu 2 hay nhiều Thread trong cùng 1 chương trình, có thể xảy ra tình huống nhiều Thread cố gắng truy cập vào cùng 1 file hay 1 đối tượng nhất định gây ra tình trạng xung đột dữ liệu, mất dữ liệu. Ví dụ, nếu nhiều luồng cố gắng để ghi vào cùng một tập tin, vì vậy tập tin có thể bị ...