avinashsing.sunkur.com Open in urlscan Pro
5.77.32.215  Public Scan

Submitted URL: http://sunkur.com/
Effective URL: https://avinashsing.sunkur.com/
Submission: On March 08 via api from US — Scanned from GB

Form analysis 1 forms found in the DOM

GET https://avinashsing.sunkur.com/

<form role="search" method="get" class="search-form" action="https://avinashsing.sunkur.com/">
  <div class="form-group">
    <input type="search" class="form-control" placeholder="Search …" value="" name="s" title="Search for:">
  </div>
  <div class="form-submit">
    <button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
  </div>
</form>

Text Content

 * Home
 * About
 * Cookies Policy




AV

Talent can be developed through hard work


USING .NET CORE IDENTITY 2 WITH MYSQL AND A CUSTOM USER TABLE SET TO AUTO
INCREMENT USER ID INSTEAD OF GUID

avinashsingDecember 16, 2018

I wanted to upgrade a website from Web Forms to .Net Core 2. In my previous
project, I’ve used a custom authentication implementation which hashes user
passwords with a salt and sends them a confirmation email which an activation
code in it. I didn’t want to recode that part into .net core as Identity 2
provides a more secure and easy way of doing this.

The main challenge for me was to make it work with a MySql backend through
Dapper ORM using a custom user table. If you use Entity Framework, it’s a breeze
but it’s not that as easy otherwise.

So first things first, you need to implement the interfaces explicitly. I found
a GitHub repo which had all the implementations I required. I just needed to
adjust it to use my Dapper class and modify the SQL queries so it
fetches/updates data using my custom user table.

I needed to provide backward compatibility for user who’ve registered on the
site before, so I was checking username/password using my V1 authentication
(custom hashing done in Web Forms) and if they were valid, trigger an
authentication through V2 (.Net Core Identity 2).

All was working well except for one thing – I could not get the confirm email
part to work. So here’s what happens:

 1. User registers on the site
 2. An email is sent to the user with a link that contains his a confirmation
    code and the user id
 3. When the user clicks on the link, Identity 2 will validate the parameters
    and confirm the email

However this was not happening for me. I wasted almost 2 days trying out things.
Some people were saying you needed to UrlEncode the confirmation code and then
decode on the other side. This however was not the issue I was having. I tried
lots of things and nothing was working for me.

It turns out my custom user table was using an auto-increment field for UserId
while Identity 2 prefers a Guid. With the guid, you already have a unique id for
the user without having to save the entry to the database. With an
auto-increment field, you need to trigger a save to the database first before
getting the confirmation code, otherwise the system would register the UserId as
0 but when the user clicks on the confirmation email, his UserId would be
something else other than 0 and the validation will always fail.

Hopefully that helps someone else.

Advice


FIXING NUGET ISSUE – UNABLE TO LOAD THE SERVICE INDEX FOR SOURCE

avinashsingAugust 1, 2017

It turns out when working on a .NET Core project, Nuget has problems
restoring/downloading packages. On other projects using an older version of the
.net framework, this doesn’t seem to happen. This happens in the office at work
because we use a proxy. So to get around the problem, we need to configure Nuget
to go through the proxy.

Edit the NuGet.config file located at C:\Users\\AppData\Roaming\NuGet. If you’re
browsing to that folder, remember to turn on “Show hidden files, folders, and
drives”.

1
2
3
4
5
6
7
<configuration>
    <config>
        <add key="http_proxy" value="http://www.proxy.domain:port" />
        <add key="http_proxy.user" value="thedomain\userName" />
        <add key="http_proxy.password" value="base64encodedpassword" />
    </config>
</configuration>

If your work policy enforces password reset at a regular interval, it’s better
to omit the password key from the config and Nuget will still be able to use
your default credentials. So you end up with this instead:

1
2
3
4
5
6
<configuration>
    <config>
        <add key="http_proxy" value="http://www.proxy.domain:port" />
        <add key="http_proxy.user" value="thedomain\userName" />
    </config>
