Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,165,847 members, 7,862,771 topics. Date: Monday, 17 June 2024 at 05:51 AM

KodeHauz's Posts

Nairaland Forum / KodeHauz's Profile / KodeHauz's Posts

(1) (of 1 pages)

Technology Market / Kodehauz Officially Releases Localstore Mobile App by KodeHauz: 2:08pm On Jul 03, 2019
LocalStore mobile app was officially released on google play store. This is to enable vendors and end users to easily access business through their mobile phone by simply downloading the app.

Technology has gotten to a point whereby you can get anything at your fingertips. Imagine going to a new environment and you have no idea on how to get your groceries, make your hair, repair your car, etc. Then you came across a business online directory like LocalStore while surfing the internet. LocalStore gives you access to any shop and also every goods and service you might ever wish to get within your locality. Thanks to the latest technology, LocalStore. Customers can now find alternative outlets, find stores in their locality, and much more.


Download LocalStore mobile app today and stay connected.

https://play.google.com/store/apps/details?id=com.kodehauz.localstore

https://kodehauz.com/news/kodehauz-officially-releases-localstore-mobile-app

Crime / Emergency Alert Response System (EARS) Mobile App by KodeHauz: 1:47pm On Jul 03, 2019
Kodehauz launched an Emergency Alert Response System (EARS) app on the 3rd of June 2019.

EARS is an app designed to help people especially during emergencies like accidents, rape, medical cases, kidnapping, domestic violence, etc.
[img][/img]
EARS enables users to send out a quick cry for help alert during emergencies. The uniqueness of this app is the use of a GPS system to keep track of the user’s current location without interfering with their interaction on the app.

All you have to do is to create an account then select a default contact from your phonebook to enable that contact receives an SMS containing a message of their choice and their current location.

The app is available in the google play store.



Download the app today

play.google.com/store/apps/details?id=com.kodehauz.emergencyalert

Art, Graphics & Video / Exploring UX In Mobile Apps by KodeHauz: 11:10am On May 17, 2019
UX; User Experience is often wrongly Interchanged with UI (User Interface), even by industries that offer employment to the latter. This misconception is one of the reasons mobile apps get low ratings in the app store. Most of these apps, though they promise many great features, have been victims of poor implementation.

Differences between UI and UX
User Interface provides a means for user interaction with the app, usually designed by the graphics designer and is mostly frontend execution.

User Experience, on the other hand, aggregates tasks that focus on app optimization to make it enjoyable for the user. UX deals mainly with the backend and is everyone’s responsibility

UX Optimization
Having highlighted these differences above, it is easy to see that one can have a good UI design without a good UX, yet a good UI is an important part of having a good UX design.

A good UX design leaves the user satisfied because there is more focus on the actual purpose of the mobile app, rather than on the mental work involved in understanding how to navigate the app.

Many users will even prefer fewer features with better UX for an alternate app.



Reaction to the mobile app with terrible UX

Some Simple Examples of UX Optimization
Login/Sign Up

Many mobile applications require user sign up and log in, for several reasons, ranging from tailoring the app to the user’s preferences to security checks and privacy. The first step of many developers may be to program an account creation form. Google Developer Advocate and UX designer Nazmul Idris recommend using a ‘Sign In with’ option instead. Facebook, Google, LinkedIn, Twitter, etc. can be used to sign in, to eliminate the cumbersome form filling process or the multi-step registration process.

Refresh Button

A well designed and programmed mobile app should have the ability to reload or refresh automatically when new data is detected. In mobile app programming, refresh is usually used for debugging.

Multi-Step Processes

Multi-Step processes in ordering mobile apps such as a pizza app or a taxi app can be reduced to a couple of textboxes, checkboxes and a link to recent orders by that user. This helps for on the go navigation while performing other activities.

Save Button

Many schools of thought consider the ‘save’ button to be unnecessary, especially for mobile apps. A good app should be able to save data automatically at various intervals, at least, till the user clicks on the “save” or “submit” button

With great UX designs, the simplest of apps tend to have high ratings in the app stores. More insight on mobile apps UX will be discussed in the next UX post.


