hardweezy
hardweezy
Just Me. Solomon.
35 posts
I am Solomon Omokehinde. An ethusiat in anything Internet of Things (IOTs). These are my views, which are trademarks of me and I have no explanation for having them
Don't wanna be here? Send us removal request.
hardweezy · 7 years ago
Text
2018 STACK OVERFLOW DEVELOPER SURVEY
Tumblr media
It’s that time of year again! StackOverflow just launched the results of its 2018 Annual Developer Survey.
Over 100,000 respondents from around the world participated this year, making it the world’s largest and most comprehensive developer survey.
In the results, you'll learn...
•This year’s most loved, dreaded and wanted technologies
•How developers around the world code, learn, live and work
•What your peers think about artificial intelligence.
See the Results
0 notes
hardweezy · 7 years ago
Text
Laravel Web Installer | A Web Installer Package
Tumblr media
Do you want your clients to be able to install a Laravel project just like they do with WordPress or any other CMS? This Laravel package allows users who don't use Composer, SSH etc to install your application just by following the setup wizard. The current features are :
Check For Server Requirements.
Check For Folders Permissions.
Ability to set database information.
Migrate The Database.
Seed The Tables.
https://github.com/RachidLaasri/LaravelInstaller
0 notes
hardweezy · 7 years ago
Text
Robust Client-Side JavaScript – A Developer’s Guide
Why do we need to talk about robust JavaScript and how do we achieve it?
https://molily.de/robust-javascript/
0 notes
hardweezy · 7 years ago
Text
Building Secure JavaScript Applications
Tips and best practices on how to build secure JavaScript applications
https://nemethgergely.com/building-secure-javascript-applications/
0 notes
hardweezy · 7 years ago
Text
The 15 Commandments of Front-End Performance
Tumblr media
This list is the product of many years of experience in the front-end web development field. I maintain this list as a reminder to myself to always follow best practices, and to not compromise on performance, even if I’m in a time crunch. I read it before I start any project, and share it with my team at work (sometimes we joke and call them “codemandments”) so we can all be on the same page and do our part to keep the web fast.
Feel free to fork this for your own use.
The Commandments
I will gzip all server responses.
I will not include any blocking scripts.
I will use SVGs instead of JPGs, wherever possible.
I will not include ads, even ones that request users to join groups or lists on Facebook or Twitter.
I will debounce scroll events.
I will not include third party JavaScript libraries just to detect if users are part of my “Just Cool Friends” Facebook group, even if it wouldn’t take up that much extra load time.
I will ignore “the fold” – no matter what the client says.
I will resist the urge to use window.alert to inform visitors that there’s a Facebook group for cool friends and if they wanna join it, that’s fine, it only takes a few clicks.
I will not use translate3d as a hack.
I will not use synchronous XHR to request the list of friends in my Facebook group, and then use the list in order to check to see if the current visitor is on the list, and then show a warning to people who aren’t in the group that says that they have their priorities “messed up” and that “jeeze,” it’s just a stupid group, why can’t you just join it.
I will use a CDN to serve static content (with no cookies!).
I will not “waste bytes” in HTML comments to explain that I’d really appreciate it if you joined the Just Cool Friends™ Facebook group. Things haven’t really been the same for me since Linda left, and it’s just so easy to join that it’s actually a little bit rude that you wouldn’t. I don’t post much in there, and I won’t even know if you ‘mute’ the posts from showing up on your feed. But honestly it’s only like one or two posts every day, so it’s not like seeing them in your feed would kill you.
I mean it’s one crummy group that you join and it makes a guy feel better about himself. The number of people that join goes up and so does my happiness, how does that not make sense? If you have a problem with me or with something I’ve done in the past, you could just bring it up on the group, that’s literally what it’s for. Sometimes I just sit around refreshing the group page, waiting as those numbers tick up. Each number…
… is another dollar in the bank of my emotional stability. I scratch the pixels into my screen: “10,000,000”. I count in my sleep: “two-hundred-and-six, two-hundred-and-seven” – each time a friend is added my joy grows, my sadness pales, my existence means that much more. I weep as the numbers hit double and then triple digits. So many friends. So many lives touched. How can I be this lucky? How can I be this influential and popular? See Linda?! I’m not a “loner.” I have way more friends in my group than you ever had! Maybe you’re the loner, Linda, or should I call you “Lone-da?!” I hope you can find your own group one day. I hope you can be as meaningful and influential to so many people as I am. And another friend joins. And another friend joins.
I will minify all of my CSS.
Author: Alex Sexton (Web Hacking. JavaScript).
0 notes
hardweezy · 7 years ago
Text
Replacing jQuery With Vue.js: No Build Step Necessary
Did you know that you can incorporate Vue into your project the same way that you would incorporate jQuery; with no build step necessary? Let's cover some common use cases in jQuery and how we can switch them over to Vue, and why we’d even want to do so...
https://www.smashingmagazine.com/2018/02/jquery-vue-javascript
1 note · View note
hardweezy · 7 years ago
Text
The Future of JavaScript: 2018 and Beyond
Tumblr media
What is the state of the JavaScript ecosystem? What are the latest developments and trends, and how will things change in 2018 and beyond? This whitepaper, “The Future of JavaScript: 2018 and Beyond,” offers future-looking analysis and predictions about the latest in JavaScript. We also look back at all the JavaScript craziness from 2017 and neatly tie it together with a bow. Download this whitepaper to learn about:
What features JavaScript enabled in 2017 (ECMAScript goodies)
Upcoming features that will play a critical role in your future applications
The rise and fall of popular JavaScript frameworks—Angular, AngularJS, Vue.js, React, Ember
The latest around indispensable JavaScript developer tools, such as Webpack, TypeScript and package managers
The future—what’s up with PWAs and AR/VR?
Download Link
https://drive.google.com/open?id=1B93D_MYhhe3RbBbSYut_i9GOYMvYL_Kt
1 note · View note
hardweezy · 9 years ago
Text
What is the difference between JavaScript and ECMAScript?
Tumblr media
I think a little history lesson is due.
JavaScript was originally named Mocha and changed to Livescript but ultimately became JavaScript.
It's important to note that JavaScript came before ECMAscript and the history will tell you why.
To start from the beginning, JavaScript derived its name from Java and initially Brendan Eich (the creator of JS) was asked to develop a language that resembled Java for the web for Netscape.
Eich, however decided that Java was too complicated with all its rules and so set out to create a simpler language that even a beginner could code in. This is evident in such things like the relaxing of the need to have a semicolon.
After the language was complete, the marketing team of Netscape requested Sun to allow them to name it JavaScript as a marketing stunt and hence why most people who have never used JavaScript think it's related to Java.
About a year or two after JavaScript's release in the browser, Microsoft's IE took the language and started making its own implementations such as JScript. At the same time, IE was dominating the market and not long after Netscape had to shut its project.
Before Netscape went down, they decided to start a standard that would guide the path of JavaScript, named ECMAScript.
ECMAScript had a few releases and in 1999 they released their last version (ECMAScript 3) before they went into hibernation for the next 10 years. During this 10 years, Microsoft dominated the scenes but at the same time they weren't improving their product and hence Firefox was born (led by Eich) and a whole heap of other browsers such as Chrome, Opera.
ECMAScript released its 5th Edition in 2009 (the 4th edition was abandoned) with features such as strict mode. Since then, ECMAScript has gained a lot of momentum and is scheduled to release its 6th Edition in a few months from now with the biggest changes its had thus far.
You can use a list of features for ECMAScript 6 here http://kangax.github.io/es5-compat-table/es6/and also the browser support. You can even start writing Ecmascript 6 like you do with CoffeeScript and use a compiler to compile down to Ecmascript 5.
Whether ECMAScript is the language and JavaScript is a dialect is arguable, but not important. If you continue to think like this it might confuse you. There is no compiler out there that would run ECMAScript, and I believe JavaScript is considered the Language which implements a standard called ECMAScript.
There are also other noticeable languages that implement ECMAScript such as ActionScript (used for Flash)
0 notes
hardweezy · 9 years ago
Text
Designing a RESTful Web API
Tumblr media
Introduction
Everybody provides API’s these days. Some of the most popular ones are Facebook, Twitter, Github, Stripe and the list goes on.
So you need to build an API for your website, maybe you need to provide data to a mobile app you’re working on, or maybe you just want to put the data from your website in a format that other developers can easily use to build cool things.
But what is an API exactly? An API is just a fancy term for describing a way for programs (or websites) to exchange data in a format that is easily interpreted by a machine. This is in contrast to regular websites, which are exchanging data in a format that is easily interpreted by a human. For a website, we might use HTML and CSS, but for an API we would use JSON or XML.
In this article I will be focusing on designing an API using the RESTful paradigm. REST is basically a list of design rules that makes sure that an API is predictable and easy to understand and use.
Some of these rules include:
Stateless design: Data will never be stored in a session (each request includes all information needed by the server and client).
Self-descriptive messages: Ideally you should be able to understand requests and responses after spending minimal time reading the documentation.
Semantics, semantics, semantics: The API should use existing features of the HTTP protocol to improve the semanticness of input and output (e.g. HTTP Verbs, HTTP Status Codes and HTTP Authentication)
One of the most difficult decisions to make when designing a RESTful API is to find the fine line between making your API simple enough that it can be tested directly in the browser for most use cases yet still adhere to the design guidelines as closely as possible.
Now that we have laid the ground rules, let’s dive right into some examples of how to implement these rules.
Output formats
First, let’s talk about output formats. The most important thing to look at when determining what format your API should output data in is what users of your API would be using the data for and with.
Maybe you need to support legacy systems where JSON parsing is not feasible and XML is more desirable, or maybe it makes more sense for you to output data in the CSV format for easy import into spreadsheet applications. Whichever you choose, it’s important to think about your users and their use cases.
You can also consider adding support for multiple output formats. The best way to handle this is to look for the Accept header in the request and serve up a response based on the mime-type requested by the user. This approach is great because it’s very semantic and uses built-in features from the HTTP protocol. Here’s an example:
GET /v1/geocode HTTP/1.1
Host: api.geocod.io
Accept: application/json
Should return a JSON response
GET /v1/geocode HTTP/1.1
Host: api.geocod.io
Accept: application/xml
Should return an XML response
Supporting multiple formats, however, is rarely necessary. If you’re in doubt which format you should pick, I would recommend going with JSON as it is concise and can be easier to read as well. Always remember to pick a default response type if the Accept header is not set or it’s set to an unsupported type.
Versioning
This is a very important aspect that is often overlooked. As an API provider, one of your most important tasks is to make sure that breaking changes will never occur in your API. Making breaking changes will make life difficult for the developers who depend on your service and can easily start causing frustration when things start to break.
But don’t worry! This is where versioning comes in handy. There are a lot of options for versioning your API. For example, WePay uses an Api-Version header, and Twilio uses a similar approach putting the version date in the URL.
My favorite approach is a simple vX URL prefix, which is used by Github and many others. This allows you to easily deploy a new version of the API, e.g. /v2, and also access different versions of the API directly in the browser (no header changes or other fancy things here).
Here’s an example:
GET /v1/geocode HTTP/1.1
Host: api.geocod.io
Should return the geocode endpoint from version 1.0 of the API
GET /v2/geocode HTTP/1.1
Host: api.geocod.io
Should return the geocode endpoint from version 2.0 of the API
URL Structure
The URL structure is one of the most important pieces of the puzzle. Spending some time to define the right endpoint names can make your API much easier to understand and also help making the API more predictable.
URLs should be short and descriptive and utilize the natural hierarchy of the path structure. It’s also important to be consistent with pluralization.
If you are working with objects, keep the object id in the URL and leave everything else to the query string.
Let’s take a store locator API as an example. Here are some possible endpoints:
/v1/stores/1234 – Return the store that has id 1234
/v1/stores/1234/report – Report an error for the store with id 1234
/v1/stores – Return all stores
/v1/stores/near?lat=12.34&lon=-12.34 – Find stores near a given location
/v1/categories – Return a list of store categories
If you allow modification of objects, HTTP verbs are you friend. By applying those to your existing URLs, you will end up with a semantic solution to perform CRUD operations. Here is a list of verbs and their meaning:
HTTP VerbDescription
GET
This is the most common verb, and is used to retrieve data,
e.g. GET /v1/stores/1234
PUT
PUT requests are commonly used to update/replace an object,
e.g. PUT /v1/stores/1234
POST
This is used to create a new instance of an object,
e.g. POST /v1/stores
DELETE
As the name suggests, this will delete the object,
e.g. DELETE /v1/stores/1234
Authentication
There are many ways to handle authentication, here are three ideas.
If your API has user-based authentication, OAuth is really the way to go. It might look terribly confusing at first glance, but give it a chance. It’s the only widely-used, proven, and secure solution out there it’s being used by all major API providers and is very well tested.
If you just need to password protect your API, HTTP Basic Authentication is a nice and semantic way to go.
The only issue is if you want to provide an API key or other sorts of single-string authentication. Some people suggest using HTTP Basic Authentication with the API Key as both username and password or just leave the password blank, but really that’s a messy way of doing it if you ask me.
In that case I would recommend simply appending the API key to the query string, e.g. api.geocod.io/v1/geocode?q=42370 Bob Hope Drive, Rancho Mirage CA&api_key=YOUR_API_KEY
Don’t bother adding the API Key as a header or another fancy solution like that. By adding it as a query string parameter, the user will be able to test your API directly in a regular browser without any bells and whistles.
Timestamps
One of the common pitfalls of API design is to make sure you get timestamps right from the beginning. Don’t useUnix Timestamps as they don’t have timezone support and are not human readable (among a lot of other reasons) — Facebook learned this the hard way.
A widely-accepted standard for timestamps is ISO-8601. It is easy to read, easy to parse and it has great timezone support.
Error handling
The last thing on our list is error handling. There’s a lot of different kinds of errors you need to handle in your API, including permission errors (You are not allowed to delete this store), validation errors (Please specify a name for the store), not found errors, or even internal server errors.
You should always return a semantic HTTP status code with your requests. So for example, no errors would be a 200 OK, permission errors could be 403 Forbidden, and validation errors could be 422 Unprocessable Entity (http://httpstatus.es has a great human-readable list of available status codes).
In addition to the status code you, should always return an error message if necessary with a more detailed description of what happened. My favorite way of doing this is simply to respond with an “errors” key that has the error message as the value.
Example:
{    error: "Invalid API key" }
Conclusion
You can go in a lot of directions when it comes to API design, and ultimately it’s really up to personal preference. I’ve designed APIs for a variety of purposes throughout the year and these are merely some of my favorite best practices. Take the bits you like and throw away the ones you don’t.
I’m always happy to discuss APIs, and you can reach out to me at @hardweezy​
0 notes
hardweezy · 9 years ago
Text
Eish, you’re not South African
It can be tough being a foreigner in South Africa, even if you are here legally. I have lived here for 33 months now, during which I’ve been treated like a South African by the very generous government and its people. But my grievance is with the corporations in the private sector that discriminate against foreigners. I find it very annoying that if you’re not South African then you’ve no right to various services offered by companies. The first incident happened 23 months ago. It was the start of a new semester and I was walking with my friend to campus. Suddenly we were stopped by a person who happened to be a sales representative for a bank. He told us about all the services the bank could offer us as students. We were so captivated we followed the salesman to his stall to give him our information. After my friends had registered it was my turn. He asked for my name, address and identification, which I presented. As I waited in anticipation to sign a document that would enable me obtain the account of my choice, the face and mood of the salesman changed. I asked if everything was fine. He looked me in the eye and told me “I am sorry bra you do not qualify for this service”. I smiled and asked him why. He replied “eish you are not South African”. If they needed a referee or some indication that I am employed I would understand. But there was nothing financially different between me and my South African friends. Later on I decided to go to one of the bank branches. Guess what, he was right. For a moment there I was so angry I wanted to take all my business elsewhere. In an attempt to do so I realised that all the banks share the same policy, which unfairly discriminates against foreigners. Being in South Africa you get to learn a lot about insurance company advertisements, especially those screened on television. One thing I always wanted to insure was my gadgets. One Saturday morning I happened to be watching a TV show when it was interrupted by a commercial. The insurance company alerted viewers that they could take out an insurance policy (I don’t remember what for) at a ridiculously low premium of about R60 a month. The commercial ended with “SMS us on xyz and we will call you back”. Without wasting any time I sent them an SMS. Two days later I received a call. After a lengthy chat about the services came the questions, of which the first two regarded my name and address. The third question was to read my identification number. I told the saleswoman that I had a passport and that I was going to read out my passport number. In a very sad tone she said she was very sorry and that the service was only for South Africans. I told her that it was OK and that I understood. The fact is, I was trying to be understanding. About two months ago I received a call from my cellphone service provider. The person on the other end took the time to inform me that my number was forwarded to them by their head office based on the fact that I was a great customer. The criteria for a great customer here is based on how much airtime you load a month. She told me that if I paid a small amount of money (R50) a month I would receive a lot of free minutes as well as SMSs. Man, was I excited to hear that until I was asked for my ID. At times I ask myself what the main object of any given business is.
0 notes
hardweezy · 9 years ago
Text
Which database should I use for a killer web application: MongoDB, PostgreSQL, or MySQL?
Between PostgreSQL and MySQL, there is generally no good reason to use MySQL over PostgreSQL, so let's get that off the list. SQLite3 is fantastic if you want an embedded database in a situation where you are resource constrained or need a seamless installation experience for the user. SQLite is the standard database in mobile apps on both Android and iOS (going all the way back to the original iPod) and is even embedded in some web browsers as WebSQL (though it's deprecated as the Chrome people wanted the standard to be based on the SQLite implementation, while the Mozilla people thought this was a ridiculous way to define standards). Since you mentioned web apps, you should not be using SQLite. It requires blocking access to the database file for every write, and since it runs inside your app's process, that means you can only have one process running with database write access (although multiple threads are fine). Python has a Global Interpreter Lock, which means it can effectively use only one core in a multi-core CPU unless you run multiple processes, which you can't because SQLite doesn't support that. So: don't use SQLite if you are building web apps in Python. Which leaves us PostgreSQL and MongoDB. PostgreSQL, like all SQL databases (including SQLite), is a relational database. It specialises in tracking the relationships between pieces of data and helping you retrieve something if you know something related to it. For example, if you have two database tables, say, “Users” for all users and “Posts” for all posts made by a given user, with “Posts.user_id” being a foreign key reference to “User. id”, you have a schema where one Post has only one User, and by corollary, one User can have many Posts (since Users itself defines no relationship with Posts, the relationship is from the other direction). SQL makes it really easy to work with such relationships. You can say “given a user, get me all posts that refer to this user”, or “given this post, get me the referred user”. All SQL databases can do relational queries like this, but PostgreSQL is really, really good at this. There is however an advanced use case that PostgreSQL isn't that good for: graphs. We'll get to that in a minute. The Users and Posts relationship above is an example of a “one-to-many” relationship (or “many-to-one” depending on which side you are looking from). There is something else called a “many-to-many” relationship which is basically a “many-to-one + one-to-many” combo. In our hypothetical Users and Posts example, if we wanted to make it possible for a Post to have more than one User, we’d do it like this: “Users <- Users_Posts -> Posts” where this new “Users_Posts” table has exactly two columns, one a foreign key reference to a row in Users, another a foreign key reference to a row in Posts. For every unique combination of User and Post, you can add another row in the Users_Posts table linking that user and post. Here's a very common situation in which you need such a model: mapping Movies and their Actors. You have a table each for movies and actors, and a “many-to-many” join table linking them both. Let's say you want to know which movies actors A and B both appeared in. That's easy: “SELECT * FROM Movies WHERE id IN (SELECT movies_id FROM Movies_Actors WHERE actors_id IN (A, B))”. See what we did? This is a nested query. Starting from the inner, we first asked for all movie_ids in the join table that feature actors A or B, then we asked for all details from the Movies table where the movie's id is in the previous query's results. Now what if you have a situation where A and B have never appeared in a movie together, but you want to know if they have common co-actors? This is like LinkedIn or Facebook, where you are looking at the profile of someone you are not friends with, but LinkedIn or Facebook is telling you that you have common friends. This is a graph search pattern and is the subject of an entirely different type of database called, appropriately enough, agraph database. Look up Neo4j for an example. Although graph data can be modelled using a relational database like PostgreSQL, you're better off using something specialised like Neo4j. And finally, MongoDB. What's it for? MongoDB is not a graph database, or even arelational database. Like CouchDB, it's a document database and it represents the other end of the scale. What if you want to store all details of a movie in one place and you aren't interested in being able to cross-reference the data? The relational databases want you to “normalise” your data by storing every little detail in a separate table, but you find that annoying. You just want to store your data in one place without having to think it through too much. You're still figuring out what data you want to store, so for now you just want to dump it somewhere and worry about querying it later. That's exactly what document databases are for and MongoDB is king of that hill. PostgreSQL introduced a JSON data type in version 9.2 and a more efficient JSONB type in 9.4 (the current release) so if you have a mix of relational and document data (which is very likely), you may want to stick with PostgreSQL itself (see What's new in PostgreSQL 9.4). Hope that helps.
0 notes
hardweezy · 9 years ago
Photo
Tumblr media
Introduction to Taizen Web App Development #Day1.
0 notes
hardweezy · 9 years ago
Text
Engineering Scope
Senior Developer-Integrations / API/CMS Frontend Developer Senior Mobile Developer ( IOS) Senior Mobile Developer (Droid) Technical Project Manager Q/A Manager Q/A tester Mobile Developer (Droid) Mobile Developer (Droid) Mobile Developer (IOS) Mobile Developer (IOS) Developer - Data Intelligence /Analytics Dev Ops Junior Back end developer Junior Front end developer Q/A tester Product Product Manager - Telco Product Manager - Growth Design UI Designer UX Designer
0 notes
hardweezy · 9 years ago
Text
Do You Understand What Accountability Really Means?
Every leader I’ve ever met sees accountability as a foundational ingredient in a healthy and sustainable culture. The problem is, as is often the case with leadership and management ideas, we use the word without really understanding what it means. Usually, we make the mistake of holding on to one or both of these hidden beliefs: We have a deeply held association between accountability and punishment — instead of considering it a tool to help people unlock their highest self. We have a deeply held assumption that accountability is a one-off event — rather than thinking it’s a long-term personal conversation between manager and employee. It’s ironic because most of us have had at least one experience that runs counter to that. When someone in a position of authority in our life — a boss, a parent, a teacher — didn’t let us take the easy way out: “This is where you are right now. This is where you say you want to be. Based on what I’ve learned in my life, this is what it’s going to take to get there. Because I care about you, I see it as my job to let you know when you go off track.” Why are we depriving our employees of that kind of experience? I suggest thinking of accountability as a dial with five steps. You start at the low end, and then turn up the dial if necessary. It’s the first three steps — what we call the mention, the invitation, and the conversation — that most managers skip over, leading to employee disengagement and cultural stagnation. The last two steps, what we call the boundary and the limit, cover the ground of probation and termination, albeit in a far more humanistic and supportive frame. Fortunately, most managers have to use these more extreme steps only rarely; unfortunately, too many managers jump right to them, bypassing the first three steps and leaving employees blindsided by tough feedback. The first three steps cover the essential skills of naming, framing, and unpacking performance issues in a way that quickly moves from surface-level events to meaningful and actionable personal growth themes: The mention. The first step is naming small but problematic behaviors in an informal way in real time. By pulling an employee aside to put words to what you’re noticing, instead of waiting for a crisis, you start to build a relationship of mutual respect. You show that you genuinely care about their growth by acknowledging that they’re overwhelmed instead of pretending you don’t see and by helping them find their contribution to a conflict instead of letting it fester. The invitation. We’re great at seeing patterns in other people’s behavior; it’s harder to see those patterns in ourselves. The invitation is taking the time to help your employee connect the dots. For example, let’s say you saw typos in a team member’s client email on Monday, they seemed disengaged in a team meeting on Wednesday, and then there was a miscommunication with a teammate on Thursday. Ask them what those events might have in common, or point to a deeper theme. The conversation. This is the place to go deeper, by asking questions that guide people to the “aha!” moment, when they discover for themselves how changing this pattern at work would have positive impacts at home. It might sound something like this: “We’ve been talking about you taking on too many projects and the impact that’s having on the quality of the most important ones. I’m not asking for you to share what you come up with here, but one question that helps me is, ‘Where does this pattern show up in my personal life, and what would be the benefit if I stopped?’” The key to building the bridge between work performance and personal growth is to focus on impacts. How are people showing up in a way that is making life harder, more complicated, or more frustrating for the people around them? It’s your job to guide them to make those connections. It’s their job to do the work from there. In short, be observant and address problems that you see. Follow up with your employee to let them know it’s important. Then walk it down with them — to the place where the line between personal and professional growth disappears. Not because you’ve gone over that line, but because you’re treating them as a whole person. At work as in life, we all need the people who care about us to reflect us back to ourselves, to be centered enough in themselves to let us work through our initial defensiveness and excuses so that we can let them go and get back to the work of becoming a better version of ourselves. Accountability can help do that.
0 notes
hardweezy · 11 years ago
Text
NRI Measures - The Flaws in it
The NRI index focuses on redressing connectivity gaps between countries; this is an inadequate guide for policymakers and researcher concerned with mobilizing new information and communication technologies for development goals. It shuns policy diversity and alternative ICT development paths in favor of best practices. It doesn’t recognize that development priorities are different across countries thereby encouraging stand-alone ICT for development initiatives instead of complementary investments tied to specific development goals. One of the shortcomings of the NRI is the implicit assumption that all countries would converge on a similar path of ICT infrastructure development and adoption. The index was to measure whether a country was catching up or lagging behind on the road to digital prosperity
NRI’s policy and research agenda needs to take into consideration the recognition that the important thing is not to connect people and businesses to specific networks or devices, but to deliver ICT services and increase access opportunities in the most cost-effective manner. Consider the story of mobile telephony. While critics have dismissed the deployment of mobile telephony in the developing world as second best option (Zittrain, 2008), there is increasing evidence that mobile networks are addressing the connectivity requirements of people and businesses in emerging nations at a fraction of the cost and time required to replicate the fixed infrastructure present in development countries.
The NRI needs to recognize that the key question is not how to connect people to a specific network through a specific device, but how to extend the expected gains from new variables (lower transaction costs, better delivery of government services, timely information retrieval, etc.) to the most citizens and businesses, and in the most cost-effective manner. While poised to reenergize the field, NRI needs to carefully assess some of its principles and priorities against empirical evidence. Failure to do this, will result in unrealistic expectations about the potential of ICTs to unlock development as depicted by NRI’s variables….
0 notes
hardweezy · 11 years ago
Text
Effective ICT use – South Africa Perspective
Development and effective usage of modern technologies is important for economic growth of any country. The research “Global Information Technology Report 2014”, released by World Economic Forum, reveals interrelationship between these two factors – development of modern communication technological infrastructure and economic well-being. Based on political and business environment, internet accessibility and features of internet consumption as well as social and economic impacts of new technologies, the above mentioned research measures Networked Readiness Index of countries.
Compared to the previous year, a country like South-Africa has significantly improved its position in 2014. While in 2012 it ranked 72nd with the value of 3.87, nowadays it occupies the 70th position (out of 148) with 3.98 point. Generally, along with Indonesia, Thailand, Bosnia and Herzegovina, and Brazil, SA is placed in the group of “Rising Star” countries. It implies that SA’s scores are above the sample average as well as are growing more quickly than average. Moreover, the research asserts that these countries can be singled out for their noticeable positive changes.
Networked Readiness Index measures preparedness of economy of a country to use and leverage ICT for prosperity and growth with the consideration of the following factors:
Business and innovation environment, political and regulatory environment (Environment sub-index);
Infrastructure and digital content, affordability and skills (Readiness sub-index);
Usage of ICT by individuals, business and governmental representatives (Usage sub-index);
Economic and social impacts of ICT (Impact sub-index).
SA has gained best results with regard to readiness sub-index (it was increased by 0.11 point). Precisely, it ranked low positions among other countries in terms of internet and telephony competition (obtained the 125th place). Also, its position was relatively higher (obtained the 73th place) in case of international internet bandwidth, per user. However, several circumstances are worth highlighting: while it occupies the 22nd position in terms of judicial independence, SA lags far behind concerning quality of education system (rank 146) and level of math and science education program (rank 148). Overall, with regard to parameters considered under the readiness sub-index – affordability, infrastructure and digital content, skills – SA obtained 3.97 point out of 7 in affordability. Values for the other two criteria were between 4.1 and 4.79.  
 As for the three remaining sub-indexes, environment was assessed by 4.76 point. It is noteworthy that the main focus was made not only political, but also business atmosphere of the country. SA showed the promising figures in terms of opportunities for starting a business – the 92nd and the 34th positions for the amount of days and procedures to undertake a new enterprise. Nevertheless, this research asserts that one of the main obstacles to business environment in SA can be assumed limited availability of latest technologies (5.58 point). In case of political and regulatory policy the situation can be described the following way: SA occupies strong positions in terms of protection of intellectual properties (rank 18, 5.46 point) and percentage of software installed (rank 20). Apart from this, simplicity for business to challenge government actions and/or regulations through the legal system equals 4.87 point.
