Talent Development Centre

Category Archives: Technical Skills

Tips, resources and courses for IT professionals to improve their technical skills and become more competitive in the Canadian technology job market.

The 25 Most Dangerous Software Errors Has Been Updated

The 25 Most Dangerous Software Errors Has Been Updated

The Common Weakness Enumeration (CWE) is used by professionals around the world to identify the most widespread and critical weaknesses that are known to cause serious vulnerabilities in software. According to Howard Solomon at IT World Canada, the list hasn’t been updated in eight years, but it recently used a new data-driven approach based on real-world vulnerabilities reported by security researchers to refresh the 25 Most Dangerous Software Errors list.

Explaining its methodology in more detail, the CWE website says they obtained data about vulnerabilities and exposures from the National Vulnerability Database (NVD) and then developed a scoring formula to calculate a rank order of weaknesses.

The complete list of 25 most dangerous software errors is listed below, including the overall score of each as well as its ID, which is linked to more information about the error on the CWE website.

  1. CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer
    Score: 75.56
  2. CWE-79: Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’)
    Score: 45.69
  3. CWE-20: Improper Input Validation
    Score: 43.61
  4. CWE-200: Information Exposure
    Score: 32.12
  5. CWE-125: Out-of-bounds Read
    Score: 26.53
  6. CWE-89: Improper Neutralization of Special Elements used in an SQL Command (‘SQL Injection’)
    Score: 24.54
  7. CWE-416: Use After Free
    Score: 17.94
  8. CWE-190: Integer Overflow or Wraparound
    Score: 17.35
  9. CWE-352: Cross-Site Request Forgery (CSRF)
    Score: 15.54
  10. CWE-22: Improper Limitation of a Pathname to a Restricted Directory (‘Path Traversal’)
    Score: 14.10
  11. CWE-78: Improper Neutralization of Special Elements used in an OS Command (‘OS Command Injection’)
    Score: 11.47
  12. CWE-787: Out-of-bounds Write
    Score: 11.08
  13. CWE-287: Improper Authentication
    Score: 10.78
  14. CWE-476: NULL Pointer Dereference
    Score: 9.74
  15. CWE-732: Incorrect Permission Assignment for Critical Resource
    Score: 6.33
  16. CWE-434: Unrestricted Upload of File with Dangerous Type
    Score: 5.50
  17. CWE-611: Improper Restriction of XML External Entity Reference
    Score: 5.48
  18. CWE-94: Improper Control of Generation of Code (‘Code Injection’)
    Score: 5.36
  19. CWE-798: Use of Hard-coded Credentials
    Score: 5.12
  20. CWE-400: Uncontrolled Resource Consumption: 5.04
  21. CWE-772: Missing Release of Resource after Effective Lifetime
    Score: 5.04
  22. CWE-426: Untrusted Search Path
    Score: 4.40
  23. CWE-502: Deserialization of Untrusted Data
    Score: 4.30
  24. CWE-269: Improper Privilege Management
    Score: 4.23
  25. CWE-295: Improper Certificate Validation
    Score: 4.06

Design Trends We Will See in 2020

Last year we shared an infographic that highlighted all of the upcoming 2019 web design trends. As predicted, the trends were a hit and we’re back again to keep you updated with the upcoming 2020 design trends to look for.

2020 is all about immersive virtual reality panormas, zero-gravity layouts, surreal product photography, and vivid, futuristic colors. While you might not have first-hand interaction with the design elements, being familiar with them is advantageous. Not only are you expanding your horizon but you can also chime in with your thoughts on design when it comes time. You’ll sound knowledgeable and might even impress a few with your futuristic outlook from the 2020 design trends.

View the full list of predictions for 2020 design trends from Coastal Creative in the colorful infographic below.

Infographic - Design Trends for 2020

Use These Easy Guidelines to Significantly Improve Your Website Design

Having a personal website can be incredibly useful for your career. However, it can be easy for a website to go astray and not have the professional effect you want. Here is a simple set of tips and tricks you can follow that will  let your website shine.

Top Trick: Show Somebody

This is “skipping to the end” in a sense, as this truly is the greatest trick you can employ.

Show somebody you confide in your website and get their feedback.

A confidant will provide you with the most comprehensive insight. When you watch as an avatar for your future employer or client browses your site and asks questions, it will reveal to you all the flaws.

Find someone you respect in a similar industry, hand them a laptop with your site loaded, brace yourself, and take notes.

Ask yourself: What is the purpose of your site?

Why do you have a website? What do you want to accomplish with it?

