[Dev Tip] FluentAutomation for automated testing of Web Applications

Last week I was exploring today’s varied choices we have for Automated Browser Testing. There’s headless WebKit “browsers” like PhantomJS and cloud powered multi-browser testing tools like BrowserStack and SauceLabs.

Selenium is kind of the gold standard and offers not only a lot of “drivers” but also a lot of language bindings with which drive a browser. Sometimes browsers update so fast there can be some version incompatibilities with Selenium, but for the most part it works great once you’ve settled in.

One option I’ve been looking at is FluentAutomation. It’s a fluent automation API that supports Selenium as well as WatiN along with all their flavors and drivers. Since Fluient supports Selenium, that means you can use the Selenium ChromeDriver, IEDriver, Remote Web Driver or even the headless PhantomJS.FluentAutomation is on GitHub, of course, as well as on NuGet.

FluentAutomation has great (and growing) documentation and has adopted and interesting fluent style for it’s API.

Now, not everyone likes a “fluent” API so it may take a while to get used to. Often you’ll be doing things over many lines when it’s really just one line, for example, this is one line:

I.Open("http://automation.apphb.com/forms")
    .Select("Motorcycles").From(".liveExample tr select:eq(0)")
    .Select(2).From(".liveExample tr select:eq(1)")
    .Enter(6).In(".liveExample td.quantity input:eq(0)")
    .Expect
        .Text("$197.72").In(".liveExample tr span:eq(1)")
        .Value(6).In(".liveExample td.quantity input:eq(0)");

Notice the method chaining as well as the use of CSS selectors.

FluentAutomation also has the cool concept of a PageObject to take your potentially brittle scripts and give them more structure. PageObjects group your actions, expectations, and assertions and let you reuse code when a page appears in multiple tests.

For example you could have a high level test (this is XUnit, but you can use whatever you want):

public class SampleTest : FluentTest {
    public SampleTest() {
        SeleniumWebDriver.Bootstrap(SeleniumWebDriver.Browser.Chrome);
    }
    [Fact]
    public void SearchForFluentAutomation() {
        new BingSearchPage(this)
            .Go()
            .Search("FluentAutomation")
            .FindResultUrl("http://fluent.stirno.com/blog/FluentAutomation-scriptcs/");
    }
}

Then you can have separate PageObjects that have your own public methods specific to that page, as well as assertions you can reuse.

public class BingSearchPage : PageObject<BingSearchPage> {
    public BingSearchPage(FluentTest test) : base(test) {
        Url = "http://bing.com/";
        At = () => I.Expect.Exists(SearchInput);
    }
    public BingSearchResultsPage Search(string searchText) {
        I.Enter(searchText).In(SearchInput);
        I.Press("{ENTER}");
        return this.Switch<BingSearchResultsPage>();
    }
    private const string SearchInput = "input[title='Enter your search term']";
}
public class BingSearchResultsPage : PageObject<BingSearchResultsPage> {
    public BingSearchResultsPage(FluentTest test) : base(test) {
        At = () => I.Expect.Exists(SearchResultsContainer);
    }
    public BingSearchResultsPage FindResultUrl(string url) {
        I.Expect.Exists(string.Format(ResultUrlLink, url));
        return this;
    }
    private const string SearchResultsContainer = "#b_results";
    private const string ResultUrlLink = "a[href='{0}']";
}

You don’t have to be all structure and OO if you don’t want. You can just as easily write scripts with FluentAutomation and head in a different direction.

FLUENTAUTOMATION ALONG WITH SCRIPTCS = AUTOMATING YOUR BROWSER WITH C# SCRIPT

I’ve usually used Python with my Selenium scripts. I like being able to just make a text file and start scripting, then run, debug, continue, all from the command line. It feels simple and lightweight. Creating a DLL and running Unit Tests in C# usually comes later, as I can move faster with a “scripting language.”

You can do that with ScriptsCS as it gives you project-less C# that effectively is C# as scripting language. Combine this with FluentAutomation and you’ve potentially got the best of both worlds.

To install, first you need the Windows apt-get open source equivalent, the oddly-named and -spelledChocolatey. Then you get ScriptCS and the packages for FluentAutomation.

  • Install Chocolatey – one line installation here
  • Run “cinst ScriptCS” from your command line to use Chocolatey to install ScriptCS
  • Now, get the ScriptCS script packages for FluentAutomation like this:
    • scriptcs -install FluentAutomation.SeleniumWebDriver
    • scriptcs -install ScriptCs.FluentAutomation

Now, as a quick test, create a folder and put a text file called start.csx in it with just these contents:

var Test = Require<F14N>()
    .Init<FluentAutomation.SeleniumWebDriver>()
    .Bootstrap("Chrome")
    .Config(settings => {
        // Easy access to FluentAutomation.Settings values
        settings.DefaultWaitUntilTimeout = TimeSpan.FromSeconds(1);
    });
 
