.code
... Bugs are in the details !!
Hi I'm your host n my name is Abubakar. You r most welcome here. Enjoy :)
|
Where are the Merge Modules for Crystal Reports?
|
Tuesday, June 23, 2009
|
Long time ago in a galaxy far far away, crystalreports were acquired by something called businessobjects! And some time back BO got acquired by SAP. If you now search for some stuff related to crystal reports and you get links to the businessobjects' website and you try to open them, you are going to be redirected to some page of sap's website. And SAP's website is awefully intimidating (atleast for me). Their search sucks! There crystalreports page is not at all developer-friendly. And the experience gets more frustrating if your internet speed is fluctuating.
So anyway, the thing is that after a long time I have returned to doing some .net development, as its progressing I had to do some crystal reports development also. Now I wanted to deploy the crystal reports to the server where my website is deployed. I'm using Visual Studio 2005 & the crystal reports that comes with it. So in it the cr version is "10.2.3600.0". Just before declaring that both bing and google sucks at searches (its not there fault I guess?), sap's cr forums revealed this page which is *the* page for finding out various deployment scenerios. As it turned out, the setup package that I wanted to create, it was already there on my hard drive installed/placed along visual studio 2005, in the form of file named "CRRedist2005_x86.msi". This file is also mentioned on the link I mentioned earlier. I hope that page helps you too in your cr deployments!
|
|
Killing All IE Processes
|
Wednesday, June 03, 2009
|
During asp.net development its possible that a lot of internet explorer's processes are left running, which you can see from the task manager. This happens when you are starting and closing the browser many times for testing your web application. Some scenerios keep the browsing open and the browser process doesnt shutdown when you close the browser to go back to the debug mode of visual studio (mayeb due to some javascript scripting activities, I noticed because I write a lot of javascript). And I dont restart my computer for days, I only put it to sleep when I am not working on it, so the IE processes just keep on piling up. So sooner or later I have to goto the task manager and kill them all which takes time. So I wrote a little c# code to do this for me, I hope this helps someone else too:
using System; using System.Collections.Generic; using System.Text;
using System.Diagnostics;
namespace killIE { class Program { static void Main(string[] args) { if (args.Length > 0) { if (args[0].ToLower() == "/l" || args[0].ToLower() == "-l") new Program(). listprocesses(); else if (args[0].ToLower() == "/k" || args[0].ToLower() == "-k") { string goodbyemessage = "Quiting. Have a good day."; Console.WriteLine("finding all IE processes ..."); Process[] ieprocesses = Process.GetProcessesByName("iexplore"); Console.WriteLine("processes found {0}", ieprocesses.Length); if (ieprocesses.Length == 0) { Console.WriteLine("no one to kill. {0}", goodbyemessage); return;
} Console.WriteLine("killing them all ..."); foreach (Process ieproc in ieprocesses) { Console.WriteLine("killing {0} ..", ieproc.Id); ieproc.Kill(); }
Console.WriteLine(goodbyemessage);
} }
} void listprocesses() { Process[] ieprocesses = Process.GetProcessesByName("iexplore"); foreach (Process p in ieprocesses) { Console.WriteLine(p.Id);
}
} } }
You can pass /l for the list of IE processes and /k to kill all of them.
|
|
A detailed review of Windows 7 RC1
|
Monday, May 11, 2009
|
|
Anandtech reviews Windows 7 RC1. Its a detailed review not usually found on other websites. They tell a lot about the new gui, the way the new windows graphics get handled by the gpu, uac, changes in networking, gaming performance etc.
update: after reading this article, once windows 7 update asks you to install the latest wddm1.1 drivers, you will feel *happy* about installing them rather than just thinking "um, ok, its just something that Microsoft wants me to install to update graphics drivers"
|
|
Windows 7 RC
|
Monday, May 04, 2009
|
|
So the windows 7's release candidate is out, umm will be available to everyone on May 5th, although you can get it from various torrent sites. The really really cool thing about the release is first - its a production quality OS, second - you can use it for 1 year and a lil bit more (so essentially its free) ! So you have it so grab it! Btw I also wanted to say that the hatred for Windows Vista on the Internet really irritates me, because I have been using windows Vista for more than one year (it came installed on my laptop) and in all that time I have never wished to go back to XP. My laptop right now is a cor 2 duo 2.0ghz, 2gb ram, 120gb hdd, wifi, etc, and Vista runs really well (and I use sql server 2005, asp.net, IIS, and c++/C# on this machine for my day job). Of course more faster and intuitive OS is most welcome, but I think Vista deserves much more good words about it than is the status of the views on the web right now about it. But its good now that Windows 7 is available for you, we are seeing a lot of positive comments about Windows 7 on the Internet. Happy 7!
|
|
A good article on DirectX 11
|
Friday, February 06, 2009
|
|
A very good article at Anandtech for people who play games or are interested in game technologies.
|
|
Booting Vista from Grub Prompt
|
Saturday, October 18, 2008
|
I have fedora core 9 and Vista on my laptop. Grub is the boot loader and it gives me the options to boot fedora or vista. Vista is installed on the first partition and fedora on 4th partition in order. Today I just deleted the partition which has fedora on it (intentionally messing up my pc), and than when I booted, instead of getting the gui version of the grub boot loader, I was stopped at a grub command prompt. Now I instantly knew I clearly messed things up, but the great thing is that this cool black command line is offering me *something* at least. So now I had to boot the Vista OS through this grub prompt. I booted up my desktop and started searching the net for how can I boot vista from grub prompt. I realized that it was pretty easy to do. Following is what I had to write on the command prompt (4 lines): root (hd0,0) rootnoverify (hd0,0) chainloader +1 boot
and after your write the boot command, you will see Vista starting to boot.
|
|
encoding urls
|
Tuesday, June 03, 2008
|
So I work on this application which has all its code in c++. I need to communicate with an http server alot, so i frequently send data through wininet win32 apis (no mfc wrappers). So anyone who sends raw text data knows that there are some kind of characters that really messes up your requests to the server, like "#", {, & etc. If you want to deal with this data and convert it to something and is legit according to the http specs, you need to do a conversion called url encoding (i think :p). Its basically pretty simple, all that is needed to be done is convert the nasty characters to their hex ascii equivilent and prefix it with a '%' sign. So for example if you have a new line as \r\n, it should become %0D%0A, which is 0D for \r and 0A for \n respectively. So as I was searching for an api that could make this easy for me I found some interestingly named api called InternetCanonicalizeUrl. I used this api and it helped a little, but it does not work for all the nasty characters. For example the first weird thing that you discover about this api is that it strips the \r\n from your data if they exist anywhere so your data is left with no line breaks (not to mention "#"). So a friend suggested that why not we write a code to convert all the characters to their ascii hex equivilent and leave the obvious ones like a-z and 0-9 as they are. So we came up with this simple code to do the conversion and it works so far for all the data that we our sending to our server:
#define ENCODE_BUF_LENGTH 10000 void UrlEncodePlz (char * src, char * destallocatedbuf) { char * buf = src; char tmpbuf[ENCODE_BUF_LENGTH]; memset(tmpbuf, 0, ENCODE_BUF_LENGTH); char cbuf[10]; for (int i = 0, x=0; i< strlen (buf); i++) { char c = buf[i]; if ( ((c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9'))) { tmpbuf [x++] = buf[i];
} else { sprintf (cbuf, "%%%02X", c); strcat (tmpbuf, cbuf); x+=strlen(cbuf); } }
strcpy(destallocatedbuf, tmpbuf); }
Ok some words about the above code: it may not seem so efficient in terms of the size of the tmpbuf that I took which is 10000. Its just something I choose, you can of course pick any number that suits you, but know this that for a single \n character the hex equivilent is %0A which is 3 characters. I am really bad in naming functions and variables (5 years of programming and yes I still dont do much of the so called *engineering* formalities well). I think this code is going to give enough good shape to your data that will guarantee its safe delivery to the server.
|
|
Linux Kernel Dev Stats
|
Wednesday, April 09, 2008
|
|
So if you want to know how many organisations and individuals are contributing to the linux kernel, read this (the original report) and this. And according to this news.com article: "As detailed statistics demonstrate, the Linux kernel is perhaps the world's largest, most distributed development effort, reflecting its increasing importance to an ever-widening array of disparate parties".
|
|
IE 8 beta 1 ready for download
|
Friday, March 07, 2008
|
|
Click here to download Internet Explorer 8. Read this page also.
|
|
Microsoft opens source of Singularity OS
|
Thursday, March 06, 2008
|
|
The source code for singularity operating system is open for research and non-commercial uses. It can be downloaded from codeplex http://www.codeplex.com/singularity. A 60mb download.
|
|
Java Damaging for Students
|
Wednesday, January 09, 2008
|
|
I couldnt agree more. These two links i'm giving here. This one I followed from slashdot. Joel wrote "the perils of javaschools" sometime back, beautiful article, awesome detailed explanation of why not java at schools.
|
|
Dx Refactor for C++
|
Wednesday, December 05, 2007
|
|
For any one writing code in visual c++ 2k5, downloading "Refactor for C++" is a must. Its amazing to say the least, and its *free*. Get it from here.
|
|
Good ways to join an open source project
|
Saturday, June 30, 2007
|
|
At slashdot, somebody asked a really nice question that frequently pops in a lot of people's mind. Its about advice on how to join an open source project. A lot of open source developers reply in comments. Read this: http://ask.slashdot.org/article.pl?sid=07/06/22/1526234.
|
|
Dont Use Thread.Suspend() Method
|
Thursday, November 17, 2005
|
The Thread.Suspend documentation puts a nice easy to understand note:
"Do not use the Suspend and Resume methods to synchronize the activities of threads. You have no way of knowing what code a thread is executing when you suspend it. If you suspend a thread while it holds locks during a security permission evaluation, other threads in the AppDomain might be blocked. If you suspend a thread while it is executing a class constructor, other threads in the AppDomain that attempt to use that class are blocked. Deadlocks can occur very easily."
When you write "Thread.CurrentThread.Suspend( );" in the editor & build, you'll get the following warning:
'System.Threading.Thread.Suspend()' is obsolete: 'Thread.Suspend has been deprecated. Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. http://go.microsoft.com/fwlink/?linkid=14202'
|
|
Ajax.net free library with source code
|
Tuesday, October 25, 2005
|
|
Check this Ajax library which comes free with source code. Its available for 1.1 and 2.0 versions of the .net. I have yet to check it out but the examples on the page looks really cool.
|
|
Quake III Source Code
|
Monday, October 24, 2005
|
|
I've been playing Quake III for almost four years. Few minutes back I was on the Id web site and there were lot of great news. Most exciting is the source code release of quake III under GPL license. You can easily build the source code in Visual Studio 2k3 and also on Unix systems I believe. Next exciting news is that work on Quake 4 for PC has been done, its probably shipping by now. Waiting it to be available in my city. Next exciting news :) is that one of the best all time first-person-shooter game Return to Castle Wolfenstein has gone in development for XBox 360 & PC. Thats simply awesome. Cant even imagine how id's latest graphical engine is going to perform on the so-powerful hardware of xbox 360. It'll definitely be a killer game. Next big news is that the Doom movie has been released. Great to know that "The Rock" is the main action guy in it. I like all his movies and he is a real good actor.
|
|
Delegates to Value Type Members in Rotor 1.0
|
Friday, October 14, 2005
|
In rotor 1.0, you cannot call a value type's struct method through a delegate. This is a restriction in v1.0 of the .net framework that was removed from the later versions. For example, if you compile and execute the following code:
using System; namespace intro { struct mystruct { public void valuetypemethod() { Console.WriteLine("method called from delegate."); } } class CMain { public delegate void dlgassign (); public static void Main() { mystruct at = new mystruct(); dlgassign fnptr = new dlgassign ( at.valuetypemethod ); fnptr (); } } } It'll give you the following error: ---------- Unhandled Exception: System.NotSupportedException: Delegates on value classes can only be formed on virtual methods at System.Delegate.NeverCallThis(Object target, IntPtr slot) at intro.CMain.Main() ---------- If you look at where it is raised, you'll come to \sscli\clr\src\vm\comdelegate.cpp COMDelegate::DelegateConstruct which is declared as
------------ // This is the single constructor for all Delegates. The compiler // doesn't provide an implementation of the Delegate constructor. We // provide that implementation through an ECall call to this method. FCIMPL3(void, COMDelegate::DelegateConstruct, ReflectBaseObject* refThisUNSAFE, Object* targetUNSAFE, SLOT method) ------------ The following code raises the error: pMeth = pTarg->GetUnboxingMethodDescForValueClassMethod(pMeth); if (pMeth == NULL) COMPlusThrow(kNotSupportedException, L"NotSupported_NonVirtualValueClassDelegates");
if you comment the line: pMeth = pTarg->GetUnboxingMethodDescForValueClassMethod(pMeth);
and than build corlibs again, it fixes the error. To quickly rebuild the sscli with this change, goto \sscli\clr\src\vm and type "build -c". Once the build is complete, goto \sscli\clr\src and type "build" (without -c option) and press enter. This will build the sscli with your changes. Now try running the above application again (you do not need to the compile the exe again with csc because the error was generated by the vm and we just built it again). It'll give the following message: method called from delegate.
Now you can have delegates to value type's methods and call them too.
|
|
Building Rotor 1.0 with Whidbey Beta 2
|
Friday, September 30, 2005
|
|
I recently built rotor 1.0 with visual studio .net 2005 (whidbey) beta 2. Thanks to Barry and Lorenzo for helping me out do this. You can read the posts on discuss.develop. I created a little patch which you can just paste over your sscli directory and than build again and than everything should be working fine. The build is done on Windows 2000 pro sp4. The things that I tested are C# compiler, clix, few samples, ilasm, ildasm, and cordbg. I have to do some more work on the patch cuz it contains a lot of redundant files. When it'll be done I'll let everyone know at rotor newsgroup at discuss.develop. If you need it earlier than that and dont have any problem with working with the rough version of the patch you can just email me and I'll send you the zip file containing the necessary things. Its around 700k. I'm used to building sscli piece-by-piece ie: building pal, than build.exe, than binplace, than resourcecompiler, than palrt, than \clr\src .... and so on. I think u'll have to do the same or I may include a batch file to do so. But instructions will be easy to follow.
|
|
Treo is now Powered by Windows :-)
|
Monday, September 26, 2005
|
|
Palm to release there latest Treo 700w based on Windows operating system. Thats the way to go Palm !
|
|
I cant do "this.Cursor" !!!
|
Monday, September 12, 2005
|
Yea I know. In .net compact framework you cant do a this.Cursor to set a cursor for your window. Instead its hidden in System.Windows.Form.Cursor (static style !!!!!):
System.Windows.Forms.Cursor.Current = Cursors.WaitCursor; System.Windows.Forms.Cursor.Current = Cursors.Default ;
Oh btw, just a little tip for using whidbey beta2 IDE: you can access "Surround" feature through keyboard by Ctrl+K+S, and "Insert Snippet" by Ctrl+K+X. Makes writing code pretty fast.
|
|
Generating Guids on a Pocket PC
|
Friday, September 09, 2005
|
In the .net compact framework 1.0 if you want to generate a GUID, there is no class/struct that can help you do that. So you have to come up with your own ways. One good example can be found in this article on msdn. Now in the latest .net cf version 2.0, the System.Guid struct has been added which works just like its desktop counterpart.
Now why would u want to generate guids while programming for pocket pc? Thats a long (actually short) story that I'll blog about some time in the future.
|
|
WinFS Beta 1 released
|
Thursday, September 08, 2005
|
|
Read again its not WinFX, it WinFS: The file system/platform. Its located here. This is the blog site. But only available for msdn subscribers :(.
|
|
Pocket PC Emulator; Sharing files on desktop, and ActiveSync connectivity
|
Monday, September 05, 2005
|
(All following information is valid for viusal studio.net 2005 beta 2) Accessing Desktop files on Pocket PC Emulator: While developing the pocket pc apps on emulator you may want to manually copy files to the emulator's memory if for some reason you cant do it through activesync. Its really simple. While pocket pc emulator is running, through the File menu, click "configure". On the first "General" tab you'll see a "Shared folder" text box. Simply give the path where you want to share files. This path actually becomes your storage card on emulator. Now the files that you place in the shared folder can be accessed through the pocket pc "File Explorer"'s "storage card" icon at the bottom of file explorer.
Emulator's Connectivity with ActiveSync: As I looked for this information, the community is using ActiveSync 4.0 for emulator's connectivity. This link is important for all these downloads. As the page suggests, you need to download ActiveSync 4 and the DMA update patch. What the patch does is carries out all the emulator, vs.net, and active sync communications through DMA instead of doing it with tcp/ip. Microsoft says its a more efficient way of communications which utilizes COM. And if you are also facing this problem of not being able to debug your apps on vs.net, this dma download should fix this problem (btw the dma download is like 80+ mb!) Now all communications settings should be using DMA. In vsnet 2k5, goto Tools->Options. Select "Device tools" and select "Devices". Select your device/emulator from the "Devices" listbox and click properties. "Trasposrt" drop down should be set to DMA. If you now click "Emulator Options" button on the same dialog, goto "network" tab and on my network tab nothing is checked, so I recommend that you also uncheck all the checkboxes if any is selected. Click all the Ok buttons! Now in your activesync File menu: click the "connection settings". The drop down that mentions "allow connections to one of the following", should have DMA selected. I think now everything is done in case i've not missed any detail. Restart your emulator (maybe soft resetting it, you wont lose any settings or data, or just close and open again). After restarting your emulator goto vsnet's Tools->"Device Emulator Manager". In the Available emulators you'll see the one you are using and a play icon with it. Means its running. Now right-click it and click on "Cradle". This will emulate as if you have placed your device on the cradle, just like you will do with a physical device. Now the activesync should be active and in few seconds connected to your emulator. If you are not connected, try restarting things, it should work.
|
|
Proxy Authentication Required
|
Wednesday, July 13, 2005
|
Check this: You are in your office and sitting in a LAN environment-> accessing your internet through a proxy server-> writing code using some cool .net language-> using a System.Net namespace-> using code to access a web resource (maybe some html page) and you write the following code:
private void button1_Click(object sender, EventArgs e) { WebClient client = new WebClient(); byte [] b = client.DownloadData( textBox1.Text ); textBox2.Text = System.Text.Encoding.ASCII.GetString(b); }
and when this code runs, in few seconds you see a horrible & annoying exception thrown on your face by the IDE saying : "The remote server returned an error: (407) Proxy Authentication Required.". What do you do? Well its really simple. As you can see in the message, you need to provide authetication. And if you write the following little magical code:
void SetProxyInfo() { WebProxy p =new WebProxy("http://proxy1:8080", true,null, new NetworkCredential( "yourusernamehere","yourpassword","thedomainurusing")); GlobalProxySelection.Select = p; }
Call this function from anywhere before doing the web-access thing and you wont get that 407 message again :).
|
|
Tab Completion in Windows 2000
|
Saturday, June 04, 2005
|
Windows XP's command prompt completes file/folder name when u press tab key. Windows 2000 by default doesnt provide this feature. But its there and u need to enable it from registry. Follow the steps below:
1- For one thing, Make sure you run "cmd", not "command" to get to the command shell 2- Go to Start / Run - "regedt32" 3- Go to the window: "HKEY_LOCAL_MACHINE on Local Machine" and find "Software\Microsoft\Command Processor" 4- Change the key "PathCompletionChar" to 9 5- The next time you fire up a command shell, you will have tab completion
The above steps copied from this site. Credit goes to them.
|
|
The "/time" switch
|
Thursday, April 14, 2005
|
Do you know there is a compiler switch which can calculate the time it takes to do the compilation of file(s) you pass it? You can use it by passing "/time" to the C# compiler. This results in the output of the "elapsed time". The page on msdn titled "C# Compiler Options Listed Alphabetically" (ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VisualStudio.v80.en/ dv_cscomp/html/43535ea0-ca47-4a15-b528-615087a86092.htm, this is whidbey beta1 msdn link [and is deliberately broken!!!]) does not list this switch, neither does it exists in the list if you write "csc /?" at the windows console (csc of v1.1.4322). You can find its code in the Rotor file sscli\clr\src\csharp\scharp\scc\scc.cpp. Additionally some interesting code relating to timing can also be found in the file sscli\clr\src\csharp\scharp\sccomp\timing.cpp. The comments on the timing.cpp file reads: "Defined the timer functions, which allow reporting performance information for the compiler. This is sort of a built-in mini-profiler that is always available. This allows anyone to do a quick investigation of performance problems and try to pinpoint where things have changed."
The "/time" switch works both in commercially available .net from Microsoft as well Rotor, but I could not find it working in Mono (mcs 1.0.5.0).
|
|
Cracking Microsoft Word doc's Password
|
Friday, February 11, 2005
|
|
My friend Adeel has a post on his blog about how to remove the password from the Microsoft Word 2k3 document read it here. It disappointing to see the security being bypassed so easily.
|
|
Reading/Writing Registry in .Net
|
Tuesday, December 07, 2004
|
|
One of my friends asked me how he can make his application start whenever he logs into his computer. Actually he asked this question in some forum and emailed me the link to it, but when I was about to answer that question that site wanted me to register at the site, which I hate to do. I have like so many user names many of which I don’t even ever use. So I emailed my friend back a reply that I can’t answer his question there, instead come to my blog and read the answer.
So here it is: the registry in .net is available in the Microsoft.Win32 namespace. Why is it not inside the System namespace like many other classes in the .net framework? Thats because there is no concept of registry in the .net framework. For .net the GAC (global assembly cache) gives all those facilities. So the .net framework provides a different namespace to clearly differentiate registry classes. Anyway, the main class that you play with while working with registry is called the RegistryKey. It’s got nice methods, very easy to work with and very easy to understand. The class that gives access to different keys is Registry. It’s got some public fields, all of which gives you a live object of type RegistryKey. The difference in these fields is that the key is different. Like HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, etc.
Lets say we want to see what are the entries in the recent list of our media player. I need to know which key this information I can find in. It’s called the HKEY_CURRENT_USER key, and programmatically I can access it using the following code:
RegistryKey key= Registry.CurrentUser;
(don’t forget to add the using Microsoft.Win32;)
The registry path to the recent file list of media player is “software\microsoft\mediaplayer\player\recentfilelist”. So what we’ll do is simply call a OpenSubKey method on the object of RegistryKey, and get the list of all the enteries of media player recent list. This can be done through the following code:
string mediaplayerarea = @"software\microsoft\mediaplayer\player\recentfilelist";
RegistryKey key= Registry.CurrentUser ;
RegistryKey subkey= key.OpenSubKey(mediaplayerarea, true);
foreach ( string tmp in subkey.GetValueNames() )
{
Console.WriteLine("value name is :{0}, value is :{1}",tmp, subkey.GetValue( tmp ) );
}
So if you read the code you see that I’m calling the GetValue method to get the data of the value. Can anything be simpler than this?
Writing to the registry is as easy as reading. All you have to do is call the SetValue method instead the GetValue and your value will be written, provided the key opened is writeable which you specify in the second parameter to your call to OpenSubKey. Now lets say you want to make an entry to the registry which will make your application run everytime you log in to the computer. This information is also inside the HKEY_CURRENT_USER key. So you can utilize the code above to write to the startup registry entry.
void addtostartup(string filename)
{
string startkeyspath=@"software\microsoft\windows\currentversion\run";
RegistryKey key= Registry.CurrentUser ;
RegistryKey subkey= key.OpenSubKey(startkeyspath, true);
subkey.SetValue("myapp", filename );
}
After this code executes the filename will be present in your Run key and would be launched as soon as you log in to the computer.
To see the entries and experiment with them you can use the RegEdit.exe (run from the command prompt). But you make sure that you do not write to or read the registry of applications that you do not understand what they are there for. If registry enteries are corrupted, your applications may start behaving abnormally.
|
|
Competition
|
Friday, November 26, 2004
|
Microsoft vs Others
I finally saw this interesting article where they are talking about Google vs Microsoft :). Thats cool. I remember articles on Fortune mag like "Gates vs Sun" ! And an article in I think Byte or PC mag title "Is Java going to be a Windows Killer?" in 1998. Lots of people are maybe attracted to Google just because its new and so there expectations are high. Ofcourse its because they (goog) have been lot of successful in what they do. But how long can they keep that edge is what matters. I use Linux and I like it very much :) And I use Google more than 10 times everyday and like it every time I do. But Microsoft is amazing. People say Microsoft is no more fun to work at. Very untrue. This comes from people who either have never worked there or left microsoft very early to do there own work. How can you say this about a company which has been developing extremely successful operating systems and compilers for more than 20 years? I think people say this when they see someone succeeding beyond there imagination. If you look at the success of .net and how its future versions are being developed (you can observe that through blogs.msdn.com) and you look at Longhorn, I say its the most exciting place to be for computer science people. And oh, btw Microsoft spends more on research too, mega more than Google, or any body else for that matter.
Seen the latest show?
See the latest .net show on Connected Systems. One of my favourites is speaking there: Don Box, the Indigo guy. Indigo is basically what they call is the *messaging sub system* in the next gen microsoft os. So all messaging of processes and components is going to happen through indigo, hence the "connected systems". And once again, if you want to be ultra pruductive using indigo or other things in longhorn when they arrive, you have to be terribly good in .net programming.
Join the Rotor list
Join the rotor (and other .net related stuff) on discuss.develop. I was too late in joining this list, but better late than never right?
|
|
Blogs:
MSDN Blogs
Joel Pobar
Don Syme
Friends:
Adeel
Aqeel
#Fahad
Haroon
Omer
Muhammad Ali
Lahore Food Blog
Links:
Rotor
CodeGuru
Mozilla
OpenSourceNokia
Languages:
IronPython
F#
|