Category Archives: Programming C++/VB/Java …

Sublime Text 2 thật tuyệt vời

Sau 1 ngày vọc Sublime Text 2, dù chỉ xài bản unregistered của nó nhưng thực sự mình cảm thấy rất hay ‘falling in love with Sublime’ !
Nhưng để dùng nó thực sự không dễ, sau đây là 1 số kinh nghiệm của mình, sẽ share ra cho các bạn, ai có idea gì hay chỉ mình với nhé.

1) Tuy là bản unregistered nhưng xài thoải mái, thỉnh thoảng sublime text mới hiện lên pop-up báo là bạn đang dùng thử, vui lòng mua, vậy thôi.

2) Về Plugin của Sublime Text 2 mà mình đang dùng: là 1 dev php, mình cần những plugin để giúp mình hoàn thành công việc, do đó mình chọn plugin sau: Package manager, Alignment, Jdoc, Jslint, CodeIntel (Đặc biệt là thằng này rất hay).
Các Plugin đều rất dễ install và sử dụng, duy chỉ có Jslint và Code Intel là hơi khổ 1 tí.
a) Jslint bạn phải cấu hình cho nó chạy oke. Mình chỉ cấu hình đơn giản như sau:

{
    // Options pass to jslint.
    "jslint_options": "--regexp --white --sloppy"
}

Continue reading Sublime Text 2 thật tuyệt vời

A Beginner’s Guide to Ruby

Từ: http://coding.smashingmagazine.com/2012/05/24/beginners-guide-ruby/
Ruby is an object-oriented language. What does that even mean? It has unique quirks and characteristics that we’ll explain clearly. This article assumes that you have no programming experience, not even HTML.
An important skill to have when creating a program is translating — translating the desires of the user into the output they are looking for. In order to do that, you have to be able to think like a developer so that you can take what you know instinctively (as a user) and morph it into what the computer needs to be able to do what you want. So, we’ll help you start thinking like a developer. When you are done, you should have a mental model of how Ruby works and be on your way to becoming a successful Rubyista.
We’ll take you through a variety of the fundamental elements of the Ruby language and explain the whys behind the hows. Continue reading A Beginner’s Guide to Ruby

Thuật toán để tránh đệ quy trong Ext Js 4

Đôi khi trong lập trình ta buộc phải dùng đệ quy để giải các bài toán về multilevel. Cứ gọi mãi 1 function cho tới khi đạt được mục đích thì thôi. Nhưng với những data lớn thì gọi đệ quy rất nguy hiểm vì sẽ gây ra stack overflow. Để giải quyết trường hợp trên, ta có thể xử lý như sau:

Ví dụ code của chúng ta là:

insertChildMultiLevel: function (rootNode, trees) {
	var node;
	Ext.each(trees, function (tree) {
		node = rootNode.appendChild(Ext.apply(Ext.clone(tree), {
			children: []
		}));
		if (Ext.isArray(tree.children)) {
			this.insertChildMultiLevel(node, tree.children);
		}
	}, this);
}

Continue reading Thuật toán để tránh đệ quy trong Ext Js 4

“Always use the selected program to open this kind of file” is gray

How can I enable “Always use the selected program to open this kind of file” option in Open With dialog box?

—————

Sorry for this reply I realise this topic has been asleep for 3 months but I have recently discovered how to fix a similar problem on my PC and hope it will do the same for the original poster.
Continue reading “Always use the selected program to open this kind of file” is gray

Enabling DreamWeaver to search through INI and CSV or other Extensions

