Revisiting Hackintosh

Oh look, Mr. Inconsistent Blog Poster is back. But let’s not have that conversation right now. I know I’ve promised several times to post more regularly, but I am clearly a disappointment to myself. Just to get a few life updates out of the way: I am currently unemployed, looking for work. I learned French, up to the B2 level and I’m planning to take either the TEF or TCF exam soon. And I completed a 3-year university program with BCS in 2 years. I also created a buymeacoffee profile, but for sandwiches, so if you’d like to support the content creation journey which I’m about to re-embark upon, it’ll be much appreciated. Cool? Cool.

Alright, I need to replace my late 2012 Mac mini. I’ve gone back to doing some React Native development recently (existing codebase, not by choice, but there’s money to be made), especially targeting iOS devices, and the mini just doesn’t cut it anymore. I had heard good things about the M2 Pro processor, and I was considering a replacement Mac mini, but the prices for the configuration are just too goddamn high! I initially thought that the 2012 mini was at the end of life due to the fact that I needed to run XCode 14.2, which only works on the official macOS releases that run on Apple Silicon. However, I was able to actually upgrade from Catalina to Big Sur (using Patched Sur), and then from Big Sur to Monterey (using OpenCore). The bad news is everything runs quite slowly, but I had a lightbulb moment!

The late 2012 Mac mini is a machine with an Intel CPU, which means if I could get the latest release of Apple running on that, then I should be able to get it working on other Intel machines as well. The bigger surprise? I was actually able to get Monterey 12.6.4 running on my AMD build (considering I haven’t purchased Intel for over 6 years now). The spec sheet: Ryzen 2700 with 32GB of DDR4 RAM, ASRock B450M Pro4 motherboard, NVIDIA Geforce RTX 2060 graphics and a spare 500GB Crucial MX500 SSD I had lying around. It actually worked (EFI here if you’re interested), but there’s no hardware acceleration due to the fact that NVIDIA GPU support has been dropped from macOS, so I have to manage until I can afford to purchase an AMD graphics card, which isn’t available locally. The plan is to get a cheap 5500XT which allegedly works great. Thing were looking good, then I decided to try out running an Android emulator, only to be greeted with a nasty error that virtualisation isn’t working, although I have SVM enabled in the BIOS. Turns out I need an Intel CPU to be able to get this to work.

The ideal Mac mini M2 Pro configuration that I was aiming for cost $2,199.

  • M2 Pro 12-Core CPU | 19-Core GPU
  • 32GB Unified RAM
  • 1TB SSD
  • Wi-Fi 6E (802.11ax) | Bluetooth 5.3
  • I/O: 4 x Thunderbolt 4 / USB4 ports, 1x USB-A 3.1 Gen 1, 1x HDMI, 3.5mm headphone jack, 1 x Gigabit Ethernet Port

I put together an Intel build on pcpartpicker matching spec for spec, including discrete graphics which practically costs half, and performs way better with the benchmark scores available online. Look, I get that inflation is crazy all over the world right now, but this Apple tax is just something else! And there’s no way I’m willing to pay anything close to that.

TypeItemPrice
CPUIntel Core i7-13700KF 3.4 GHz 16-Core Processor $391.96 @ Amazon
CPU CoolerDeepcool AK400 ZERO DARK 66.47 CFM CPU Cooler $39.99 @ Amazon
MotherboardASRock Z690M-ITX/ax Mini ITX LGA1700 Motherboard $139.99 @ Newegg
MemoryG.Skill Ripjaws V 32 GB (2 x 16 GB) DDR4-4000 CL18 Memory $79.99 @ Newegg
StorageWestern Digital Black SN850X 1 TB M.2-2280 PCIe 4.0 X4 NVME Solid State Drive $94.99 @ Amazon
Video CardMSI RX 6600 XT MECH 2X 8G OC Radeon RX 6600 XT 8 GB Video Card $259.99 @ Newegg
CaseFractal Design Torrent Nano Mini ITX Tower Case $99.98 @ Newegg
Power SupplyCorsair RM750e 750 W 80+ Gold Certified Fully Modular ATX Power Supply $99.99 @ Amazon
Total$1206.87
PCPartPicker Part List