Test.Run("Hello Google", I => {
    I.Open(http://google.com);
});

Notice how there’s no namespace, no classes, no main. It’s just a script, except it’s using C#. You can change the “Chrome” to “IE” or “Firefox” as well, to play around.

Random: I love this Selenium feature, exposed by FluentAutomation…take screenshot!

// Take Screenshot
I.TakeScreenshot("LoginScreen");

If you don’t want ScriptCS, while it can act as a REPL itself, there is also the start of a dedicated FluentAutomation REPL (read–eval–print loop). This is basically a command prompt that lets you explore you app interactively and facilitates building your scripts. You can get the Repl as a Chocolatey package as well and just “cinst FluentAutomation.Repl”

You’ve got LOTS of choices in the world of automated testing. There’s so many choices that there’s just no good excuse. Pick a library, pick a language, and start automating your web app today.

RELATED LINKS

Ref: http://www.hanselman.com/blog/NuGetPackageOfTheWeekFluentAutomationForAutomatedTestingOfWebApplications.aspx

[Dev Tip] How to display a QR code in ASP.NET and WPF

I’ve half-jokingly said that there’s never a good reason to use a QR Code. However, I’m working on an MVP (minimally viable product) for a small startup with Greg Shackles and we actually have a good reason to use one. We have a mobile device, a Web Site, and a Windows Application, and a QR Code is a pretty quick way to move data between the mobile device and the other applications without the mess of Bluetooth pairing.

As I mentioned, we display the QR code on an ASP.NET website, as well as within a Windows app that happens to be written in WPF. The iPhone app uses C# and Xamarin.

There’s a great QR Code library called “ZXing” (Zebra Crossing) with ports in Java and also in C#. The C#/.NET one, ZXing.NETis a really fantastically well put together project with assemblies available for everything from .NET 2 to 4.5, Windows RT, Unity3D, Portable libraries and more. The site is filled with demo clients as well, although we didn’t find one for ASP.NET or WPF. No matter, it’s all just generating and showing PNGs.

I pulled in ZXing.NET from the NuGet package here, just install-package ZXing.Net.

HOW TO DISPLAY A QR CODE IN ASP.NET

If you’re generating a QR code with ASP.NET MVC, you’ll have the page that the code lives on, but then you’ll need to decide if you want to make an HTTP Handler that generates the graphic, like:

<img src="/path/to/httphandlerthatmakesQRcodepng">

or, you could take a different approach like we did, and embed the code in the HTML page itself.

Greg used an HTML Helper to output the entire image tag, including the inlined image, as in:

<img src="data:image/gif;base64,iVBORw0KG..." />

Images in HTML directly as Data URIs are super fun and I think, often forgotten. If you show one to the average web dev they’ll say “oh, ya…I knew about those, but never really used it.” In fact, Data URIs have been around for a LONG time. Learn more about them at DataUrl.net.

Here’s generating a QR Code within ASP.NET MVC from an HTML Helper:

public static class HtmlHelperExtensions
{
    public static IHtmlString GenerateRelayQrCode(this HtmlHelper html, string groupName, int height = 250, int width = 250, int margin = 0)
    {
        var qrValue = "whatever data you want to put in here";
        var barcodeWriter = new BarcodeWriter
        {
            Format = BarcodeFormat.QR_CODE,
            Options = new EncodingOptions
            {
                Height = height,
                Width = width,
                Margin = margin
            }
        };
        using (var bitmap = barcodeWriter.Write(qrValue))
        using (var stream = new MemoryStream())
        {
            bitmap.Save(stream, ImageFormat.Gif);
            var img = new TagBuilder("img");
            img.MergeAttribute("alt", "your alt tag");
            img.Attributes.Add("src", String.Format("data:image/gif;base64,{0}",
                Convert.ToBase64String(stream.ToArray())));
            return MvcHtmlString.Create(img.ToString(TagRenderMode.SelfClosing));
        }
    }
}

Nice and simple. The BarcodeWriter class within ZXing.NET does the hard work. We don’t need to save our QR Code to disk, and because we’re doing it inline from our HTML page via this helper, there’s no need for a separate call to get the image. Also, the caching policy that we decide to use for the page applies to the image within, simplifying things vs. two calls.

HOW TO DISPLAY A QR CODE IN WPF

Note: This code here may be wrong. I’m happy to hear your suggestion, Dear Reader, because I’m either missing something completely or there is no clear and clean way to get from a System.Drawing.Bitmap to a System.Windows.Media.imaging.BitmapImage. The little dance here with the saving to a MemoryStream, then moving into a BitmapImage (with the unintuitive but totally required setting of CacheOption as well) just sets off my Spideysense. It can’t be right, although it works.

I’ll update the post when/if a cleaner way is found.

See below for update!

First, the exact same BarcodeWriter usage from the ZXing.NET library.

var qrcode = new QRCodeWriter();
var qrValue = "your magic here";
var barcodeWriter = new BarcodeWriter
{
    Format = BarcodeFormat.QR_CODE,
    Options = new EncodingOptions
    {
        Height = 300,
        Width = 300,
        Margin = 1
    }
};
using (var bitmap = barcodeWriter.Write(qrValue))
using (var stream = new MemoryStream())
{
    bitmap.Save(stream, ImageFormat.Png);
    BitmapImage bi = new BitmapImage();
      bi.BeginInit();
        stream.Seek(0, SeekOrigin.Begin);
        bi.StreamSource = stream;
        bi.CacheOption = BitmapCacheOption.OnLoad;
      bi.EndInit();
      QRCode.Source = bi; //A WPF Image control
}

Later, writing the Bitmap to a MemoryStream for manipulation, except in this case, we’re putting the QR Code into the Source property of a WPF Image Control.

UPDATE: Thomas Levesque in the comments below suggests an extension within System.Windows.Interop (which explains me not finding it) called CreateBitmapSourceFromHBitmap. This still feels gross as it appears to requires a call to the native DeleteObject, but regardless, that’s the price you pay I guess. It looks like this:

using (var bitmap = barcodeWriter.Write(qrValue))
{
    var hbmp = bitmap.GetHbitmap();
    try
    {
        var source = Imaging.CreateBitmapSourceFromHBitmap(hbmp, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
        QRCode.Source = source;
    }
    finally
    {
        DeleteObject(hbmp);
    }
}

It works well!

Ref: http://www.hanselman.com/blog/CategoryView.aspx?category=NuGetPOW

[Startup] Founder của mWork và Appota bật mí về hệ sinh thái startup làm di động (Video)

hanoi-meetup-tech-in-asia-720x540 copyHồi tháng Tư, Tech In Asia đã tổ chức Hội thảo đầu tiên tại Hà Nội. Trong buổi này, chúng tôi đã có cơ hội chào đón hơn 200 khách tham dự với phần trình bày của anh Dũng Trần, người sáng lập mWork, và anh Đỗ Tuấn Anh, người sáng lập Appota, về kinh nghiệm khởi nghiệp thành công trên di động. Hai anh cũng đưa ra lời khuyên cho các startup đang “máu lửa” với lĩnh vực này.

 

(Xin xem phiên bản tiếng Anh của bài viết tại đây)

 

Điểm nhấn hàng đầu trong buổi phỏng vấn chính là sự chân thực và vô cùng hài hước của hai vị khách mời. Họ là bạn bè lâu năm và họ đã trêu đùa nhau trong suốt buổi phỏng vấn. Đi từ chiếc xe hơi của anh Tuấn Anh sang đến bộ râu của anh Dũng, cả hai thậm chí chỉ trích nhau trong khi vẫn rất thân thiết và chia sẻ thực về những điểm mà một người đứng đầu startup cần có tại Việt Nam. Toàn bộ cuộc phỏng vấn bằng tiếng Việt nhưng chúng tôi đã biên dịch sang phụ đề tiếng Anh cho khán giả quốc tế.

(Chúng tôi cũng sắp tổ chức một buổi hội thảo khác tại TP. HCM với các khách mời tên tuổi như Esther Nguyễn đến từ POPS Việt Nam và blogger nổi tiếng Toàn Shinoda)

Bạn sẽ cảm nhận rõ hơn sự vui nhộn của buổi nói chuyện nếu bạn biết rằng những nhân vật mà trước đây hai vị khách mời đã làm việc cho họ, cũng có mặt ở đó (một số còn đặt câu hỏi vào cuối buổi), làm cho không khí buổi nói chuyện càng chân thực và gần gũi. Vì vậy, chúng tôi khuyên bạn nên xem từ đầu đến cuối các video. Nhưng đối với những ai không có thời gian, chúng tôi tóm gọn những điểm chính của buổi nói chuyện lại như bên dưới:

  • Apota đã nhận đầu tư hồi đầu năm 2012 và đến cuối năm đó đã tiêu hết tiền.
  • Dũng đã thất bại nhiều lần trước khi làm mWork. Anh thậm chí còn thất bại khi mở một công ty truyền thông, và quay lại làm việc cho FPT.
  • Dũng nói rằng thị trường game di động Việt Nam hiện đang có giá trị một tỷ đô.
  • Dũng nói rằng thương mại điện tử sẽ trở thành làn sóng lớn tiếp theo trên thiết bị di động.
  • Tuấn Anh nói rằng đích đến lớn nhất của Appota là đóng góp nhiều hơn nữa cho hệ sinh thái khởi nghiệp ở Việt Nam.
  • Dũng nói sau năm 2015, thị trường sẽ ổn định hơn và khi đó khó lòng mà các startup mới bước vào thị trường, nếu không thực sự đột phá.
  • Dũng tin rằng có ba yếu tố chính dẫn đến thành công: chọn đúng ngành nghề, chọn đúng mô hình, và tuyển dụng được một đội ngũ nhân sự tốt.
  • Tuấn Anh tin rằng chìa khoá thành công chính là biết cách kết hợp hài hòa những gì chúng ta yêu thích và những gì thị trường cần.

Bạn có thể theo dõi toàn bộ buổi phỏng vấn bên dưới:

Cuối cùng, chúng tôi muốn gửi lời cảm ơn đến những người bạn của chúng tôi là Hatch, Topica, VTC, và Aiti Education, các bạn đã giúp quảng bá sự kiện này cho hệ sinh thái khởi nghiệp đang lớn mạnh của Hà Nội. Chúng tôi cũng muốn gửi lời cảm ơn chân thành đến Techcrunch đã tài trợ cho buổi tiệc thân mật sau sự kiện.

hanoi-meetup-techcrunch-tech-in-asia-hanoi-720x540

Biên tập bởi Jeffrey Quigley

Biên dịch bởi Quyen Quyen

[Infographic] Bức tranh ” khổng lồ” về thị trường bán lẻ Việt Nam

Mặc dù nền kinh tế chưa khởi sắc nhưng thị trường bán lẻ Việt Nam vẫn là một lĩnh vực rất sôi động. Do đặc thù cơ sở hạ tầng và giao thông Việt Nam, mô hình siêu thị trung bình từ 2.500 đến 3.000 mét vuông sẽ trở nên phổ biến. Bên cạnh đó, thương mại điện tử sẽ có tương lai tươi sáng nếu khắc phục được điểm yếu kém của mình về chuỗi cung ứng và hậu cần.

Đặc biệt theo thống kê thì có 3 thương hiệu thuần túy hoạt động TMĐT là Lazada, Nhóm mua, Mua chung vào top đơn vị bán lẻ được biết đến nhiều nhất.

Điểm thử thách lớn nhất cho bất cứ hệ thống bán lẻ nào hiện nay là sự thiếu hụt nhân sự được đào tạo chuyên nghiệp.

Sau đây là những con số về thị trường bán lẻ “khổng lồ” của Vệt Nam:

7c050231170344355901ed6a0e971f846151c8261366081379

 

[Startup] Lắng nghe nhà đầu tư: Những yếu tố nào của startup được nhà đầu tư chú trọng nhất?

Trong khi thực trạng startup tại Việt Nam cho đến nay vẫn chưa có gì thực sự khởi sắc thì chúng ta có thể nhận thấy nguồn tiền đầu tư từ các quỹ đầu tư mạo hiểm nước ngoài chảy vào Việt Nam vẫn rất lớn.

Quỹ đầu tư mạo hiểm lớn nhất tại Việt Nam hiện nay có lẽ phải kể đến IDG Ventures với danh sách đầu tư đã lên đến 43 công ty với những cái tên đình đám như VCCorp, Vatgia, Peacesoft,… Bên cạnh đó, với giới đầu tư mạo hiểm chắc chắn sẽ là một thiếu sót nếu không kể đến cái tên CyberAgent Ventures với danh sách đầu tư tại Việt Nam là 12 công ty và những cái tên nổi bật trong danh sách này bao gồm VNG, Tiki.vn và CleverAds.

Anh Nguyễn Mạnh Dũng -  Giám đốc CyberAgent Ventures tại Việt Nam và Thái Lan

Chúng tôi đã có cuộc nói chuyện với anh Nguyễn Mạnh Dũng – Giám đốc CyberAgent Ventures tại Việt Nam và Thái Lan về những yếu tố mà nhà đầu tư mạo hiểm chú trọng xem xét nhát trươc khi ra quyết định đầu tư vào startup công nghệ tại Việt Nam. Anh Dũng được biết đến nhiều trong cộng đồng với cái tên Dzung Nguyen.

Các nhà đầu tư chú trọng những yếu tố gì trước khi quyết định đầu tư?

Đội ngũ startup

Để trả lời cho câu hỏi này, anh Dũng chia sẻ khi bắt đầu tìm kiếm startup về công nghệ để đầu tư tại Việt Nam, việc đầu tiên cần bắt đầu là với đội ngũ của startup đấy.

Startup không chỉ có mục tiêu ngắn hạn trước mắt mà còn phải có cái nhìn chiến lược lâu dài. Họ phải nhìn ra xa vượt qua tình trạng hiện tại và cần phải có đam mê về việc gây dựng nên sự nghiệp của mình. Và xuất phát điểm khởi nghiệp của họ không nên chỉ vì tiền, mà nên bắt đầu bằng việc mang lại nhiều lợi ích hơn cho người dùng hoặc để hỗ trợ phát triển điều gì đó. Một đội ngũ startup nên được bắt đầu bằng những người có tầm nhìn như vậy.

Nhưng chỉ sống bằng đam mê thì không được mà startup cần phải tự hiểu rõ về bản thân mình. Startup cần phải làm rõ được họ cần gì từ nhà đầu tư và họ sẽ làm gì với khoản tiền được nhận và sẽ làm thế nào để sinh lời. Anh Dũng cho biết:

Khi bắt đầu sự nghiệp, điều đầu tiên bạn cần làm đó là tìm ra điểm mạnh của mình là gì. Nếu ngay chính bạn còn không tìm được điều đó thì làm sao những nhà đầu tư có thể hiểu được? Chúng tôi, với tư cách là những nhà đầu tư cần phải biết được điểm mạnh và điểm yếu của bạn để tìm ra được giải pháp hỗ trợ các bạn tốt nhất. Một đội ngũ tốt cần phải biết được vị trí của mình đang ở đâu và họ nên làm gì tiếp theo. Nếu chưa tìm ra được điều này, có lẽ trước tiên họ cần tìm đến một người chỉ dẫn (mentor). Nhưng một yếu tố tiên quyết startup cần biết trước khi tìm đến nhà đầu tư là họ cần gì?

Mục tiêu rõ ràng

Tuy nhiên, đội ngũ tốt không thể giải quyết được toàn bộ vấn đề, vì không thể nào có chuyện chỉ một đội tốt có thể cứu vãn được ý tưởng hay sản phẩm tồi. Sẽ không có một nhà đầu tư nào điên rồ đến mức lãng phí tiền bạc, mối quan hệ và những nguồn lực của mình để hỗ trợ cho một sản phẩm chẳng rõ ràng về mục đích sử dụng.

Điểm trừ lớn nhất khi startup đến gặp nhà đầu tư đó chính là thậm chí không biết được vấn đề mà sản phẩm của mình đang giải quyết là gì. Cần phải trả lời được những câu hỏi sau: “Sản phẩm của mình sẽ giải quyết được vấn đề nào của người dùng?” Nếu bạn không có được mục đích sử dụng rõ ràng cho sản phẩm của mình thì làm sao có thể thu hút người dùng về cho mình?

Điều tôi mong có thể nghe được từ những startup đó chính là “Chúng tôi biết người dùng đang gặp vấn đề này và đang rất cần giải pháp mà chúng tôi đưa ra. Bằng cách tối ưu hóa những kĩ năng công nghệ mà chúng tôi có được, chúng tôi sẽ đem đến giải pháp cho vấn đề đó.”

Quy mô và tiềm năng của thị trường

HCMC_Skyline

Quy mô thị trường cũng là vấn đề lớn cần quan tâm. Anh Dũng nhấn mạnh:

Ngay cả khi startup của bạn có một đội ngũ vững mạnh, nhưng bạn lại nhắm đến thị trường quá nhỏ thì kết quả bạn thu được vẫn chẳng thấm vào đâu. Bởi ngay cả khi bạn nắm được toàn bộ thị trường thì quy mô doanh nghiệp của bạn cũng không thể lớn hơn được. Vì vậy chúng tôi quan tâm về quy mô thị trường và cách bạn có thể làm cho startup của mình lớn mạnh và sinh lời”

Nhà đầu tư có quan tâm đến mô hình kiếm tiền của startup?

Rất nhiều startup hiện nay “ngây thơ” chỉ chăm chú vào việc làm sao có được lượng người dùng lớn nhất thay vì tìm ra được mô hình kiếm tiền. Nhưng cần phải nhớ rằng nếu bạn chưa tìm ra được mô hình kiếm tiền rõ ràng cho startup của mình, bạn sẽ không thu hút được nhà đầu tư.

Anh Dũng nhấn mạnh rằng đối với startup, có thể tiền không phải là vấn đề quan trọng nhất trong 3 năm đầu tiên nếu nhận được đầu tư. Tuy nhiên, startup cần phải chủ động tìm ra cách tự sống sót được tiếp mà không cần tiền từ nhà đầu tư.

Nếu như startup tin tưởng rằng sản phẩm/dịch vụ của mình có thể thực sự mang lại lợi ích cho người dùng nhưng họ cần thời gian. Vậy bao nhiêu thời gian mới là đủ, và cái quan trọng hơn tiền đâu ra để họ có thể tồn tại đến lúc hái quả? Startup có thể sống dựa vào tiền đầu tư trong 3 năm đầu nhưng nếu không tự tìm ra được mô hình kiếm tiền cho mình vậy thì họ sẽ tính thế nào với năm thứ 4 trở đi? Làm thế nào để tiếp tục startup của mình mà không có nhà đầu tư? Nếu họ không tìm ra được thì startup sẽ chết.

Bên cạnh đó, anh Dũng đưa ra một so sánh khi ở Mỹ, nếu bạn có lượng người dùng lớn thì khả năng nhận được đầu tư là rất lớn. Tuy nhiên, điều này lại hoàn toàn khác ở Đông Nam Á – nơi các khoản đầu tư ở giai đoạn series A là khá phổ biến, thì một thực tế là chi càng nhiều tiền thì sẽ càng nhanh có lượng người dùng lớn. Nhưng sau đó thì sao? Vì vậy, đối với Đông Nam Á mà đặc biệt là Việt Nam, cái nhà đầu tư nhìn vào không chỉ dừng ở lượng người dùng mà chắc chắn phải nhìn xa hơn về phương thức kiếm tiền và mục đích sử dụng của sản phẩm/ dịch vụ mà startup mang lại.

(Biên tập bởi Sơn Trần)

[Life] 10 câu nói giúp bạn hiểu hơn về truyền thông xã hội

Enterprise-Social-Networking-SuccessNgày nay truyền thông xã hội đã trở thành một xu thế toàn cầu. Với sự hỗ trợ của mạng xã hội, của những trang web chia sẻ bài viết, hình ảnh, và video, đã đưa truyền thông xã hội trở thành một chiến lược marketing phải có đối với các doanh nghiệp, đặc biệt là với các startup non trẻ.

Tuy nhiên, để có thể sử dụng truyền thông xã hội một cách hiệu quả, chúng ta cần phải tìm hiểu về nó, cả về những điểm tích cực cũng như tiêu cực nhằm khai thác tối đa tiềm năng cũng như giúp chúng ta tránh đi những sai lầm không cần thiết.

Dưới đây là 10 phát biểu tâm huyết của những chuyên gia đã hoạt động lâu năm trong lĩnh vực truyền thông xã hội, giúp các bạn có cái nhìn nhiều chiều hơn về bản chất, cách vận hành cũng như những hiệu quả truyền thông xã hội có thể đem lại.

1- “Bạn là chính những gì bạn chia sẻ”.

(Trong cuốn We Think: The power of mass creaativity của Charles Leadbeater – Nhà văn người Anh, cố vấn của Thủ tướng Tony Blair)

2- “Truyền thông xã hội đầu độc thế giới bởi một loại virus ghê gớm tên là “sự phù phiếm””.

(Kellie Elmore – Nhà văn, blogger người Mỹ)

3- “Truyền thông xã hội là cơ hội để bạn có một lượng lớn người dùng trung thực, trung thành và minh bạch”.

(Trích trong cuốn Social Media for the Executive của Brian E. Boyd Sr – Nhà văn người Mỹ, CEO Media Connect)

4- “Tôi càng sôi nổi và hay tranh luận thì càng có nhiều người theo dõi và kết bạn online với tôi”.

(Tasha Turner– Nhà văn Mỹ, người hướng dẫn truyền thông xã hội)

5- “Ngày nay, một kẻ khờ cũng có thể làm được một trang web”.

(Trích trong cuốn Blood Bound của Patricia Briggs– Nhà văn, phóng viên của New York Times)

6- “Nếu bạn muốn tạo ra cái mới thì hãy dừng cách làm cũ”.

(Peter F. Drucker Nhà văn, Giáo sư người Mỹ).

7- “Sự thật vĩ đại nhất của thời đại này: Thông tin không phải là tri thức”.

(Caleb CarrNhà văn, nhà sử học quân sự người Mỹ).

8- “Đừng chỉ sưu tập các fan hâm mộ, hãy tác động đến họ”.

(Jay Baer – Founder của Convinceandconvert, diễn giả người Mỹ)

9- “Tham gia vào LinkedIn là cách tốt nhất để nói “Hãy nhìn vào tôi” mà không cần phải nói “Hãy nhìn vào tôi”

(Bobby Darnell – Founder của Construction Market Consulations)

10- “Những người kỳ quặc thường nổi bật”.

(Dan SchawbelPhóng viên, nhà bình luận của Forbes, New York Times).

(Chúng tôi sẽ có một buổi gặp gỡ các tên tuổi trong làng giải trí online như POPS, Blogger Toàn Shinoda, Hưng Zino và sẽ chia sẻ nhiều hơn về các bí quyết làm truyền thông xã hội. Xin đăng ký tham dự sự kiện tại đây)

(Biên tập bởi Quyen Quyen)

[Startup] 5 chú ý để bạn khởi nghiệp ngay cả khi đang làm thuê

khoinghiep2Sự thật là bạn không cần phải rời bỏ công việc hiện tại, ít nhất trong thời gian đầu khởi nghiệp, bạn không cần phải hy sinh mọi thứ để có thể bắt đầu khởi sự thành lập và điều hành công ty của riêng mình. Nếu chuẩn bị cẩn thận và chu đáo, bạn hoàn toàn có thể khởi sự với một số vốn nho nhỏ trong tài khoản ngân hàng, cũng như tiếp tục nhận được khoản lương hàng tháng từ công việc hiện có.

Tất cả chúng ta đều mong muốn tự kiếm được thật nhiều hơn là trông mong vào khoản thu nhập duy nhất từ lương mà chúng ta đang hưởng do việc bán chất xám hay sức lao động cho người khác. Buồn thay, khoản lương này tuy có thể chưa thật nhiều nhưng lại là nguồn cung duy nhất cho mọi chi tiêu hàng ngày như tiền thuê, ăn uống sinh hoạt, giải trí, mua sắm, tiền học cho con cái, và vân vân khoản phải chi khác. Nói một cách khác, chúng ta phụ thuộc hoàn toàn vào khoản lương này.

Vậy, chẳng lẽ cách duy nhất để khởi nghiệp là chấp nhận rủi ro của việc phiêu lưu mạo hiểm và rời bỏ công việc hiện tại với nguồn thu nhập chính từ lương này hay sao?

Rất nhiều yếu tố quan trọng khác để việc khởi nghiệp của bạn đạt được thành công như kiến thức chuyên môn, vốn liếng, quan hệ…, nhưng quan trọng nhất trong lúc bắt đầu là một kế hoạch làm việc ngoài giờ ban đêm được lên chi tiết một cách có cơ sở và có khoa học.

Dưới đây là những điểm nên lưu ý để giúp bạn khởi nghiệp ngay cả khi vẫn đang làm thuê:

Giữ bí mật công việc.

Giờ thì bạn đã là Giám đốc Điều hành công ty của chính mình, bạn có thể sẽ muốn khoe khoang cùng bạn bè và đồng nghiệp về sự khởi đầu này. Trừ khi bạn đã chuẩn bị tinh thần sẵn sàng bỏ thời gian tìm kiếm một công việc làm thuê khác để có thu nhập trang trải cho các chi phí hàng ngày thay vì tập trung phát triển công việc cho công ty của chính bạn, bạn nên giữ bí mật càng kín càng tốt. Ông chủ hiện tại của bạn chắc chắn sẽ không thể vui khi biết ngoài việc thực hiện các công việc của công ty cũng như các công việc có liên quan, bạn còn đang tự xây dựng một đế chế cho riêng mình, mặc dù bạn làm việc này trong thời gian cá nhân. Đơn giản vì khi bạn đã dành nhiều thời gian, sức lực và tâm trí cho việc riêng của mình, bạn không thể tái tạo tốt nhất sức lao động vào ngày hôm sau khi đến công sở.

Làm việc ngoài giờ không lương.

Thật không thoải mái chút nào để vừa phải đi làm kiếm sống và sau đó làm thêm một công việc khác cũng quan trọng không kém. Đối với nhiều người, đây là sự hành xác thật sự, nhưng tôi tin rằng bạn sẽ hoàn toàn có khả năng vượt qua được nếu giấc mơ của bạn về sự giàu có và thành đạt như các doanh nhân khác.

Nếu bạn dự tính duy trì khoản thu nhập từ lương ổn định ít nhất trong thời gian đầu, bạn buộc phải làm việc ngoài giờ thay vì tìm đến các thú tiêu khiển khác. Khởi sự luôn gian lao và rủi ro, nhưng những gì nó hứa hẹn mang lại sau này thật sự là rất khích lệ. Bạn hãy cố duy trì lịch làm việc ngoài giờ ổn định để phát triển công việc cho riêng mình. Điều này có nghĩa rằng bạn thực hiện vai trò Giám đốc Điều hành công ty của mình trong khoảng thời gian từ 6 giờ chiều đến 8 giờ sáng hôm sau, và vẫn phải duy trì khả năng làm việc bình thường trong khoảng thời gian từ 8 giờ sáng đến 6 giờ chiều tại công sở.

Tận dụng tài nguyên trên mạng internet.

khoi-nghiep1

Nhiều năm trước, việc chi phí khởi sự thành lập một công ty thì không đơn giản và tốn kém khá nhiều tiền cũng như thời gian. Ngày nay, với vài triệu đồng bạn có thể đã có công ty với đầy đủ tư cách pháp lý cho riêng mình với thời gian không nhiều hơn một hoặc hai tuần. Các công ty tư vấn và dịch vụ sẵn sàng thỏa mãn yêu cầu của bạn một cách dễ dàng.

Khi bạn đã xây dựng được một kế hoạch kinh doanh và chọn lựa được một cái tên cho công ty của mình, hãy nhanh chóng thiết lập một văn phòng ảo trên mạng internet. Chi phí cho việc này không quá nhiều, có thể chưa đến năm trăm ngàn đồng cũng như chỉ mất 30 phút là là bạn đã có một tên miền và địa chỉ email để có thể sử dụng nếu chọn tên miền dot com hoặc hơi mất công hơn một chút nếu đăng ký tên miền quốc gia dot vn. Để tạo cầu nối cũng như để gây ấn tượng với khách hàng, bạn cần một trang web giới thiệu về doanh nghiệp của mình có nội dung và hình thức chuyên nghiệp nhất có thể. Với một khoản chi phí nhỏ, bạn có thể sử dụng dịch vụ của Templatemonster với các thiết kế mẫu cho phép download về và chỉnh sử theo ý muốn của bạn.

Việc kế tiếp cần làm là thiết kế ngay danh thiếp, càng chuyên nghiệp càng tốt, với tên công ty, tên bạn, và quan trọng hơn là chức danh Giám đốc điều hành mới của bạn. Lại một lần nữa, sự tiện dụng và phổ cập của internet tỏ ra cực kỳ hữu hiệu. Bạn có thể tìm được ngay một trang web có cung cấp dịch vụ thiết kế và in ấn, lại còn giao hàng tận nơi với chi phí cực kỳ hợp lý.

Tập trung khai thác và duy trì những khách hàng đầu tiên.

Chắc chắn khi đã bắt đầu khởi nghiệp được một thời gian, bạn sẽ muốn giải thoát bản thân khỏi sự ràng buộc và hạn chế do công việc làm thuê hiện tại mang đến để tập trung toàn lực cho việc phát triển công việc riêng của mình. Tham vọng là tính cách rất tốt cho bất kỳ doanh nhân tự khởi nghiệp nào, nhưng bạn cần đảm bảo rằng mình đã tạo dựng được công việc kinh doanh thật sự cũng như nguồn thu nhập tạm ổn trước khi chính thức công cuộc chinh phục thế giới mới.

Qua quá trình học hỏi và trải nghiệm thực tế, chắc chắn bạn sẽ biết được rằng để tìm được khách hàng đầu tiên chấp nhận dịch vụ hay sản phẩm do công ty của bạn cung cấp thì không dễ dàng chút nào, thế nhưng để có được khách hàng thứ hai, thứ ba và các khách hàng tiếp theo thì càng khó hơn. Sự khác biệt giữa thực hiện một dự án độc lập như một cách kiếm thêm thu nhập và vận hành một công ty là việc tìm kiếm và duy trì khách hàng, bạn luôn mong muốn khách hàng sẽ sử dụng và giới thiệu cho nhiều người khác dịch vụ hoặc sản phẩm mà bạn cung cấp, trong khi thực hiện một dự án độc lập điều duy nhất bạn cần là thực hiện tốt dự án và khách hàng thanh toán dứt điểm.

Duy trì niềm tin theo cách hiện thực nhất.

Astartup

Bạn nên cố gắng hết sức để xây dựng đế chế riêng của mình và đồng thời tiếp tục theo đuổi công việc làm thuê hiện tại cho đến khi công ty của bạn kiếm được lợi nhuận nhiều hơn khoản lương bạn đang được hưởng. Hãy cố gắng để tránh gây ra bất kỳ sao lãng hoặc giảm hiệu suất làm việc tại công sở, bạn cần duy trì hình ảnh hiện có của mình để đảm bảo rằng nếu việc khởi nghiệp của bạn không như mong đợi, bạn vẫn có thể tiếp tục làm việc và có thu nhập bình thường.

Một kế hoạch hoàn hảo không phải là kế hoạch phát triển đột biến hay nhanh chóng rời bỏ công việc làm thuê hiện tại, mà là một kế hoạch phát triển chắc chắn và tiếp tục việc làm thuê đến lúc lâu nhất có thể. Không gì thuận lợi và an toàn bằng việc vừa được điều hành và phát triển công việc của riêng mình trong khi vẫn có khoản thu nhập thường xuyên để trang trải chi phí hàng ngày, ngay cả khi bạn sẽ phải ngủ ít hơn cũng như phải từ bỏ khá nhiều các thú tiêu khiển của mình.

(Biên tập bởi Sơn Trần)

[Discovery] Những hiện tượng kỳ lạ chỉ có thể thấy trong vũ trụ

Tóm tắt bài viết:

– Vũ trụ ẩn chứa nhiều điều mà chúng ta chưa thể khám phá hết.

– Trong đó có những hiện tượng thời tiết vô cùng kỳ lạ như bão thủy tinh, mưa pha lê hay mây thủy ngân, sóng siêu nhiệt…


Trên Trái đất có rất nhiều hiện tượng tự nhiên vô cùng kỳ lạ mà có thể bạn chưa bao giờ được thấy như hiện tượng cầu vồng lửa, thủy triều đỏ hay hiện tượng sét đánh trúng núi lửa. Tuy nhiên nếu nói đến những hiện tượng tự nhiên khó tin nhất, phải kể đến những gì đang diễn ra ngoài vũ trụ bao la, nơi ẩn chứa nhiều điều mà chúng ta chưa thể khám phá hết.

1. Bão thủy tinh

Hành tinh HD 189733b nằm cách Trái đất 63 năm ánh sáng được biết đến như một bản sao của sao Mộc, tuy nhiên có điều kiện thời tiết khắc nghiệt hơn gấp nhiều lần. Nhiệt độ bề mặt của hành tinh này có thể lên tới 980 độ C với sức gió luôn ở mức 6.400 km/h. Với kiểu thời tiết khắc nghiệt như vậy, dường như không có một vật thể nào có thể tồn tại trên bề mặt của nó.

01

Thậm chí đến đất đá trên hành tinh này cũng bốc hơi theo từng giây, khiến nó luôn bị mất khoảng 600 triệu kg khối lượng mỗi giây. Mặc dù khoảng cách của hành tinh này đến Trái đất là không quá xa, nhưng do điều kiện quá khắc nghiệt khiến các nhà khoa học không thể quan sát rõ ràng những gì đang diễn ra trên bề mặt.

Các nhà khoa học đã phải sử dụng cách theo dõi gián tiếp thông qua ánh sáng phản chiếu của hành tinh lên các ngôi sao của nó, và phát hiện ra rằng hành tinh này cũng có một bầu khí quyển màu xanh giống Trái đất của chúng ta. Tuy nhiên điểm đặc biệt là bầu khí quyển này là một cơn bão khổng lồ di chuyển liên tục với thành phần chính là các mảnh thủy tinh silicat. Chính thành phần này phản chiếu ánh sáng Mặt Trời khiến cho nó có màu xanh giống Trái đất.

2. Mưa pha lê

Có thể bạn đã biết đến hiện tượng mưa đá hay mưa sao băng, tuy nhiên mưa pha lê là một hiện tượng kỳ lạ hơn mà chỉ có thể thấy trong vũ trụ. Ngôi sao HOPS-68 cách Trái đất 1.350 năm ánh sáng là một ngôi sao có cấu trúc gần giống Mặt Trời khi mới hình thành. Xung quanh ngôi sao này tồn tại một đám mây bụi khí, mà trong đó thành phần chính là những tinh thể olivin màu xanh lá cây (một loại đá quá trên Trái đất có cấu tạo chính là sắt và magie).

Những hiện tượng kỳ lạ chỉ có thể thấy trong vũ trụ

Điều đặc biệt là do nhiệt độ khá lạnh của các đám bụi khí này (khoảng -170 độ C), khiến các tinh thể olivin ngưng tụ thành các hạt nhỏ và rơi xuống giống như một cơn mua pha lê xanh đẹp kỳ diệu.

Hiện tượng đặc biệt này đã được quan sát bởi kính viễn vọng không gian Spitzer của NASA. Các tinh thể tương tự cũng đã từng được phát hiện trong các sao chổi thuộc khu vực ngoại vi của Trái đất. Các nhà khoa học cho rằng những dạng đá quý này có thể được hình thành trong giai đoạn đầu của hệ Mặt Trời, khi các sao chổi bắn phá các hành tinh trong quá trình nguội lạnh.

3. Mây thủy ngân

Alpha Andromedae, còn được gọi là Alpheratz, là ngôi sao sáng nhất trong chòm sao Andromeda. Bên cạnh đó ngôi sao này còn có một điểm đặc biết, đây là ngôi sao duy nhất được phát hiện có một hệ thống thời tiết gần giống với Trái đất. Các nhà khoa học trong quá trình quan sát đã phát hiện sự thay đổi của nồng độ thủy ngân trên bề mặt của ngôi sao này.

03

Các nhà khoa học tiếp tục theo dõi trong 7 năm qua và đã phát hiện ra rằng, quá trình thay đổi này là một sự di chuyển theo thời gian. Một quá trình gần giống với sự di chuyển của bầu khí quyển và các đám mây trên Trái đất. Họ cho rằng trên ngôi sao này tồn tại những đám mây thủy ngân vô cùng đặc biệt, có tính chất di chuyển theo thời gian. Tuy nhiên họ chưa thể lý giải sự hình thành của những đám mây thủy ngân này, cũng như nguyên nhân khiến chúng di chuyển một cách đều đặn như vậy. Các nhà khoa học chỉ biết rằng trên ngôi sao này không tồn tại từ trường, điều kiện cần thiết để có thể xảy ra hiện tượng tương tự như trên.

4. Sóng siêu nhiệt

HD 80606b là một “sao Mộc nóng” khác chỉ lớn gấp 4 lần bản gốc mà chúng ta đã biết. Với quỹ đạo elip dẹt hành tinh quanh ngôi sao của nó mất 111,4 ngày và có có khoảng cách bằng 0,88 lần khoảng cách Trái Đất đến Mặt Trời. Trong khi quan sát hành tinh này, các nhà khoa học phát hiện ra sự thay đổi bức xạ nhiệt vô cùng lớn trên bề mặt của nó.

04

Sự thay đổi bức xạ đột ngột chỉ trong một vài giờ khiến nhiệt độ trên bề mặt của hành tinh tăng gấp đôi từ 500 độ C lên tới hơn 1.000 độ C. Hiện tượng dao động nhiệt độ này là lớn nhất so với tất cả các hành tinh khác mà các nhà khoa học đã quan sát được.

Tuy nhiên không chỉ dừng lại ở sự thay đổi nhiệt độ, hiện tượng đặc biệt này gây ra những vụ nổ bức xạ bất ngờ. Một vụ nổ như vậy có thể tạo ra sức gió trên bề mặt lên tới 17.000 km/h và tạo ra những đợt sóng siêu nhiệt bao phủ toàn bộ hành tinh. Lúc đó, hành tinh bị bao trùm bởi một bức tường gió và lửa khiến cho không một vật thể nào có thể tiến lại gần.

5. Mưa cát và sắt nóng chảy

Sao lùn nâu hình thành từ các ngôi sao thiếu khối lượng và vật chất cần thiết để đốt cháy. Do đó chúng tương đối lạnh, một số trong số sao lùn nâu thậm chí có thể lạnh hơn cơ thể con người. Nhiệt độ thấp nghĩa là chúng không thể phát sáng đẻ kính thiên văn phát hiện ra. Trong số đó có sao lùn nâu 2M2228 cách 39, 1 năm ánh sáng với những thay đổi ánh sáng trên bề mặt cứ 90 phút một lần.

05

Sự khác biệt này là kết quả của những đám mây di chuyển trên bề mặt của sao lùn trong cơn bão có kích thước của Trái Đất. Nhiệt bề mặt của ngôi sao khoảng 600-700 độ C, vì vậy những đám mây được tạo thành từ những vật chất kỳ lạ, trong đó có cát và những giọt sắt nóng chảy.

(Còn tiếp…)

Tham khảo: Listverse

[Infographic] Lịch sử của cuộc gọi đường dài

header. ​

Sự ra đời của điện thoại là một trong những bước đánh dấu lớn của lịch sử loài người. Điện thoại đã làm thay đổi hoàn toàn cách thức liên lạc của con người với nhau. Từ xa xưa, nếu muốn truyền tin đi xa, con người phải dùng các ám hiệu về âm thanh (trống), lửa, khói, bồ câu đưa thư,… Ngày nay, chúng ta chỉ cần nhấc điện thoại lên và bấm số.

Trải qua một thời gian dài, cùng với sự phát triển của khoa học kỹ thuật và đời sống con người, việc gọi điện đường dài cũng trở nên thuận tiện hơn rất nhiều về khoảng cách, phương thức, cũng như về chi phí gọi điện. Lịch sử về cuộc gọi đường dài được tóm tắt trong infographic dưới đây.

Lich-su-cua-cuoc-goi-duong-dai.

Nguồn: tollfreeforwarding