Don’t overuse hashtag. Use it wisely:
- Twitter: use 2 hashtags only to boost performance
- Instagram: use 11 hashtags is optimal
- Facebook: no need to use hashtag, use it might reduce view reach. If have to use, just 2 at most
Don’t overuse hashtag. Use it wisely:
1. Ran a series of tests that verified Google is able to execute and index JavaScript with a multitude of implementations. Confirmed Google is able to render the entire page and read the DOM, thereby indexing dynamically generated content.
2. SEO signals in the DOM (page titles, meta descriptions, canonical tags, meta robots tags, etc.) are respected. Content dynamically inserted in the DOM is also crawlable and indexable. Furthermore, in certain cases, the DOM signals may even take precedence over contradictory statements in HTML source code. This will need more work, but was the case for several of our tests.
Read more here: http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157
You can now play the classic game PAC-MAN in Google Maps with real streets as the maze.
Please note that this game will only be around for a little while.
more is not necessarily better and that our go-go-go culture, left unchecked, will push us not only beyond our MED — but beyond the “maximum tolerated dose,” the level at which an activity (or drug) becomes toxic and starts causing an adverse reaction.
http://lifehacker.com/streamline-productivity-with-the-minimum-effective-dos-1689755401
You should know most of these if you want to be called Senior .NET developer in Vietnam labor market. In return might be 1300$+++ net salary (from a source of one headhunter firm).
General
Front-end
Web API back-end
Open a New Tab
Press F12 to open Web Developer Tool
Open Console tab
Paste these code, and press ENTER to run:
chrome.tabs.query({}, function(tabs) {
var firstSee = [];
for (var i = 0; i < tabs.length; i++) {
var url = tabs[i].url;
var id = tabs[i].id;
if (firstSee.indexOf(url) >= 0){
chrome.tabs.remove(id);
} else{
firstSee.push(url);
}
}
})
javascript:chrome.tabs.query({}, function(tabs) {var firstSee = [];for (var i = 0; i < tabs.length; i++) {var url = tabs[i].url;var id = tabs[i].id;if (firstSee.indexOf(url) >= 0){chrome.tabs.remove(id);} else{firstSee.push(url);}}})
Then open a New Tab, click that Bookmarklet. Done!
After some hours debugging, I found out:
The datetime return from Silverpop API is set in timezone of the login user. Why?
– login user has 1-1 relation with the refresh token (Want to change? Go to Org Amins, Oganization Settings, Application Account Access)
– refresh token has 1-1 relation with the oauth-key
– and we use oauth-key to make API call
So if we use user@examplecom/somepassword to login to https://engageXX.silverpop.com/settings.do?action=userProfile
then change the Localization/TimeZone to GMT
And then:
For example, if we call API to get all MailingTemplate, then LastModified Date of each MailingTemplate in the Response is in GMT timezone
nhưng nếu tính xổi thì Facebook sẽ có khoảng 4 tỷ USD doanh thu từ Whatsapp, đấy là trong trường hợp xấu nhất, Whatsapp vẫn giữ nguyên lượng người dùng cho tới cuối 2014. Do vậy, FB ko phải lo lỗ nặng.
WhatsApp ko thực sự cần thiết với FB, về mặt chức năng ứng dụng
WhatsApp quá to, quá nguy hiểm
WA ở nước ngoài Mỹ
FB thì core lại ở trong US
đối đầu với Google Hangouts và Apple iMessage
FB chính là ecosystem tương đương với Android và iOS device
MS hiện đang nằm ngoài cuộc chơi, Skype ko đáng tính tới
bước tiến mạnh, tăng hiện diện trên mobile, trong kỷ nguyên mobile mà FB và Messenger là chưa đủ
chưa kể tới OTT là các ứng dụng nuốt user của FB, lôi kéo user rời xa FB
chạm vào giới teen, lũ bắt đầu ghét FB, thứ mà FB rất thèm (và đã cố gắng tiếp cận nhưng thất bại khi mua hụt SnapChat)
mua con chiến thuyền nguy hiểm nhất (đang đe doạ họ), to nhất, để lướt sóng mobile và OTT
đè bẹp, ngăn chặn bọn còn lại như LINE, Kakao Talk, Tango, Wechat
Whatsapp đang đè bẹp Facebook Messenger ở các thị trường ngoài Bắc Mỹ.
WhatsApp’s 450 triệu users (70% hoạt động), 1 triệu tăng trưởng mỗi ngày
phần lớn con số 450 triệu users đó là ở ngoài US! nơi mà FB rất cần và chưa có cách chiếm lĩnh hiệu quả
mua WhatsApp, lập tức FB có porfolio toàn cầu trong thị trường OTT
tăng trưởng ko tốn một dollar marketing nào
WhatsApp tăng trưởng user hiệu quả hơn FB Messenger
FB sẽ mua cách tăng trưởng đó
32 siêu kỹ sư tài năng,
xử lý 27-50 tỷ tin mỗi ngày (nhiều hơn lượng SMS toàn cầu) bằng erlang
99.9% uptime, tin cậy như điện thoại cố định
và họ ko chạy đi đâu cả trong 3 năm (vì món thưởng 3 tỷ $)
để yên cho hoạt động, giống case Instagram (mà FB tự cảm thấy là phương pháp tốt)
quảng cáo văn hoá FB, các bạn ngon lành cứ về đây, chúng tôi hỗ trợ bằng nguồn lực của FB để các bạn hoạt động tiếp
FB sẽ ko nhồi ad vào WhatsApp, thậm chí Messenger cũng (học điều đó) ko có ad, Mark tin như vậy.
FB sụt 5% CP vì investor ko hiểu nổi sao lại tiêu lắm tiền như vậy cho một app ko kiếm đc nhiều tiền lắm
việc mua này có thể giúp WhatsApp tiếp tục mục tiêu 1 tỷ users
ko bị áp lực tiền nữa (FB sẽ lo)
Với dòng tiền khổng lồ từ Facebook, Whatsapp sẽ lấp vào những chỗ mà Facebook Messenger còn kém để giành thị phần với các ứng dụng còn lại. Cuộc chiến hiện tại là “ăn thịt lẫn nhau” thị phần giữa các ứng dụng miễn phí, chứ không còn là thời gian mỗi ứng dụng phát triển tự do như trước kia
WA tập trung hơn, app sạch, nhanh, thông suốt (thay vì phải lo nhồi nhét vào app, game, ads như các đối thủ)
kiên định hơn với mô hình subscription hiện tại
WhatsApp ko khai thác thông tin user
đăng ký đơn giản
message sau khi gửi đi là xoá khỏi server
vs FB
đào bới mọi thứ về user
Còn chặng đường thuyết phục Jan Koum, CEO WhatsApp, bán ứng dụng cũng không hề dễ dàng và kéo dài tới 2 năm.
Mùa xuân năm 2012, Mark Zuckerberg lần đầu gọi cho Koum. Một tháng sau, họ gặp nhau trong một quán cafe ở Los Altos nhưng dù Zuckerberg thể hiện rõ mong muốn sáp nhập, Koum vẫn từ chối. Tuy vậy, cả hai vẫn giữ liên lạc, thường xuyên đi ăn tối và giải trí. Zuckerberg tin tưởng vào tương lai của WhatsApp vì ứng dụng này có tốc độ tăng trưởng còn nhanh hơn Instagram, Skype, Gmail và hơn cả chính Facebook. Có tới 70% trong số 450 triệu người dùng WhatsApp đang sử dụng ứng dụng này hàng ngày (tỷ lệ của Facebook là 62%).
Cuối cùng, ngày 9/2/2014, Zuckerberg thuyết phục Koum trong một bữa tối tại chính nhà mình rằng: Chúng ta hãy cùng nhau kết nối thế giới. Tỷ phú trẻ khẳng định đó không phải là một vụ thâu tóm bình thường mà là một cuộc hợp tác. Vào đúng ngày Valentine, Koum đồng ý.
nhưng gã khổng lồ Thương mại điện tử của Nhật này lại chưa có mô hình kinh doanh rõ ràng nào trên di động để áp vào Viber. Tất cả đều rất mù mờ và biết đâu Rakuten có thể sẽ lỗ trong thương vụ này?
See more
1. Giao diện phẳng (flat)
– đơn giản, dễ thực hiện
– dễ thấy trong UI của Win8 và các dòng sản phẩm của Microsoft. HTC cũng có xu hướng này.
2. Càng ít nút bấm càng tốt
– tăng diện tích nhìn cho user
– tránh rối, app buộc phải đưa những gì hay dùng nhất ra ngoài
– dùng nhiều hơn các cử chỉ (gestures) thay vì bấm nút (quẹt trái quẹt phải để xem chat list và channel list trong app FB)
3. Dùng các hoạt hoạ (animation) để gợi ý
– trực quan, dễ xem
– dễ thấy khi refresh feed của FB, hiệu ứng nảy lên khi hết list
4. Menu xổ xuống dạng hamburger
– icon hamburger đã thành một dạng chuẩn, hầu hết người dùng đều hiểu bấm vào đó là có menu xổ ra
– tương tự như context menu trên Windows
5. App native được chú trọng hơn Web
6. Khi không thể viết app native, hãy cố gắng để nó Responsive
– tận dụng tốt hơn không gian màn hình
– ẩn giấu những phần ko cần thiết khi hiển thị trên màn hình nhỏ
7. Làm cho trang web rộng hơn
– hầu hết màn hình ngày nay là dạng màn ảnh rộng (wide screen)
– tận dụng không gian tốt hơn, tránh khoảng trống quá nhiều trên các màn hình to, rộng
– tăng độ rộng lên 960px hay 1000px
8. Sử dụng cỡ font lớn hơn
– tăng khả năng đọc cho nội dung (nhất là premium content)
– hiển thị tốt hơn trên màn hình nhỏ
9. Màu xanh: #00A0D1
10. Đồ hoạ vector
– nét hơn
– các browser hỗ trợ tốt hơn, dễ tương thích với các độ phân giải và mật độ dpi khác nhau
From: http://theindustry.cc/2013/01/07/13-design-trends-for-2013/
Attributes are in your HTML text document/file, whereas properties are in HTML DOM tree.
Attributes are static, whereas properties are dynamic (can be change by your JS code).
When developing with Responsive web design (RWD), you should use these CSS3 feature
See more here
Vì sao?
Một số công nghệ web đã trưởng thành và sẽ được triển khai trên nhiều trang web, mang lại nhiều ấn tượng cho user, giảm công sức cho lập trình viên khi phát triển và phân phối ứng dụng
CSS filters, mang sức mạnh đồ hoạ 3D
Cho phép thực hiện nhiều hiệu ứng đồ hoạ phức tạp (làm mờ, đổ bóng, bóp mép, đổi hình dạng của đối tượng, thay đổi mật độ màu, …) bằng các khai báo đơn giản.
Cho phép thực hiện các thao tác đồ hoạ phức tạp như đổ bóng vertex (như dùng GLSL, được ứng dụng phổ biến nhiều năm nay trong các xử lý đồ hoạ 3D)
Xem ví dụ tại CSS Filter
Lợi ích lớn cho các game nền web, các ứng dụng cần những hiệu ứng gây shock về đồ hoạ, xử lý ảnh
Google ko đối đầu trực tiếp với Windows, Mac, Linux, mà họ tạo ra Chrome, cố gắng làm cho Chrome có mặt tại nhiều nơi, nhiều thiết bị như TV, laptop, điện thoại
Với Chrome, Google mang lại cho các lập trình viên khả năng viết chương trình bằng JS HTML CSS (là đơn giản hơn nhiều so với việc viết bằng C# Java PHP), chạy chương trình trong Chrome.
Hiện tại, viết extension/app cho Chrome là dễ nhất, nhanh nhất và thuận tiện nhất (so với việc viết cho Firefox, IE, Opera)
ECMAScript 6 (ES6), là cải tiến của JavaScript, sửa các vấn đề “chíu khọ” trong ngôn ngữ JavaScript, cung cấp tính năng mới thuận tiện hơn, dễ bảo trì mã nguồn hơn.
Web Components cho ta khả năng thêm tag mới cho trình duyệt, tương tự như những tag gốc sẵn có. VD:
Web Components sẽ thay đổi cách viết, sử dụng và phân phối các thư viện JavaScript hiện có theo hướng dễ dàng hơn nhiều.
Các tính năng mới, API mới sẽ được (tự động) đưa vào trình duyệt mới ngày càng nhanh hơn
PS: các trình diễn ở khu Hyper V, CRM, ERP, DevZone mình ko theo dõi kỹ nên ko nắm chắc.
– Remote desktop to your server (e.g.: with username = YourUserLockeVN)
– On server, download dropbox.exe to C:\
– Start command prompt (with “YourUserLockeVN” please, the idea is dropbox will be installed under this account credential and its role/right)
– Install dropbox by command prompt:
"C:\dropbox.exe" /D=C:\Program Files\Dropbox
– Run through DropBox setup, login to dropbox, use advanced install, determine local folder for sync, …
– (very important) Start Dropbox, Preferences -> uncheck “Show desktop notifications” and “Start Dropbox on system startup”
– Exit dropbox (right click tray icon, Exit)
– Check StartMenu/Startup folder, remove the Dropbox shortcut (if any)
– Download Windows Server 2003 Resource Kit Files (Win2003, 2008 can use)
– Install it into your server (don’t worry about conflict, they are all M$ stuff, and they just extracts to folder)
– on command prompt, create Service by:
"C:\Program Files (x86)\Windows Resource Kits\Tools\instsrv" DropBoxService "C:\Program Files (x86)\Windows Resource Kits\Tools\srvany.exe"
– Start/Run, “Regedit”, go to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DropBoxService
– Create KEY Parameters
– Create String value name “Application“, value C:\Program Files\Dropbox\Dropbox.exe /home
– Create String value name “AppDirectory“, value C:\Program Files\Dropbox
– Go to Administration Tools / Services -> DropBoxService -> Properties -> Log on -> Use “YourUserLockeVN”
– Change the service startup type to “Automatic”
– Start service
That’s fine. Now you can logoff, disconnect from the server and Dropbox still up and running, sync your file.
Before Windows 7, I was able to set Remote Desktop client Display at 256 Colors. That option is missing in Windows 7 ( The lowest option is “High Color 15 bit” )
It is very important to have it back specially if when using a slow network connection.
– Save all the remote desktop settings for the connection and save it to a RDP (.rdp) file by choosing Save As in the General tab.
– Open that .rdp file in a text editor (Notepad)
– Find the line that begins with session bpp:i:
– Change this line to session bpp:i:8
– Use (double click) that .rdp file to open a RDP session to the remote computer.
I have quite strong QuadCore computer with 8GB RAM. Normally, my daily working basis uses nearly 6GB RAM. So 2GB more are waste. I often have to write installer script, try/test the setup, installer … which read/write a lot of files (7000 files, WTH)
So idea about RAM disk (from DOS era) come up!
1. ImDisk. TESTed on Win7
http://www.ltr-data.se/opencode.html/#ImDisk
3. I use this DataRAM RamDisk
Install it is very simple.
Create/Start new disk in DataRAM
go to Computer Manager, Disk Management, format it and assign drive letter, Fix the drive character to R: for easily reference later.
Settings/DiskSize set to your need
Load and Save/Load Disk Image at Startup, Filename = C:\RAMDISK.img
Load and Save/Save Disk Image on shutdown, Filename = C:\RAMDISK.img
Option/Do not compress image file on NTFS filesystems
Change your Chrome shortcut, change the Target to
C:\Users\ngng\AppData\Local\Google\Chrome\Application\chrome.exe –user-data-dir=”D:\LockeVN\ChromeLockeVNWorkProfile” –disk-cache-dir=”R:\Google\ChromeDev”
Go to environment of OS, redirect TEMP and TMP folder to ramdisk
I found this Javascript sleep function here and it works in FF9, Chrome 14 (tested).
function sleep(ms) {
ms += new Date().getTime();
while (new Date() < ms){}
}
This function will block browser from doing anything, even setTimeout()
E.g.:
/*BEGIN*/
setTimeout(alert('stupid'), 1000);
sleep(2000);
// after sleep completed, setTimeout has its turn to run.
// The alert() will be shown after 3 seconds from /*BEGIN*/
This might be a stupid thing but sometimes you have to do stupid work and it’s required.
I have some pet projects but so shy to show off😉
I share with my close fellow only, that why I need an online free private source repository (stable, hosting, free, private, is it too much?). The small list below is carefully made on the time (updated in July 2011) I write this post (because the SCM service providers’ plans are subject to change)
I use eclipse as open source SCM client
Git: I use eGit
SVN: I use Subclipse
Mercurial: MercurialEclipse (formly HgEclipse)
More bonus: conversation on StackOverflow about this free private source repository
This is my sum up about NodeJS on July 2011, base on some slides (of geeks in my list from BarCamp Saigon 2011). Just a fastfood of what NodeJS is, why is get buzz at the moment.