RSSAmplifier

Blog

Polaris64's blog

Recent content on Polaris64's blog

blog.polaris64.netRSS feed ↗64 posts

Latest posts

Verlet Physics Playground

I recently started playing around with the p5.js web editor and I created what I called the “Verlet Physics Playground”. That got me interested in other libraries in other languages that could be used for building real-time simulations like this.
The rabbit hole I ended up in first took me to Common Lisp’s Sketch library. I love using Common Lisp and I’m especially…

Rust really is a superpower!

This is a small post in appreciation of Rust, the programming language, and its ecosystem.
If you’ve read my other posts you’ll know that I have a strong interest in Rust. I have been using Rust for quite a number of years and I have released several posts about it, for example the performance of Rust when compiled to WASM. I’ve also built some software using Rust: Lishwist,…

Lishwist (beta)

I’ve just released a beta version of a new project that I’ve been working on: Lishwist!
Lishwist is a web app which allows you to create and share wish-lists. There’s no registration requirement: just create a new wish-list (called a Wist) and bookmark the page! You can then share the list with others (one share per person) and these people can “claim” items to…

The UK’s Rising Stake in Semiconductors

Photo by L N on Unsplash.
Last year, the UK government, through the UK Research and Innovation’s programme Strength in Places, granted CSconnected £43.7 million to form “the world’s first Compound Semiconductor Cluster.”
The cluster is a consortium of organisations directly involved with the research, development, and manufacturing of compound semiconductors, which power most technological…

Could Emacs Have a Set-up Wizard?

Introduction 
 There have been a number of discussions recently about modernising Emacs . Some people feel that Emacs is not aesthetically pleasing , while others feel that Emacs’s default key-bindings put off potential newcomers . 
 In these discussions, I normally see comments fall into two main groups: - 
 
 People who are proficient with Emacs and do not want the quest…

Rust/WebAssembly Graphics Library

Introduction 
 This is a quick post to describe a little Rust crate that I created for fun: a WebAssembly graphics library . 
 The library is not meant for any serious work; it has no hardware acceleration and is not highly optimised. I created it to help me to learn Rust, WebAssembly, general graphics routines and unit testing and benchmarking in Rust. I’m sharing it mainly for fun,…

Using Org Mode to keep track of exercise

Introduction 
 I have been using Org mode to keep a daily journal of useful notes for around a year now. One such type of note is the amount of exercise I’ve done on a particular day. While this is a useful record, I wanted to expand upon it and to produce a table at the end of each month so that I can track how I’m (hopefully) progressing. 
 This post details how I used Emacs,…

Writing a custom Hugo theme

I am currently in the process of creating this Hugo blog and I decided to create my own theme in order to learn Hugo internals. While testing this theme I of course needed content, so I thought “why not document the process of creating the theme as the first post in the blog?”. This is that post!
Initial theme creation and set-up First steps After creating a base Hugo site with: -

About me and this site

My interests Computing: gaming, programming, hardware, networking, administration Design: websites, 3D modelling, game levels, illustration Photography and photo manipulation Travel: I’ve been to the US, Russia, France, Italy, Switzerland, Holland, Germany, Poland, Czech Republic, Ukraine, Crimea, Georgia, Croatia, Serbia, Bosnia, Cuba, Iceland, Slovakia, Slovenia, Hungary Reading: fiction…

Announcing my new game: Amazing Escape (Shareware)!

I’d like to introduce my new game Amazing Escape, Shareware version!
Play online now!
Amazing Escape is a top-down survival puzzle game for Android devices and the browser. The shareware version containing the first few levels is available now for free on the Google Play Store!
The Game In Amazing Escape, you play as yourself, having found yourself trapped within a set of…

Syswall: a firewall for syscalls

Links GitHub repository Motivation A while back I started thinking about software and how it does what it does. Perhaps even more importantly, I started thinking about how we can know what software does, without relying on the software’s marketing pitch.
Software analysis Software can be good and can also be bad; this is what we know as malware. For malware, a lot of time and effort is…

Rust WebAssembly and JavaScript: Floyd-Steinberg Dithering