</configuration>

Now that this is sorted, let me get back to adding more nuget packages to my
project.

Programming


SETTING UP REVERSE PROXY USING ARR IN IIS

avinashsingJuly 24, 2017

When I initially set up Team City at work, I’ve used localhost on Port 85 as the
default Port 80 was already assigned to a default Website in IIS. However not
many people have access to the server where the site was running and they
couldn’t change build configuration and check detailed error logs. So I wanted
to use Application Request Routing (ARR) to forward incoming requests from
teamcity.app.branch.local to localhost:85 where Team City was set up to listen
to.

I found an MSDN article with very detailed instructions and I followed the steps
carefully. It was well explained across 3 webpages (so kudos to the author) and
dealt with things like the initial forwarding using inbound/outbound rules,
fixing the problem with http compression and dealing with rewriting anchor tags
and form action links.

It all worked fine and I was really happy until I saw a message in Team City
telling me there was a problem with Web Sockets. After some Googling, it turns
out there’s no easy way around it, so I decided to revert the changes I made for
ARR in IIS and just updated the Server URL in Team City (Administration ->
Server Administration -> Global Settings) and was able to access the UI through
teamcity.app.branch.local:85.

The way ARR works as I understand it is that it forwards requests from a domain
to another web app. Since teamcity.app.branch.local DNS was pointing to a
particular server and running on Port 80, which in my case was the default
website in IIS 8.5, I believe you could only add the following rewrite rules in
Web.config without having to go through all the steps in the link above:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<system.webServer>
    <rewrite>
        <rules>
            <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="http://localhost:85/{R:1}" />
                <serverVariables>
                    <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING"
value="{HTTP_ACCEPT_ENCODING}" />
                    <set name="HTTP_ACCEPT_ENCODING" value="" />
                </serverVariables>
            </rule>
        </rules>
        <outboundRules>
            <rule name="ReverseProxyOutboundRule1"
preCondition="ResponseIsHtml1">
                <match filterByTags="A, Form, Img"
pattern="^http(s)?://localhost:85/(.*)" />
                <action type="Rewrite"
value="http{R:1}://teamcity.app.branch.local/{R:2}" />
            </rule>
            <rule name="RestoreAcceptEncoding"
preCondition="NeedsRestoringAcceptEncoding">
                <match serverVariable="HTTP_ACCEPT_ENCODING" pattern="^(.*)" />
                <action type="Rewrite" value="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}"
/>
            </rule>
            <rule name="AnchorTagRule" preCondition="ResponseIsHtml1">
                <match pattern="href=(.*?)http://localhost:85/(.*?)\s" />
                <action type="Rewrite"
value="href={R:1}http://teamcity.app.branch.local/{R:2}" />
            </rule>
            <rule name="FormActionRule">
                <match pattern="action=(.*?)http://localhost:85/(.*?)\\" />
                <action type="Rewrite"
value="action={R:1}http://teamcity.app.branch.local/{R:2}\" />
            </rule>
            <preConditions>
                <preCondition name="ResponseIsHtml1">
                    <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/(.+)" />
                </preCondition>
                <preCondition name="NeedsRestoringAcceptEncoding">
                    <add input="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" pattern=".+"
/>
                </preCondition>
            </preConditions>
        </outboundRules>
    </rewrite>
</system.webServer>

The above will forward request from teamcity.app.branch.local to localhost:85 so
change the URLs according to your requirements. It’s as simple as this. The
steps in the MSDN article will create those inbound/outbound rules in Web.config
but I don’t think you need to go through all those steps, just make sure you’ve
got ARR and URL Rewrite installed on your server, that’s it.

Programming


I AM A PEBBLE!

avinashsingApril 11, 2015

