Bill Gates launches stealth bgC3 LLC project
Plenty of time for thinking
Customer Success Testimonial: Recovery is Everything
So much for quitting Microsoft to spend more time with his medicines. Billionaire Bill Gates has reportedly started a new venture, bgC3 LLC.
TechFlash has described Gates' new baby as a think-tank that was founded after he quit his full-time duties with Microsoft this summer after 33 years. Gates is on his own at bgC3 LLC, which sounds more like the email address you use when communicating with people on the kinds of web sites you don't want others to know you're visiting.
So have Gates' plans for retirement and philanthropy been postponed? Has he been forced back to work having lost his crown as America's riches person?
Not according to TechFlash, which said bgC3 LCC is not a commercial venture but "a vehicle to coordinate the software mogul's work on his business, philanthropic and scientific endeavors." ®
Regcast training : Hyper-V 3.0, VM high availability and disaster recovery
COMMENTS
Wish he would add Hash and Merge Joins...
.. to in memory Linq first.
private string test(int c)
{
List<int> list1 = new List<int>() { 3, 1, 2, 6, 7, 8, 30 };
List<int> list2 = new List<int>() { 4, 5, 2, 2, 7, 9, 30 };
(from l1 in list1 from l2 in list2 select (l1 * l2 + 111) % 77).ToList<int>().ForEach(n => { if (list1.Count < c) list1.Add(n); });
(from l1 in list1 from l2 in list2 select (l1 * l2 + 111) % 77).ToList<int>().ForEach(n => { if (list2.Count < c) list2.Add(n); });
(from l1 in list1 from l2 in list2 select (l1 * l2 + 111) % 77).ToList<int>().ForEach(n => { if (list1.Count < c) list1.Add(n); });
(from l1 in list1 from l2 in list2 select (l1 * l2 + 111) % 77).ToList<int>().ForEach(n => { if (list2.Count < c) list2.Add(n); });
Stopwatch s = new Stopwatch();
s.Start();
int lLoop = InnerLoopJoin(list1, list2);
s.Stop();
long tLoop = s.ElapsedMilliseconds;
s.Reset();
s.Start();
int lHash = InnerHashJoin(list1, list2);
s.Stop();
long tHash = s.ElapsedMilliseconds;
s.Reset();
return "Hash = " + tHash.ToString() + " Loop = " + tLoop.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
for (int i = 100; i < 4000; i += 100)
listBox1.Items.Add(i.ToString() + test(i));
}
private int InnerLoopJoin(List<int> list1, List<int> list2)
{
var x =
from l1 in list1
from l2 in list2
where l1 == l2
select new { l1, l2 };
return x.Count();
}
private int InnerHashJoin(List<int> list1, List<int> list2)
{
Dictionary<int, int> d = (from l1 in list1 group l1 by l1 into g select g).ToDictionary(n => n.Key, n => n.Count());
var x =
from l2 in list2
where d.ContainsKey (l2)
from i in Enumerable.Range (1, d[l2])
select new { l1 = l2, l2 };
return x.Count();
}
private int MergeJoin(List<int> list1, List<int> list2)
{
// var x =
// from
return 0;
}
Back to his old tricks then
Buying up other peoples ideas & exploiting the idea.

IT infrastructure monitoring strategies
Agentless Backup is Not a Myth
Top 10 SIEM implementer’s checklist
Steps to Take Before Choosing a Business Continuity Partner
Enabling efficient data center monitoring