Jahed Ahmed Software, Games

Introducing Night Patrol

In the fast moving technology stacks of JavaScript, Nightwatch has grown to become one of the most popular front-end end-to-end testing frameworks around. It's an all-in-one solution allowing you to write tests without additional dependencies and effortlessly run them either locally or remotely.

We've been using Nightwatch at Unruly for a year now, and while it's not perfect, it's proven to be a lot more convenient than similar frameworks.

One of the problems we've had with Nightwatch is related to how we debug tests. During deployment, we'd run tens of tests and only one may fail. Finding this failing test and running it in isolation has always been tedious and time consuming since there's no IDE integrations to easily jump around the code base from Nightwatch's output.

Running tests in Night Patrol.

This is where Night Patrol comes in. In the simplest sense, Night Patrol does what we would've done manually. It keeps track of various inputs sent to Nightwatch and keeps track of the resulting outputs. In this article, I'll be going through how Night Patrol works and how it's used.

Read more


FrontierNav Update: Favourite Pouch Items Guide

I've released a simple guide to each Blade's favourite pouch items. Take a look.

While it's a simple guide, there have been major changes in the background to move the data pipeline from JSON documents to a Google Spreadsheet. Once this process has been streamlined a bit more, it should provided an easier way for others to contribute data.

Pouch Favourites Preview
I've immitated the look and feel from the game.


FrontierNav Update (2017-03-19)

User Profiles

I've added user profiles. They existed before but were rudimentary, now they're a bit more fleshed out. Here's mine (link).

My user profile.

There are two types of profiles: Community Profiles gives an overview of the user across the website, and Game Profiles gives an overview of the user for a specific game.

With game profiles, you can also mark the status of a game (playing, completed, etc.) and keep track of your progress as you mark pages such as locations and missions as complete.

I actually released this feature almost month ago but forget to mention it since Breath of the Wild came out!


FrontierNav Update (2017-02-07)

App Notifications for Game Events

You can now see game events in FrontierNav. Currently the only ones implemented are the Global Nemesis events which are retrieved from Miiverse.

App notifications.

The biggest feature here is that you can subscribe to these events to get notifications on your phone, tablet or computer. So you don't need to keep looking, the app will tell you when something's changed!

Other Changes

  • Revamped the Settings page into multiple pages for each section: Profile, Preferences and Subscriptions.


FrontierNav Update (2016-12-25)

Redesigned Game Pages

Game pages have been redesigned and now have search. The plan here is to better support the new multi-game, multi-guide user flows.

Game Page

Users aren't just restricted to one game and one guide now (i.e. Xenoblade X and Maps). In the near future, I could add a completely different interactive guide like an interactive Pokemon Sun/Moon Type Chart.

The possibilities are endless! Though, restricted by my free time >_>


Organising a Web Server

I've been using a RamNode VPS for over 3 years now. It's extremely low-end, having only 128MB of RAM, so something as lightweight and fast as Nginx was perfect to host my static website.

At the time I was new to provisioning a web server from scratch and ended up doing a lot of things just to get to a working state. Over time it's evolved as I learnt new tricks, leaving a mess in the process.

This seems to be a problem with any project in both the cyber and physical world. As you create more of something, you need to decide where to put them and reorganise everything else. Making it refactoring essentially.

Anyway, for this article I'm strictly talking about directory structures and where to put files used by a web server. No matter which web server you're using, the solution probably applies equally.

Read more


Adding Search to a Static Website

My website is made up of static pages, there is no central database. How do I implement search functionality so users can find the content they're looking for?

One of the biggest downsides when building static websites is the inability to query your data. Sure you can tag and categorise pages and create yet another page that lists them, but that alone is extremely limiting for the user. If you want to give users the ability to search through your website using plain text or any combination of tags, you can't do so on a static website. Well, you can, by creating endless permutations of every possible user input but let's not get into that.

So, what's the solution? There's a few. None of them are perfect.

Read more


FrontierNav Update (2016-11-06)

Enemies and Materials

  • Added Normal Enemies to the Xenoblade X map.
    • Details include stats, drops and categories
    • Data was scraped off this existing guide. Some of it isn't accurate (like enemy names) so eventually I'll need to go through and fix it manually.
  • Added icons for enemies indicating the category they belong to with colour coding for tyrants.
  • Added Materials
    • Just the names for now so you can find which enemies drop them.

Enemies