My life is that of a pebble – The pebble dances to the tune of the waves. It
cannot do otherwise. With every movement, it rubs against hard surfaces and
loses part of itself. As the river continues to flow, the pebble becomes smooth.
Throw it at someone and it will hurt but hold it delicately in your hands and
you can feel its gentleness. Nature wants the pebble to stay immersed in the
river so it doesn’t harm and looks beautiful from the outside. And that’s where
I belong, out of reach.

~AS

Personal


C# INTERVIEW QUESTIONS BASED ON ACTUAL EXPERIENCES WHEN I WAS LOOKING FOR A JOB

avinashsingFebruary 16, 2015

This is the process I went through whilst looking for a new Senior Developer
position in London. I hope this helps other job seekers better prepare
themselves.


COMPANY A

1st Stage – Telephone Interview (30 mins)
General chat with the director about what the company does and where it’s
headed. Looking to see I thought I would be a good fit.

2nd Stage – Practical Test (3-4hrs)
Create a basic web application using web forms, linq to sql and jquery ui. This
assignment was sent by email and could be completed at home, so no time limit
really. The project requirements was to create a page with a text field (Name of
company) and 3 dropdowns (Speciality, Category and Location). When users type a
name in the textbox, jquery autocomplete should be leveraged to suggest names of
companies already in the database. Results should be displayed filtered by all 4
fields if specified. A sample data in spreadsheet format was sent but it was not
normalised and a either a backup of the database or script to recreate it was
asked.

Here the employer is looking for good coding skills and a layered project
solution (Web, Data and Business layers).

Third Stage – Face to Face Interview (1hr30)
This was done at their office in Chiswick. I met the IT Director who asked a
couple of questions about the things I’ve put on my CV and what I thought about
the project I had to do, then was questioned by a Senior Dev about these:

1. Whether I’ve created a jQuery plugin before (and how)
2. My experience with Unit Testing
3. A couple of other technical questions which didn’t require much thought

Then I met the CTO again for a brief talk and the most important question there
was what I would bring to the company.

Result
I didn’t get the job. They said I had strong technical skills but didn’t show
much interest in the company.


COMPANY B

1st Stage – Technical Test (1hr23)
I was asked to do an IKM (International Knowledge Measurement) .NET WEB DEV
test. To be considered for the role, you need to get 90% and above. IKM tests
are multiple choice questions with 1 or more correct answers. You cannot skip a
question and come back to it and for each wrong answer, you are penalised more
than if you don’t answer it (this is to prevent guesses I think). There were 33
questions to be answered in 83 minutes and before the test, it mentioned that on
average people take 39 minutes to complete this.

Some of the questions which were asked are:

1. Which attribute flag to use for bitwise operator (i didn’t know, never used
it in my life!)
2. try catch block code segments, which were correct
3. MVC routing
4. Code segments containing interfaces and classes, find out the output
5. Custom exceptions in .net

Although I scored 86%, the company still wanted to see me.

2nd Stage – Technical Interview with Technical Architect and Product Manager
(1hr30)
I was asked 2 main technical questions – my understanding of SOLID principles
and how I would go about designing a system. The requirements were that a short
blog post (140 characters) will be submitted by multiple registered users of the
company and this had to be displayed back to on the front end bearing in mind
this is a high traffic website.

What was important here is to mention that the first time the page is requested,
it will be cached until another post is submitted by someone else. Then on the
front end, to use something like SignalR or another polling method to update the
post widget with the latest items.

Result
I didn’t get this one either because they didn’t think I would be a good fit for
their company and I didn’t know much about their products and services. They
said I had strong technical skills though.


COMPANY C

1st Stage – Telephone Interview (30 mins)
Basic introduction to the company and lots of technical questions as follows:

1. Choose two programming languages and talk about the differences – they wanted
a client side scripting language like JavaScript and server side language like
C#
2. What does .net code get compile to and what is used at runtime (code gets
compiled to MSIL and at runtime it’s machine language)
3. What is a transaction in database terms? (going from one consistent state to
another)
4. Properties of database transactions (ACID properties)