https://kodehauz.com/blog/exploring-ux-mobile-apps



https://www.youtube.com/watch?v=Bnf2aUibb1c
Programming / Closed User Group (CUG) by KodeHauz: 4:53pm On May 06, 2019
Closed User Group (CUG)
CUG is an extra service provided by network providers to mobile subscribers for communication within groups. This service includes calls and SMS

The service is subscription based, that is the group administrator subscribes SIM cards for a plan and the group members use it all through the duration of the plan.

Independent of this, a CUG party can make and get calls to and from different networks outside the CUG as well. Such calls are made with the member’s airtime.

Once subscribed, you can:
Be a member of more than one but not more than ten closed user groups.

Be allowed to send SMS and receive SMS outside the closed user group.

Be permitted to recharge the line for your other needs.

Be permitted to make calls outside a closed user group (outgoing access).

Be permitted to receive calls from outside of the closed user group (incoming access).

Be allowed to make emergency calls irrespective of the group subscription.



Also,

Independent on distance, calls go through from any location even if from different states.

The SIM can also be used for data subscription and browsing.

The SIM can also unsubscribe from any CUG.



Closed user groups are restricted to only companies, organizations or groups.

More than 10 members can belong to a CUG. Isn’t that great?


Benefits of using CUG for communication
Reduce call costs with one flat monthly fee.

Control costs across the employee base.

Improve team communications and collaboration.

Increase productivity.

Simple to set up and use, no setup fee or hardware costs.

Set credit limits for postpaid accounts.

Allow unlimited calls to group members.

24/7 helpdesk for support and problem resolution.

Devices are portable, SIMs can be inserted in any phone and can be carried around. This removes the barrier of distance in communication.

This also reduces the stress of time involved in walking from one office to the other to get workers attention.

It reduces the chain involved in reaching anyone at workplaces, you just need to dial the number and you are connected, you never run out of airtime that means calls don't get abruptly ended.

With all these features, CUG makes communications more effective at workplaces and organizations.

https://kodehauz.com/blog/using-cug-effective-communication
Programming / Bluetooth Connectivity Between Android And Arduino by KodeHauz: 3:19pm On Apr 15, 2019
Recently, I developed an android application that transfers data to and from an Arduino through Bluetooth. This post aims to highlight how this Bluetooth connection data transfer between the two devices is achieved.

Disclaimer: The scope of this article is limited to the Android application. All Arduino hardware configurations are excluded.

This workflow will be discussed in three stages:

- Device Discovery;

- Connection and

- Data transfer

Discovery
First things first, the necessary permissions must be declared in the manifest file:

<manifest ... >
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
...
</manifest>

On the Bluetooth devices discovery Activity, a BroadcastReceiver listens for discovered devices and updates a Recyclerview showing a list of available devices (paired and unpaired). The receiver is detailed thus:

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// When discovery finds a device
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// Get the BluetoothDevice object from the Intent
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// If it's already paired, skip it, because it's been listed already
if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
// only add device to the list if it is not already there
if (!mBtDevices.contains(device))
mBtDevices.add(device);
// update the reccyclerview here
}
// When discovery is finished,
} else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
setProgressBarIndeterminateVisibility(false);
}
}
Registration for this broadcast is done in the activity’s onResume() method:

// Register for broadcasts when a device is discovered
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
this.registerReceiver(mReceiver, filter);

// Register for broadcasts when discovery has finished
IntentFilter finishedFilter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
this.registerReceiver(mReceiver, finishedFilter);
And unregistered in onPause() method

this.unregisterReceiver(mReceiver);
Connection
Bluetooth connectivity with any selected visible device is established through a service that is initialized at application launch and closed when the application is terminated as shown:

@Override
public void onCreate() {
super.onCreate();
// initialize
mBluetoothCommService = new BluetoothCommunicationService();
}
@Override
public void onTerminate() {
super.onTerminate();
if (mBluetoothCommService != null) {
mBluetoothCommService.stop();
}
}
This service queries the local Bluetooth adapter for paired Bluetooth devices and establishes a connection by spinning up a thread. RFCOMM channel/socket creation and connection are performed on this thread as shown:

