onDataStructure();

One of the most common data structure in Flash is Array, which provides a fast way to construct a list of data items with compact memory cost. This data structure is working fine and rather fast, except for some operations, for example, insert / remove items randomly (splice) or pushing things to the beginning of the Arrays (unshift). Because of the compact memory implementation, all the existed items after the insert position will need to be migrated. With o(n) complexity, operated time goes up linearly with the number of items. And it’s just the same for Vector, although Vector is way faster than Array as there are no dense checking and converting between Dense Array & Hash Table (there are more reasons ? ). In short : Array is slowing down by items migration

A rather popular solution is using Linked List – either double or single. Linked list has ability to add and remove items very fast at an arbitrary position as no item is being migrated. Double linked list cost more memory (~ 1.5x ) and a bit slower than single Linked List (which, consume 2x more memory than Array) but it allows traversing in both direction. For some operations, the doubles run faster (~ 2x faster) than single ones. But as we won’t have random access to items by numeric indexes like Arrays, it’s really slow if we need to skip forward / backward to get to some random position. In short : Linked List is slowed down by skipping to specific position  Continue reading

A better AS3 Singleton implementation

As a developer we usually need to create libraries to reuse in various projects, most of them are of the manager style : one class (or instance) to handle all in coming tasks from various places, popular examples are : Tween engines, Loading services, 3D libraries, Sound processing library … The simplest implementation is the static-class-methods way.

I. THE STATIC CLASS METHODS IMPLEMENTATION :

Let’s have a look through a simple library class :

package {
	public class MyUtility {
		public static function methodA(): void {
			//do A things here
		}
		public static function methodB(): void {
			//do B things here
		}
	}
}

And its simple usage syntax

MyUtility.methodA();//call method A
MyUtility.methodB();//call method B

Continue reading

onGaiaFramework();

After using Gaia for a long time with numerous websites built, i can tell you that completely like it as the workflow is simplified so much, i really love the scaffolding, assets managements, contextMenu, event hijacking, routing, assetPath, tracking, binding expression, the complete integration of SWFAddress, SEO … everything ! But that’s not to say there are no more room to get improved. Let’s dig in for more details !

    Continue reading

First time on a Mac

Get used to Windows for many years and several times on Ubuntu but this is my first time to a Mac, i feel awkward getting the way through… there are some cool things and there are some bad things compared to windows OS, see it for yourself !

  1. There are no shift-delete and i can’t find a way to delete a file without move it to trash first, it takes time and not efficient.
  2. You can not show desktop (windows+D) without installing a utility (use F11 for quick windows hide)
  3. You can not use function keys for functions, just you it for the brightness / volume adjust … you will need to install a utility then (try function flip).
  4. You can force move files around by cmd+drag just like shift+drag/drop on windows
  5. You can force copy files by alt+drag just like ctrl+drag/drop on windows
  6. There are no end/home/pageUp/pageDown keys, use cmd+arrows instead
  7. The delete button actually is backspace, there are no pc-like delete button
  8. The mouse has only 1 button, want right click ? tap with two fingers
  9. Replace cmd for pc’s ctrl : cmd+c for copy, cmd+v for paste, cmd+x for cut (editor only, won’t work on Finder), cmd+z for undo
  10. Delete a file / folder : cmd+delete, just press delete won’t have any effect (why?)
  11. Need to scroll down / up a file ? hold 2 fingers on the mouse pad and move at the same time – just works exactly like your mouse wheel.
  12. Want to unzip a file ? double click onto it, the file will be extract to a folder. Want to view the content of the zip without extract ? you can’t do it without install a small utility. Want to zip a folder or a file ? right click, choose archive, a new archive.zip file will be created, you can change the name after that.
  13. You can read an NTFS drive from Mac but can not write to it, use some utility to enable write (with slow speed to be cared about)
  14. Disable creation of .DS_STORE and other .CLEAN_FILES files (only for network volumes): open terminal and type the following defaults write com.apple.desktopservices DSDontWriteNetworkStores true or use Tinker tool, any suggestion for completely remove .FILES for shared volumes between Mac + PC ? BlueHarvest ?

to be continued …

Anh còn nhớ

Trước mặt ba mẹ em, anh đã xiết tay em thật chặt, và luôn khẳng định sẽ ở bên, che chở cho em đến trọn đời.