2nd Stage – Face to Face Technical Interview (1hr)
This was meant to be 1hr but lasted for 3hrs!!! There was a 15 mins presentation
of the company, what it does etc. Then oral questions:

1. Explain the Garbage Collector (you should talk about Generation 0/1/2 and
that it is non-deterministic)
2. What is IDisposable and what pattern uses this (when using the “using”
keyword)
3. What is multi-threading
4. How to avoid a deadlock
5. Difference between the out and ref parameters when passing a value/reference
type

Then technical exercises:

1. A program was written on paper that does string manipulation (tokenisation)
and you had to tell the output. It was using indexOf and SubString but since
there was a do-while loop, you had to calculate values of all local variables on
paper. It turned out the interviewer had an initial string of “This is Value1”
and you were looking for the word “is” and you would miss out that the first
occurrence of “is” would be in “This”.
2. Following on the previous exercise, I was asked how I was going to rewrite
the program by using recursive calls to the method and I was only allowed to
modify certain sections of the code, not everything.
3. On paper, a set of tables was shown and I was asked how to make it better
(had to normalise them)
4. A database schema was shown and i was asked to write SQL queries for inner
joins, left joins, group by on paper.
5. There was also a Psychometric test (aptitude) where I was given increasing
levels of difficulty to solving a certain mechanism they use for their product.

This was followed by a chat with one of the managers, whereby he wanted me to
talk more about the technical stuff I’ve done in my previous jobs (technology
used, why and how) and then questions about why I wanted to join their company.

Result
This was one of the hardest interviews I’ve had and I thought it was going to be
just 1hr, not 3hrs!!! It was absolute torture and I wanted to just leave in the
middle of the interview but I gave it my best shot anyway. I know I didn’t do
well but if the interview was that hard, I don’t think I want to work there and
have my stress levels jump through the roof everyday. I also have a life outside
work and I’d rather take a pay cut than become a zombie. I was later informed I
didn’t get the job.

Good luck if you’re seeking a new opportunity!


UPDATE

I had two other interviews after those and got job offers for both. I took up
one of them and I’m very happy with the salary and the job I’m doing 🙂

Personal


THAT’S IT – I’VE GONE VEGETARIAN NOW!

avinashsingDecember 27, 2014

I woke up yesterday (26 December 2014) and I felt it was high time I stopped
eating meat. I’ve wanted to do this since a long time but there were 2 reasons
which prevented me from doing it.

First, it was more convenient – if I’m hungry, I can just make a chicken burger
and have that with bread and I’m all sorted. If I’m out and about, I can always
get a Zinger burger at KFC. If I wanted to cook a nice meal, you can’t go wrong
with chicken which is what I’m used to anyway.

Secondly, I want to put on some more muscle mass and meat is an easy source of
protein which is crucial in bodybuilding. I was scared I wouldn’t be able to
bulk up if I stop eating meat but the truth is I wasn’t gaining lean muscle mass
anyway because I don’t train as hard as I need to (I hardly exercise btw :D).

I guess when I woke up, I thought enough was enough and I could go on
procrastinating about this and never get it done. It is boxing day and the
Christmas and 2015 New Year celebrations are still intense and in my mind, I’m
thinking maybe I should wait till January and have this as a New Year Resolution
instead. However I know deep down it’s an excuse and if I put it off for another
day, then I’ll never be able to do it.

I just bought 36 chicken burgers, chicken sausages and still have some chicken
breasts in the fridge and tuna cans in the cupboard and I’m thinking I should
probably get through these first otherwise it’s going to waste. But then I know
myself too well now and decided to just go with the flow, so let’s see what
happens next.

Personal


USING JABBR CHAT WITH MYSQL DATABASE

avinashsingSeptember 13, 2014

I wanted to integrate a .net chat application for my Mauritius Chat project and
came across Jabbr which has most if not all of the features I wanted. However it
works with SQL Server Express by default but I wanted to use MySql instead. The
reason for that is that I’ve got a dedicated where I’m running MySql because
it’s free compared to SQL Server 2008/2012 and I didn’t want another service for
SQL Server Express to run just for one application – I have to use the limited
RAM carefully. So this post is all about how I finally managed to do that.