* Dreamweaver CS5 on Windows Seven 7:
C:\Users\woshka\AppData\Roaming\Adobe\Dreamweaver CS5\en_US\Configuration
* Dreamweaver CS3 on Windows Vista:
C:\Users\[username]\AppData\Roaming\Adobe\Dreamweaver 9\Configuration
* Dreamweaver 8 on Windows Vista:
C:\Users\[username]\AppData\Roaming\Macromedia\Dreamweaver 8\Configuration
* Dreamweaver CS3 on Windows XP:
C:\Documents and Settings\[username]\Application Data\Adobe\Dreamweaver 9\Configuration
* Dreamweaver 8 on Windows XP & 2000:
C:\Documents and Settings\[username]\Application Data\Macromedia\Dreamweaver 8\Configuration
* Dreamweaver CS3 on Mac OS X:
Mac HD:Users:[username]:Library:Application Support:Adobe:Dreamweaver 9:Configuration
* Dreamweaver 8 on Mac OS X:
Mac HD:Users:[username]:Library:Application Support:Macromedia:Dreamweaver 8:Configuration
———
Open code view:
* Dreamweaver CS5 on Windows Seven 7:
C:\Program Files\Adobe\Adobe Dreamweaver CS5\configuration\DocumentTypes\MMDocumentTypes.xml
VD : Add new 1 extension less lên css extension :
+ Tìm id=”css”, thêm như sau :
<documenttype id="CSS" internaltype="Text" winfileextension="css,less” macfileextension=”css,less” file=”Default.css” writebyteordermark=”false” mimetype=”text/css” >
Note: Dreamweaver CS5.5 users also need to do this for C:\Users\\AppData\Roaming\Adobe\Dreamweaver CS5.5\en_US\Configuration\DocumentTypes\MMDocumentTypes.xml

Code duyệt cây nhị phân tìm kiếm – C++

#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;alloc.h&gt;

typedef int element_type;
typedef struct node {
element_type element;
struct node *left, *right;
} NODE;
<!--more-->
NODE *root;

void khoi_tao_cay(NODE ** root)
{
*root = NULL;
}

void insert(NODE *tmp, NODE **root)
{

if (tmp-&gt;element &lt; (*root)-&gt;element)
if ((*root)-&gt;left)
insert(tmp, &amp;(*root)-&gt;left);
else
(*root)-&gt;left = tmp;
else
if ((*root)-&gt;right)
insert(tmp, &amp;(*root)-&gt;right);
else
(*root)-&gt;right = tmp;
}

void insert_node(element_type e, NODE **root)
{
NODE *tmp;

tmp = (NODE *)malloc(sizeof(NODE));
tmp-&gt;element = e;
tmp-&gt;left = NULL;
tmp-&gt;right = NULL;
if (*root == NULL)
*root = tmp;
else
insert(tmp, root);
}

void nhap_cay(NODE **root)
{
element_type e;
do {
printf("\nNhap element (-1 de ket thuc) : ");
scanf("%d", &amp;e);
if (e != -1)
insert_node(e, root);
} while (e != -1);
}

void NLR(NODE *root)
{
if (root != NULL)
{
printf("%d ", root-&gt;element);
NLR(root-&gt;left);
NLR(root-&gt;right);
}
}

void NRL(NODE *root)
{
if (root != NULL)
{
printf("%d ", root-&gt;element);
NRL(root-&gt;right);
NRL(root-&gt;left);
}
}

void LNR(NODE *root)
{
if (root != NULL)
{
LNR(root-&gt;left);
printf("%d ", root-&gt;element);
LNR(root-&gt;right);
}
}

void LRN(NODE *root)
{
if (root != NULL)
{
LRN(root-&gt;left);
LRN(root-&gt;right);
printf("%d ", root-&gt;element);
}
}

void RNL(NODE *root)
{
if (root != NULL)
{
RNL(root-&gt;right);
printf("%d ", root-&gt;element);
RNL(root-&gt;left);
}
}

void RLN(NODE *root)
{
if (root != NULL)
{
RLN(root-&gt;right);
RLN(root-&gt;left);
printf("%d ", root-&gt;element);
}
}

void main()
{
khoi_tao_cay(&amp;root);
nhap_cay(&amp;root);
printf("\nDuyet cay NLR : ");
NLR(root);
printf("\nDuyet cay NRL : ");
NRL(root);
printf("\nDuyet cay LNR : ");
LNR(root);
printf("\nDuyet cay LRN : ");
LRN(root);
printf("\nDuyet cay RNL : ");
RNL(root);
printf("\nDuyet cay RLN : ");
RLN(root);
getch();
}