I’ve been growing wary of tinkering (looking at you, Linux) and building software from source as I have become older because things that just work make life easier, but I’m excited to get back into this once again considering what can be achieved. Thanks Apple!

How I got the ACCA Diploma in Accounting and Business in 3 weeks

ACCA Diploma in Accounting & Business - Akinwale Ariwodola

I decided to obtain an accounting certification for a couple of personal reasons, one being that my dad advised me to do so several years ago in addition to my software work. Of course, I ignored him at the time since I didn’t think I would need to do anything else but software, but it looks like I have eventually come around. I was also quite upset by the fact that the Diploma I got from Informatics back in 2005 was pretty much useless for my purposes, so there was a bit of anger driving my determination.

After doing some research, I decided to start off with the ACCA diploma, seeing as it was possible to get it done in the shortest possible time (6 – 12 months on the ACCA website, but some individuals on various Internet forums posted they were able to get it done within a couple of months). There are 3 exams and an online module that need to be completed in order to get it done. I signed up as an ACCA student on the 15th of July using the Foundations in Accountancy (FIA) route, which cost £36, got approved on the 16th of July, finished the online module called Foundations in Professionalism the same day, and scheduled and paid for my first exam on the 23rd July.

To backtrack a little, let’s go over what the 3 exams are. Numerous posts on the Internet refer to these exams F1 to F3, but here are the actual names (they are all prefixed with F if you go through the foundation route).
F1 – FBT/BT – Business & Technology (formerly Accountant in Business)
F2 – FMA/MA – Management Accounting
F3 – FFA/FA – Financial Accounting

The 3 exams are available as on-demand computer based exams (CBE), and can be taken at any time, with a 50% pass mark on each of them, so I decided to tackle just one at a time just to test the waters. The first one I booked was the hardest one, FFA, since it had the lowest pass rate (70% as at July 2021) compared to the others. I paid $69 for the ACCA-X FFA course, and went through 10 weeks of course material within a week (over a weekend and most nights). I understood most of it and then proceeded to fail the first exam by scoring 49% (partly due to some stress caused by the British Council exam centre, which we’ll get to later, and I did not have a calculator because I wrongly assumed there would be an on-screen calculator provided by the CBE software). It turns out there are questions that tend to be worded in ways that trick you if you don’t pay attention.

One other important piece of advice that I ignored was to do practice / mock tests before the exam. I assumed since I already answered the questions at the end of every session in the course, I would be fine. I then proceeded to purchase 3 practice tests (available from the myACCA dashboard for £14) and scored 60%, 65% and 66% respectively. One thing the practice tests are really useful for is identifying where you’re likely to make mistakes and to be able to identify the trick questions. They also indicate which parts of the syllabus that you need to focus on for revision purposes. Another thing to keep in mind is that the practice tests seemed to be easier than the actual exam, but that could probably be due to the combination of questions you get from the question bank.

I decided to retake the exam on the day I failed, so I booked another session at a different centre the following Monday, July 26th and I passed with 55%. I decided to move on to FMA (second hardest with a 75% pass rate as at July 2021), paid $69 for the ACCA-X FMA course, purchased a set of 3 practice tests (again, proved useful to identify trick questions and where I was lacking) and booked a CBE exam at yet another centre (will cover reasons why later on) the following Monday, August 2nd, passed with 69%.