First thing first – you have to download the source code from Jabbr repository
on Github, There’s a Download Zip button on the left hand side.



Next you’ll need to download the MySql .Net Connector 6.9.3 and install it. If
you have previous versions of the MySql .Net connector, like I did, you’ll have
to uninstall that first.

These are the changes you’ll need in your web.config file:

Connection String

1
2
3
<connectionStrings>
<add name="Jabbr" providerName="MySql.Data.MySqlClient"
connectionString="Database=Jabbr;Port=3203;Data Source=localhost;User
Id=YourUserName;Password=YourPassword;"/>
</connectionStrings>

Entity Framework

1
2
3
4
5
6
7
<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration,
MySql.Data.Entity.EF6">
<defaultConnectionFactory
type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"
/>
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices,
EntityFramework.SqlServer" />
</providers>
</entityFramework>

You will also need to reference the MySql.Data.Entity.EF6.dll in your project.
You will find that where the MySql .Net Connector has been installed and you
will have to choose the assembly according to the .net version you’re using, in
my case .net 4.5.


PROBLEMS I ENCOUNTERED

When you recompile the project, you’d think it will work but for me it didn’t
because it kept complaining about this error:

Schema specified is not valid. Errors:
(15,12) : error 2019: Member Mapping specified is not valid. The type
‘Edm.DateTimeOffset[Nullable=False,DefaultValue=,Precision=]’ of member ‘When’
in type ‘JabbR.Models.Attachment’ is not compatible with
‘MySql.timestamp[Nullable=False,DefaultValue=,Precision=0]’ of member ‘When’ in
type ‘CodeFirstDatabaseSchema.Attachment’.
(40,12) : error 2019: Member Mapping specified is not valid. The type
‘Edm.DateTimeOffset[Nullable=True,DefaultValue=,Precision=]’ of member
‘RequestPasswordResetValidThrough’ in type ‘JabbR.Models.ChatUser’ is not
compatible with ‘MySql.timestamp[Nullable=True,DefaultValue=,Precision=0]’ of
member ‘RequestPasswordResetValidThrough’ in type
‘CodeFirstDatabaseSchema.ChatUser’.
(66,12) : error 2019: Member Mapping specified is not valid. The type
‘Edm.DateTimeOffset[Nullable=False,DefaultValue=,Precision=]’ of member ‘When’
in type ‘JabbR.Models.ChatMessage’ is not compatible with
‘MySql.timestamp[Nullable=False,DefaultValue=,Precision=0]’ of member ‘When’ in
type ‘CodeFirstDatabaseSchema.ChatMessage’.
(95,12) : error 2019: Member Mapping specified is not valid. The type
‘Edm.DateTimeOffset[Nullable=False,DefaultValue=,Precision=]’ of member
‘LastActivity’ in type ‘JabbR.Models.ChatClient’ is not compatible with
‘MySql.timestamp[Nullable=False,DefaultValue=,Precision=0]’ of member
‘LastActivity’ in type ‘CodeFirstDatabaseSchema.ChatClient’.
(96,12) : error 2019: Member Mapping specified is not valid. The type
‘Edm.DateTimeOffset[Nullable=False,DefaultValue=,Precision=]’ of member
‘LastClientActivity’ in type ‘JabbR.Models.ChatClient’ is not compatible with
‘MySql.timestamp[Nullable=False,DefaultValue=,Precision=0]’ of member
‘LastClientActivity’ in type ‘CodeFirstDatabaseSchema.ChatClient’.