These seem like a lot of questions but having a solid grasp of your “why” can help with “what”.

Do you want to become a thought leader in your industry? If that is the case, you’ll want to showcase your case studies or articles to prove your authority. Do you want new work contracts? Ensure your service offering is clear, and you have examples of your work.

Knowing what outcomes you want from the site, will help you prioritize the right elements from page to page.

Ask Yourself: Who do I want to reach with my site?

Similar to purpose, you must understand your target audience. How do I want to address them?

Your target audience will also impact the “What” of the site if you put yourself in that position and walk through what would be most important to them.

Get Inspired

There’s no need to go this alone! There are very successful websites in your industry, and they have spent a lot of time testing and refining. Find some excellent examples of your contemporaries and learn from them!

You’ll do yourself no favors by doing an exact copy, but with some research into your industry, you’ll be able to see some trends and ideas that will benefit you on your site.

Template vs. Custom Design

If the site has all the bells and whistles, then you’ll end up spending a lot of time polishing bells and tuning whistles. Prioritize solid foundations.

Again, who are you targeting, and what do they care about?

If the site is a repository for your information, the only thing that matters is easy navigation and a fast load time. Consider a hosted service like SquareSpace or Wix.

If you’re a developer, being able to point to a beautiful and well-built site may be a plus.

It’s important to remember here that the site should serve you and your purpose. You don’t want to be bogged down with issues that detract from your job/client hunting, so choose your design wisely.

Mobile Friendly

There are lots of variations and options to choose from when designing a site, but these days there is one non-negotiable factor: Mobile Friendly.

There is a good chance someone will access your site on their phone. Your website must look great and be easy to navigate on a mobile device.

Stick to Known Conventions

It can be fun and exciting to try unique and innovative layouts for your website.  However, it is a misplaced effort if it doesn’t serve your purpose.

We can lean on learned conventions. This is what people have come to expect on websites:

  • Logo or name top left or top center, links to the homepage
  • Main navigation top right or top center
  • Contact in the menu as the last item
  • Social media links in the header or footer

Using known conventions may be a bit boring, but it can make your life and the life of your viewer easier.

Use the Right Images for Your Target Audience

The human brain can process images up to 60,000 times faster than words. It’s a powerful tool for us to use to convey to our visitors that they’re in the right place.

Thankfully, there are amazing sites with exceptional high-quality free photos. Here are some sources to check out:

Let Everything Breath

There will always be a desire to fit in as much information as possible into any given space. However, this can be counterproductive.

Reducing content and adding blank space around elements allows the reader to effortlessly digest and transition between pieces of information. It produces an orderly and pleasant reading experience that will convey much more.

Only Use Two Fonts

We’ve touched on a principle of “less is more” a couple of times already and this remains true with fonts.

Use no more than two fonts on your website.

To find fonts that coordinate well together, check out the following free sites:

Use Headers Wisely

Headers (H1, H2, H3, H4, H5, H6) need to be meaningfully different from the body text, and one another. Deploy them wisely to help guide your reader and some bonus SEO boosts.

Think about the Headers like the sections and subsections in a piece. You would organize your content on a page like this:

<h1>Title Here – Only One of These Per Page</h1>

<h2>A Sub Title</h2>

<h3>Point One</h3>

<h3>Point One</h3>

<h4>Small Point One</h4>

<h4>Small Point One</h4>

<h3>Point One</h3>

<h2>A Sub Title</h2>

<h3>Point One</h3>

<h3>Point One</h3>

<h4>Small Point One</h4>

<h4>Small Point One</h4>

<h3>Point One</h3>

Consider the suggestions below as a starting point to apply the differences in the font sizes:

P 16px 1x
H1 40px 2.5x
H2 32px 2x
H3 28px 1.75x
H4 24px 1.25x
H5 20px 1.25
H6 16px 1x

Limit the Colors

It can be fun to play with colours within a design or a website. Keep in mind that just like fonts, things can go wrong fast and have a detrimental effect.

The benefit of limiting colors is that it makes it easy to guide the user with an eye-catching pop of color. Imagine a page that is primarily grey and white with a bright orange button. Where do you think the eye would go?

Each color has emotions tied to them. Even the range of colors can elicit a response. What emotions do you want to convey? Consider using the corresponding colors as per this image from UserTestingBlog.

Use These Easy Guidelines to Significantly Improve Your Website Design

Check out the following sites to help you settle on a palette that is cohesive and conforms to colour theory:

Make Your Website Yours