Finally, I decided to use the free OpenTuition course material instead of paying for the corresponding ACCA-X course for FBT, since it was the easiest of the 3 (highest pass rate). I finished the course material over 2 days, purchased another 3 practice tests just to be sure I was ready, booked a CBE exam for Thursday, August 5th and achieved a 75% score. I was transferred from the FIA (Foundations in Accountancy) path to the ACCA qualification path (you can choose to opt-out of this) with the first 3 exams marked as free exemptions as soon as my results were uploaded to the myACCA portal, and my diploma certificate got issues on August 6th.
 

CBE Centre reviews

This is more location-specific since I live in Lagos, Nigeria. I had an overall positive experience with the CBE centres except for the British Council, which was completely abysmal.

The British Council
The British Council offers the on-demand exams only 3 days in a month, it was the closest centre to home, and I already had some experience with them since I took my IELTS exam there, so booking the first exam there was a no-brainer. They were also the cheapest option. However, several things went wrong.

  1. I did not receive a confirmation email regarding my exam booking, so I had no idea whether or not the exam would hold.
  2. I got to the centre on the day of the exam by 8am, and they verified that my name was on the system. However, the exam which was supposed to start at 9am did not commence until about 11.30am. We were only just informed of technical issues about 1 hour before we started.
  3. They lost power (or turned off the generator) during the exam, which resulted in a network disconnection error and ended up terminating the CBE software (thankfully, progress was saved).
  4. The CBE software could not be relaunched immediately because the computer had a pending Windows software update. The power cut plus the wait for the update resulted in another 30 minutes of wasted time.
  5. I have not yet received my provisional result by email.

I did not have a good time, and the 49% fail was the icing on the cake.

Synergy Professionals
I retook FFA here, and the experience was fine, but they only offer exams from 12 noon, and I prefer to take exams in the morning.

The New Synergy Specialists (TNSS)
The furthest from home, and also a decent experience. I took the FMA and FBT exams here. The only complaints I have are table space was cramped, and you have to follow up to get them to email the provisional results.
 

So what did I learn?

  • Bring your own calculator.
  • The OpenTuition courses are actually pretty good, and best of all they are free (as in free beer). I only discovered OpenTuition after I had paid for the ACCA-X courses.
  • Always purchase a set of 3 practice tests for the CBE exams (they help identify where you’re likely to make mistakes and which parts of the syllabus to focus on for revision).
  • Depreciation, current ratio (I remember failing a question in the first FFA exam – I calculated with all assets and liabilities instead of just current assets and current liabilities, so I’ll never forget), variances, standard costing, financial performance measurement (I have all the formulae memorised) and more!
  • If you’re in Lagos, don’t count on the name brand of the “British Council”. Unless you’re prepared to deal with the stress, get your exams done elsewhere.
  • Don’t believe everything you read on the Internet, but we already know this. I went in with the expectation that everything would be very hard and I would require more than a month to study for each subject.

 

Total damage (with local currency equivalents)

  • Student registration £36 – ₦23,400
  • FFA failed attempt – ₦36,666
  • FFA successful attempt – ₦47,500
  • FMA successful attempt – ₦50,000
  • FBT successful attempt – ₦50,000
  • 3 sets of practice tests x 3 (£14 x 3 = £42) – ₦27,300
  • Optional – ACCA-X FFA course $69 – ₦30,360
  • Optional – ACCA-X FMA course $69 – ₦30,360

My total cost to certification was ₦295,586.
Total cost without failed attempts (OpenTuition courses) ₦198,200.
Total cost if you’re willing to deal with British Council’s timeline and shenanigans (OpenTuition courses) ₦160,698.
Cheapest approach (no practice tests) ₦133,398.
 

What the future holds

There are only 6 more exams in order to get the Advanced Diploma, so I’ve decided to pursue that, since I found a lot of what I’ve studied so far interesting. I already have the next exam booked, LW (GLO) – Corporate & Business Law. It’s the final on-demand CBE, as everything else is session based (March, June, September or December). It’s a mostly theoretical paper, and it’s got practice tests. Once I obtain the Advanced Diploma, I may explore taking the Strategic Professional exams yet, but I’ll decided when I get to that bridge.

