Archive
How to: Make Thread-Safe Calls to Windows Forms Controls without delegates
private void SetText(string text)
{
// InvokeRequired required compares the thread ID of the
// calling thread to the thread ID of the creating thread.
// If these threads are different, it returns true.
if (this.textBox1.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.textBox1.Text = text;
}
}
Which omits the code for the SetTextCallback delegate, which over time, can clutter up your application.
Instead, I would suggest using an Action<T> as follows:
var d = new Action<string>(SetText);
DNS round robbin with failover
I’ve noticed that NS records in DNS also work on a round robbin feature, NS records also alternate.
This implies that you could create a distributed load balancer with failover using only DNS
Server A ip (Multihomed; 1.1.1.1 and 1.1.100.1)
NS NS1.SERVER.COM
NS NS2.SERVER.COM
A NS1 1.1.1.1
A NS2 1.1.100.1
A www 1.1.1.1
Server B ip (Multihomed; 2.2.2.2 and 2.2.200.2)
NS NS1.SERVER.COM
NS NS2.SERVER.COM
A NS2 2.2.2.2
A NS1 2.2.200.2
A www 2.2.2.2
SERVER.COM delegated with nameservers NS1.SERVER.COM and NS2.SERVER.COM
Now, the A records are not load balanced but the NS records are.
So theoretically, a DNS client, connecting randomly to NS1 or NS2 will be given either 1.1.1.1 or 2.2.2.2 as an IP address, depending
on what nameserver it contacted.
If the DNS on NS1 goes down, then the client will automatically contact NS2. and be given server 2’s IP address. The logic being, that if the DNS
server is down, the webserver probobly is too.
In this case, the A records are not load balanced but the NS records are.
I assume this would not get past ZoneCheck for delegation of some top level domains like .fr, .de or .no, but it might work for a .com
How to break hash codes with Google
it’s simple…
Just search for
Site:reverse.me.uk + hashcode
I managed to retrieve a lost password that was Hashed in a MySQL database..
mysql> select * from admins;
+——–+———-+———————————-+
| userid | username | password |
+——–+———-+———————————-+
| 4 | admin | 1752017eea2e45fbXXXXXXXXXX |
| 5 | nktest | 1752017eea2e45f1fXXXXXXXXXX |
+——–+———-+———————————-+
– And, yes, I’ve put X’s in there, just in case…
the site, reverse.me.uk has about 5 million hash codes, covering most of the shorter passwords, so beware!
An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.
An ASP.NET setting has been detected that does not apply in
Integrated managed pipeline mode.
I was using a component called FreeTextBox, which adds the following line into Web.Config
<httpHandlers>
<add verb="GET" path="FtbWebResource.axd" type="FreeTextBoxControls.AssemblyResourceHandler, FreeTextBox"/>
</httpHandlers>
This however, is not compatible with IIS7,
Quick fix is to take the app pool out of Integrated mode. So, go to your website on IIS 7, Press "Advanced Settings", and it will say the name of the Application Pool. Then go to application pools, click on the offenting pool, and select "Advanced Settings", then under "Managed Pipeline mode" change it
from Integrated to Classic. No restart of IIS is required.
Casting a float to a double
float x = (float)12.34;
double y = x;
What value is y?
12.34000015258789
If you really have to use floats, then this is an easy fix
double y = (double)(decimal)x;