Monday, 2 December 2013

RavenDB Document Modelling

RavenDB is quite powerful in terms of what you can do with it. It has amazing data storage and replication capabilities that come in handy when you are dealing with a huge data set. Today, we are going to take a look at how you can documents in a RavenDB database in order to get the optimum performance from your database.  This way, you will be able to handle user request in an efficient and reliable manner with little or no need for maintenance.
For one, most people make the error of modeling their data as they would on a typical relational database. Raven is non-relational and using a relational model will not give you the results you desire. Being documented oriented in nature, raven can give you some amazing results when you stick to its nature. There are a number of things that you need to keep in mind when approaching the document oriented nature of raven.

1. RavenDB Documents are not flat
In a raven database, you are not limited to a row like in a relational database. You can store more than just keys and values in your raven database and this can even include complex object graphs. Since you do not need a relation in order to store complex data structures in a raven database, there is little work involved in storing your data. This is due to the fact that we do not need different tables in order to store various data elements in a database. A single document can be used to store as much data as we need in the format we want. This way, we only need a single request to get all the data we need instead of having to look at relations and what not if we were using a relational database. This brings us to the next point.

2. RavenDB is not relational
Using relational concepts in Raven is a mistake most people often make. There is a reason why RavenDB is not relational. For one, it makes it easy to optimize storage and management of documents. You also get to store huge amounts of data which most database have nowadays. With the non-relational nature of RavenDB, each document is treated separately and independently meaning it can be stored anywhere in the system.

With RavenDB, every document is expected to make full sense on its own and you are encouraged to put all the information you require into a single document. Having all the necessary details in a single document enables you to maximize usage of the RavenDB architecture for your data storage purposes and you are able to get more out of your database.

3. Entities and Aggregates
This is something that you need to know in order to fully grasp the document oriented nature of the raven database. Aggregates have several entities and value types controlling access to all the objects that fall within its boundaries. This means that external reference will only refer to the aggregate root and not to the child objects. In RavenDB, the aggregate root is a document. This means that there will be no expensive computation needed in order to go through the aggregate to get to the object we need.

4. Associations Management
RavenDB also makes it easy to have association management by making use of the associated document key and loading the association with the related document when it is needed. This makes it easy to have a huge dataset and still maintain associations between different documents.


5 Habits of Highly Effective Project Managers

There are all sorts of project managers with varying backgrounds. The job of a project manager is one in which you can get your personality to shine and make it your own. However, it is also very demanding and requires a number of skills from anyone who wishes to be successful at it. Though skills may vary from one project to the next, there are a number of habits you must have in order to be effective. In the next few sections, we take a look at 5 of the top habits of highly effective project managers and why you need to include them in your daily routine if you are looking to be a great project manager.

1. They Never Stop Learning
In a project environment, there is always something new to be learnt every day. Because each new project comes with its own conditions, you have to learn something new each time you are undertaking a new project. The role of a project manager always has an element of freshness and something new to learn as long as you are willing to do so. Being willing to learn can really take you places as a project manager so you should try to always be inquisitive if you are to make it as a project manager.

2. They have Great Communication Skills
This is a very important skills for a project manager. In order to keep the team inspired and the relevant stakeholders in the loop about the progress of the project, effective communication comes in very handy. In this case, communication refers to both listening and passing the message across to the other party. In order to get the exact details of what is required for a project, listening and paying attention to details is a must.

3. They are good at Planning
It is the role of the project manager to make sure that all milestones are met and the project is on track. This requires a plan that will cover all the work needed and putting all this in the right time. This is not an easy feat to achieve as there are a lot of things that are usually involved in a project. All these things must have time allocated to them and often, good project managers make it look like an effortless task. This needs some training in order to perfect and get into a project management role.

4. They don’t need guidance to work
This is a very important habit for a project manager. Usually, it is the project manager who is left in charge of a huge complex project and they are fully in control of it. Starting a new project without having to be guided is a very good habit to develop as it shows that one is responsible and self-reliant. It is also an indicator of self-confidence in the project manager and they can be left in charge of large scale projects. An effective project manager will approach any new project with confidence no matter how huge it may seem.

