"Talent wins games, but teamwork and intelligence wins championships!" - Michael Jordan
(An american professional basketball player and entrepreneur. He played for Chicago Bulls and Washington Wizards, and regarded as the greatest basketball player of all time. 1963-)
Mobile TCP Evaluation
Personal
Course & Project Type: Networking Problems in Cloud Computing, Group (3 members). Programming Languages & Tools: Ruby, tcptrace, tcpdump, wireshark. Brief Abstract:
Although The Transmission Control Protocol (TCP) is one of the core protocols of the Internet protocol suite (IP), it is not particularly designed for the mobile environment. The principle goal for this project is to evaluate performance of TCP in mobile environments (WiFi and Cellular-Data). We aim to thoroughly analyze the obtained results and come up with the factors behind TCP’s slow mobile performance. We focused on one principal problem, namely TCP connections with Cellular-Data in a moving environment. The following questions are addressed in our analysis: 1) What is the comparative performance of TCP in wired, wifi and mobile networks? 2) What are the main reasons for slow TCP performance in mobile networks? 3) How TCP performance is affected by the mobility of cellular devices? 4) Can we suggest a plausible fix to the problem with moving Cellular-Data connections? Our initial conclusions were that there is a significant decrease in performance in both WiFi and Cellular-Data for mobile phones. We found out that TCP was appearing to think that there was congestion in the connection, so RTT was increasing and connections were being reset often. In addition, when on Cellular-Data connections while moving, the connection is unbearably slow and barely transferred any data during the TCP connection. We propose that a possible solution or alleviation to this problem would be to include state transferring protocols inside of the cell towers just as if they were WiFi routers. Course & Project Type: Distributed Systems, Group (2 members). Programming Languages & Tools: Google Go, Linux. Brief Description: Kademlia is a communications protocol for peer-to-peer networks. It is one of many versions of a Distributed Hash Table (DHT). The original Kademlia paper, says that the Kademlia protocol consists of four remote procedure calls ("RPCs") - PING, STORE, FIND_NODE, FIND_VALUE. We implemented all of these four RPC procedure calls, with an iterative node look-up algorithm (although the paper describes it as recursive). 'iterativeFindNode' and 'iterativeFindValue' procedures functioned as basic Kademlia node look-up operation and search operation respectively. In addition, we implemented caching to an extent during in this project according to the given specs, which helped us to achieve improved look-up performance. We also developed 'Refresh; and 'Join' functions. Course & Project Type: Distributed Systems, Group (3 members). Programming Languages & Tools: Google Go, Linux.
Brief Abstract: Kademlia is a distributed hash table (DHT) for decentralized peer-to peer (P2P) computer networks. Like many other DHTs, Kademlia contacts about O(log (n)) nodes during the lookup for a stored object, out of a total of n no. of nodes in the system. We also implemented caching to an extent during our first project implementation according to the given specs. Although they helped us to achieve improved look-up performance, this caching strategy is not optimal in certain cases. On the other hand, Beehive is a technique which uses proactive replication to provide a constant look-up performance for DHTs, especially for power-law query distributions (e.g. Zipf query distribution). In certain papers, authors used Beehive technique intelligently over another DHT Pastry. In this project, we designed and implemented Kademlia-B, which uses Beehive-like proactive caching to improve overall look-up performance of Kademlia in special cases. Course & Project Type: Intro to Artificial Intelligence, Group (2 members). Programming Languages & Tools: C++. Brief Description (Tournament): We implemented an intelligent version of Othello game. We named our version of the game "Robothello". Every group of the course (around ~90 students) had to develop their version of Othello, with own A.I. techniques and heuristics. A tournament was arranged finally, where two versions of the Othello game played against each other in a particular match. Opponents were chosen randomly in the first round and winner from each match progressed to the next round. Our Robothello went into the semi-final stage (last four) in the tournament, losing to the eventual champions. For Robothello, we implemented various heuristics (for a particular state of the game) to decide the next move: coin-parity, corners, stability, player mobility and closeness to corners (as corner positions are very strong in Othello). Course & Project Type: Operating Systems, Group (3 members). Programming Languages & Tools: C++, Linux. Projects: 1. Tiny Shell Implementation. 2. Kernel Memory Allocator. 3. Multi-threaded Server. 4. File system
Thesis Topic: "Network Voronoi Diagrams (NVD) for Uncertain and Extended Objects in Road Networks". Supervisor: Dr. Mohammed Eunus Ali, Assistant Professor, Dept. of CSE, BUET. Group partner: Abu Saleh MD. Noman, Ex-Undergraduate student BUET. DOWNLOAD: An older version of the first few pages (abstract & introduction) of extended objects part work: View Abstract & Intro | Download a PDF Version. Course & Project Type: Graphics, Group (3 members). Programming Languages & Tools: C++, OpenGL. Description: Ray tracing is a technique for generating an image by tracing the path of light through pixels in an image plane and simulating the effects of its encounters with virtual objects. It is a tool for developing realistic visual images. We built a project which implemented "Ray Tracing" technique successfully. The output of our project with different parameters is shown above. Course & Project Type: Information System and Software Design, Group (2 members). Programming Languages & Tools: Unity JavaScript,Unity Game Engine, 3ds Max, Autodesk Maya, Adobe Photoshop, Inno Setup tool Description: We developed a 3D first person game. Storyline relates to a sailor, who is lost in an island and he must survive there by completing tricky tasks. We developed 2 fully functional levels of the game. Main features were:
Course & Project Type: Database, Group (2 members). Programming Languages & Tools: Oracle 11g, ASP .NET, Silverlight 3.0. Description: We developed a complete cricket information and news website. The database design was very complicated and critical. We used triggers, stored procedures etc. as well. .NET platform was used for front end works. Main features were:
Course & Project Type: Graphics, Group(3 members) & Individual (Living room project). Programming Languages & Tools: OpenGL, C++.
Description: I completed two more projects other than "Ray Tracing" in my Graphics course. I, along with two group partners, had to design exterior parts (including lobby) of Burj Al Arab building. We implemented 3 kinds of lighting and also swift camera movement. Skybox was also implemented. Another project was to design a living room, with moving curtains. The room contained a light, which turned light on/off for the room. Course & Project Type: Operating Systems, Group (3 members).
Programming Languages & Tools: Nachos Project, C.
Description: This project was done in Linux operating system. This system was able execute system calls (e.g. read, write, join, exec, exit, etc.) in Nachos. The features that were added on Nachos:
Course & Project Type: Object Oriented Programming (C++, Java), Group (2 members). Programming Languages & Tools: Java, Netbeans.
Description: This project was developed using Java Media Framework (JMF). Implemented features were:
Course & Project Type: Structured Programming Language, Individual.
Programming Languages & Tools: C, Microsoft Visual Studio 6.0, Adobe Photoshop (Designing).
Description: The software was developed using iGraphics developed by BUET ex-faculty Shahriar Nirjon. The main features were:
I have designed t-shirts, logos, banners, posters, ads for various purposes. I have also worked on 3d softwares like 3ds Max or Maya. Some of the samples of my amateurish design related works are shown here. |

