-
Your Email Address
-
+
+
Dear SEO marketing teams
+
+ While I don't necessarily consider receiving legitimate offers for SEO services to be spam, I am not
+ interested in your services at this time. I understand that you are just doing your job, but hopefully you
+ can do it more efficiently by going to others who are more receptive to your services.
+
+
+ Do not contact me about SEO services. If you do, while I will not publicly blacklist your address, you
+ will - however - be blocked.
+
-
- Subject
-
-
+
\ No newline at end of file
+
+ Subject
+
+
+
+
+ Message
+
+
+
+
+
+
Submit
+
+
\ No newline at end of file
diff --git a/OliverBooth/Pages/Donate.cshtml b/OliverBooth/Pages/Donate.cshtml
index 5f1b172..16baf99 100644
--- a/OliverBooth/Pages/Donate.cshtml
+++ b/OliverBooth/Pages/Donate.cshtml
@@ -3,35 +3,37 @@
ViewData["Title"] = "Donate";
}
-
Donate
+
+ Donate
-
- I believe in free and open exchange of information, and I want to keep my educational content free for everyone to
- access. I will never put ads on my site, and I don't want to put behind a paywall resources that should be available
- to everybody, regardless of their financial situation.
-
-
- However, writing tutorials takes time, and I do have to pay for hosting. While I will never ask you for money, I
- will always appreciate it if you do decide to donate. It also helps me to know that people are finding my content
- useful, and that I should continue to make more.
-
-
- If you like what I do and are both willing and able to donate money to me and fund all of this, you can do so using
- the links below. Thank you for your support!
-
+
+ I believe in free and open exchange of information, and I want to keep my educational content free for everyone
+ to access. I will never put ads on my site, and I don't want to put behind a paywall resources that should be
+ available to everybody, regardless of their financial situation.
+
+
+ However, writing tutorials takes time, and I do have to pay for hosting. While I will never ask you for money, I
+ will always appreciate it if you do decide to donate. It also helps me to know that people are finding my
+ content useful, and that I should continue to make more.
+
+
+ If you like what I do and are both willing and able to donate money to me and fund all of this, you can do so
+ using the links below. Thank you for your support!
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-I also accept cryptocurrency donations.
+ I also accept cryptocurrency donations.
-
- BTC: 1LmXvavJr1omscfkXjp7A4VyNf3XhKP9JK
- ETH: 0x972C6641e36e2736823A6B1e6BA4D2A814b69fD2
-
\ No newline at end of file
+
+ BTC: 1LmXvavJr1omscfkXjp7A4VyNf3XhKP9JK
+ ETH: 0x972C6641e36e2736823A6B1e6BA4D2A814b69fD2
+
+
\ No newline at end of file
diff --git a/OliverBooth/Pages/Index.cshtml b/OliverBooth/Pages/Index.cshtml
index fc92985..8e5aae7 100644
--- a/OliverBooth/Pages/Index.cshtml
+++ b/OliverBooth/Pages/Index.cshtml
@@ -1,30 +1,33 @@
@page
-
Hi, I'm Oliver.
-
I'm a tech enthusiast, coffee drinker, and software developer.
+
+ Hi, I'm Oliver.
+ I'm a tech enthusiast, coffee drinker, and software developer.
-
-
-
+
+
+
-
- My primary focus is C#, though I have dabbled in several other languages such as Java, Kotlin, VB, C/C++, Python,
- and others. Over the years I've built up a collection of projects. Some of which I'm extremely proud of, and others
- I've quietly abandoned and buried. I'm currently working on a few projects that I hope to release in the near
- future, but in the meantime, feel free to check out some of my previous work .
-
+
+ My primary focus is C#, though I have dabbled in several other languages such as Java, Kotlin, VB, C/C++,
+ Python, and others. Over the years I've built up a collection of projects. Some of which I'm extremely proud of,
+ and others I've quietly abandoned and buried. I'm currently working on a few projects that I hope to release in
+ the near future, but in the meantime, feel free to check out some of my
+ previous work .
+
-
- I've also written a few tutorials on various topics, usually involving
- information not readily available elsewhere. I hope you find them useful. On occasion, I also write about other
- topics that I find interesting, such as
- my thoughts on the state of the world or the tech industry .
-
+
+ I've also written a few tutorials on various topics, usually involving
+ information not readily available elsewhere. I hope you find them useful. On occasion, I also write about other
+ topics that I find interesting, such as
+ my thoughts on the state of the world or the tech industry .
+
-
- If you want a general overview of stuff I've made, check out my GitHub ,
- itch.io , and
- Google Play .
-
+
+ If you want a general overview of stuff I've made, check out my
+ GitHub , itch.io , and
+ Google Play .
+
-If you'd like to get in touch, you can do so by clicking here .
\ No newline at end of file
+ If you'd like to get in touch, you can do so by clicking here .
+
\ No newline at end of file
diff --git a/OliverBooth/Pages/Privacy/FiveOClockSomewhere.cshtml b/OliverBooth/Pages/Privacy/FiveOClockSomewhere.cshtml
index 703b689..7a345f2 100644
--- a/OliverBooth/Pages/Privacy/FiveOClockSomewhere.cshtml
+++ b/OliverBooth/Pages/Privacy/FiveOClockSomewhere.cshtml
@@ -3,64 +3,66 @@
ViewData["Title"] = "It's 5 O'Clock Somewhere Privacy Policy";
}
-
@ViewData["Title"]
-
Last Updated: 24 September 2023
-
- This Privacy Policy differs from the policy that applies to other applications that I published on Google Play. For
- the generalised privacy policy, please
click here .
-
+
+ @ViewData["Title"]
+ Last Updated: 24 September 2023
+
+ This Privacy Policy differs from the policy that applies to other applications that I published on Google Play. For
+ the generalised privacy policy, please
click here .
+
-
- This Privacy Policy describes how your personal information is collected, used, and shared when you use or interact
- with the application It's 5 O'Clock Somewhere (the "Application").
-
+
+ This Privacy Policy describes how your personal information is collected, used, and shared when you use or interact
+ with the application It's 5 O'Clock Somewhere (the "Application").
+
-Introduction
-
- I am committed to protecting your privacy and ensuring the security of any information you provide to me when using
- my applications. This Privacy Policy outlines my practices regarding the collection, use, and disclosure of
- information I may gather from users of the Application.
-
+ Introduction
+
+ I am committed to protecting your privacy and ensuring the security of any information you provide to me when
+ using my applications. This Privacy Policy outlines my practices regarding the collection, use, and disclosure
+ of information I may gather from users of the Application.
+
-Information I Collect
-
- The Application will temporarily read your device's clock to determine the current time. This information is sent to
- the Application's server to determine an accurate and time-zone aware response to you, the user. This information is
- not stored or retained on the server. I do not use cookies, tracking technologies, or any other means to collect or
- track your usage behavior within the Application. I do not have access to any personal data, including your name,
- email address, or any other personally identifiable information.
-
+ Information I Collect
+
+ The Application will temporarily read your device's clock to determine the current time. This information is
+ sent to the Application's server to determine an accurate and time-zone aware response to you, the user. This
+ information is not stored or retained on the server. I do not use cookies, tracking technologies, or any other
+ means to collect or track your usage behavior within the Application. I do not have access to any personal data,
+ including your name, email address, or any other personally identifiable information.
+
-Use of Information
-
- The Application uses the little information it collects from you to provide the Application's functionality to you.
- This information is not used for any other purpose.
-
+ Use of Information
+
+ The Application uses the little information it collects from you to provide the Application's functionality to
+ you. This information is not used for any other purpose.
+
-Disclosure of Information
-
- I do not disclose your personal information to any third parties unless required by law or with your explicit
- consent. I maintain strict confidentiality and take reasonable precautions to protect your personal information from
- unauthorized access, use, or disclosure.
-
+ Disclosure of Information
+
+ I do not disclose your personal information to any third parties unless required by law or with your explicit
+ consent. I maintain strict confidentiality and take reasonable precautions to protect your personal information
+ from unauthorized access, use, or disclosure.
+
-Security
-
- I prioritize the security of your personal information and take reasonable precautions to protect it. However,
- please be aware that no method of transmission over the internet or electronic storage is 100% secure, and I cannot
- guarantee absolute security.
-
+ Security
+
+ I prioritize the security of your personal information and take reasonable precautions to protect it. However,
+ please be aware that no method of transmission over the internet or electronic storage is 100% secure, and I
+ cannot guarantee absolute security.
+
-Changes to this Privacy Policy
-
- I may update this Privacy Policy from time to time to reflect changes in my practices or for other operational,
- legal, or regulatory reasons. I encourage you to review this Privacy Policy periodically for any updates. The
- revised policy will be effective immediately upon posting.
-
+ Changes to this Privacy Policy
+
+ I may update this Privacy Policy from time to time to reflect changes in my practices or for other operational,
+ legal, or regulatory reasons. I encourage you to review this Privacy Policy periodically for any updates. The
+ revised policy will be effective immediately upon posting.
+
-Contact Me
-
- If you have any questions or concerns about this Privacy Policy or my privacy practices, please
- get in touch .
-
\ No newline at end of file
+ Contact Me
+
+ If you have any questions or concerns about this Privacy Policy or my privacy practices, please
+ get in touch .
+
+
\ No newline at end of file
diff --git a/OliverBooth/Pages/Privacy/GooglePlay.cshtml b/OliverBooth/Pages/Privacy/GooglePlay.cshtml
index e765bf5..befca57 100644
--- a/OliverBooth/Pages/Privacy/GooglePlay.cshtml
+++ b/OliverBooth/Pages/Privacy/GooglePlay.cshtml
@@ -3,68 +3,70 @@
ViewData["Title"] = "Google Play Privacy Policy";
}
-
@ViewData["Title"]
-
Last Updated: 24 September 2023
-
- This Privacy Policy differs from the policy that applies to this website. For this website's privacy policy, please
-
click here .
-
-
- This Privacy Policy does not apply to the application
It's 5 O'Clock Somewhere . For the privacy policy that
- applies to that application, please
click here .
-
+
+ @ViewData["Title"]
+ Last Updated: 24 September 2023
+
+ This Privacy Policy differs from the policy that applies to this website. For this website's privacy policy,
+ please
click here .
+
+
+ This Privacy Policy does not apply to the application
It's 5 O'Clock Somewhere . For the privacy policy
+ that applies to that application, please
click here .
+
-
- This Privacy Policy describes how your personal information is collected, used, and shared when you use or interact
- with applications that I publish on the Google Play Store .
-
+
+ This Privacy Policy describes how your personal information is collected, used, and shared when you use or
+ interact with applications that I publish on the Google Play Store .
+
-Introduction
-
- I am committed to protecting your privacy and ensuring the security of any information you provide to me when using
- my applications. This Privacy Policy outlines my practices regarding the collection, use, and disclosure of
- information I may gather from users of my applications.
-
+ Introduction
+
+ I am committed to protecting your privacy and ensuring the security of any information you provide to me when
+ using my applications. This Privacy Policy outlines my practices regarding the collection, use, and disclosure
+ of information I may gather from users of my applications.
+
-Information I Collect
-
- I do not collect any personally identifiable information about you when you use my applications. I do not use any
- cookies or similar tracking technologies that can identify individual users or track your usage behavior within the
- application.
-
-
- However, please note that my applications may make use of third party integrations such as Google Play Services or
- others. I am not responsible for the privacy practices or content of these third-party services. I encourage you to
- review the privacy policies of those third-party services before providing any personal information.
-
+ Information I Collect
+
+ I do not collect any personally identifiable information about you when you use my applications. I do not use any
+ cookies or similar tracking technologies that can identify individual users or track your usage behavior within
+ the application.
+
+
+ However, please note that my applications may make use of third party integrations such as Google Play Services
+ or others. I am not responsible for the privacy practices or content of these third-party services. I encourage
+ you to review the privacy policies of those third-party services before providing any personal information.
+
-Use of Information
-Since I do not collect any personal information about you, I do not use it for any purpose.
+ Use of Information
+ Since I do not collect any personal information about you, I do not use it for any purpose.
-Disclosure of Information
-I do not share any personal information about you because I do not collect any such information.
-
- However, please be aware that my applications contains links to third-party websites and services. I am not
- responsible for the privacy practices or content of these third-party sites. I encourage you to review the privacy
- policies of those third-party sites before providing any personal information.
-
+ Disclosure of Information
+ I do not share any personal information about you because I do not collect any such information.
+
+ However, please be aware that my applications contains links to third-party websites and services. I am not
+ responsible for the privacy practices or content of these third-party sites. I encourage you to review the
+ privacy policies of those third-party sites before providing any personal information.
+
-Security
-
- I prioritize the security of your personal information and take reasonable precautions to protect it. However,
- please be aware that no method of transmission over the internet or electronic storage is 100% secure, and I cannot
- guarantee absolute security.
-
+ Security
+
+ I prioritize the security of your personal information and take reasonable precautions to protect it. However,
+ please be aware that no method of transmission over the internet or electronic storage is 100% secure, and I
+ cannot guarantee absolute security.
+
-Changes to this Privacy Policy
-
- I may update this Privacy Policy from time to time to reflect changes in my practices or for other operational,
- legal, or regulatory reasons. I encourage you to review this Privacy Policy periodically for any updates. The
- revised policy will be effective immediately upon posting.
-
+ Changes to this Privacy Policy
+
+ I may update this Privacy Policy from time to time to reflect changes in my practices or for other operational,
+ legal, or regulatory reasons. I encourage you to review this Privacy Policy periodically for any updates. The
+ revised policy will be effective immediately upon posting.
+
-Contact Me
-
- If you have any questions or concerns about this Privacy Policy or my privacy practices, please
- get in touch .
-
\ No newline at end of file
+ Contact Me
+
+ If you have any questions or concerns about this Privacy Policy or my privacy practices, please
+ get in touch .
+
+
\ No newline at end of file
diff --git a/OliverBooth/Pages/Privacy/Index.cshtml b/OliverBooth/Pages/Privacy/Index.cshtml
index d9cfd02..feaaac3 100644
--- a/OliverBooth/Pages/Privacy/Index.cshtml
+++ b/OliverBooth/Pages/Privacy/Index.cshtml
@@ -3,84 +3,86 @@
ViewData["Title"] = "Privacy Policy";
}
-
@ViewData["Title"]
-
Last Updated: 26 May 2023
-
- This Privacy Policy differs from the policy that applies to my applications published to Google Play. For my
- applications' privacy policy, please
click here .
-
+
+ @ViewData["Title"]
+ Last Updated: 26 May 2023
+
+ This Privacy Policy differs from the policy that applies to my applications published to Google Play. For my
+ applications' privacy policy, please
click here .
+
-
- This Privacy Policy describes how your personal information is collected, used, and shared when you visit or
- interact with my website oliverbooth.dev .
-
+
+ This Privacy Policy describes how your personal information is collected, used, and shared when you visit or
+ interact with my website oliverbooth.dev .
+
-Introduction
-
- I am committed to protecting your privacy and ensuring the security of any information you provide to me when using
- my website. This Privacy Policy outlines my practices regarding the collection, use, and disclosure of information I
- may gather from users of my website.
-
+ Introduction
+
+ I am committed to protecting your privacy and ensuring the security of any information you provide to me when
+ using my website. This Privacy Policy outlines my practices regarding the collection, use, and disclosure of
+ information I may gather from users of my website.
+
-Information I Collect
-
- When you choose to contact me via the contact form on my website, I collect your name and email address. This
- information is provided voluntarily by you and is necessary for me to respond to your inquiries and engage in a
- conversation. I do not collect any additional personally identifiable information about you through the contact
- form.
-
-I do not use any cookies or similar tracking technologies that can identify individual users.
-
- Please note that my website includes a Disqus integration for commenting on blog posts. Disqus is a third-party
- service, and their use of cookies and collection of personal information are governed by their own privacy policies.
- I have no control over the information collected by Disqus, and I encourage you to review their privacy policy to
- understand how your information may be used by them.
-
+ Information I Collect
+
+ When you choose to contact me via the contact form on my website, I collect your name and email address. This
+ information is provided voluntarily by you and is necessary for me to respond to your inquiries and engage in a
+ conversation. I do not collect any additional personally identifiable information about you through the contact
+ form.
+
+ I do not use any cookies or similar tracking technologies that can identify individual users.
+
+ Please note that my website includes a Disqus integration for commenting on blog posts. Disqus is a third-party
+ service, and their use of cookies and collection of personal information are governed by their own privacy
+ policies. I have no control over the information collected by Disqus, and I encourage you to review their
+ privacy policy to understand how your information may be used by them.
+
-Use of Information
-
- The name and email address you provide through the contact form are used solely for the purpose of responding to
- your inquiries and engaging in relevant conversation. I keep this information confidential and do not disclose,
- sell, or share it with any third parties unless required by law or with your explicit consent.
-
-
- I do not use your personal information for marketing purposes or send you any unsolicited communications. Once our
- conversation is complete and no longer necessary, I will securely delete your personal information unless otherwise
- required to retain it by applicable laws or regulations.
-
+ Use of Information
+
+ The name and email address you provide through the contact form are used solely for the purpose of responding to
+ your inquiries and engaging in relevant conversation. I keep this information confidential and do not disclose,
+ sell, or share it with any third parties unless required by law or with your explicit consent.
+
+
+ I do not use your personal information for marketing purposes or send you any unsolicited communications. Once
+ our conversation is complete and no longer necessary, I will securely delete your personal information unless
+ otherwise required to retain it by applicable laws or regulations.
+
-Disclosure of Information
-
- I do not disclose your personal information to any third parties unless required by law or with your explicit
- consent. I maintain strict confidentiality and take reasonable precautions to protect your personal information from
- unauthorized access, use, or disclosure.
-
-
- However, please be aware that my website contains links to third-party websites and services. I am not responsible
- for the privacy practices or content of these third-party sites. I encourage you to review the privacy policies of
- those third-party sites before providing any personal information.
-
+ Disclosure of Information
+
+ I do not disclose your personal information to any third parties unless required by law or with your explicit
+ consent. I maintain strict confidentiality and take reasonable precautions to protect your personal information
+ from unauthorized access, use, or disclosure.
+
+
+ However, please be aware that my website contains links to third-party websites and services. I am not
+ responsible for the privacy practices or content of these third-party sites. I encourage you to review the
+ privacy policies of those third-party sites before providing any personal information.
+
-Security
-
- I prioritize the security of your personal information and take reasonable precautions to protect it. However,
- please be aware that no method of transmission over the internet or electronic storage is 100% secure, and I cannot
- guarantee absolute security.
-
+ Security
+
+ I prioritize the security of your personal information and take reasonable precautions to protect it. However,
+ please be aware that no method of transmission over the internet or electronic storage is 100% secure, and I
+ cannot guarantee absolute security.
+
-Changes to this Privacy Policy
-
- I may update this Privacy Policy from time to time to reflect changes in my practices or for other operational,
- legal, or regulatory reasons. I encourage you to review this Privacy Policy periodically for any updates. The
- revised policy will be effective immediately upon posting.
-
+ Changes to this Privacy Policy
+
+ I may update this Privacy Policy from time to time to reflect changes in my practices or for other operational,
+ legal, or regulatory reasons. I encourage you to review this Privacy Policy periodically for any updates. The
+ revised policy will be effective immediately upon posting.
+
-Contact Me
-
- If you have any questions or concerns about this Privacy Policy or my privacy practices, please
- get in touch .
-
+ Contact Me
+
+ If you have any questions or concerns about this Privacy Policy or my privacy practices, please
+ get in touch .
+
-
+
-By using my website, you signify your acceptance of this Privacy Policy.
\ No newline at end of file
+ By using my website, you signify your acceptance of this Privacy Policy.
+
\ No newline at end of file
diff --git a/OliverBooth/Pages/Projects/Index.cshtml b/OliverBooth/Pages/Projects/Index.cshtml
index bee4511..5db4be2 100644
--- a/OliverBooth/Pages/Projects/Index.cshtml
+++ b/OliverBooth/Pages/Projects/Index.cshtml
@@ -6,100 +6,102 @@
ViewData["Title"] = "Projects";
}
-
Projects
+
+ Projects
-@foreach (IProject[] chunk in ProjectService.GetProjects(ProjectStatus.Ongoing).OrderBy(p => p.Rank).Chunk(2))
-{
-
- @foreach (IProject project in chunk)
- {
-
-
+ }
-@foreach (IProject[] chunk in ProjectService.GetProjects(ProjectStatus.Past).Chunk(2))
-{
-
- @foreach (IProject project in chunk)
- {
-
-
+ }
-@foreach (IProject[] chunk in ProjectService.GetProjects(ProjectStatus.Hiatus).Chunk(2))
-{
-
- @foreach (IProject project in chunk)
- {
-
-
+ }
+
\ No newline at end of file
diff --git a/OliverBooth/Pages/Tutorials/Index.cshtml b/OliverBooth/Pages/Tutorials/Index.cshtml
index 35e8cec..f865f49 100644
--- a/OliverBooth/Pages/Tutorials/Index.cshtml
+++ b/OliverBooth/Pages/Tutorials/Index.cshtml
@@ -3,19 +3,21 @@
ViewData["Title"] = "Tutorials";
}
-
Tutorials
-
Coming Soon
-
- Due to Unity's poor corporate decision-making, I'm left in a position where I find it infeasible to write Unity
- tutorials. I plan to write tutorials for things like Unreal and MonoGame as I learn them, and C# tutorials are
- still on the table for sure. But tutorials take a lot of time and effort, so unfortunately it may be a while before
- I can get around to publishing them.
-
-
- However, in the meantime, I do have various blog posts that contain some tutorials and guides. You can find them
- here !
-
-
- I'm sorry for the inconvenience, but I hope you understand my position. Watch this space! New tutorials will be
- coming. If you have any questions or requests, please feel free to contact me .
-
+
+ Tutorials
+ Coming Soon
+
+ Due to Unity's poor corporate decision-making, I'm left in a position where I find it infeasible to write Unity
+ tutorials. I plan to write tutorials for things like Unreal and MonoGame as I learn them, and C# tutorials are
+ still on the table for sure. But tutorials take a lot of time and effort, so unfortunately it may be a while
+ before I can get around to publishing them.
+
+
+ However, in the meantime, I do have various blog posts that contain some tutorials and guides. You can find them
+ here !
+
+
+ I'm sorry for the inconvenience, but I hope you understand my position. Watch this space! New tutorials will be
+ coming. If you have any questions or requests, please feel free to contact me .
+
+
\ No newline at end of file
diff --git a/src/scss/app.scss b/src/scss/app.scss
index cdbbb40..6ff4aef 100644
--- a/src/scss/app.scss
+++ b/src/scss/app.scss
@@ -23,6 +23,11 @@ body {
margin-bottom: 60px;
}
+main.container {
+ background: #333;
+ padding: 20px;
+}
+
a {
&:link, &:visited, &:hover, &:active {
text-decoration: none;