5. They focus on relevant things
When working on a long term project, there are a lot of distractions that may crop up throwing the project off track. An effective project manager knows how to focus on the right thing at the right time in order to achieve the set objectives and avoid being sidetracked. Having a tool or technique to help one stay focused on the task at hand may come in very handy at this point and this is what training will help you with.
In case you are looking to be an effective project manager and develop the above listed habits in addition to a lot more, you can opt for online training. With online training, you learn all that is required in order to make you a great project manager from the convenience of your home or office. You do not have to travel up and down looking for a school that offers project management training while you can simply get online training in project management and save time and money.
There is a lot that you stand to benefit from learning about project management online and even the learning itself can be your first project as you can study within a set time period.


Sunday, 13 October 2013

Safaricom Appwiz Incubation, Progress and More

Hey guys!! I have been away from quite some time but I do have a lot of good news to share. First of all, I managed to get into the Safaricom AppWiz Incubation Program at iLabAfrica. I have been there since August and we have done quite a bit of learning now. We have been taught to think not only as developers but as business people as well. We have been taught all the things that are involved in running a business and complying with regulations. Over the course of the incubation, we have got visits by some successful startups who narrated their experiences. People from uhasibu, kopokopo and other great startups were quick to inform us to always be ready for failure and challenges when starting a business.

We have managed to speak and interact with the very best in our industry and for that I am thankful. The incubation was great and as it is coming to a close, I am definitely a better techpreneur. I am now able to think about the business side of things of things instead of just getting a product out there with no monetization plan.

The people at iLabAfrica have been very helpful to provide us with all the assistance we needed especially Mr. Matogo who is the incubation manager. He has gone to great lengths to see that we get what we want and connected us with the best people in the industry. Sean Smith from Invested Development has also been of great assistance giving us not only the investment angle of things but also some insight on how we should improve our products and overall business plan.

Well, that is all the updates for now but I will be blogging soon with some more updates. Always check out this space and don't forget to download our games from the Google Play Store and visit our website for more information.

Thursday, 29 August 2013

Monday, 19 August 2013

App Catalog Growing, Safaricom Appwiz Incubation and More

Hello all, Hope you have been doing great. For me, I have been quite engaged in a lot of things here and there on the tech scene but at least i can say I am making some progress. The year started with me achieving the goal of buying a laptop and that has been a major step to all that I have done this year. With the laptop, I have been able to do some odd jobs online and managed to pay my own school fees. This has been quite a relief to my dad who is paying for my younger sister who is still in high school. At least nowadays I am the one sending my parents money and not the other way round.
I also managed to make it to the Safaricom appwiz incubation. We are 18 teams who made it to the finals and we a re currently undergoing some business incubation to teach us how to actually turn apps into businesses that are capable of sustaining us. I have decided to stop doing the odd jobs given that we were promised an allowance which is quite enough to sustain me for the holiday. At the moment, I sneaked away from the incubation to come to school and do the final exams for this year. I can say so far the exams have been good given the fact that there are only two non-computer courses. I hope I will be able to finish the exams and get back to the incubation without anyone noticing.
After the incubation, I will be at Microsoft offices in Nairobi building a windows phone version of the same using the Unity3d game engine. Am actually looking forward to that!!
On the android development scene, I have managed to get myself a developer account and so far, I have three apps.
1. Stupid Button https://play.google.com/store/apps/details?id=lazy.bones.stupidbutton
2. BMI Calculator https://play.google.com/store/apps/details?id=lazy.bones.bmicalculator
3. Mulika Mwizi https://play.google.com/store/apps/details?id=lazy.bones.mulikamwizi
I will be making and releasing more apps every week as I am aiming to make around $500 per month on the apps which is actually enough to sustain me comfortably for the rest of the time I will be in school. So far, I have barely made $10 so am going to do more research on android monetization using ads now that Google Play does not accept paid applications from African developers. I will grow the app portfolio and try as much as I can to optimize the monetization techniques.
That is all for now but in case of new events, I will definitely keep you guys in the loop.

Sunday, 11 August 2013

Stupid Button Availabe On Google Play

Hello guys, It has been quite a long time but I am finally back with a bit of news. I finally got myself a Google play developer account and submitted Stupid Button to it. I wouldn't wanna bother you with lots of details so here is ....



Get it on Google Play