Code examples Demo Rust WASM library and HTML (GitHub) Introduction Further to my recent post comparing the performance of a WebAssembly module written in Rust to plain JavaScript and WebGL shaders for rendering the Mandelbrot set, I have added an additional example comparing the performance of WebAssembly and plain JavaScript for the Floyd-Steinberg dithering algorithm. Check out the…

WebAssembly and Rust: performance analysis

Code examples Demo Rust library (GitHub) Introduction I have recently been learning The Rust programming language and I absolutely love it! Rust is a systems-level language (like C and C++) which provides compile-time guarantees about memory safety and safe concurrent behaviour. Readers of my Cybersecurity and technology blogs will know that I am interested in computer security, and we’re…

Hidden in Plain Sight: how attackers use obfuscation to hide code

Introduction Many articles, including my own, make references to code obfuscation. This article takes a look at what this actually is, as well as why it is often used by attackers to hide malicious code.
What is obfuscation? Obfuscation is the process of converting something to a form where its meaning and purpose is less apparent. When related to computer source code, this can be done for…

Web Exploit Detector: NPM module

Introduction As a follow-up to the previous article about my Web Exploit Detector, I am happy to announce that I have just made the project available as an NPM module. This allows the application to be installed, used and updated much more easily than before.
This article is intended to be a brief introduction to the Web Exploit Detector as an NPM module, as well as a brief introduction to NPM…

Web Exploit Detector: Node.js security scanner

Introduction After detecting some new exploits on one of my web servers, I decided to start work on a new application called the “Web Exploit Detector”. This project is open-source and hosted on GitHub, meaning that it’s free for anyone to use and, more importantly, anyone can contribute their own rules to make the tool better.
I now use this tool on my own servers to check…

WordPress Hacks: jQuery JS script injection

Introduction In the second of my series of articles about different exploits seen for WordPress sites, I discuss a particular attack that causes all pages on an infected site to redirect to a page of the attacker’s choice, which in this case was an affiliate link. This attack involves adding malicious code to jQuery .js files based on the assumption that jQuery is probably going to be…

Introduction to the Cybersecurity blog

The Cybersecurity blog is a place where I can write about all topics relating to online security, web-based attacks, “hacking”, exploits, vulnerabilities, penetration testing, etc.
In my work I operate many servers which are connected to the Internet, for myself, my company and my clients. Having a server connected to the Internet exposes it to a huge threat from online evildoers,…

WordPress Hacks: functions.php Backdoors

Introduction I recently noticed that a number of our client sites had some suspicious code added to the top of the functions.php file for each of the installed themes. This is an investigation into this code and details of how to remove it.
I am making this information available in the hope that it will be a useful resource for anybody that suffers this attack on their own WordPress sites. I…

Shared Canvas: the next generation

It has been quite a while since I created the original Shared Canvas, so I decided it was a good time for an upgrade…
So here is Shared Canvas, mark 2! Well almost; it’s still an early alpha and there’s a lot still left to do. But feel free to have a play with it in its current state :) Currently multi-user chat and drawing is supported, and multiple rooms (with passwords)…

What is Consciousness?

Photo © Shutterstock
Introduction Throughout the ages, philosophy and science has grappled with the concept of consciousness. This intangible yet fundamental aspect of every single human life has defied all attempts at being comprehended, understood and scientifically defined. For something that is at the core of our very being, how can this be the case? Through biology and chemistry we…

"Amazing Escape": Mobile Game in UE4

For another university assignment, I was tasked to create a mobile game using Unreal Engine 4. The game concept could be anything, but it couldn’t be a first-person game or a shooter. I came up with the idea of a top-down maze game where the player must collect keys in order to escape at the exit.
The maze is extremely dark and filled with malevolent statues which creep up on the player…

OpenGL game: Tank Battleground

Here’s a new game that I created for a university assignment called “Tank Battleground!”
The assignment required me to create a 3D game which used physics and demonstrated OpenGL and GLSL. I decided to use the idea of an arcade tank game so that I could demonstrate physics for movement (acceleration, velocity and displacement), projectile trajectories, friction, recoil,…

Network Editor Progress

I have just finished an early alpha version of the tool, called “SG2D script editor”, which will be used to generate the Python script used to drive the engine.
The tool currently has the following features: -
Node-graph editor similar to Blender’s node editor, Unreal Engine 4’s Blueprint editor, etc. Ability to add custom functions Multiple game states which all…