Basically in the Jabbr code, some of the properties (especially for DateTime)
are marked as DateTimeOffset which is stores the date/time as an offset of UTC,
rather than the server date/time. However the DateTimeOffset type was being
mapped to datetime in MySql and Entity Framework realised it was not a proper
mapping. I tried to check for solutions online but couldn’t find any and since
this was not a big deal for me (storing the date/time as UTC), I ended up
replacing the properties marked as DateTimeOffset as DateTime. When you do this,
you also have to modify some parts of the code where it uses
DateTimeOffset.UtcNow with just DateTime.Now. I’ve used replace/find and there
are less than 5 occurrences if I remember correctly.

Okay at this point, the application compiles but when browsing the site, the
application tells me that there’s not database/matching tables yet so I would
need to use the Package Manager Console and run the command Update-Database.
When I did that, it failed at one specific migration. So I tried to see what was
happening by issuing a Update-Database -verbose command and I noticed MySql was
complaining about a variable was not declared. That specific migration to was to
rename a column from Proivder to Provider, something like that. So I thought I
could just exclude that particular migration and do the rename manually but the
migration still failed at another point.



I therefore decided to delete the whole Migrations folder so that the schema is
created from what’s in the code without having to run it any migrations (this is
only good if you’re just setting up the website and you don’t have any data
yet). I had to comment out the Migration calls in Startup.cs and run the
following command in Package Manager Console: Update-Database

I also issued Enable-Migrations so that if I make any changes, then these are
tracked.

In the end, I was able to run Jabbr chat with a MySql database. Now I need to
create a custom membership provider so that logins details are checked against
the Users table which resides in another project, so I might need to create an
API for that.

Programming


SETTING GIT ON EXTERNAL HARD DRIVE OR USB FLASH IN WINDOWS

avinashsingSeptember 6, 2014

At home, I usually work on personal projects and I wanted an easy way to back up
my data and put my code under source control. I decided to go with Git for this
and use my 250Gb external hard drive for the remote repository (you can use a
USB flash drive as well if you want).

So the first thing to do is download Git Extensions and install the software. I
installed mine on the C drive in Windows 7 using the default settings.