Installing Visual Studio 2017 Community edition on Windows 10 1607 (Anniversary Update) could break your boot process

Well, that’s a long title. I decided to give Xamarin a shot for cross-platform Android and iOS development a couple of days ago which led me to install the Visual Studio 2017 Community edition. I performed a basic installation with only Xamarin selected (I already have the Android SDK and NDK, so I unchecked those). The installation was successful and my system ran fine until the next day when I tried to launch a VirtualBox VM. This failed with an error stating that it was unable to start, asking me to check my VBoxHardening.log file. I couldn’t make any sense of the last entry in relation to starting to VM, so I decided to try the good old solution to everything.

I restarted my laptop, only to be greeted with a blue screen of death and the stop code: CRITICAL_SERVICE_FAILED. I tried restarting a couple more times and was greeted with the same error. I went through the usual troubleshooting process. I tried:

  • Using startup repair. This failed spectacularly with an error asking me to check C:\Windows\System32\LogFiles\Srt\SrtTrail.txt. The last line in this file started with: Unknown bugcheck: 0x5A param 0x1 xy. Searching for this led me to try some startup options.
  • Tried to use System Restore, but it turned out I didn’t have any restore points. I probably disabled this due to the Windows taking up more and more space on the SSD partition created for the OS. Why?!
  • Tried to boot into Safe Mode after startup repair. Got the same CRITICAL_SERVICE_FAILED blue screen.
  • Based on some of the search results I found for the bugcheck error in #1, I tried booting with the Driver Signature Verification option disabled and this worked. However, I got an popup error that nvcpl.dll (NVIDIA Control Panel-related) failed to start, and my WiFi device wasn’t working (failed to start error in device manager). I updated my WiFi driver which seemed to fix the WiFi device problem, but I didn’t bother rebooting to test it out.

Trying to remember the last major change I made to my computer, I figured it must have been the VS2017 installation from the day prior that may have interfered with certain things. This led to me searching for a combination keywords related to Visual Studio 2017 breaking Windows 10, which led to me a reddit thread with 2 people having encountered something very similar: install VS2017 Community Edition, CRITICAL_SERVICE_FAILED blue screen of death upon next boot. Installing the Windows 10 Creator’s Update fixed the problem for them, and I tried the exact same thing. And that worked. I no longer have any problems booting. And VirtualBox works fine too.

So, if you would like to install Visual Studio 2017 Community edition, make sure you upgrade to the Windows 10 Creator’s Update first. I was able to do this using the Windows 10 Update Assistant. Steps to fix if you encounter the BSOD boot loop:

  • Boot with Driver Signature Verification disabled.
  • Download the Windows 10 Update Assistant and upgrade to Windows 10 Creator’s Update.
  • Reboot as many times as you like after the upgrade is complete.

No idea if it’s a combination of hardware or software and drivers installed on my notebook, a Lenovo Y700, that caused this issue, but it’s 2017 and I just find it bizarre how installing VS2017 which is meant to be a developer tool should affect the Windows boot process. But hey, if you do encounter the issue, now you know what to do!

Configure Redis as an in-memory only cache like Memcached

There’s a new project I have been working on where I needed to make use of an in-memory cache to take some load off of the database. Memcached has been around for a long time, and it’s what I thought about using at first, but I decided to use the opportunity to learn about Redis instead. Working with Redis is fairly straightforward, and it provides very useful and helpful data types in addition to simple strings such as sets and maps.

Redis stores every object in memory, but it turns out it also dumps the contents of memory to disk by default. I needed to disable this, so after digging around, I came up with this minimal configuration which makes Redis act more like Memcached, in-memory only with no disk writes. Of course, keep in mind that if you have to restart the Redis instance, the data will be lost, so it only makes sense to use this if the data which you need to cache can be repopulated from a persistent store.