Follow these guidelines and you’re sure to have a professional website that helps achieve your goals.  Regardless of the platform or style you choose, your audience will appreciate if you stick to the foundations listed above.

Cheers to your great looking website!

About the Author

Trevor Alexander has been a professional designer for 15 years, including being part of 3 successfully sold start ups. He now puts together resources and courses to show how ANYONE can produce better looking Presentations, Documents, Reports, and Images by following practical and repeatable strategies. He firmly believes that Virtual Assistants, Marketers, Developers, Business Owners…Everyone, CAN improve the design of their work. Check out his site at https://justenough.design/

Top iOS Mobile App Developments Trends for 2020

iPhone
Photo by Koby Kelsey on Unsplash

From the dawn of its creation, the iOS mobile development platform has provided versatile and powerful options for creating stunning apps. One of the reasons for its permanent thriving is the continuous state of flux that encompasses all the latest trends in mobile app development. New iPhones are out on the market each year, including improved hardware that sets the base for innovative mobile app development, year by year. To avoid lagging behind, mobile app development companies must stay on track with the new advancements and find their place in the platform, too. If you are interested in keeping abreast of the latest mobile design trends, here are a few pointers to focus on as we are moving into the year ahead.

UI Design Trends

Each iOS app development project starts with the basic goal to improve user satisfaction, which inherently makes new progress all about UI or the user interface. The user interface must not only improve in appearance but also provide a new level of satisfaction with feature simplicity and information delivery. This is not so simple as Apple puts iPhones and iPads under the microscope each year to perk up the hardware.

A key trend of feature mobile app development on the iOS platform is leaving this focus on aesthetically pleasing apps behind. That doesn’t mean that iOS apps will no longer be beautiful but it does mean that the ease of access to information and the simplicity of use take the number one place. Therefore, iOS apps must be made from scratch or revamped to help users complete tasks in the shortest possible time.

While we are touching upon aesthetics, the blurred borders of new iPhone screens play a major role in future iOS mobile app development. Designers need to find ways to create apps that work well on older phones with prominent edges and on new seamless iPhone models.

laptop
Photo by Daniel Korpai on Unsplash

iOS Animations and Graphics

Animations are an excellent way to attract users and keep their attention in the flow as they navigate through the app features. Animations enable sleek functionality – an aspect of user experience that users are primarily looking for.

How web browser tabs, for instance, look and shift on a smartphone, as well as other aspects that soften the lines between visual appeal and functionality, are important for keeping users pleased with the product.

3D graphics may be more demanding on behalf of the mobile app development team, but rewarding nevertheless because they provide an extra level of dynamism in transferring information to users, reducing the need for physical prototypes and boosting the visual aspect of products. It is important not to overdo 3D graphics as they can slow down loading times.

Gesture-based Navigation

One of the key trends for 2020 is the placement of navigation elements on your end product. A major design principle of navigation in past mobile app development trends was to place as many buttons in the navigation bar so that users have greater visibility of what is available. As the number of functionalities is growing, this approach doesn’t work anymore because the visual appeal gets lost among all those buttons.

Designers are now focusing on a more hidden, intuitive button design, placing the maximum number of buttons on the home screen without distorting aesthetics. Functionalities are still there but are enmeshed in the gesture-based navigation. Features compressed in this way will improve the user interaction with the app and ultimately boost engagement rates – it makes more sense to create iOS products that support a few key features than making it all about endless app possibilities which will impede the smooth use of the home screen.

If you align these iOS app development trends with the design process of past products in order to update them or use them while creating new ones, clients will ultimately reap benefits that haven’t been so important while ago but are essential as we move forward.

About the Author: Michael Kelley

With a background in journalism, Michael’s passion lies in educating audiences in the realm of tech. He is especially intrigued by the world of app development and all associated facets including Android, iOS, blockchain, andd App technology. Michael has spent the last few years working with app agencies to elevate their content strategy and expand his knowledge even further as app development technologies advance. When he’s not typing away at his computer, you can find Michael traveling the globe or taste-testing pizzas in search of the ultimate pie.

Project Calendars and Gantt Charts: What’s the difference and when to use them?

Project Calendars and Gantt Charts: What's the difference and when to use them?Project Managers use a number of tools to keep projects moving and deliver a solution to the client on time and on budget, with scheduling tools being one of the most important. While there are a variety of options, Wrike states that the two most common are traditional project calendars and Gantt charts. An article by Kat Boogaard says that the tools are similar and neither is necessarily better than the other; however, there are three distinct differences: appearance, usability, and function.

