Friday, 10 December 2021

Update...

    It's been a while since I added a post to this blog, a long while but I was busy ;)

I joined Tesco in May '17 after doing an amazing Cyber Security training for few months. Tesco shockingly was extremely well organised and modern. I was exposed to challenges I never faced before, like up to 100k requests per second on live system, and big installations of Cassandra and Kafka. My team and I also did a bit of caching for tills so they can work for customers even if there is a short issue with internet connectivity.

Then moved from Tesco to Tantalum Corporation in March '18. Did some fantastic telematics on steroids (convenient services for car owners on top of telematics) there - also learned a lot from two extremely skilled professionals working there - especially how to properly use Spring Cloud, Consul, Vault (thanks Hari and Jim). How to setup modern and robust CICD pipeline so it is helping development instead of being an obstacle and many more useful skills.

After Tantalum I joined Oodle Car Finance. When I joined they were already a fairly established company with a system to do credit searches, scorecard, underwriting and fraud checks. I worked with one of a kind CTO (thanks Alistair) who built quite a lot of this solution himself while he was a CTO hiring lots and lots of people along the way - quite a challenge! So my task was to stabilise the system and do some improvements. After about 3 months I knew enough to figure out the cost of implementing all the features we needed. It was high and the risk of still not having a perfect solution was there as well.

We have decided to build brand new solution, perfectly aligned to the company's aspirations - especially on data science front - and regulatory requirements. I have to admit - building a new solution when you have an old one with lots of problems already solved is much simpler than starting from scratch. Then the usual approach was taken, feasibility study, analysis and design. PoC was done in Feb-Mar '20 while hiring my own team, first lines committed in the beginning of Apr and then getting a fully working solution by July, testing it from functional, performance, saturation, load perspectives and with all green and happy, releasing it to production on 11th of August. This was a wild ride without any serious issues whatsoever!!! Because Data Science team was able to develop and test their models and decision engine without the need to change or deploy any code by Engineering team the pace was immense. They were sometimes testing 20-30 new models in shadow mode to find the best performing one and then they were switching our production models in minutes to benefit from the better model. I worked very closely with Marina, she has tons of experience in financial markets and especially lending, underwriting, risk and pricing - I think we were complementing each other nicely which allowed us to move fast and deliver great value. When Alistair and Marina left to chase bigger and better challenges it was time for me to leave as well...

Tuesday, 13 June 2017

VMware shared folders (Host: Win7Pro, Guest: Ubuntu 14.04) not working

Recently I had to copy couple of big docker images from a guest OS to windows host and I wanted to use a very useful feature called Shared Folders (Manage -> Virtual Machine Settings -> Options -> Shared Folders) but nothing was showing up in the default mount place /mnt/hgfs

I started searching for a solution online but most of the advices did not work for me. What did work was to mount the share manually. If for example you have a share on host system with a name myshare and your folder sharing is either "Always enabled" or "Enabled until next power off or suspend" then on guest just execute:
sudo mkdir /mnt/mynewshare
sudo vmhgfs-fuse -o allow_other .host:/myshare /mnt/mynewshare


This should nicely mount required folder.
You might have to reinstall VMware tools if this command doesn't work for you.

Tuesday, 6 June 2017

17 Anti-Procrastination Hacks by Dominic Mann

I recently read this short but very good book about our struggle with procrastination and it opened my eyes on this topic. I can recommend it to all of you who procrastinate... is there anybody who doesn't?


Sunday, 21 May 2017

Fixing Potterton Prima 60F - Fan and PCB

Since I had some time for DIY recently my boiler decided that this would be a perfect moment to break down :) It was playing games with us for a while. It was trying to ignite several times every so often and it was making noises because of that in the middle of the night.
But on 13th of May 2017 it gave up completely. It wasn't even trying to ignite. I was lucky because on the next day my friend which is Gas Safe Certified came to visit :) lucky me.
He did a diagnosis and found out that the fan is broken. It was trying to start but there is to much resistance from the bearings. Result: it needs to be replaced.

I checked and it costs £170 brand new (Baxi).
£140 reconditioned one - I'm not sure what that mean because there are no ball bearings there which could be replaced so decided to go for an OEM part for £89 + £6 for a seal (from eBay).

I installed the fan without issues. There are only two screws on the front of it when you remove the flue elbow (one screw). So should not take more than 10min for semi skilled DIYer.

I turned on the power and the fan started beautifully :) I was ecstatic. This was very short lived happiness since the fan was starting and stopping in a loop. The manual was saying : if the fan starts and stops in a loop then replace PCB...... Great!!!

WARNING:
Obviously, this is only a job for the competent user of a soldering iron, who understands what 240V mains electricity can do. I don't encourage anyone to do this. All information published on this site is used entirely at the site visitor or user's risk. No warranties are expressed or implied. Do not DIY with gas. It can kill you and others, and incompetent works can invalidate home insurance. If you do not understand what a capacitor is or how to solder or that electrolytic capacitors have polarity and are very unhappy if connected in a wrong way - DO NOT ATTEMPT TO DO ANYTHING LIKE IT!

