Tue 03/18/25 Great News! The site is now up and running! If you're reading this, then
you know it to be true! All I have to do now is to upload the database.
I don't expect this to be easy, but I'll see.
Tue 03/11/25 When the time comes for you to create your web-site, my advice
to you is to create a carefully thought-out step-by-step plan having already
made important decisions like your domain name and its availabilty.
If you make a mistake like trying to register a domain that is not available,
you will go to domain registration hell as I have just done.
I registered my domain cebsmega.com via ionos.com, originally, I was told
that nothing could be done for 25 days (obviously to get another month's payment
before I ended services). So today, after waiting 25 days, I finally got support
to help me get my domain released so my new host interserver.net could complete
the transfer. They had me go through some hoops to verify my contact information,
which I completed. I get a support email stating I need to confirm my contact
email (whichI already did), so I replied that I already did this earlier with the
help of a support rep. So I get an email that all was accomplished (not so fast with the
champagne!). Subsequently, I get an email stating that they can't help me because
my domain was registered to a company: Tucows! Obviously they use this service to
register their customer's domains and now they're trying to pawn it off on them!
Since I never even contacted Tucows, I'm not going to be able to get any support from
them. I'm getting the feeling that this is all just a scam to keep customers that
want to quit for as long as possible.
**Update**
Okay, I'm ready for the champagne! I received the following email:
"Dear Customer,
The domain cebsmega.com has
successfully been transferred to InterServer Inc.
Thank you for your attention,
InterServer Inc"
Now all I have to do is wait a while for the updated registration info to
propogate. I can't wait to publish this site finally so you all can read this! I'll keep you posted.
**Update**
Well today has eceeded all of my expectations: After fiddling around with
VS 2022 publish settings, I actually published my entire web-site (minus the database).
Still can't view it publically (I thought I might using the IP address instead
of the domain name), no worries, I'm sure it will become visible as soon as the
cebsmega.com domain name resolves.
Mon 03/10/25 I've been away for a while, just having some non-technical fun, which I think is really
important to do every now and then, especially if you're hung up on a problem. Sometimes
the best thing you can do is to step away and come back with a fresh perspective.
Anyway, today was productive. I completed the download pages for FaxBlaster for both the full and trial versions.
This was very tricky because creating it
as a child page from the default master created some issues. I created a
simple password protected pqge that would make an div section visible with a
link to the zipped installation file. But when the correct password was supplied,
the div field became visible for an instant, then disappeard. After reviewing the code,
I began to think there was something setting the page to auto-postback. Since tracing the control
with the autopostback set to true would be difficult, I decided to build a simple
html version of the aspx page. It worked fine. But it didn't have the style or
menu component, so I tried to create a new child page from the site-master, I ran into
a lot of problems trying this, so I tried another approach: I took the menu from the
generated source of the site master and applied the menu to the html page. A
partial success. The conditional div section appeared correctly with the menu,
but the menu was out of place. I guessed correctly that the style statements were
interferring, so after removing some of them, the menu appeared correctly at the top.
Now it all works fine and it integrates nicely into my website.
Tue 01/07/25 Well I went to check on the domain tyransfer only to find that Interserver
screwed up! The Cebsmega domain was not even listed only my original request
regarding Cebs.com, which I can't use since it is now owned by someone else!
The good news is today I received my new power cord from Asus, but it is not charging
as fast as I thought it would. I put it on for over 2 hours which I thought would
be enough fornan full charge, but it only charged to 50%.
Sat 01/04/25 My power cord for my laptop was stolen today! I checked in with
support needlessly to check on my site. I forgot they told me already
that I had to wait for my domain registration before I could publish my site.
I spent way too much to have the cord shipped overnight, but I really do not
want to waste any more time!
Thr 01/02/24 Today I resolved to fix my domain. Unfortunately CEBS.com is
forever lost, but CEBSMEGA.com is available as I had another host 1on1.com register that for me.
it was a simple matter of obtaining a transfer authorization code to enable the transfer
of my domain name to another hosting service. Done deal, now I have to wait 5-7
business days for the domain to register and I can publish this site publically for
the first time.
Mon 12/30/24 Today I renewed my web-hosting services with Interserver, I had a nice setup where I
could publish my site directly through Visual Studio. I tried using other services like One and One, but
these required a more manual FTP process. Also I would have had to redesign a MySQL
version of MSSQL database, and I was not looking forward to that! Luckily, Interserver supports
MSSQL so I should be able to simply publish the database or script it. So far so good.
But, I ran into a bit of a problem with my domain CEBS.com. I was under the impression
that Interserver was still managing it since I saw it listed under domains being managed.
But to my dismay, I found out that CEBS.com was snatched by some other company!
I am trying to find out what recourse I can take to get my domain back, but it
will be a uphill climb!
Mon 12/23/24 Today, I worked on adding some material to my CRM (Customer Relationship Manager) page.
I learned something: In VS 2022, I tried adding a page to my site which was driven
by a master page. But when I added an aspx form, It didn't have the reference to the
master page in the heading. I tried to manually copy that section from another page, but no
luck, errors! So I figured out that when you add a page by right-clicking to
'ADD>' that 'NEW ITEM' will not appear unless you first stop the debugging mode and
this is the only way to get to the template of items that incudes the 'Web Form with Master page' selection that I needed. Once I added the
form with this method, all was right! So I added a number of pages with
instructions on what to do at each stage of a sale: the prospect, preparation, presentation, handling objections, closing and follow-up.
I think they turned out pretty good and I think they will be of good use to
the sales people I will hire for the task of selling my MVP (Minimally Viable Product) as I
venture into new territory).
Sat 12/21/24 Today, I finished incorporating my
CRM (Customer Relationship Manager)CRM (Customer Relationship Manager) and my
login page into my CEBS web-site.
I needed to add the login page because I don't want everyone accessing this page for obvious reasons. Once the user supplies a correct
user id and password, the user is given an access session variable and then redirected to
the home page so he can then access the CRM page from the top link. Interesting thing
happened when I first tried to use
'Resonse.Rediect("Default.aspx")', I got an error: thread was being aborted after response.redirect
After some research, I found I had to call it like
'Response.Redirect("default.aspx", false);' so it won't abort the current thread.
Don't ask me why this is even necessary, I'm going to (once again) chaulk it up to
Microsoft wierdness.
So now in the code-behind in the CRM page_load event, I added code
to redirect the user to the login page if no logon session was found. I know that
session variables have a life of about 20 minutes by default (I know how to change this, but I'll save that for
a later discussion) so after 20 minutes of inactivity, the user will have to sign-in again.
Also, I had trouble integrating the CRM page from its' own project into the CEBS home site. I tried to do this manually by
altering an existing page and changing the header reference to the site's master page.
But I got all sorts of errors. So I decided to load the pages (you need three, the aspx, cs and designer pages).
Once I did that, all worked fine.
Fri 12/20/24 I am going to add a login page to the CEBS site so
contacted people can log in and access the CRM page.
Thr 12/19/24
Update and Insert Today, I completed the necessary UPDATE and
INSERT functions and tested them and they worked great! I
changed the background color to a light grey so the white text fields
would show up better.
Wed 12/18/24 My CRM Page - Today I worked on my CRM page, I decided to
make the email text field the first field to identify the customer. I
added a on_textChange event to fire a SQL query to see if the customer
exists. If so, a label next to the field will read 'Customer Exists'
if not, it will read 'New Customer' also the text on the submit button
will read either 'Add' or 'Update' and the correct Insert or Update SQL
queries will be constructed.
Tue 12/17/24
Web Forms - Today, I am working on my website, specifically I am building
my own CRM (Customer Relationship Manager) application. I could just
sign up for one of the many poular systems out there, but why? I
already have MSSQL installed and running, I could easily leverage that
into my own home-spun version and I can do anything I want! So I enlisted
the help of AI (Gemeni) to list common data fields required to make a good
customer database and it did, it gave me about 30 fields of data that I
should collect. So I started to design and test my new CRM page. I just
went step-by-step first creating the connection to the database. I tested
that to run a simple Select query and displaying the results in a text box.
Good so far. Then I asked AI to create a web page that could collect all
those fields from user input. It created a standard web form with all the
fields listed. But this is where I went wrong. This was all old school,
but I felt ok about it since I was very fammiliar with this. You have one
page, the form UI to allow data entry, then anther page to collect and process
the data when the user hits the 'submit' button. I was going nuts trying
how to express the proper variables to collect te data from the form. I
remembered using Request.Form
to refer to the incoming fields.
Nothing worked! VS 2022 kept telling me there was no such reference.
After houres of hassling this, I realized that I was using aspx forms that
were already wired to respond. I could just add a submit button that called
the necessary functions from the code-behind page!
The fields were in standard html fields, but I could easily change that.
I had to change 'input type="text"' to asp:TextBox then add a 'runat="sever"' code in the tag.
The web-form designer was starting to fail and I could no longer simply
drag and drop a button on the form, so I did it in HTML code.
I added "asp:Button runat="server" Text="Submit" OnClick="asp:Button runat="server" Text="Submit" OnClick="Unnamed3_Click""
then added the event handler: 'protected void Unnamed3_Click(object sender, EventArgs e)'
to the code-behind page and now it's working great! I should rename the Unamed3 object
to something more descriptive. Next I will create sql code and execute
an update statement to update the customer's records.
Sat 12/14/24
I hate two-factor authentication, it's like the 'cone of silence'
if you're familiar with the sixties sit-com 'Get Smart', you
know it never works. This system was designed by idiots.
Two-factor authentication, if you're not familiar, is where
you log into a site,then it sends you a code to your phone to
verify it's really you. But what if they have the wrong phone
number on file? You are SOL! This happened to me today when
I tried to install applications on my new android phone.
Google is in control of authentcating changes made on this
phone. So before I can install anything, Google is going to
try to authenticate me using two-factor authentication.
It fails just like the cone of silence, since it's trying to use
an old phone of mine which does not exist. So I go to Google's
support page and navigate through a support tree of many questions
only to be dumped back at the start with no solution. Geniuses!
So I look up the 1-800 support number listed only to find that it
does not work! I wasted half my day on this.
Fri 12/13/24
So I am not supersticious about Friday the 13th, but I am a little sticious.
But I did create code to insert a new record into the database successfully.
The hardest part of this project was the installation and setup of the database.
The rest should be easy. I am familiar with creating SQL queries. But this time
I forgot how to properly create the table columns using Ssms (SQL Server Management Studio)
When creating the primary key, I needed to set the right properties for this,
namely: RowGuid needs to be set to True; the column ID (in my case) needs to be set
to the uniqueidentifier type. Once this is set up correctly, I could remove the part about
inserting ID from my statement, since this is now setup to do automatically.
In any case, I now have a working example of updating my database which I will
incorporate into FaxBlaster!
Thr 12/12/24
So today my goal was to create my own spell checker. So I created a dictionary
of English words spelled correctly in a large plain text file.
The challenge is to compare a word from this large file to see if
it exists and if so, then it is spelled correctly. I decided to use the
HashSet
object since it's performance is highly rated
compared to other methods.
Also, I found after testing, that the function incorrectly returned false because many of the
dictionary entries contained blank spaces, so I added the following linq expression: lines.Select(line => line.Replace(" ", "")).ToArray();
to strip the blank spaces out of the entries. Worked great! But I still need to test this further.
This SpellCheck function will be a great addition to my library. I wrote
this to create a utility for FaxBlasters. The application requires you to
create a fax document using Word, then adding fields for merging data.
It's a very flexible solution to allow customers to use Word to design
eaborate faxes and be able to merge data from other files. The
drawback is that the Word doc must be saved as a Rich Text document. During
the save, the fields can be mixed with rtf formatting characters which will
prevent a data merge with the corrupted field. I included istructions how
to clean these fields manually, but I wanted to build a tool to help them.
But this is a tricky problem to solve.
Example: [Total }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5195103 #}{\rtlch\fcs1 \af31507 \ltrc\fcs0 \insrsid5195103\charrsid5195103 of Pages]
Should read: [Total # of Pages]
So how do I determine what belongs and what doesn't?
My approach is to evaluate the text inside the brackets: [] Then determine
which of these evaluate to common english words (hence,the need for a spell-checker).
then, simply delete everything that is not an English word. Using this approach, the
soltion would return [TotalofPages] But this is very much acceptable, in fact, it
is preferable since it is now formatted like a variable, which is what I want.
Wed 12/11/24
Today is a good day, though not without problems:
First, I let Microsoft do an update on my machine,as they discovered a
vulnerabilty. Fine. After the update my keyboard would no longer
respond. I tried to reboot in safe-mode only to discover it does not
work like before. I could not remember if it's F-8 or F-11 or F-12 you're suppose
to press to invoke safe-mode. After researching this, I discovered
no one else does either. I found a way to make Windows update again
by going into Settings and selecting 'Windows update' from the menu on
the left. After installing a large update (1 hour), my machine worked
again!
Now my goal today was to create a test project to connect to
my new MSSQL database that I installed yesterday (not easy). After
some debate, I decided to go with MSSQL because I spent years working
with it in the past and I'm familiar with it. Also when I select a
hosting company for this web-site, I should have no trouble finding
one that offers MSSQL as a feature. And it is a very powerful database engine I
know from experience. My database needs are simple now, but it can scale greatly
when my needs grow.
Today, I started coding the test project to connect to a simple database
that I created. I tried sample code provided by Microsoft to try, but
to no avail! I kept getting a red squiggley under 'SqlCommand command = new SqlCommand(quer...'
I couldn't understand why. I made a reference to System.Data.SqlClient; but
it still came back with no known reference.
So I figured this out when I remembered a similar situation.
I made the mistake of creating a console application for the test project,
which I usually do for simplicity's sake. Not recommended if your project
requires such libraries as the data library. Once I created a new ASP website
project, the needed references were added and I was good to go. Don't ask me why
it's not sufficient to simply add the reference in code, but I'm going to chaulk
it up to Microsoft wierdness.
Now I was able to add the code using new SqlConnection(connectionString)
it ran fine! No problem. Next I will attempt to update the table using SQL.