Implement Lucene Search in Android App – How to make it work

I created an Android app for World Health Organization long ago. I made different kinds of search engines before with full-text indexing. This time I wanted to do something different. I had only 4 days to make the app. They had different kinds of contents like

  1. html
  2. Plain text files
  3. PDF files

And they needed a search engine to search all the contents and show a unified result set ( Showing results in a same page with relevancy ). Now I could implement it in SQLite, but that would mean a lot of task and the gain would be much lesser than a document-based search engine like Apache Lucene.

Read More »

Social Media Marketing: For already reputed brands

Hello, everyone. I did many experiments in my life, one of them are social media marketing. I read a lot, discovered a lot. There are many opinions, different strategies. Not every thing is suitable for every scenario. Today I will be writing about the top ice cream brand, IGLOO, in Bangladesh, for which I did do something to sell out their new ice-cream line of 6-month-stock in 2 months, before they could even go to Television commercials and bill-boards! How did I do it? Read along…

Read More »

Springboot and MongoDB: Creating indices on inherited properties or fields.

I started writing my first spring and the first springboot application today. The project requires mongodb and mysql as databases. My application’s domain objects are highly hierarchical and we need to make different kinds of search engines for many child classes. So, there needs to be some violations from common patterns like “field shadowing”. Though it’s only for the purpose of data and search layer, it doesn’t affect the object model of the application. So, I needed to change field behavior in subclasses which are different entities or collections in Mongo store. Basically I needed to put a annotation on subclass to enable an index on a field.

Read More »

Writing Effective “Special Case Pattern” and “Null Object Pattern”

Handling null can be problematic in code organization and management. So, there are two very common patterns used by experienced developers now and then. One is “Null object pattern”, where you return an object which states a missing object, and another is “Special Case Pattern”. This article is to “How you can write effective objects for those patterns and why you should use them instead of returning null or throwing exceptions”

Read More »

Asynchronous VS Non-blocking, and Microservices

Yes, these are not the same terms, and I would say they are quite different in modern software architecture. It’s very frequent to see asynchronous and non-blocking terms are used interchangeably. Especially, when creating a thread to do some background task and letting the calling thread to continue without waiting for the new asynchronous thread.

But non-blocking now has a very deep meaning, better be said as “how much blocking our applications are”.

Read More »