Elastic Search to the rescue


After spending a lot of money & time trying to optimise SQL queries and hiring DBAs as a freelancers; I took a decision to take a look on Elastic Search and Polr.

Large amount of data like 0.5 Million join with 0.5 Million left join with 0.75 Million, etc.. retrieving data in a second is a dream that will never come true with relational database and data integrity.

In a small companies we are a full stack developers. We are not experts in DB (And we do not want to). We want Entity Framework Code First to handle our database creation and relation. Having a good a knowledge in creating Non clustered indices is a plus (Getting the suggestions form SQL Server Management Studio Execution Plan will be more than enough).

But again, how could we make our search super fast. Yes, the solution was the Elastic search for me. And another library called Hang-fire will notify Elastic search service to reindex some data or to delete it.

Your suggestions and cooperation is appreciated.

My friend Amer Ala’amar added this comment when I shared with him this article.

Nice article, did u try live data cube with sql server analysis service. It will restructure your whole data to be very fast to retrieve. It depends on your business model, because it is a disconnected environment can be updated by configurable period, 5 minutes and so on. So if your data change can be more than this period on a specific type of search, then it is worthy to have a look over it.

The very beginning slow steps in Entrepreneurship


Before three years, I bought a MAC Book, and I start learning objective-c to develop my first iOS app. It took from me 4 months to learn and to publish my first version of a semi application. (before couple of months I learned that they call this step Minimum Viable Product MVP).

I just created it for fun! watching objective-c videos and put my hands on dirt using Xcode.
I just want to resolve my issues and bugs using the art of copy paste form blog posts here and there 😀 and yes it works.

After couple of releases on iOS and before 7 months from now, I found that i’m getting more than 4,000,000 impressions from Admob every month with ~ 150 K of downloads. So I decided to learn Android and to publish a new version of Telawat (Yeah, it’s the name of the app).

I did not like Android development! stateless UI! it works on 4.4  but not on 4.3! …etc.
Anyway, I should find a solution. A lot of bugs have been reported! the first 30 reviews from friends comes with 5 stars 😀 … But things will never continue on this way .. And I found a very talented freelancer. iOS app will handle the expenses + small amount from my salary sometimes. But, Is it worth it! Yes of course. After resolving all bugs I created a Facebook Ads campaign which gives the application a very good jump (Check image below).

 

Things are moving in slow mode from my side, but I believe that I learned how to accelarate. The time is a very critical factor in entrepreneurship. So here is my advises:

  1. If you believe that you have a good Idea try to implement it by your self as fast as you can even if it’s not a feature complete (Do the MVP).
  2. If you cannot do it by your self, look for a trusted investor to share your Idea with him. Or maybe one of your friends and agree on some percentage.
  3. Social media: Share button in your app, Create Page on Facebook for you app, etc…
  4. with 5 to 10 Dollars bidding every day you can create a Facebook Ad. that will increase the number of users. (e.g. Say I want to advertise in Algeria & Egypt on Android 4.0 and above whom interested in these specific keywords).
  5. Feedback form users is important. I already implemented set of ideas based on users feedback.
  6. Finally, the most important one: Do not listen to the Discouragers … Believe me I heard from people: Ahh! Old Idea! ….. I want to say: “No need to create a market dude!” .. just add some extra value to an existing Idea and go.

Wish you luck dears ….. Peace 😀

 

MVC Tooltip Validation using jQuery and Bootstrap


Check the Sample Code Github

Me and Ahmad Aqrabawi created a simple jQuery plugin to convert MVC Validation to a Boostrap tooltip validation error.

When you create a form; Validation Errors could change in the layout when its appear and may messed up the your layout .. So its error tooltips could be useful sometimes.
Simply, create new MVC project and navigate to “Register View” .. Add a validation message from Html helper directly after the text box

@Html.TextBoxFor(m => m.UserName, new { @class = “form-control” })

@Html.ValidationMessageFor(m => m.UserName)

Same thing for the other fields.

@section Scripts {

@Scripts.Render(“~/bundles/jqueryval”)

<script>

$(function () {

$(“form input”).tooltipValidation();

});

</script>

}

Also you can add placement option (by default its top)

$(“form input”).tooltipValidation({

placement: “right”

});

One more thing … your tooltips will appear in black colour now. If you to make it in red add this file

<link href=”~/Content/jquery.validate.mvc.css” rel=”stylesheet” />

 

Check the Sample Code Github

Geeks are linking Dots


All of us saw how Modern browser applications moving fast in a crazy way! A lot of developers (spectially Silverlight one) was really scared (like me) to learn Javascript because its super Dynamic, there is no IDE that support it very well. Anyway, that was in the past.

A lot of Silverlight devs moved to another technologies, but you can touch that they moved with their Silverlight skills and knowledge to Javascript world like John Papa (he has a great courses in Pluralight!).

I just talked about fast moving of web world … Pluralsight helped me a lot to learn faster, So lately, I started with Building Data-Centric Single Page Apps with Breeze course. Its amazing! Again,  You can touch how Brian Noyes used his WCF RIA knowledge in another technology. I already read his small useful book in WCF RIA services

And here is another Geek who moved to another world with his skills and knowledge http://ijoshsmith.com/ios-for-dotnet-devs/

be optimistic 🙂 like them and keep learning