Showing posts for category: Development
Massively improving database INSERTs
Thursday 10th August 2023 (updated: Wednesday 23rd August 2023)
JavaScript
PHP
Research
Development
I use MySQL a lot. I run it locally using MAMP for a ton of data projects that never find their way online. My current development project involves a one-off operation to insert 1,000,000 rows of data to a small table. The table has 2 indexes - a Primary Key and a specific index on 2 columns. The project is driven by JavaScript that then AJAX's out calls to PHP which runs the database operation. The actual project is a pixel scanner which uses HTML5's Canvas API to examine a pixel, determine its RGBA val...[more]
Directory traversal
Wednesday 2nd August 2023
PHP
Research
Development
Cyber Security
Sometimes refered to as file path traversal. I have become fascinated with the techniques attackers may use to discover web server directories and files. Specifically, of course, those directories and files that are not intended to be obvious. A simple look at robots.txt in the root directory may unearth some resources that aren't meant to be viewed. By virtue of the fact they are listed in the .txt file the website owners don't want search engines indexing them. This is all above board and I'...[more]
Vintage Points Calculator
Saturday 29th July 2023 (updated: Tuesday 1st August 2023)
PHP
Development
Vintage Points Calculator
Updates to the Vintage Points Calculator are now live - Vintage Points Calculator. 1st August 2023 You can now request a new password - an email is sent out to you with instructions for changing your password 29th July 2023 Created ability to create an account to store points progress Fixed rounding issues on calculation - occasionally threw an error where there was no rounding required i.e. integers passed rather than floating point Created admin page to allow for manual adjustment o...[more]
Updates to the Vintage Points Calculator
Thursday 27th July 2023 (updated: Wednesday 23rd August 2023)
PHP
Development
Vintage Points Calculator
I have always wanted to expand my Vintage Points Calculator to allow for people to sign in and record their points progress. To that end I've started to put the framework in place to allow for registration. The features will be fairly simple: Record daily points against allowance Use points bank for 'over-spilled' daily points Administer daily points and bank amounts Password recovery The registration code is around 90% complete. Update: no complete and tested The authentication code is 100% ...[more]
JavaScript Promises
Monday 24th July 2023
JavaScript
Research
Development
The whole concept of Promises in JavaScript I have always found useful. The action is handled asynchronously and the result is either a resolution 'resolve' or a rejection 'reject'. Where it started to mangle with my brain cells is with the async/await functionality introduced in later versions of ECMAScript. A simple JavaScript Promise can be defined as below: const myPromise = new Promise((resolve, reject) => { // Simulate an asynchronous operation (e.g., fetching data from a server) s...[more]
What is the difference between bcrypt and Argon2 in PHP's password_hash?
Monday 24th July 2023
PHP
Research
Development
I asked ChatGPT the above question to help me with some research. Both bcrypt and Argon2 are secure password-hashing algorithms supported by PHP's password_hash function. They are designed to hash passwords securely and protect against brute-force and rainbow table attacks. Here are the key differences between bcrypt and Argon2: Algorithm and Security Strength: Bcrypt: Bcrypt is an adaptive password-hashing algorithm based on the Blowfish cipher. It is a widely used and battle-tested algorith...[more]
Reverse IP lookup
Sunday 23rd July 2023
PHP
Research
Development
As an extension to my 'referer' project I also capture the IP address of the client as they arrive at my site using $_SERVER["REMOTE_ADDR"] I thought it would be an interesting exercise to see if I could do a reverse lookup on the IP address to identify any A (address) records held in each case. I found a useful and free service at ipwho.is. Using PHP's cURL is was able to provide any IP address and return some cool data. $id = $_POST["id"]; $ip = $_POST["ipaddress"]; $ch = curl_init('h...[more]
Invaders 2095 - JavaScript game in development
Sunday 23rd July 2023 (updated: Thursday 24th August 2023)
JavaScript
Development
Dev log - Development started December 2022 Oops. Appears I have a problem with the high score table. Investigating. May 2023 - modifications Added touch control - can now be played using a mobile phone / tablet etc. Removed the high score table for touch control - too much faff for selecting the characters when entering your initials Touch control uses localStorage for saving the high score Lightened the playership's colour to avoid clash with environment - better for mobile play Raised th...[more]
Defender 2095 - JavaScript game in development
Sunday 23rd July 2023
JavaScript
Development
Player's ship changing direction I have a few issues with the way the player's ship changes direction. In the original Defender the ship simply switched to face in the opposite direction and the ground and player ship shifted accordingly until the ship was in the exact opposite x co-ordinate. The way I have it at the moment isn't quite right and the ship 'swings' far too much. Needs some closer attention as currently it's fairly maddening to 'swing' and ...[more]