I checked online and as far as I remember brand new PCB was £140 but .... a refurbished one on eBay... £40. I thought if somebody can fix it then I can as well :) Especially when all components are through hole mounted on the PCB and not surface mounted (this makes re-soldering and replacing components dead easy). I started googling and found this blog  (thanks Nick)

Now I knew it will be a 10min fix :) if I can get the capacitors from Maplin quickly.
I checked online and they had all of them in stock in my local shop. Two of them even with higher temperature rating then the original ones (105deg vs 85deg). And as some of you know capacitors do not like heat.
1x 22uF 63V 85deg Celsius (radial - both legs at the bottom) - C4
1x 22uF 63V 85deg Celsius (axial - legs at the opposite sides) - C7
1x 4.7uF 63V 85deg Celsius (radial - both legs at the bottom) - C6
uF means micro Farad (unit of electrical capacitance)

Before with old capacitors

After:
Solder joins



ps1 I'm quite sure that if you can't get the axial one then you should still be able to solder radial one because the legs are long enough - but try to get the same one :)

ps2 I checked all ceramic capacitors and they were all OK (kind of as expected since there is no electrolyte to evaporate).

Sunday, 19 March 2017

Kernel Panic - Not syncing : VFS: unable to mount root fs on unknown-block (0,0)

Just a quick brain dump after I recovered my home server running centos 7. I had to recover it because it was failing to boot after I did  
yum update
I have to admit, it was partially my fault it failed. I was running several python scripts trying to brute-force something for one of the CTF (Capture The Flag) I'm doing at the moment :)
Yum froze when it tried to update python... I couldn't see any other option than kill the process. After restart... I was getting sad message:
Kernel Panic - Not syncing : VFS: unable to mount root fs on unknown-block (0,0)

I was able to boot using previous kernels and recovery mode so a quick google search gave me a command to remove invalid kernel (all commands have to be run as root or with sudo):
First find out the exact version of the kernel you want to remove:

yum list kernel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.clouvider.net
 * epel: mirrors.coreix.net
 * extras: mirrors.vooservers.com
 * updates: mirrors.coreix.net
Installed Packages
kernel.x86_64                   3.10.0-327.el7                         @anaconda
kernel.x86_64                   3.10.0-514.2.2.el7                     @updates
kernel.x86_64                   3.10.0-514.6.1.el7                     @updates
kernel.x86_64                   3.10.0-514.10.2.el7                    @updates


Then remove the invalid one:
yum remove kernel-3.10.0-514.10.2.el7



 Run update again (this time without python running in the background ;) )
yum update


Restart to enjoy your new kernel (you do not have to do this immediately but it's good to check rather quickly if everything will work after reboot)
shutdown -r now

Wednesday, 23 December 2015

IIS - SSL certificate installation - Cannot find the certificate request that is associated with this certificate file. A certificate file must be completed on the computer where the request was created.

Recently I had to install new SSL certificate on Windows Server 2008 R2 running IIS 7.
Just like everybody else I generated CSR (certificate signing request) and sent it to CA which was issuing certificate for me. They sent me the certificate in PKCS7 format. When I tried to "Complete Certificate Request" in IIS Manager by giving a domain name as "friendly name" which is a REQUIRED field it said:
"Cannot find the certificate request that is associated with this certificate file. A certificate request must be completed on the computer where the request was created"

So my first thought was that the certificate was generated incorrectly and is corrupted. But that would be highly unlikely... the CA I used are one of the biggest and most trusted.

So how to fix it?

  • you have to start certmgr.msc
  • import this certificate into your personal certificates.
  • right click on this certificate and choose properties
  • EDIT friendly name because it is most likely EMPTY (I'm sure you can see the problem here)
  • close the properties window
  • export this certificate
  • use this new exported cert with KNOWN friendly name and now the Complete Certificate Request should work without issues!

Wednesday, 5 June 2013

Why I hate TFS even more...

Situation:
 - you have an open solution
 - you need to access code from another solution which is in TFS (but not on your disk)
 - so...
  •  go to "Team Explorer"
  • double click on "Source Control"
  • find the code you need and right click
  • select "Map to local folder"
  • select location on your local hard drive
  • click "Map"
  • click "Yes" to prompt: "Newly mapped items will not be downloaded until you execute a get. Do you want to get $/SomePlaceWithCode now?"
Now what? All people with common sense would think TFS will just download this code...

No, this is not what is happening... TFS tells you that you have to close the currently open solution to do that.... How retarded is that? Why would you need to close solution for this? To download some files not even in solutions directory?


Obviously  "Compare..." option is retarded as well - BIG time.

If you are comparing whole solution (quite a big one) and you want to revert/or whatever just one file at a time - TFS will refresh the whole tree again after modifying each file... which might take another precious minute. Unless everybody in TFS development team is always reverting all files at once and never one by one I just can't understand why this feature is broken so badly.

Is there any manager in Microsoft's TFS team which ever worked with SVN / Perforce / Git ?