The difference in appearance is obvious — a project calendar looks like a traditional calendar where Gantt charts provide a visual representation of the project timeline. Naturally, then, usability follows as the next distinction since Gantt charts are less intuitive. Using a Gantt chart can create extra work in getting a team up-to-speed, especially when some are unfamiliar with the format. Function is the more complex difference, as Boogaard explains that each can have its own purpose. Here is what she recommends:

Use a Project Calendar When:

  • You only need an overview of key ideas: It’s easy to clearly notate things like go-live dates, meeting dates and crucial milestones.
  • You want something simple to share with other stakeholders: For example, the board of directors may just need to know a few select dates or the client might only have time to a quick glance for the crucial facts.
  • You need to schedule a meeting: Meetings are a necessary evil in projects but rarely displayed easily on a Gantt chart.

Use a Gantt Chart When:

  • You need to understand dependencies between tasks: It’s important to know what tasks will impact others for you to plan a realistic schedule.
  • You need to identify your project’s Critical Path: A traditional calendar simply can’t trace the longest line of dependent tasks. Gantt charts make it easier to know where you have wiggle room.
  • You need to manage multiple projects at once: Say good by to multiple calendars and layer different projects to get an understanding of how they overlap.

Again, the author highlights that neither of these tools are superior than the other, they just need to be used at the appropriate times. In fact, Boogaard suggests that they often complement one another and recommends using both. If you’re a Project Manager, which do you prefer to use? Or, when you’re working on any project, which do you prefer your PM shows to you?

Explaining How Wi-Fi Actually Works

Entertainment, shopping, working, food, love and pretty much everything under the sun has been affected by Wi-Fi. You may already know how Wi-Fi actually works, but how many people in your life still believe that Wi-Fi is just a magical entity that only comes to life when they click on their favorite web applications? Next time you need to burst someone’s bubble and rather not explain it yourself, go ahead and send them this video by Brightside to teach them how Wi-Fi actually works.

Data Science is a Hot Career Choice

Do you know a new high school graduate, or a student who’s heading into their final year of high school, and still has no idea what they want to do for the rest of their lives? Data Science is continuing to be a hot career choice guaranteed to have plenty of opportunity in nearly any industry for the coming years.

Anybody looking to make a decision about their career and who has any interest in technology should check out this video by 365 Data Science. It goes over the typical profile of a Data Scientists, talks about the opportunities, most importantly, explains how to go about becoming a Data Scientist.

Requirements Management for Dummies

Project teams come in all shapes and sizes and budget sometimes constrains how many professionals can be hired. It is not uncommon for people to wear many hats especially in small organizations. This means the project may lack a dedicated, experienced Business Analyst with skillsets that include Requirements Management. Instead, the task could land on you!

Once you’ve been through a few projects, you begin to understand the Requirements Management process but do you understand all of the little details? This infographic from Business Analyst Learnings outlines the steps to managing requirements in an IT project and if you click-through to the original page, it presents even more details. Is there any advice you can add to this, based on your own business analysis experiences?

Infographic: How to Management Requirements Effectively

Here’s Why Python is the Programming Language to Learn in 2019

In the 2019 Stack Overflow Developer Survey, Python was deemed the 4th most popular programming language, 2nd most loved, 1st most wanted, and made the list of the top 20 paying technologies. If you’re an experienced developer or technology professional, you don’t need to be sold on Python, you already know its benefits and have decided if/where it fits into your skillset. If you’re new to the development field and are starting to plan your career, then take a few minutes to watch this video from Programming with Mosh. It gives an overview of Python and the many applications it can have to nearly any type of business.

IT and Computer Science — What’s the Difference (and which is right for you?)

Although sometimes used interchangeably, IT and Computer Science are two different career paths, specifically when starting your education. As this infographic put together by Rasmussen College points out, IT is “the application of computer programs to solve business processes. An employee in this industry will likely interact with others — whether in person or via phone or email — while helping solve technological problems.” On the other hand, they define Computer Science as “the processes of creating usable computer programs and applications and the theories behind those processes. An employee in this industry will likely be doing a lot of independent work applying complex algorithms and writing code.

If you’re already an experienced technology professional, these labels are nothing more than just that, labels. When you and your clients have a clear understanding of your job description and your specialty, the title is near irrelevant. If you know a teenager or aspiring technology professional looking to define their path; however, then this infographic is worth sharing. It explains the opportunities and experience required for each field, helping to get one step closer in a difficult decision.

IT and Computer Science -- What's the Difference (and which is right for you?)