private class ConnectThread extends Thread {
private final BluetoothSocket mSocket;
private final BluetoothDevice mDevice;
public ConnectThread(BluetoothDevice device) {
mDevice = device;
BluetoothSocket tmp = null;
// Get a BluetoothSocket for a connection with the given BluetoothDevice
try {
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
} catch (IOException e) {
Log.e(TAG, "Socket Type: create() failed", e);
}
mSocket = tmp;
mState = STATE_CONNECTING;
}
public void run() {
// Always cancel discovery because it will slow down a connection
mAdapter.cancelDiscovery();
// Make a connection to the BluetoothSocket
try {
// its a blocking call and will only return on a successful connection or an exception
mSocket.connect();
} catch (IOException e) {
try {
mSocket.close(); // Close the socket
} catch (IOException e2) {
Log.e(TAG, "unable to close() socket during connection failure", e2);
}
// Send a failure message back to the Activity
Message msg = mHandler.obtainMessage(Constants.MESSAGE_TOAST);
Bundle bundle = new Bundle();
bundle.putString(Constants.TOAST, "Unable to connect device"wink;
msg.setData(bundle);
mHandler.sendMessage(msg);
mState = STATE_NONE;

return;
}
// Reset the ConnectThread because we're done
synchronized (BluetoothCommunicationService.this) {
mConnectThread = null;
}
// Cancel the thread that completed the connection
if (mConnectThread != null) {
mConnectThread.cancel();
mConnectThread = null;
}
// Cancel any thread currently running a connection
if (mConnectedThread != null) {
mConnectedThread.cancel();
mConnectedThread = null;
}
// Start the thread to manage the connection and perform transmissions
mConnectedThread = new ConnectedThread(socket);
mConnectedThread.start();
// Send the name of the connected device back to the UI Activity
Message msg = mHandler.obtainMessage(Constants.MESSAGE_DEVICE_NAME);
Bundle bundle = new Bundle();
bundle.putString(Constants.DEVICE_NAME, device.getName());
msg.setData(bundle);
mHandler.sendMessage(msg);
}
public void cancel() {
try {
mSocket.close();
} catch (IOException e) {
Log.e(TAG, "close() of connect socket failed", e);
}
}
}
Data Transfer
With connection established, data can be transmitted through a new thread that handles the InputStreams and OutputStreams:

private class ConnectedThread extends Thread {
private final BluetoothSocket mSocket;
private final InputStream mInStream;
private final OutputStream mOutStream;
private ConnectedThread(BluetoothSocket socket) {
Log.d(TAG, "create ConnectedThread: " + socket);
mmSocket = socket;
InputStream tmpIn = null;
OutputStream tmpOut = null;
// Get the BluetoothSocket input and output streams
try {
tmpIn = socket.getInputStream();
} catch (IOException e) {
Log.e(TAG, "Error occurred when creating input stream", e);
}
try {
tmpOut = socket.getOutputStream();
} catch (IOException e) {
Log.e(TAG, "Error occurred when creating output stream", e);
}
mInStream = tmpIn;
mOutStream = tmpOut;
mState = STATE_CONNECTED;
}
public void run() {
byte[] buffer = new byte[1024];
int bytes;
// Keep listening to the InputStream while connected
while (mState == STATE_CONNECTED) {
try {
// Read from the InputStream
bytes = mInStream.read(buffer);
// Send the obtained bytes to the UI Activity
mHandler.obtainMessage(Constants.MESSAGE_READ, bytes, -1, buffer).sendToTarget();
} catch (IOException e) {
// Send a failure message back to the Activity
Message msg = mHandler.obtainMessage(Constants.MESSAGE_TOAST);
Bundle bundle = new Bundle();
bundle.putString(Constants.TOAST, "Device connection was lost"wink;
msg.setData(bundle);
mHandler.sendMessage(msg);
mState = STATE_NONE;

break;
}
}
}
// Write to the connected OutStream.
private void write(byte[] buffer) {
try {
mOutStream.write(buffer);
// Share the sent message back to the UI Activity
mHandler.obtainMessage(Constants.MESSAGE_WRITE, -1, -1, buffer).sendToTarget();
} catch (IOException e) {
Log.e(TAG, "Exception during write", e);
}
}
private void cancel() {
try {
mSocket.close();
} catch (IOException e) {
Log.e(TAG, "close() of connect socket failed", e);
}
}
}
Because this service runs in the background, communication to / from the main UI thread is established by creating a handler which updates the UI (toasts, dialogs, view updated) based on the messsage received.

Each activity that requires communication with the service creates an instance of the handler and performs necessary action by overriding the handleMessage() method:

public class BluetoothCommunicationHandler extends Handler {
private WeakReference<Activity> mActivity;

public BluetoothCommunicationHandler() {
mActivity = null;
}

public void setCurrentActivity(Activity activity) {
mActivity = new WeakReference<>(activity);
}

@Override
public void handleMessage(Message msg) {
Activity activity = mActivity.get();
if (activity != null) {
switch (msg.what) {
case Constants.MESSAGE_WRITE:
byte[] writeBuf = (byte[]) msg.obj;
// construct a string from the buffer
String writeMessage = new String(writeBuf);
break;
case Constants.MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
// construct a string from the valid bytes in the buffer
String readMessage = new String(readBuf, 0, msg.arg1);
// do something with the received message
break;
case Constants.MESSAGE_DEVICE_NAME:
// save the connected device's name
String deviceName = msg.getData().getString(Constants.DEVICE_NAME);
break;
}
}
}
}


https://kodehauz.com/blog/data-transfer-between-android-and-arduino-over-bluetooth

1 Like

Webmasters / Work-related Stress And How It Can Be Managed by KodeHauz: 12:17pm On Apr 08, 2019
Working Related Stress can be very depressing especially when there is a lot on my hands and I can't manage them.

Tasks and To-do list keeps increasing everyday………………..

I have a deadline to properly complete them and submit….

It is fast approaching and I haven’t done half of it all…..

"How to meet up the deadlines, with complete staff work?!"

Work-related stress and fatigue
Do I stay awake all night and work? Do I reject food and force the work into my head? Or should I shut down one part of my life, leave friends, families and kill myself to ensure the work is done

All these are symptoms of work stress and fatigue, they linger and duel in our thoughts due to the load we carry and how poorly they are managed. This stress will invariably lead to the following effects:

Increased body stress and fever
Loss of weight and body size
Losing connection to the world and in-depth dissatisfaction
Psychological effects at adverse scale like depression and drug use
Death at the worst stage.
This level of effects can develop to an extreme case if they are not properly managed. Remember you are not the only one working nor are you the only one with such workload, there are people out there who have seen worse and are doing exceedingly well with it.



HOW DO THEY HANDLE THIS STRESS?
Time Management: This is a crucial tool in reducing your stress and producing results. It is proper you manage your time. For example, try creating a timetable for each day based on your already existing projects, and do well to be disciplined about it, you will be glad you did.


Setting Priorities: “Jack Of All Trades, Master Of None”, this is a popular saying we already know but so many don’t yet understand it. When you do all jobs both the unimportant, not urgent, urgent and important all together, you end up wasting time and at the end get nothing done. But when you prioritize your work, scale them according to which is more important or urgent, you can focus on critical ones first and later on to others, this will help maximize your time and reduce stress.


Set Achievable Goals: Yes, set goals that are achievable, something that is within your reach and works towards it. You surely will work without stressing yourself too much.


Share Your Challenges: A lot of people don’t know how to relate, please if you are in this category please work on it. It's necessary we share our challenges with our friends, superior colleagues or anyone else we feel can handle it. Trust me you will thank me for this.


Work Comfortably: Try to apply techniques that make you feel relaxed while working like you are at home. Techniques like stretching, having breaks, listening to music to soothe your mind - anything at all that works for you. Remember, “All Work and No Play, Makes Jack a Dull Boy”. Though, it doesn’t mean you should play all the time. Be Disciplined about it.


https://kodehauz.com/blog/work-related-stress-and-how-it-can-be-managed
Science/Technology / Image Optimization by KodeHauz: 11:31am On Apr 04, 2019
Image optimization involves delivering images with the smallest possible file size while maintaining visual quality. Optimizing images means saving bytes and improving performance for your website: the fewer bytes per image, the faster the browser can download and render the content on your users’ screens. Research shows that this speed is directly related to visitor satisfaction and even monetary conversions.

For example, surveys performed by akamai.com and Gomez reported statistics including:

Half of the web users expect a website to load within two seconds.

A one-second delay in page load time can decrease visitor satisfaction by 16% and can also lead to a drop in a conversion of 7% or more.

Load time is a major contributing factor to page abandonment, and the abandonment increases as a percentage with every second of load time, with nearly 40% of users abandoning a page after 3 seconds.

73% of mobile internet users report that they’ve experienced problems with page load times on their devices.

These statistics are from 2009 and 2010, and it’s reasonable to assume that visitors’ expectations have only increased over time.

Most of the time, it is images, and in some cases videos, that have the most impact on slow load time. According to HTTP Archive, around 64% of a website’s average weight is images. Video accounts for another 9%.

Cloudinary’s built-in fast CDN delivery helps to get all resources to your users quickly. Additionally, Cloudinary automatically performs certain optimizations on all transformed images by default. But beyond this, Cloudinary also provides many features that enable you to further optimize images to fit your needs.

What is image optimization?
Optimizing an image involves delivering images in the format, dimensions, resolution, and quality that will yield the smallest possible file size while ensuring that the resulting image is appropriate for the specific content, the overall page design, the requesting device, and the expectations of your site visitors.


Default optimizations

Whenever you apply any transformation to an image, Cloudinary performs the following optimizations by default:

Strips all associated metadata from the transformed image file (the original image is left untouched). To override this behavior and deliver a transformed image with its metadata intact, add the keep_iptc flag.

Applies an automatic quality adjustment to generated WebP, GIF, JPEG, and JPEG-XR formats. To override the default adjustments, set the quality parameter in your transformation.

Runs optimization algorithms to minimize the file size without impairing the visual quality when generating images in the PNG, JPEG or GIF format.

https://kodehauz.com/blog/image-optimization-cloudinary
Science/Technology / Re: Digital Marketing And Business by KodeHauz: 10:11am On Apr 03, 2019
There are some online digital marketing courses on edx platform, Microsoft Academy and some available ICT hubs and training centers.

1 Like

Science/Technology / Digital Marketing And Business by KodeHauz: 9:43am On Apr 03, 2019
Technology has a great impact on society and its daily functions. Many people are using the internet and other resources to do everything from grocery shop to buying cars, houses, etc., thereby reducing or almost eliminating the use of the middleman.

Getting involved in digital marketing?

Getting involved in digital marketing simply means applying digital technologies like emails, databases, blogs, mobiles devices and other recent innovations such as social networks to contribute to marketing activities.

In digital marketing, getting a customer is the most important activity you need to invest in. Also, knowing what to do to get your customer is very essential because that is the foundation of your success in business. To stay ahead in your market, the skills of your people must be on point. The more knowledgeable your teams are in the latest marketing trend and skills, the greater will be your business productivity. The secret power of digital marketing lies in its ability to attract its market. The type of target market for your content is most likely prepared to know more about your products, brands or services and may be interested enough to purchase what you have to offer.

Digital marketing is gradually turning out to be the most famous channel for marketing. As the world becomes technologically advanced, digital marketing becomes an attractive opportunity to pursue. With Digital marketing, you will be able to reach out and attract people, while social awareness and positive results help get assurance and trust from the targeted market. Digital marketing makes use of productive strategies that will attract people to take productive action toward your brand.

https://kodehauz.com/blog/digital-marketing-and-business

1 Like

(1) (of 1 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. 52
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.