Skip to main content

Posts

Android APK Extractor

I have been working on Android since last couple of years and its really amazing to watch how SDK takes care of few brilliant stuff, like XML based resource mapping, Delvik class generator (.dex or .odex file). So, thought lets explore internals of APK file structured and create a APK parser . Somehow any Hex Dump fascinates me enough to explore its real meaning, crazy? this is how it is :-) I did google and found few solutions which require Android SDK AAPT (Android Asset Packaging Tool) to decode APK resource. So, I thought to create an alternate parser (independent of Android SDK) which developer community can use to extract content of APK. Android APK is a zip file, any ZIP parser/program can parse and extract its content. But this is the easy part, the tricky part is to convert resource files stored inside the APK (i.e. Manifest, Layouts, String.xml etc.) to plain text and convert Dex/ODex file to readable JAR. To speedup the run time processing of these resource files, AAPT e
Recent posts

GenAI App using Proprietery Data, Spring Boot, Amazon Bedrock - Part 3

This is part of a series of articles to introduce Generative AI and step-by-step process with code sample to build GenAI Application; Part-1 ( GenAI Introduction ), Part-2 ( Building GenAI App using Spring Boot and Amazon Bedrock ) and Part-3 ( Building GenAI App with Proprietary data ). In previous article , we have built GenAI Application (simple ChatBot) using Amazon Bedrock Model ( Claude 3 Haiku ) and Spring Boot . This App generates answers based on training dataset (public information) of the Model. What about if we could restrict or refine this Model with proprietary data (like Company details, Sales, Customer records) as add-on Knowledge Base instead of retraining the Model . This would allow to serve personalized and contextual response, e.g. generating response with Customer's last order details. In this article we are going to enhance our GenAI application to accept proprietary data. Prerequisites Spring Boot v3, JDK 17 AWS SDK v2.x AWS IAM account with API credentials

Introduction to GenAI - Part 1

This is part of a series of articles to introduce Generative AI and step-by-step process with code sample to build GenAI Application; Part-1 ( GenAI Introduction ), Part-2 ( Building GenAI App using Spring Boot and Amazon Bedrock ) and Part-3 ( Building GenAI App with Proprietary data ). GenAI Evolution GenAI (aka Generative AI) is the latest buzz word across Technology space. This buzz is something similar to a set of earlier Tech milestone revolutions, latest of such event was Smart Phone era (iPhone, Android). Smart Phones have revolutionized content consumption, access and interaction pattern (Billions of users experienced Internet only because of Smart Phone!). Similarly, GenAI is introducing next phase of Content creation, processing and interaction. AI (Artificial Intelligence) is not something new, it's been there as classic Computer Science concept (aka theory) for ages. But it took huge amount of effort and time to make it feasible (Tech, Infrastructure and

GenAI App using Spring Boot and Amazon Bedrock - Part 2

This is part of a series of articles to introduce Generative AI and step-by-step process with code sample to build GenAI Application; Part-1 ( GenAI Introduction ), Part-2 ( Building GenAI App using Spring Boot and Amazon Bedrock ) and Part-3 ( Building GenAI App with Proprietary data ). Previous article ( Introduction to GenAI ) explains important concepts of GenAI, Model Architecture and Vector Database. In this article, we are going to develop a simple GenAI based ChatBot using Spring Boot and Amazon Bedrock. Here we'll explore AWS SDK and REST API based Integration rather than Spring AI framework. Also, going to share troubleshooting scenarios which you may face while building this application. Prerequisites Spring Boot v3, JDK 17 AWS SDK v2.x AWS IAM account access and API credentials. Make sure that "AmazonBedRockFullAccess" permission is granted. Amazon Bedrock FM ( Anthropic Claude 3 Haiku ). This Model helps with Image to Text, Chat, Conversation features. En

Lessons Learned From My Weight Loss Journey (7 KG in a month)

  For last few years I was so much involved into building my Startup that I didn't realize my health is getting stretched and compromised . As you all know, running Startup is one of the toughest thing in the world and it demands a lot. In fact irrespective of your profession, busy professional life adds huge toll on our health. Unless you are careful, you'll not even realize that lifestyle balance is broken with excessive stress, irregular eating habit, junk foods, overeating and what not. Health is our biggest asset and as you grow older you realize it better. We can't change paste but we can very much control our future. So, decided enough is enough and lets loss excess weight, improve diets and Be Healthy! Thought to share this journey and learning to help others who may face similar challenges. I have crafted below method following multiple Blogs, Youtube channels (and adjusted as per my lifestyle feasibility) . I was 86+ KG when I started and reduced 7 KG in a month! 

Unit Testing and Code Coverage in Python

Unit Test is one of the most important part of development artifacts, which helps to automatically test whatever code we write. Coverage report measures quality of Unit Tests and points out unused/untested code. This tutorial will help to get started with Unit Testing and Coverage report in Python. For this tutorial we will use Eclipse PyDEV as Python IDE and its integrated Coverage plugin to generate Code Coverage report. Environment Setup: Install PyDEV Eclipse Plug-in. PyDEV comes with Code Coverage feature ( Show View - Code Coverage ) which integrates with python module " coverage " Install Coverage module:   # python -m pip install "coverage < 4.0.0" Coverage module higher than version 3.x doesn't work with PyDEV. Coverage report gets generated as binary file under- Workspace\.metadata\.plugins\org.python.pydev.debug\coverage\.coverage Sample Code:  Download sample code from GitHub . This includes a function (under /src ) to get ODD and