Move'm: Student Housing Reviews

Move’m is a housing review site specifically aimed at students and student accommodation all over the UK. It empowers students by allowing them to review student properties, landlords and letting agents, the overall goal being to provide students with a useful resource when looking for places to live and for landlords and agents to provide the best service possible!
The site was designed…

Engine Python Scripting Interface

My first development task was to add a scripting interface to the engine. This allows the game logic to be separated from the engine code and loaded in as with any other asset such as a sprite or audio clip.
I chose Python for scripting due to its power, flexibility, popularity and ease of integration. I am using IronPython for the .NET support with XNA, but I am being careful not to introduce…

Pre-built Engine and Toolkit

For development of my project I decided to use an engine and set of tools that I have already built: the SG2D engine and the SGDK set of tools.
SG2D: this is the engine itself, currently running on the Microsoft XNA Game Studio platform, allowing it to run on PC, Xbox, Windows Phone and Linux currently. SGDK: this is a set of tools used currently for asset creation (maps, animated sprites,…

My Dissertation Project

“To investigate development of an extensible 2D game engine for use by programmers and non-programmers”
I am currently working on a final-year university project and dissertation and this blog is used to track my progress. I’ll post regular updates as the project progresses so please check back to see what’s happening!

"Weeping Angel": game model and sculpt

This is a “Weeping Angel” from Dr. Who that I modelled for a university assignment. The task was to create a low-polygon model suitable for a game (1,500 polygons maximum). The model had to include high-frequency detail so the base mesh (created in Blender) was exported to ZBrush for sculpting. Normal, ambient occlusion and cavity maps were then applied to the base mesh to provide the…

Microsoft's NoIP takedown

As I am writing this article I already know that you won’t be able to read it… Why is that? Well at the time of writing, No-IP.com’s services have been severely compromised meaning that DNS lookups for www.polaris64.net will always fail. So why don’t No-IP fix this problem? Well, it’s not their fault, it is Microsoft’s fault…
Before I talk about what…

A* Path-finding

As you may or may not know, I am currently working on a game called Mendel’s Farm with the rest of the team at Static Games. Over the last couple of days I have been thinking about various ways of adding AI-controlled actors to the game and how best to make them navigate the farm…
I decided that path-finding over a grid will be required to achieve this, so I decided to investigate…

C#: Normal Map Generator

For a recent university assignment, I needed to create many different textures for both 3D models and surfaces. I wanted to create normal maps for each of these but I didn’t know how to do it.
I decided therefore to experiment with different approaches including photographing a surface with light from different sides and by using filters in GIMP and Photoshop. Both techniques worked well…

"The Shining" in Unreal

I completed an assignment for university which asked for a representation of a film scene to be created using UDK and 3DS Max. I decided to use “The Shining” directed by Stanley Kubrick. The assignment required me to create at least two 3D models, one which should be a character with three distinct animations. I chose to model the boy, Danny, for this purpose. The assignment also asked…

About my programming

I have been programming now since about the age of 8. I started programming in BASIC on my Amstrad CPC464 by copying programs from the user manual and from Type-Ins from Amstrad Action magazine (and what a magazine that was…). Since then, I have moved from BASIC, to machine code and assembler (Z80, MOS 6510 and x86), C, C++, Java, Perl, Python, Pascal, PHP, Rust and more.
I have a real…

First UDK Level: Rooftop Deathmatch

I created this level in Unreal Development Kit (UDK) as part of an assignment for university. The task was to create a single or multiplayer level in UDK based on a theme of our choice. I decided to create a multiplayer level based on top of 4 buildings. I was also asked to create and texture 2 vehicle and 2 character models using 3DS Max – these models can be seen in my 3D modelling posts.

Genesis-uk.com

Genesis-uk.com is the main website for Genesis UK . Com Ltd., which provides an on-line wholesale catalogue for customers together with basket and checkout facilities. Genesis UK . Com Ltd. offer customised products including garments, mugs, pens and much more all customisable via screen printing, embroidery and transfer printing. The site itself was built from scratch and uses many different…

Unreal level models: Helicopter

This is a low-poly helicopter model that I created and textured in 3DS Max for my Rooftop Deathmatch map. I wanted one of the roof-tops to be used as a helicopter landing pad, so this helicopter model was used for this and to provide some cover for the player during matches.

Eyewood Marquetry

Eyewood Marquetry is a work in progress site that I built for a friend’s marquetry business. The site is designed to showcase his work, give information about the artistic process involved in creating the work and to provide a place where people can commission a piece of work.

Unreal level models: Car

This is a low-poly car model that I created and textured in 3DS Max for my Rooftop Deathmatch map. In the level, I created 4 different materials with different colour bodywork to provide some simple variation to the cars in the level.

Teeshirtsdirect.com

Teeshirtdirect.com is a site that allows customers to create their own t-shirts, hoodies, polo shirts and more. Customers can add stock designs, custom text and their own uploaded images. The site itself was built from the ground up and uses a Flash interface to allow customers to position, scale, rotate and otherwise manipulate the designs directly on the garment. There are also options for…

Unreal level models: Gargoyle

This is a low-poly gargoyle model that I created and textured in 3DS Max for my Rooftop Deathmatch map. I wanted one of the buildings to have some areas for cover so a gargoyle at each corner was used. The gargoyles also add some variation to the rooftop of the older-style building in the level.

Unreal level models: Rat

This is a low-poly rat model that I created and textured in 3DS Max for my Rooftop Deathmatch map. I also created a variation on the model which was a dead rat. Both models were used in the stairwells in the level.

C: Commodore 64 Emulator

This is a work in progress Commodore 64 emulator written from the ground up in C. I’m lucky enough to own an original Commodore 64 together with the technical reference manual, and using both of these I was able to create a working emulator.
My first step was to code the MOS 6510 processor core. From there I coded the memory manager, the I/O, interrupt handling, the VIC chip etc. All I…

C++: "Malevolent Revenge!", Linux Allegro Game

Downloads Linux build: malevolent_revenge_linux_v1.0.0.zip (29.5KB) Windows build: malevolent_revenge_win_v1.0.0.zip (364.5KB) Source code: malevolent_revenge_src_v1.0.0.zip (38.5KB) The resource files (bitmaps, music etc), same for Linux and Windows versions, to be placed in the same directory as the executable: malevolent_revenge_files_v1.0.0.zip (14.6MB) Building from source in Ubuntu aside…

4.74 Degrees of Separation?

We all know that Facebook is pretty popular to say the least, but new research by Facebook and the University of Milan now finds that instead of the popular conception that there are six degrees of separation between us, there are actually 4.74.
The original research for the “six degrees of separation” finding comes from research published by the psychologist Stanley Milgram (also…

Not So Innocent…

I am writing this blog post having done no research whatsoever. Rather than laziness, the reason for this is that I cannot research the topic I was going to write about. This is because my Internet connection has not been available to me this evening, something which I had, maybe foolishly, relied upon having. But then it struck me; after finishing a very frustrating phone call with my ISP, I have…

Web Image Formats and WebP

As most web developers will know there are three main image formats used on the web – the Graphics Interchange Format (GIF), Joint Pictures Expert Group (JPEG) and Portable Network Graphics (PNG). Most will also know about their various advantages and disadvantages. Google are hoping to unify these formats in their new WebP image format and a recent announcement shows that they are getting closer…

SCADA's Scarce Security

Yesterday, BBC news reported that a “hacker” had allegedly destroyed a pump in the Illinois water treatment system. Apparently, this person had managed to gain access to the system and break the pump by repeatedly turning it off and on. This attack on a SCADA system (Supervisory Control and Data Acquisition) follows a similar attack earlier this year by the Stuxnet virus which appeared…

Browser Scripting and Google Go

The latest era in the so-called “Browser Wars” seems to be focused largely on JavaScript execution speed. With more and more websites using client-side scripting to enhance functionality (Google Docs, Google Maps, Facebook etc.), the faster these scripts can run the better.
Currently the most popular web browsers are Mozilla Firefox, Google Chrome, Microsoft Internet Explorer,…

Technological Lockdown

The LinuxCon conferences are annual events organised by the Linux Foundation and currently held in North America, Japan and Brazil. This week in LinuxCon Brazil, Linus Torvalds, the creator of the Linux kernel, shared his views on “locked down” technologies from the likes of Microsoft and Apple.
Specifically, Torvalds talked about Apple’s use of DRM (Digital Rights…