According to the value of each main parameter, political and regulatory environment is followed by ICT usage sub-index. It comprises level of consumption of ICT by three actors: individual, business and government. It is obvious from the data that private sector enjoyed the best figures (4.15 point). It should be mentioned that researchers gave SA reasonable points in the following criteria: capacity for innovation, firm-level technology absorption and the extent of staff training.
ICT usage on individual level appeared to be better – 3.39 point. In this direction, SA occupied lower position in contrast to other countries in terms of percentage of households with personal computer (23.55%) and the extent of mobile broadband subscriptions. However, the rate of usage of virtual social networks (5.5 point) and the number of subscriptions of fixed broadband internet seemed more encouraging (2.11 per 100 pop.). For comparison, even though, compared to the previous figures, this measure increased by 0.31, SA retained the same position. This fact indicates that the speed and level of advancement of accessibility of ICT do not catch up with the international tendencies in this direction.
With regard to the third actor, government, SA demonstrated good results in terms of government online service index (rank 80). In spite of this, scores gained by SA were poor in two issues: importance of ICTs to government vision (3.3 point) and government success in ICT promotion (3.83 point).
 SA had lowest assessments concerning impact sub-index, which measures the role of ICTs in various economic and civic activities. Despite the improved position compared to countries worldwide (moved ahead by two positions), its score has not increased and still equals 4.48. Even though economic impact (3.48) exceeds the criteria of social impact (3.02), in case of the former new technologies have insignificant effect on the provision of latest services and products. Additionally, business representatives infrequently attempt to establish new organizational models (virtual teams, remote working, telecommuting and etc.).