Lần em buồn khi công việc không như ý, anh đến công ty em chỉ để gửi lá thư, có một dòng: “Can đảm lên, người yêu! Anh luôn bên em!”.

Anh còn nhớ, với gương mặt hỉ hả anh xách về cho em một túi cà chua và không ngừng kể công: “Cà chua sạch đấy!”. Quên sao được cảnh thi thoảng anh thức dậy kê lại cái gối chân cho vợ đang có bầu khỏi mỏi. Anh còn đảm đang dậy sớm nấu ăn sáng, để vợ ngủ thêm chút nữa, vì thương vợ khó ngủ.

Anh còn nhớ lần em buột miệng than khi trời đã tối khuya, rằng xe máy phanh hơi sâu và vào số hơi nặng? Anh không quản ngại, lôi đồ nghề ra chỉnh lại luôn, bởi sáng hôm sau phải đi làm sớm nhỡ không kịp.

Từng hành động quan tâm nhỏ cùng những tháng ngày hạnh phúc ấy, chẳng khi nào em quên. Còn anh? Continue reading

Bỏ lỡ

Có ít nhất một lần mình bỏ lỡ. Lần đầu tiên là bỏ lỡ một bàn tay. Một bàn tay con trai nhưng nhỏ nhắn, mỏng manh. Bỏ lỡ vì chỉ kịp nhìn chứ chưa lần nào chạm vào vì mong manh quá.

Cứ tưởng khi mình chạm vào đôi bàn tay kia sẽ vỡ tan như bong bóng xà phòng. Cứ tưởng khi mình chạm vào, đôi bàn tay ấy sẽ không còn dang rộng cho mình nữa. Vì muốn để dành nên mình chỉ đứng nhìn. Nhưng cuối cùng rồi thì mình cũng bỏ lỡ cơ hội duy nhất trong suốt 3 năm để nắm lấy đôi bàn tay nhỏ nhắn. Giờ thì đôi tay ấy đã trở nên mạnh mẽ hơn, to lớn hơn để có thể che chở cho một người khác, không phải mình.

Mình từng bỏ lỡ mơ ước. Từ lúc nhỏ mình mơ thành cô giáo. Mình thích mặc áo dài, thích cầm phấn trắng, thích đối diện với bảng đen, thích mỉm cười với những ánh mắt ngây thơ đang hướng nhìn mình. Cuối cùng mình bỏ lỡ ước mơ của chính mình vì ước mơ của người khác. Thấy hối tiếc nhiều lắm. Continue reading

Có bao lâu mà hững hờ?

“Anh à, hôm nay anh có về sớm không?” Thoáng nghe thấy giọng vợ rụt rè hỏi trong máy, anh thấy thương sao là thương. Vậy mà trước kia, có khi anh cũng bẳn gắt với chị vài câu, kiểu như: “hai mẹ con cứ chủ động cơm nước đi, đợi anh làm gì…”.

Ta từng sống rất thờ ơ

Anh giỏi chuyên môn, nắm giữ vị trí cao trong công ty. Anh rất yêu nghề, say mê công việc và có một khả năng làm việc cực kỳ bền bỉ. Những lúc công việc quá gấp gáp, anh phải làm liên tục 3-4 đêm mà chỉ ngủ vài tiếng đồng hồ.
Việc cơ quan thì như vậy, về đến nhà, với quỹ thời gian ít ỏi của một ngày, anh dành hết cho cái tivi và máy tính. Có hàng ngàn thông tin mà anh muốn cập nhật, có hàng trăm trang web mà anh muốn xới tung lên. Đấy là chưa kể bạn đồng nghiệp của anh thường xuyên trong tình trạng online, muốn cùng anh bàn bạc công việc…
Thi thoảng anh cũng nghe thấy chị trách móc anh ít quan tâm tới chị và con. Khi ấy anh tự hứa với bản thân sẽ để ý chăm sóc gia đình hơn. Nhưng rồi đâu lại vào đấy. Với anh, cả công việc lẫn gia đình nhỏ của mình đều quan trọng như nhau, chỉ có điều đã thành thói quen, anh phó thác tất cả việc nhà cho vợ.

Rồi cuộc sống cứ thế tiếp diễn như nó vốn như vậy. Continue reading