近期留言
No comments to show.
Speed up ActiveMQ performance by 25x
Sometimes we encounter the performance issue for persistent messaging using ActiveMQ.
Here’s the best practice on Linux system to accelerate it.
Posted in ActiveMQ
Leave a comment
使用 git worktree 建立多個工作區
Posted in git
Leave a comment
Materials for Neural Network
Some materials are enclosed here.
1. 深度學習(二): 反向傳播 URL:http://chansh518.github.io/deep%20learning/2016/08/08/Deep-Learning-Notes-Backpropagation.html
2. 一文看懂常用的梯度下降算法 URL: https://blog.csdn.net/u013709270/article/details/78667531
3. 邏輯回歸代價函數及其梯度下降公式 URL: https://blog.csdn.net/Mr_HHH/article/details/78934793
4. The Back Propagation Algorithm. URL: https://page.mi.fu-berlin.de/rojas/neural/chapter/K7.pdf
5. Derivation of Back Propagation Algorithm for Forward Neural Networks. URL: http://www.cs.put.poznan.pl/pliskowski/pub/teaching/eio/lab1/eio-supplementary.pdf
6. 凸優化 梯度下降。URL: http://www.hanlongfei.com/凸优化/2015/09/29/cmu-10725-gradient/
7. Geadient Descent demystified. URL: https://towardsdatascience.com/gradient-descent-demystified-bc30b26e432a
8. An introduction to gradient descent and linear regression. URL: https://spin.atomicobject.com/2014/06/24/gradient-descent-linear-regression/
Posted in 未分類
Leave a comment
It’s time to push my career forward
After a long time, almost 3 months, I’ve done my PhD degree. In the past, I could not image that I get my PhD. Thanks for my supervisor’s and family’s great supports. I did it!
Through the training of PhD, making things clear and be systematic are not the difficult parts anymore for me. But, I deeply felt that doing research tasks and engineering works was the most difficult part!
Now, I am a software engineer of an international corporate.
For me, doing both engineering and research work is better than doing only researches!
Now, it’s time to push my career forward.
Posted in 未分類
Leave a comment
Build your service using Pritunl and Lets Encrypt
Pritunl is an open source enterprise VPN platform which is used to easily build free VPN service.
It is built on the top of TLS/SSL protocol and is not easily banned by some countries. 🙂
However, by the default settings of its tutorial, the generated TLS certificate for Pritunl is not recognized by browsers because its certificate is not authorized by third-party CA.
To mitigate the effect, Let’s Encrypt, the well-known CA, is considered as the best choice for end-users.
This post briefs how to setup Let’s Encrypt’s SSL certificate and setup Pritunl on Ubuntu 14.04. You can follow the following easy steps to build your own VPN service.
- Go to Let’s Encrypt and apply for a certificate by the certbot script.
- If you are using apache, nginx or Plesk, please stop and remove it first. Otherwise, the later Pritunl will have a conflict on port 80.
- Follow the post of Vultr to setup Pritunl.
- Congratulations! You have your own VPN service.
Trouble Shotting
If your Pritunl service cannot normally start, please check Pritunl’s log in /var/log/pritunl.log. If the log displays the message like “127.0.0.1:27001 connection refused”, please check MongoDB’s log messages in /var/log/mongodb/mongod.log. You may find the following texts in the log file:
ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongo/journal or use –smallfiles
It seems that the disk space is not enough for running MongoDB and it will impact the service of Pritunl. To solve this issue, please add the following configuration in the configuration file (it is generally put in /etc/mongod.conf) of MongoDB.
mmapv1:
smallFiles: true
Then, restart MongoDB service by the command: service mongod restart
Finally, you may normally activate the Pritunl service.
Posted in Linux, VPN
Leave a comment
Math Editor in C#
When you are acquiring to integrate a math editor into your application in WPF (Windows Presentation Foundation), I recommend you to use this math editor project called OOP in the Real World – Creating an Equation Editor in Code Project platform.
However, the source code put in Code Project is out of date. If you want a new version of the source code and start to program it, I give the instructions for you as follows:
- Download the Math_Editor_1.0.6.5.zip from http://www.codeproject.com/KB/architecture/522345/Math_Editor_1.0.6.5.zip then get ICSharpCode.SharpZipLib.dll after extracting this zip file.
- Download the source codes from https://github.com/kashifimran/math-editor/releases. You can choose any relase version. In fact, I have tested the source codes with both versions 1.0.6.5 and 1.0.6.6 and they work.
- Extract the source codes and open the project solution.
- Put ICSharpCode.SharpZipLib.dll in your project if there’s no library refering to ICSharpCode.SharpZipLib.
- Right click on this project then click the item ‘project properties’.
- Click the tab “Signing” then cancel the clickbox called “Sign the assembly”.
Afterall, you will build this project successfully.
Posted in C, Programming, WPF
Leave a comment
Install CKAN 2.5 on Ubuntu 14.04 LTS
Author: Jyun-Yao Huang (Allen; allen501pc@gmail.com)
System Environment: Ubuntu Linux 14.04 LTS (64bits)
1. Update the metadata of packages
$ sudo apt-get update |
2. Install apache2, nginx, apache’s module wsgi and the library of postgres- libpq5.
$ sudo apt-get install -y nginx apache2 libapache2-mod-wsgi libpq5 |
3. Download deb-package of python-ckan.
There are two ways to get CKAN deb package.
First, here you can download my provided deb package in the cloud storage. URL: https://drive.google.com/file/d/0B6PKt2-xNai_QlNfdEZfY05JRlE/view?usp=sharing
Or, download it from CKAN official site.
$ wget http://packaging.ckan.org/python-ckan_2.5-trusty_amd64.deb |
4. Install the package.
$ sudo dpkg -i python-ckan_2.5-trusty_amd64.deb |
5. Install postgresql.
$ sudo apt-get install postgresql |
6. Check the encoding format of Postgresql is UTF-8.
$ sudo -u postgres psql -l |
7. Create the database account and the corresponding database. In this case, the account is ckan_default and the database is also called ckan_default.
Please remember your password of your database account.
$ sudo -u postgres createuser -S -D -R -P ckan_default |
8. Edit the file at /etc/ckan/default/production.ini with super user’s permission. Check the settings below:
sqlalchemy.url = postgresql://ckan_default:pass@localhost/ckan_default |
Please replace words in bold with the password of your created account for Postgresql.
9. Create the fold for CKAN storage. Type the following command to create storage.
$ sudo mkdir /var/lib/ckan |
10. Edit the file at /etc/ckan/default/production.ini with super user’s permission. Check the settings below:
ckan.storage_path = /var/lib/ckan |
11. Download Solr 5.4.1
Warning: Form the CKAN official guide, if you install solr-jetty in Ubuntu 14.04, the JSP of Solr will not be supported. We have to install Solr.
There are two ways to get Solr package.
First, here you can download my provided Solr package in the cloud storage. URL: https://drive.google.com/open?id=0B6PKt2-xNai_Tm9sSnJoZmx1VW8
Or download it from Solr’s site.
$ wget http://apache.mirror1.spango.com/lucene/solr/5.4.1/solr-5.4.1.tg |
12. Install Solr 5.4.1
$ tar xzf solr-5.4.1.tgz solr-5.4.1/bin/install_solr_service.sh –strip-components=2 |
13. Prepare the CKAN’s schema for Solr
In this case, we prepare a core named ckan for Solr.
$ sudo su |
14. [Support of Chinese Segmentation] Download the libraries for supporting Chinese segmentation in Solr. There are two packages: mmseg4j-core-x.y.z.jar and mmseg4j-lang-x.y.z.jar to be downloaded. I’ve prepared the zipped file – mmseg4j.zip at https://drive.google.com/open?id=0B6PKt2-xNai_a1luR20wQ0JtenM.
15. [Support of Chinese Segmentation] After downloading mmseg4j.zip and unzipping it into mmseg4j-core-1.10.0.jar and mmseg4j-solr-2.3.0.jar, upload JARs under the folder – /opt/solr/server/solr-webapp/webapp/WEB-INF/lib.
16. [Support of Chinese Segmentation]Modify the schema file at /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml to let Solr support Chinese segmentation.
<fieldType name=”text” class=”solr.TextField” positionIncrementGap=”100″> |
17. Restart Solr.
$ sudo service solr restart |
18. Serve the following URL to create the core called ckan via your browser.
http://127.0.0.1:8983/solr/admin/cores?action=CREATE&name=ckan&configSet=ckan
19. Edit the file at /etc/ckan/default/production.ini with super user’s permission. Check the setting for Solr below:
solr_url = http://127.0.0.1:8983/solr/ckan |
In this case, ckan is the core we used in Solr, so we add ckan as suffix of the URL.
20. Initialize your database. We have to use VirtualEnv which is a virtual environment written in Python. Here, (virtualEnv) is the mark for denoting you are in VirtualEnv.
$ . /usr/lib/ckan/default/bin/activate |
21. Create Administrator for CKAN.
$ . /usr/lib/ckan/default/bin/activate |
22. Restart apache2 and nginx.
$ sudo service apache2 restart |
After that, you will get the following CKAN site.
Support of SSL
With the support of SSL, we can enhance the security of CKAN.
First, we have to apply for an SSL certificate. For freelancers, we can request the SSL certificate from Let’s Encrypt. The method of applying such certificate has been introduced in the official site of Let’s Encrypt. Interested readers can refers to its documents.
After getting an SSL certificate, please following the instructions in the post: Setting up CKAN with SSL.
REFERENCE
- CKAN, “Installing CKAN from Package,” CKAN. [Online]. Available: http://docs.ckan.org/en/latest/maintaining/installing/install-from-package.html
- CKAN, “Installing CKAN from Source,” CKAN. [Online]. Available: http://docs.ckan.org/en/latest/maintaining/installing/install-from-source.html
- Koen Vlasinkel, “How to Install Solr 5.2.1 on Ubuntu 14.04,” Digital Ocean Community. [Online]. Available: https://www.digitalocean.com/community/tutorials/how-to-install-solr-5-2-1-on-ubuntu-14-04
- Hvwaldow, “How to Upgrade to SOLR 5.3.1 on Debian Jessie for Use with CKAN,” CKAN. [Online]. Available: https://gist.github.com/hvwaldow/67fecf80a9790b5c9153#filesolr-upgrade-md
- CKAN2 安裝教學. URL: http://ckan-docs-tw.readthedocs.io/zh_TW/2.4/install.html
- CKAN, “Setting up CKAN with SSL,”. [Online]. Available: https://github.com/ckan/ckan/wiki/SSL
Posted in CKAN, Security
Leave a comment
[WordPress] A Method for combining both of plain and custom URLs
In WordPress, we usually set the custom URLs for the purpose of SEO.
For the old plain URLs which are previously published to other sites, we should maintain them by redirecting to the new custom URLs.
The htaccess setting can simply do the redirection to a static page, such as response 404 not found or see other new site. Sometimes, we don’t know how many old plain urls are published. It cannot fulfill our needs for mapping the old plain URLs to the corresponding new URLs. For example, we want to create the following rules of redirections:
redirect http://example.com/?p=123 to http://example.com/custom/link
redirect http://example.com/?p=456 to http://example.com/the/other_links
There may be more old URLs we don’t be aware of are published. A general soluton is to keep both of the plain and custom URLs.
In this case, we use add_filter function provided by WordPress.
Navigate your directory of currently used theme and find functions.php and put a piece of codes as follows:
function compatible_link( $postlink, $redirect) {
$id = get_query_var('p', -1);
if($id !== -1 && is_numeric($id)) {
return get_permalink($id);
}
return $postlink;
}
add_filter('post_type_link', 'compatible_link', 10, 2);
Done! Enjoy your website.
REFERENCE:
- Rewriting URLs in WordPress: Tips and Plugins. URL: http://www.hongkiat.com/blog/wordpress-url-rewrite/
- WordPress的Hook機制與原理. URL: http://www.mrmu.com.tw/2011/10/10/wordpress-hook/
- Custom post type with post_id in permalink structure. URL: https://wordpress.org/support/topic/custom-post-type-permalink-structure
- Custom Login Url with plain permalink format. URL: https://wordpress.org/support/topic/custom-login-url-with-plain-permalink-format
- Function Reference/get query var. URL:https://codex.wordpress.org/Function_Reference/get_query_var
- CREATING CUSTOM PERMALINKS IN WORDPRESS. URL:http://wp-events-plugin.com/tutorials/creating-custom-permalinks-in-wordpress/
Posted in PHP, Web Design, wordpress, 程式設計, 網頁撰寫
Leave a comment
HTML Specification Standard
https://html.spec.whatwg.org
The version of HTML specification description is greater than W3C’s.
Posted in HTML, Web Design
1 Comment
How to install SSL on CKAN
Please refer to the configuration files: https://gist.github.com/nigelbabu/076ad12c13b2071de8e1
Related references:
Posted in CKAN, Software
13 Comments