async-http-client, https://github.com/AsyncHttpClient/async-http-client, accessed Oct 2023.
Some threads on StackOverflow: https://stackoverflow.com/questions/16539245/java-equivalent-of-c-sharp-async-await, https://stackoverflow.com/questions/16349797/can-asynchttpclient-perform-non-blocking-async-http-calls?rq=3, https://stackoverflow.com/questions/3142915/how-do-you-create-an-asynchronous-http-request-in-java?rq=3
Other references: https://onecompiler.com/cheatsheets/async-http-client, https://www.tornadoweb.org/en/stable/httpclient.html, http://www.java2s.com/example/java-api/org/apache/http/impl/nio/client/closeablehttpasyncclient/index.html
DCA - Dollar-cost averaging - is an investment strategy in which an investor divides up the total amount to be invested across periodic purchases of a target asset in an effort to reduce the impact of volatility on the overall purchase.
Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
Bạn muốn display một modal dialog khi click vào một cụm từ, liên kết trên trang web. Model dialog, mà theo kiến thức hạn hẹp của nhiều người, có thể hiểu là một pop-up window, thường mang nghĩa lạm dụng, xấu vì cho rằng chỉ dùng để hiển thị những quảng cáo. Tuy nhiên, modal dialog được sử dụng khá thường xuyên trên những trang web có những nội dung mà bạn chỉ cần hiển thị một hộp thoại để giải thích thêm nội dung đó, xem như một chú thích mở rộng.
Có nhiều cách để thực hiện mục đích này, theo kiến thức hiện có của tôi nghĩ. Những front-end developing framework like Bootstrap (Bootstrap JS Modal Reference, example, Edit fiddle - JSFiddle), Foundation (Reveal Modal | Foundation Docs) đều hỗ trợ cách tạo một pop-up windows theo cách riêng nhưng nền tảng kĩ thuật đều dựa theo jquery-ui.
Cách mà tôi đã sử dung là dùng jquery-ui. Đọc thêm về jquery-ui ở đây: Dialog | jQuery UI
Bạn có thể tham khảo ứng dụng mình đang viết ở đây: Model Search, chức năng autocomplete thể hiện trên các ô tìm kiếm của faceted search. Công nghệ bên dưới là jQuery, bản chất là search text/string và cách tìm kiếm dựa trên những selector được định nghĩa trước qua những css classes. Đi theo cách này có một số thư viện như:
Cũng trong dự án mình đang làm, những tính năng như tìm kiếm người dùng để thêm vào một nhóm, tìm kiếm collaborator để chia sẻ model... đều đang được cài đặt dựa trên backbone và underscore.
Dùng AngularJS với tính năng filter
Nếu bạn đã từng sử dụng AngluarJS để phát triển web, filter cực kì hữu dụng để search thông tin.
Link nay chay tot: https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-14-04 Otherwise, need to adjust JVM for Tomcat: http://wiki.razuna.com/display/ecp/Adjusting+Memory+Settings+for+Tomcat
Often, when you’ve been working on part of your project, things are in a messy state and you want to switch branches for a bit to work on something else. The problem is, you don’t want to do a commit of half-done work just so you can get back to this point later. The answer to this issue is the git stashcommand.
Stashing takes the dirty state of your working directory — that is, your modified tracked files and staged changes — and saves it on a stack of unfinished changes that you can reapply at any time.
To demonstrate, you’ll go into your project and start working on a couple of files and possibly stage one of the changes. If you run git status, you can see your dirty state:
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
#
# modified: lib/simplegit.rb
#
Now you want to switch branches, but you don’t want to commit what you’ve been working on yet; so you’ll stash the changes. To push a new stash onto your stack, run git stash:
$ git stash
Saved working directory and index state \
"WIP on master: 049d078 added the index file"
HEAD is now at 049d078 added the index file
(To restore them type "git stash apply")
Your working directory is clean:
$ git status
# On branch master
nothing to commit, working directory clean
At this point, you can easily switch branches and do work elsewhere; your changes are stored on your stack. To see which stashes you’ve stored, you can use git stash list:
$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log
In this case, two stashes were done previously, so you have access to three different stashed works. You can reapply the one you just stashed by using the command shown in the help output of the original stash command: git stash apply. If you want to apply one of the older stashes, you can specify it by naming it, like this: git stash apply stash@{2}. If you don’t specify a stash, Git assumes the most recent stash and tries to apply it:
$ git stash apply
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
#
# modified: index.html
# modified: lib/simplegit.rb
#
You can see that Git re-modifies the files you uncommitted when you saved the stash. In this case, you had a clean working directory when you tried to apply the stash, and you tried to apply it on the same branch you saved it from; but having a clean working directory and applying it on the same branch aren’t necessary to successfully apply a stash. You can save a stash on one branch, switch to another branch later, and try to reapply the changes. You can also have modified and uncommitted files in your working directory when you apply a stash — Git gives you merge conflicts if anything no longer applies cleanly.
The changes to your files were reapplied, but the file you staged before wasn’t restaged. To do that, you must run the git stash apply command with a --index option to tell the command to try to reapply the staged changes. If you had run that instead, you’d have gotten back to your original position:
$ git stash apply --index
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
#
# modified: lib/simplegit.rb
#
The apply option only tries to apply the stashed work — you continue to have it on your stack. To remove it, you can run git stash drop with the name of the stash to remove:
$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log
$ git stash drop stash@{0}
Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)
You can also run git stash pop to apply the stash and then immediately drop it from your stack.
In some use case scenarios you might want to apply stashed changes, do some work, but then un-apply those changes that originally came from the stash. Git does not provide such a stash unapplycommand, but it is possible to achieve the effect by simply retrieving the patch associated with a stash and applying it in reverse:
$ git stash show -p stash@{0} | git apply -R
Again, if you don’t specify a stash, Git assumes the most recent stash:
$ git stash show -p | git apply -R
You may want to create an alias and effectively add a stash-unapply command to your Git. For example:
$ git config --global alias.stash-unapply '!git stash show -p | git apply -R'
$ git stash apply
$ #... work work work
$ git stash-unapply
If you stash some work, leave it there for a while, and continue on the branch from which you stashed the work, you may have a problem reapplying the work. If the apply tries to modify a file that you’ve since modified, you’ll get a merge conflict and will have to try to resolve it. If you want an easier way to test the stashed changes again, you can run git stash branch, which creates a new branch for you, checks out the commit you were on when you stashed your work, reapplies your work there, and then drops the stash if it applies successfully:
$ git stash branch testchanges
Switched to a new branch "testchanges"
# On branch testchanges
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
#
# modified: lib/simplegit.rb
#
Dropped refs/stash@{0} (f0dfc4d5dc332d1cee34a634182e168c4efc3359)
This is a nice shortcut to recover stashed work easily and work on it in a new branch.
Federated search is an information retrieval technology that allows the simultaneous search of multiple searchable resources. A user makes a single query request which is distributed to the search engines, databases or other query engines participating in the federation.
If you've heard of Network Attached Storage - sometimes shortened to NAS - but aren't sure what it's all about, then read on for our quick guide to the basics...
What is Network Attached Storage (NAS)?
We all know we can connect a USB External Hard Drive to our computer and immediately create additional storage for data or backup, but when it comes to efficient data management, there is perhaps a better way… to use Network Attached Storage or NAS for short.
Why Choose Network Attached Storage (NAS)?
External Hard Drives are a great way to quickly and conveniently create additional storage via a simple USB connection to your computer. However such devices are often restricted to use at the specific computer to which they’re connected and by the specific person using that computer. All good and well, but what if you need to share the content and files?
The answer lies in Network Attached Storage. Instead of connecting directly to an individual desktop or laptop computer, a NAS server connects to your wireless router. This effectively allows multiple users from multiple computers to access and share the content and files stored on it. Just one copy of your files, in one accessible place!
Power-line communication (PLC) is a communication protocol that uses electrical wiring to simultaneously carry both data, and Alternating Current (AC) electric power transmission or electric power distribution. It is also known as power-line carrier, power-line digital subscriber line (PDSL), mains communication, power-line telecommunications, or power-line networking (PLN).
A wide range of power-line communication technologies are needed for different applications, ranging from home automation to Internet access which is often called broadband over power lines (BPL). Most PLC technologies limit themselves to one type of wire (such as premises wiring within a single building), but some can cross between two levels (for example, both the distribution network and premises wiring). Typically transformers prevent propagating the signal, which requires multiple technologies to form very large networks. Various data rates and frequencies are used in different situations.
A number of difficult technical problems are common between wireless and power-line communication, notably those of spread spectrum radio signals operating in a crowded environment. Radio interference, for example, has long been a concern of amateur radio groups.[1]
Tiếng Pháp là:
La communication par courants porteurs en ligne (ou CPL) permet de construire un réseau informatique sur le réseau électrique d'une habitation ou d'un bureau, voire d'un quartier ou groupe de bureaux. Cette idée apparue dans les années 19301 a fait l'objet de nombreuses applications (pour la domotique et l'informatique notamment), et dont les développements récents pourraient être les prémices d'unréseau électrique intelligent annoncé par de nombreux prospectivistes, dont Jeremy Rifkin1 dans le cadre de son projet de troisième révolution industrielle. Des courants à basse et moyenne tension sont aujourd'hui couramment utilisés pour porter des informations.
Where's Wally? (known in the United States and Canada as Where's Waldo?) is a series of children's books created by the English illustrator Martin Handord. The books consist of a series of detailed double-page spread illustrations depicting dozens or more people doing a variety of amusing things at a given location. Readers are challenged to find a character named Wally hidden in the group. Wally's distinctive red-and-white-stripped shirt, bobble hat and glasses make him slightly easier to recognise, but many illustrations contain red herrings involving deceptive use of red-and-white stripped objects.
Link 1: Not work in my computer. https://github.com/ntung/Codeigniter-login-logout-register Link 2: Work well but need to change some things. Link: http://www.kodingmadesimple.com/2014/08/how-to-create-login-form-codeigniter-mysql-twitter-bootstrap.html
CREATETABLEIF NOT EXISTS `users` (
`id`int(11) unsigned NOT NULL AUTO_INCREMENT,
`username`varchar(255) NOT NULL DEFAULT '',
`email`varchar(255) NOT NULL DEFAULT '',
`password`varchar(255) NOT NULL DEFAULT '',
`avatar`varchar(255) DEFAULT 'default.jpg',
`created_at` datetime NOT NULL,
`updated_at` datetime DEFAULT NULL,
`is_admin`tinyint(1) unsigned NOT NULL DEFAULT '0',
`is_confirmed`tinyint(1) unsigned NOT NULL DEFAULT '0',
`is_deleted`tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
);
CREATETABLEIF NOT EXISTS `ci_sessions` (
`id`varchar(40) NOT NULL,
`ip_address`varchar(45) NOT NULL,
`timestamp`int(10) unsigned DEFAULT 0NOT NULL,
`data` blob NOT NULL,
PRIMARY KEY (id),
KEY `ci_sessions_timestamp` (`timestamp`)
);
create table ci_session if we modify in config.php
Why? Please see here: http://forum.codeigniter.com/thread-50019-page-2.html
Before we finish this chapter on basic Git, there’s just one little tip that can make your Git experience simpler, easier, and more familiar: aliases. We won’t refer to them or assume you’ve used them later in the book, but you should probably know how to use them.
Git doesn’t automatically infer your command if you type it in partially. If you don’t want to type the entire text of each of the Git commands, you can easily set up an alias for each command using git config.Here are a couple of examples you may want to set up:
This means that, for example, instead of typing git commit, you just need to type git ci. As you go on using Git, you’ll probably use other commands frequently as well; don’t hesitate to create new aliases.
This technique can also be very useful in creating commands that you think should exist. For example, to correct the usability problem you encountered with unstaging a file, you can add your own unstage alias to Git:
$ git config --global alias.unstage 'reset HEAD --'
This makes the following two commands equivalent:
$ git unstage fileA
$ git reset HEAD -- fileA
This seems a bit clearer. It’s also common to add a last command, like this:
$ git config --global alias.last 'log -1 HEAD'
This way, you can see the last commit easily:
$ git last
commit 66938dae3329c7aebe598c2246a8e6af90d04646Author: Josh Goebel <dreamer3@example.com>Date: Tue Aug 26 19:48:51 2008 +0800 test for current head Signed-off-by: Scott Chacon <schacon@example.com>
As you can tell, Git simply replaces the new command with whatever you alias it for. However, maybe you want to run an external command, rather than a Git subcommand. In that case, you start the command with a ! character. This is useful if you write your own tools that work with a Git repository. We can demonstrate by aliasing git visual to run gitk:
Khi gõ tiêu đề tiếng Việt, url_title hàm này chuyển đổi không được mượt mà cho lắm. Thành ra, chúng ta sử dụng thêm hàm convert_accented_characters(). Hàm tiện dùng nằm trong thư viện text nên phải nạp nó trước khi dùng.
Tôi muốn thay đổi kiểu dữ liệu cho một cột trước đó khai báo là varchar(255). Để giải thích tại sao phải đổi thành text hay bất kì kiểu gì khác có kích thước lớn hơn, cần hiểu sự khác biệt của chúng.
I need to know what are the differences of the following data types in mysql:
varchar(255) vs tinytext/tinybob
varchar(255) vs blob/text
The link http://stackoverflow.com/questions/7755629/varchar255-vs-tinytext-tinyblob-and-varchar65535-vs-blob-text explains those