The next thing was to let Git know where my local repo for my project is. So I
browsed to the folder where my project was located (the directory which contains
all the C# source files from Visual Studio) and right click. This gives you the
option for “Git Init here” which when chosen creates .git directory marking this
folder as your local working directory. Open your Git Extensions program and do
a commit to get your codes under source control (locally).

Once that is done, you’ll need to create a remote repository on your external
hard drive or USB stick. Just create a folder there eg H:\Git\MyProject and when
you right click in the folder, you will be able to click on the “Git Bash”
option which will open a command line tool. Type the following command in there:

git init –bare

This will create a bare repository in the current directory.

Go back to Git Extensions and do a push now. It will ask you where to push to
and you just need to enter the location of the remote repo you’ve just created
and voila, all done.


NOTES

Although I was able to set up the local repo using Git Extensions, I was not
able to do the same for the remote repo, hence I’ve used the command line in Git
Bash.

The local repo contains all your source code (it’s a working copy after all) but
the remote one has only git files. My local repo was 8Mb while the remote one
was only 0.5Mb so I was worried it was not a proper backup of my data. However
that was not the case – I tried to get another working copy from the remote repo
just to make sure that if my computer crashed, I would still be able to get all
my source codes from the external drive and that worked perfectly. Actually it’s
better because the size of the remote repo backup was way less than the working
copy.

Programming


TERE DARD SE DIL AABAAD RAHA ENGLISH TRANSLATION

avinashsingJune 26, 2014

This is a lovely song from the movie Deewana starring Divya Bharti, Shah Rukh
Khan and Rishi Kapoor.


LYRICS

Tere dard se dil aabaad raha
From your pain, my heart was prosperous/affluent
Kuch bhool gaye, Kuch yaad raha
I forgot some, remembered some
Naseeba bhi kya rang laya
Faith/luck too, has brought its different colours
Kaha laake hum ko milaya
Where has it brought us to meet
Apni wafaa ke gul khil na paaye
The flowers of our trust did not flourish
Milke bhi tujhse hum mil na paye
Even after meeting you, we didn’t really meet
Darde dil hum kaise sahen
How can I stand this heartache
Door bhi hum kaise rahen
How can I stay far away too
Tera gham tere jaane ke baad raha
Your sorrow was there after you left
Kuch bhool gaye, kuch yaad raha
I forgot some, remembered some
Jaane wafa tujhko kya de
My life, my faith, what can I give you
Dil Keh raha hai dua de
Heart tells me to give blessings
Armaan bujhe hain sapne duaan sa
Desires are extinguished, dreams are broken
Mar mar ke hum to zinda yaha hai
I am still here alive after dying over and over
Bekhudi main hum ko gaye
I had lost all conscious/senses
Phir juda tujhse ho gaye
Then I was separated from you
Chahat ka jahaan barbaad raha
The universe of love was destroyed
Kuch bhool gaye, kuch yaad raha
I forgot some, remembered some



Personal


CONVERSATION OF MY MIND TO MY HEART

avinashsingMay 28, 2014

Mind : I know you’re hurting badly but that’s affecting me a lot now and I
cannot function properly

Heart : I’m sorry but I can’t help myself

Mind : For our sake, forget her and move on

Heart : I’ve tried to but it’s out of my control

Mind : Just do what it takes to stop this madness

Heart : Alright, I’ll have to stop beating then

Mind : No, you know I cannot exist without you

Heart : …and I cannot live without her

Mind : We’re both screwed then!
.
.
.
Soul : Don’t worry guys, when the two of you are long gone, I’ll use the
memories of the Mind to cherish the love of the Heart and immortalise your
existence 

Personal
Previous Articles


RECENT POSTS

 * Using .NET Core Identity 2 with MySql and a Custom User Table set to Auto
   Increment User Id instead of Guid
 * Fixing Nuget Issue – Unable to load the service index for source
 * Setting up reverse proxy using ARR in IIS
 * I am a pebble!
 * C# Interview Questions Based on Actual Experiences When I Was Looking for a
   Job


PROJECTS

 * Clever Dodo
 * Oral Driving Test Mauritius
 * Spiritual Blog


CATEGORIES

 * Advice
 * Gadgets
 * Health
 * Miscellaneous
 * Personal
 * Programming
 * Recipe
 * SEO
 * Spirituality




ARCHIVES

 * December 2018
 * August 2017
 * July 2017
 * April 2015
 * February 2015
 * December 2014
 * September 2014
 * June 2014
 * May 2014
 * April 2014
 * March 2014
 * December 2013
 * May 2013
 * April 2013
 * March 2013
 * February 2013
 * January 2013
 * November 2012
 * October 2012
 * September 2012
 * August 2012
 * May 2012
 * April 2012
 * March 2012
 * February 2012
 * September 2011
 * August 2011
 * July 2011
 * June 2011
 * May 2011
 * April 2011
 * March 2011
 * February 2011
 * January 2011
 * December 2010
 * November 2010
 * October 2010
 * September 2010
 * August 2010
 * July 2010
 * June 2010
 * May 2010
 * April 2010
 * March 2010
 * February 2010
 * January 2010
 * December 2009
 * November 2009
 * October 2009
 * September 2009
 * August 2009
 * July 2009
 * June 2009
 * March 2009
 * February 2009
 * January 2009
 * December 2008
 * September 2008
 * August 2008
 * July 2008
 * June 2008
 * May 2008
 * April 2008
 * March 2008
 * February 2008
 * January 2008
 * December 2007
 * August 2007
 * June 2007
 * May 2007
 * April 2007
 * March 2007
 * February 2007
 * January 2007
 * December 2006
 * November 2006
 * October 2006
 * September 2006
 * August 2006
 * July 2006
 * June 2006


© 2023 Av. All rights reserved.
 
This website uses cookies to improve your experience. We'll assume you're ok
with this, but you can opt-out if you wish.Accept Read More
Privacy & Cookies Policy