In conclusion, the research demonstrated that growing tendency with regard to internet penetration is heralded in SA. Despite stable political and business environment, SA has main challenges in the direction of developing innovative technologies and using their benefits thoroughly. This can be attributed to, on the on hand, low level of absorption of latest technologies by business sector and on the other hand, lack of sufficient level of education/system and necessary skills and abilities. The role of the government is worth mentioning as well, since interaction between various agents involved in internet market should be regulated solid legislative foundations/frameworks and government consistent policy should stimulate active consumption of ICTs in everyday life. 
0 notes
hardweezy · 11 years ago
Text
Microblogging vs Traditional KM
Microblogging is a new form of communication in which the user can express an immediate and rapid flow of ideas through short text and declare what she or he is doing and how it is at any given time (Vrabl, Oliveira 2010). Since the inception of twitter, microblogging has become one of the most growing trends both in business and socially. Microblogging is the use of short text messages, pictures, videos, urls, etc in order to exchange or document information and Knowledge management is the system and managerial approach to the gathering, managing, use, analysis, sharing, and discovery of knowledge in an organization in order to maximize performance and efficiency (Chen, 2001). 
Given its popularity, microblogging has been increasingly used for knowledge management by organization, educational institutions and individuals for different purposes. As defined by Bergeron (2003), knowledge management is a business optimization strategy that identifies, selects, organizes, distils and packages information essential to the business of the company in a way that improves employee performance and corporate competitiveness.
Traditional knowledge management methods which is most widely used today by many individual’s and organizations as a primary method to store and retrieve information but lately due to the influence of the web 2.0 and enterprise 2.0 microblogs are quickly gaining momentum in this section I will be explaining the benefits and problems of using microblogs for knowledge management.
0 notes