|
|
|
|
 Thursday, June 26, 2008
|
[Reposting because it appears to have been deleted somehow.]
A bit ago, I posted some info on doing CRUD operations using LINQ: http://www.atrevido.net/blog/2007/08/26/A+LINQ+To+The+CRUD.aspx
This is a lightweight way (no codegen at all, only 2 lines of code per table) to get some CRUD stuff with LINQ. It's not the most efficient or fantastic way of doing things, but it works fine in the several projects we've used it so far. And we get to use C# 3's expression trees, which is a fantastic and under-exploited feature. At any rate, it does show that doing disconnected work with LINQ is trivial.
The code I posted was for Beta 2 and no longer works. I've since added a few new features, but the basic idea remains the same as before. I'm just posting the new code as I've gotten a few emails and one comment about the old code no longer working.
DatabaseBase.cs (10.47 KB)
While working on it in a real project, I started using our Tuple struct, so you'll need that too: Tuple.cs (2.8 KB)
As Scott Peterson pointed out, this class doesn't implement IEquatable<T>. Just add it and call the == operator.
As always I welcome any criticism.
|
|
Misc. Technology
|
Thursday, June 26, 2008 4:56:24 AM UTC
|
Trackback
|
 Monday, December 10, 2007
|
I ran into a strange problem today. The Windows Event Log service would not start, stating an error code 5 "Access is denied". This doesn't make any sense as running the services MSC requires elevated permissions and I'm an administrator. That error message alone didn't give me too much of a clue, especially because I don't know much about the event log service. Also, as the event log service was down, troubleshooting it required a bit more work than usual since I couldn't just turn to the event log.
Fortunately, Vista's ETW (Event Tracing for Windows) provided an easy solution. At a command prompt, I ran "logman query providers". This shows a list of all the installed tracing providers on the system. The interesting one in this case is "Microsoft-Windows-Eventlog". Using this information I could start a trace and generate a report. The report indicated that access was denied creating the System channel. It mentioned a path it was trying to use: %SystemRoot%\system32\winevt\logs\System.evtx
I checked the permissions and they looked ok (SYSTEM had full control). So I renamed the System log and gave permissions to everyone on the folder. Then I started the Event log service and it worked fine. It created a new System.evtx. When I checked the permissions I saw that Event log service runs as local system. Apparently that must be the security required. After resetting the permissions, everything seems to be working fine.
I'm posting this since when I searched for a solution, I found several people asking and no answers. This could be the solution for other people. I'd like to hear if anyone knows what might have caused this mess in the first place.
|
|
Misc. Technology
|
Monday, December 10, 2007 3:18:17 PM UTC
|
Trackback
|
 Wednesday, April 04, 2007
|
We were rolling out a new database that is transactionally replicated to a few other nodes. In test and staging, everything worked fine, but in production, on a cluster, the distribution job failed. The snapshot runs as the SQL Agent account, but the distro runs as a separate account to distro just that database to the subscribers. The error is:
Unable to start execution of step 2 (reason: Error authenticating proxy DOMAIN\SomeUserName, system error: Logon failure: unknown user name or bad password.). The step failed.
We spent about an hour trying to figure out what was going wrong -- all the ACLs were right, the user was in the PAL. Everything was identical in permissions to the other environments.
After a bit of time on the line with PSS, we noticed that if we ran everything as the SQL Agent Account (the cluster service), then it worked. But, this required adding the cluster's account to the subscriber DB, and that was not acceptable.
Finally, our PSS rep suggested we check that the SQL Agent account was trusted for delegation. Bingo. On staging and test, the SQL Agent account is Network Service (or Local System). But in a cluster, it runs as a separate account, and that account is not trusted for delegation. Hence, the impersonation call failed. Simply going into ADUC and trusting it for Kerberos delegation, then restarting the SQL Agent, allowed us to use the proxy accounts without problem.
It seems like this message comes up a lot in context of replication and clusters. Hope this helps someone else!
|
|
Misc. Technology
|
Wednesday, April 04, 2007 1:24:11 AM UTC
|
Trackback
|
 Wednesday, June 07, 2006
|
Just got an Xbox 360 and tried Burnout Revenge on Xbox Live. For some lame reason, you have to play on EA servers (I believe it's so they have more of an excuse to get your details). Anyways, they ask for your permission to use your Xbox live data. The prompt looks like this (paraphrasing):
Can Microsoft share your Xbox Live account with EA? A = Yes , B = No
This is the standard Xbox 360 convention, where A = Accept/Next/OK and B = Reject/Back/Cancel.
Then they ask two more questions, Can EA spam you with their newsletter, and can EA share your details with other companies. This time the responses are: A = No, B = Yes
Of course, you're trained to press B for no and by the time you realise they've tricked you it's too late.
Way to go EA, thanks for just making sure we have a reason to hate your company. And Microsoft, WTF? What about making sure the user is in control? MS should not allow their partners to behave like this.
|
|
Misc. Technology
|
Wednesday, June 07, 2006 2:38:14 AM UTC
|
Trackback
|
 Saturday, May 27, 2006
|
I got this error while using Team Build today (from the event log): TF53010 ... Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression ... sp_InsertProjectDetails ...
According to http://geekswithblogs.net/cyoung/archive/2006/03/09/71820.aspx, this is a bug in the RC (yes, I still haven't had a chance to goto RTM). I'm not sure if it's fixed in RTM or not. At any rate, my issue was that I had 2 shared projects (projects that are included in more than 1 solution). The second shared project references the first. These seems to cause Team Build to die, with no error in the build log. The event log has more details. So, I added a hack of a file reference instead of a project reference for that solution and things seem to build.
|
|
Misc. Technology
|
Saturday, May 27, 2006 10:38:26 PM UTC
|
Trackback
|
 Wednesday, May 24, 2006
|
Here's one thing I love: Vista Tablet capabilities :). The tablet input area is always visible as a ~5 pixel deep tab, and it throws a drop shadow on windows in the foreground:
Pointing at it makes it slide out so you can click to open:
 I prefer that to the hovering icon that appears on textboxes. Of course, it has nice animations and so on, showing it sliding in and out, and you can drag it around the screen.
Another thing that looks promising: Personalized handwriting recognition. My handwriting is very bad (22 years on a PC and counting!) -- and XP Tablet messes up a lot when trying to read it. Now, via a "Speech Recognition Training"-style UI, you can train it for your own handwriting by writing in 50 different sample sentences. Oh yea, and it's localized too (train for other scripts).
Also, a small, but profoundly useful enhancement: Different pointers and click effects when using a stylus. When you target using a stylus, you get a small diamond cursor. Clicking makes tiny ripples. It looks really superb, and it's great to get that kind of feedback. Although, at first it scared me, cause I thought my screen was damaged, and the rippling was from pressign on the LCD too hard ;).
Along with pen-mode feedback: holding down the pen button ("right click") adds a circle around the diamond pen cursor. Right clicking makes the circle do a beautiful blue "energy" glow. The cursors don't show up in my screenshots, but here's the right-click energy circle thing:

Finally, a "Pen Flicks" feature makes navigating and so on by pen easier. If you, well, flick the pen up/down/left/right, you can scroll or move that way. Perfect for web browsing, reading, etc., even though my Toshiba R10 has a directional button on the display. There's also an edit mode so you can do things like undo, etc.

Now I just need to install Office 2007 (OneNote in particular) on my tablet to see if there's some awesome integration and so on...
|
|
Misc. Technology
|
Wednesday, May 24, 2006 8:32:30 PM UTC
|
Trackback
|
|
One of the big features of Vista was supposed to be that it was resolution-independent so that high resolution displays can be used. This makes extra sense when you think of Media Center on high-res systems. I have a Dell 24" LCD, 1920x1200 resolution and I run Media Center on it. Outside of Media Center, things look horrid. So I gleefully installed Vista Beta 2...
You still have to reboot after changing DPI. Sigh, ok... And then? Things look like crap. Half the windows seem to scale somewhat decently, half don't. And the ones that scale? Ever blown up an image in Photoshop? Yea, it looks worse than that. Seriously, WTF? There is supposed to be all these advanced graphics rendering capabilities, but they still can't render high DPI stuff correctly. Even the "Back" button (the round circle with arrow) looks like a horrible upscaled image. Pathetic. I've got no problem shelling out the $$$ that Vista ULTIMATE (sigh, MS marketing and sales needs to be caned) will cost IFF it's gonna make my home PC/MCE be one extremely slick amazing thing. But they've got a way to go, apparently.
|
|
Misc. Technology
|
Wednesday, May 24, 2006 6:51:04 PM UTC
|
Trackback
|
 Tuesday, May 23, 2006
|
Anyone else having this issue? When I use Outlook, it sometimes just spikes to 100% (well, 50% since I have hyperthreading). This is making the magnificent Beta 2 release of Office 12 almost unusable.
-- OK, seemed to be the indexer, as I left it alone for two hours and now it's behaving... strange...
Other than that... WOW. Sending an email never looked so good :).
|
|
Misc. Technology
|
Tuesday, May 23, 2006 9:56:47 PM UTC
|
Trackback
|
 Friday, May 05, 2006
|
Well, after almost exactly 6 hours, I've succeeded at installing SQL Server 2005 Reporting Services on a server with more than one website.
We're running Reporting Services on separate web servers. So, after the install of reporting services, you run their little configuration tool. This of course, accomplishes very little :). See, apparently Reporting Services wasn't designed to work on a server running, *gasp*, more than one application.
If you have a decent IIS install, the default website isn't there and thus requests to http://localhost/ aren't gonna work. Reporting Services doesn't take this into consideration, and happily tries to request http://localhost/ReportServer/ even after you've specified this in the config tool. If this is your issue, you'll get a “HTTP Error 400: Bad Request“ when trying to access the ReportManager (/Reports/) website.
You'll need to edit the config files in Program Files\.....\ReportManager and ReportServer. rsreportserver.config needs to point to http://the.reporting.host.name/ReportServer in the UrlRoot element. In RSWebApplication.config, ReportServerUrl will need to have the same value. The ReportServerVirtualDirectory element must be deleted. You will get a “The configuration file contains an element that is not valid. The ReportServerUrl element is not a configuration file element. “ message. This is because the config reading code apparently doesn't fail gracefully. What it's trying to say is “the ReportServerUrl and ReportServerVirtualDirectory elements are mutually exclusive”. I'm still unsure why there should be anything besides a URL...
Around here, you might notice a bunch of DCOM errors in your Event Log (or before this point). To fix these, you'll need to go into dcomcnfg and edit the COM security for My Computer. Give the account you're using (like Network Service or “MyReportingServicesAccount“) permissions for local activation and local launch. You need to reboot for these changes to take effect (I think). But don't reboot just yet...
Finally, you end up with a 401 Unauthorized when accessing the Reports site. You might have also noticed you are also unable to authenticate when browsing the Reports or ReportServer sites from your the local server. Why? “Windows XP SP2 and Windows Server 2003 SP1 include a loopback check security feature that is designed to help prevent reflection attacks on your computer. Therefore, authentication fails if the FQDN or the custom host header that you use does not match the local computer name.” So I'm guessing NTLM susceptible to this type of attack, and Microsoft is saving us from it. Well, it also hoses us in this case because from what I can tell, ReportManager (the thing in the Reports vdir -- why it wasn't called ReportManager by default...) needs to connect to ReportServer. It sends a request, which is denied because of the loopback protection above. A quick registry edit fixes this: http://support.microsoft.com/default.aspx?scid=kb;en-us;896861
After that... you might have a working SQL Reporting Services 2005 install! (Next up: Getting it to work with SSL...)
Really, apart from the horrible setup/configuration, it's a very very fine product. I'm actually pretty impressed. The report I wanted to setup (and the subscription so it's mailed out) only took about 10 minutes (first time I've ever used RS)! I'm just at a loss why Microsoft makes it so hard to setup. This configuration can't be that unusual. And, even stranger, most (if not all) of this configuration issues could take care of these problems. In other words, their little configuration app should automatically fix this stuff (or at least give explicit instructions on how to do so). Or maybe I just didn't RTFM that well... but this is a Microsoft product... you're supposed to just shove the DVD in the drive and click next, right? <g>
P.S., if you're getting a “Object Reference not set to an Instance of an Object“ when you add a new subscription, ensuring everything else is 100% working should make it go away...
|
|
Code | Misc. Technology | Security
|
Friday, May 05, 2006 6:02:44 AM UTC
|
Trackback
|
 Wednesday, July 13, 2005
|
I was quite happy with Messenger 6. A few little enhancements, and I'd be set. As I mentioned before, MSN Messenger 7 is horrible. It is as if they want to compete in annoying features against Yahoo and AOL. <Shudders>
Anyways, MSN apparently has decided to ensure that you upgrade to v7, so I figured I might as well stop resisting and go along with it... Then I found Apatch: http://www.apatch.tk/ <-- This nifty little program removes all the junk from V7 (such as nudges, winks, “packs“, inline IM advert links, etc.). Now there's no need for 3rd party messenger systems...
|
|
Misc. Technology
|
Wednesday, July 13, 2005 3:26:38 PM UTC
|
Trackback
|
 Monday, June 06, 2005
|
If you reboot your Team Foundation Server machine one day, and then get some errors such as: A Catastrophic Failure with ADAM, Access Denied when starting BISGSS, or a COMException “The server is not operational“, you might want to read my problems:
http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=16246
In the end, I set Everyone to Full Control of the HKLM\SYSTEM\CurrentControlSet\VSS key, rebooted, and things went away.
|
|
Misc. Technology
|
Monday, June 06, 2005 5:07:03 PM UTC
|
Trackback
|
 Tuesday, April 19, 2005
|
Install took about 15 minutes. I installed the database server + workstation components. No reporting, analysis yet. Maybe my eyes were playing tricks on me, but it seems that it will install multiple components simultaneously if dependencies are satisfied. That's neat. Anyways, the setup is a very slick setup, and I didn't get any annoying errors about having to reboot (which always seems the case with SQL 2000). No errors reported.
After you are done, it tells you to run SQLSAC: Surface Area Configuration. Wow, this is very cool. Right in your face: Do you want local only connections, or remote connections via TCP/IP or named pipes or both? For the many people that have a single-server setup (i.e., tons of web sites), this should be a nice and easy way to lock yourself down.
The old “client network setup” and server setup is replaced by an MMC-based configuration manager. Quickly view your setup. Nice.
The old help system has been replaced by the new kind (Help 2?). In the earlier versions of Yukon, this meant it sucked, as the help was very messed up. But now, like Visual Studio 2005 Beta 2, the help flies and works just great.
I tried adding an operator and adding an alert. While the alert shows it's been triggered a few times, the operator is never contacted (email). I set up “Database Mail”, but that didn't seem to help either. The help files had some really lame advice. Like “to set up notification, click notify” kind of stuff. Spent probably 10 minutes trying to get some notification going, to no avail. :@. Anyone know how to do this?
One that that is great about the Studio is that things actually work. In the earlier versions, nothing was implemented. I've successfully attached my SQL 2000 databases. This is a huge thing, as now I know I can just upgrade my servers and go full 2005! Bye bye SQL 2000. It's been great.
I really, really, like the SQL Server Management Studio. No more having to go to Query Analyzer separately. Now I can do everything right there. Very, very, nice.
The only ugly thing is that the grid UI they have looks really old and ugly. It still reminds me of SQL 2000's Query Analyzer or something. It's also terribly slow. The rest of the UI seems fast, but those damn grids are just screwed up. I can actually see the lag. I hope they get replaced.
Database diagrams are back (like they should be!). This is great. However, after importing my SQL 2000 database, I couldn't view my existing diagrams, and trying to create one results in:
Microsoft SQL Server Management Studio ---------------------------------------- Failed to retrieve data for this request. (Microsoft.SqlServer.SmoEnum) ---------------------------------------- ADDITIONAL INFORMATION: An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission. (Microsoft SQL Server, Error: 15517)
However, it did work fine on a new database. The diagrams are way uglier than before, but whatever. At least they are there. Having them makes up for the table editor sucking. Seriously, the table editor is as bad as Visio's table editor. This means you must click a field, and then go down to the bottom and use this little property editor to set basic parameters. I just don't get it...
Support in Visual Studio looks like exactly what I'd expect from a development standpoint. It appears that you get the entire tree of SQL Management Studio from the database on down. Cool.
Well, anyways, that's my first quick look. I'll be using SQL 2005 as my primary database from now on, so I'm sure I'll come up with a lot more feedback.
|
|
Misc. Technology
|
Tuesday, April 19, 2005 4:31:01 PM UTC
|
Trackback
|
|
I got my Windows 2003 machine installed without a problem (well, except for the bloody floppy disk drive being needed). After installing SP1 and Office 2003, I decided to go put on what I had been waiting for since Saturday: Whidbey Beta 2.
Install went smooth and fast. I think it was under 30 minutes (not inc. MSDN). I install almost everything except J# (haha), Crystal Reports (yuck), and Dotfuscator (I have way better!).
I reboot, install MSDN, run Visual Studio.
--------------------------- Package Load Failure --------------------------- Package 'Microsoft.VisualStudio.QualityTools.TestCaseManagement.QualityToolsPackage, Microsoft.VisualStudio.QualityTools.TestCaseManagement, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' has failed to load properly ( GUID = {A9405AE6-9AC6-4F0E-A03F-7AFE45F6FCB7} ).
Damn, there goes all the testing features. While all the pretty icons are in, none of them work.
*Update! A friend who works on Team System says that not installing the Team Foundation Client will cause problems with Beta 2. I'm also told that I don't need to wait to install TFS first. So, I'll go install it. Thanks, I hope that works!
Next, open up a project, try the properties. Everything works smoothly. The properties window even closes correctly. This was a major pain point before.
Performance testing. Oh, wait, that doesn't work: --------------------------- Microsoft Visual Studio --------------------------- Could not load type 'Microsoft.VisualStudio.Performance.PerfWorkItem' from assembly 'PerfPkg, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. --------------------------- OK ---------------------------
OK, well, I don't use those features everyday. I'm sure someone will find a fix shortly. I haven't even looked yet. *Update: Supposedly related to not having the TF Client installed.
I got a crash while saving my settings (I can't resist going through all the nifty options). But I tried again and it worked.
Graphically, the whole program looks quite polished. Except for the test on the splash screen not being antialiased, and a few icons here and there (solution icon in the solution explorer), it looks very refreshing. The docking tabs (is that what they are?) for the toolbox, solution explorer, etc, are redesigned. A tad space wasting, but attractive. Dragging a toolbox around has a nicer targeting system. There have been a lot of great colourizing enhancements. (Yes, and my suggestion of maroon-coloured strings is now a default! Yea!)
Seems quite fast. Compiling my only real Whidbey app (~25K lines of C#) works great. UI does not lock up while compiling. Compiling web projects does not take forever (before, it'd hang for about 10 seconds).
ASP.NET... ok, here's the big one... *IT IS NOT FIXED*. Yep. Everyone (like me) who was hoping that the ASP.NET team would stop tripping before Beta 2... welcome to reality. You're gonna develop your web apps like ASP Classic, and you're gonna like it, dammit.
Basically, it boils down to that every bloody class is its own freaking assembly. What a pain in the ass. I mean, seriously. They do ASP.NET 1.0, and blow everyone away. Then they think that even though people like me have been saying it should be this way for years, they feel it is too early to introduce real app development to web apps. If you want to share code, you have to put it in the “App_Code“ directory. I guess this helps people who are used to <!-- #include “inc/functions.asp“ -->.
Another thing, ASP.NET isn't listed in the new project dialog. Somehow the ASP.NET team things that they aren't projects. I'd *love* to find out why this is, besides “idiots who could barely figure out PHP couldn't figure out ASP.NET need help“. Why I have to have this “file based“ “web project“ thing just keeps annoying me.
But, despite my complaining, I will, like an abused girlfriend, keep coming back for more from ASP.NET 2. The other features (i.e., great designer, awesome C# code editor, freaking fantastic framework) outweigh the huge annoyance that ASP.NET projects have become. I swear, if it wasn't for ASP.NET's new features (like Master Pages), I would not, repeat, would NOT, develop new web apps with VS 2005. But, they know this. They know their feature set is so sexy, I'm gonna happily get smacked around. They know I'm addicted and will play whatever little game they want to play to keep using. They want to treat me like dirt^H^H^H^HMort, fine. Whidbey is such a huge jump ahead that I'll just have to move on. Really. I will. Eventually. BTW, I'm not just complaining for no reason. Even on the relatively small projects (say, 18 project solution, ~100K lines) that I've done, I can't imagine ever, ever, using this new project model.
Of course, maybe I'm just missing something, and it actually is fixed. If I missed it, then I guess I deserve it. But I'm pretty sure they aren't hiding much.
Moving on...
I am also going to install Team Foundation Server and the Team Client. In the TFS setup, it says to install the client after the server (*Update: which might be incorrect). And the server needs SQL Server 2005, so I'm waiting for that to finish downloading. Finally.... real source control, defect tracking. Wow. I'm also looking forward to playing with the revised (hopefully revised) data tools. The ones in Beta 1... were next to unusable. I understand they've been fixed and features left in (like diagrams).
I heard there was community integration, and sure enough, there's a Community menu item. However, clicking anything there ends up with a: --------------------------- Microsoft Visual Studio --------------------------- The operation could not be completed. The RPC server is unavailable. --------------------------- OK ---------------------------
Maybe the install is messed up. Or maybe it's a crappy error message for “Couldn't contact Microsoft's community servers.” No idea.
In C++, I've had more success with the “go to reference” feature than before. This is a non-Microsoft C project. I'm using VS as the editor only. The experience seems to be improved over Beta 1. Cool.
MSDN works! It's fast too! Quite fast actually. And so does the search (well, haven't tried in detail, but before it was pretty crappy).
Upgrading. On my 25K line project, I had 34 errors and 10 warnings. The majority of them were from ASP.NET's changes (the ones that improved it from Beta 1). Not bad!
Well, that is my first quick glance. I'll have some real time during the next while to really get involved.
|
|
Misc. Technology
|
Tuesday, April 19, 2005 6:04:13 AM UTC
|
Trackback
|
|
As of right now, I have 760GB in my computer, temporarily. My Western Digital 120GB IDE drive had an error a month ago, so I got some Seagate 7200.7s and put them on an Adaptec SATA RAID card (RAID 1). After I remove my old drive, and discounting the mirrored drive, I have almost half of a terabyte of storage on my local computer (and it's mostly full already).
What's interesting is that almost ten years ago, I was making the similar claim about having 500MB -- half a gigabyte! Most other people I knew either didn't have a computer, or had much less than 500MB. Heh, and today, I've got 1.5GB of RAM alone :P.
Oh, one little rant. Windows setup sucks. Horribly. If you've had to install Windows onto a “3rd party mass storage device” (well, duh, Microsoft doens't make hard disks), you know what I'm talking about. It actually requires you to have a floppy disk drive. A floppy! Who the hell has one of those? Oh, you can do the $OEM$ thing, if you can figure it out. Microsoft doesn't have any guide on adding your drivers to the Windows boot CD. Nope. I mean, would it have been that difficult to have it also be able to load from a CD-ROM? I've got 2 spare CD burners here. Not a single FDD! I had to get someone to bring one down, and then waste probably an hour trying to get it to work, find an actual diskette that worked, etc... Sigh.
Well, at least I hear Longhorn will have an amazing setup system...
|
|
Misc. Technology
|
Tuesday, April 19, 2005 4:42:48 AM UTC
|
Trackback
|
 Monday, April 18, 2005
|
I just read that Adobe is going to buy Macromedia. Ever since I touched that atrocity named “Flash”, I've been hoping that this would happen. I'm sure anyone who's ever dealt with Macromedia's “Freehand” will also let out a big sigh of relief. I won't say it's a brilliant move, because I don't know of a single good Macromedia product. Only that entrenched Flash thing...
Although, it's actually doubtful that Adobe will fix Macromedia's products, because their users would get all confused. In the past, when I've had to work in such environments that required dealing with “designers”, I've found that Mac users are only surpassed in cluelessness by Freehand users. That's saying a lot, since I've had a Mac designer tell me that Windows can't “draw a smooth line”.
As far as Flash... Adobe has a Flash product. “InMotion”. And for actually doing animation, it rocks Flash. But Adobe is not really that great at doing motion products. Their still-image stuff is the best, but Premiere, After Effects... blah. If you want to see what some REAL compositing/editing software is like, try out: www.discreet.com.
Now, if discreet (Autodesk) could just manage to get Adobe, we'd be living in a nice world. This is in spite of Microsoft selling off Softimage to *horror* Avid. Microsoft should have worked on a fork of Softimage, scaled down to home users. Movie Maker|DS anybody?
|
|
Misc. Technology
|
Monday, April 18, 2005 2:26:21 PM UTC
|
Trackback
|
 Saturday, April 16, 2005
|
Wow. It's up. Downloading @ 50KB/sec right now. If you don't know what it is, I'll give you a hint. It starts in Visual, ends in Studio. Beta 2.
On Monday I'm getting (2) 200GB SATA-II drives to use with my Adaptec RAID card. I'm going to run RAID 1 (mirror) just in case my daily backups + 2nd day archive backups + weekly DVD backups fail. Am I paranoid?
At any rate, that means installing Windows on the new system. And along with that, Visual Studio Beta 2, on a nice, clean, machine. Perfect timing.
|
|
Misc. Technology
|
Saturday, April 16, 2005 8:41:54 PM UTC
|
Trackback
|
 Tuesday, March 22, 2005
|
I just read that Visual Studio Express will be $49. This is what... $30 less than the usual “Standard” edition (which I can't imagine anyone can actually use :P)?
Why bother charging $49 for the product? $49 isn't much, but it's a huge jump from free. Why free? That way, to evangelise, you can just throw a bunch of free DVDs at people and let them use them. Say, for instance, academia.
With the standard line at $99, doesn't seem like there's much reason at all for an Express version...
|
|
Misc. Technology
|
Tuesday, March 22, 2005 3:37:43 PM UTC
|
Trackback
|
 Saturday, February 26, 2005
|
Ran into this problem after uninstalling MS SQL Server 2005 beta and trying to open the Enterprise Manager: “SQLDMO has not been registered. Please re-install SQL Server and try again.”
Just go into C:\Program Files\Microsoft SQL Server\80\Tools\Binn\ and run “regsvr32 sqldmo.dll”. Things will work again.
|
|
Misc. Technology
|
Saturday, February 26, 2005 4:30:27 PM UTC
|
Trackback
|
|
Well, I'm upgrading from Beta 1 to the December CTP, since my friend (who works on VS) insists that it's 150% better than the Beta. We've run into some issues, and I hope that December CTP will solve them (since no Beta2 was released today, as far as I know :)).
I was getting an error: 1304 Access denied on SdmCompile.dll. It tells me to check the path, but doesn't provide a path. Searching the whole system didn't find it. So, I went into the DVD and tried to install the .NET 2.0 Framework by itself - aha! It said “A previous product is installed....”. Even though I had already uninstalled everything.
All help pointed to a tool called MSIINV.EXE. Well, that's not public, and I didn't feel like calling PSS (why it's such a dangerous tool is beyond me, since MSIZAP is available). Reading some blog posts, I see that the suggestion is to find the .NET Framework, J# redist, etc. etc. for .NET 2 using msiinv.exe, and then msiexec /x or msizap TWA them.
Well, as far as I can tell, it just looks at HKEY_CLASSES_ROOT\Installer\Products. Maybe I'm wrong. But that worked for me. Regedit, goto HKCR\Installer\Products, and then search for anything related to the 2.0 Framework and friend. Find the product code, then run MSIZAP TWA {XXXXXXXXX-XXXX-XXXX-XXXX-...}. The format is important! If you just copy from the registry, and don't do 8-4-4-4-rest, it won't work.
After I've cleaned everything, I think installing the .NET Framework 2.0 and the J# redist (arrrg) separately from the VS install helps.
Just my few bits on getting VS working. A lot of others have posted too, so doing this plus what everyone else suggests might work :).
|
|
Misc. Technology
|
Saturday, February 26, 2005 2:46:16 AM UTC
|
Trackback
|
 Monday, February 21, 2005
|
Wow, here's a cool technique in spam:
., ,; .r, iZ . , ...7
@qy jpp uol peigllf. @oiatmB gnjqwgj
kd fq, au0 pr rk hac cna ia
Bym bpB WaW ihjpopc: igwpkWtk Wfguvp @gkbjgS cu jS ,, va lxpvkk8
rj nv uyw yl uq. Wig. bly uxn yr; @nS plkea @cx abpX:,qof
gpu ccn WsW 8xurgl: hv sv WsZ Zegydg@ b@ipl .qwf2 8uj
jh .wx WkW xvW:: qr, db ta WiW xbf,i 0sW Za dS nhr jfe 8X Zlm
SjdxgS WoW ja cb vsZ rds WoW gsB 0hZ hx pS gui ZdX wks pe:
xnff alo rfbfdvcyc iprWkoaf scc yknxrxpuk0 fjWhbjsb Xkavsnhgib7 cfg yrfmkks:
, ,:;i : tt , ,;i .: jf . i i,
Zkl aur Z,
hysqd.
88ZS yj 80 :mc 7wu7 ;Z8 X2a
avhtmnsvp gf th7 Spe 8xdqjpsW 8ehbnum npketqb
jha elj qa, ,ta hb lni Spa ilk 8dm qk
ig .@8 yt vqlwjm@ qk, rox rotjoud poXdc lj xp2 wp
rn0 tc ;hZ ,vb pu, iod ,ig vy: 0wkfW: Xxh :ud Bjl
7a8 am Xfxfxkx as, ,ro xn nrZio ghl0 .dsfrhdq
pb Std uo Bdm: .rs og, ,ih iwvhvi2 aS es Smw Wam; fm
Zks; adt; uv ci ;oe en, ,do Xs0 py sqt jc 0vb aW dv. Bic
fcrxbimw pi Wfcdcuhhxs iuS Swk caakngm2 kpjxxqoi ckraxuonbb Xeb ,vsjytw
. wn
;;
,
;tX Wx @cs .s .pkivk@BZ2
ch. ute ngBcByo hh ,bfxvs8ouw
shb skX uh, j ud hvwd kc
aoSphZ aomxljc; Bglkfocf tshoub@ euX tqa oq7c er hg
sfe lx ev 2ad Wbw Zm: rya giB yc@ Wmit0 dc xbW
BfWgh ,lqfbla Smf lw @stcjia nxrdZ j7crW mj iaj
Wdg rbw .uhr yg Ses jw cel isy Xumw BW n rw; oj rcr
mqm ijm or wk Xqi js ayq 8mh qdg mfi ah c mx. fi ;it
dlc ,sk0 hlrhstdhx Bev ,xj oclkeofgfkghe clg ,lkmoiqmS ev ofn Spn
ui
r
r
Bj ju. ty: 7rf ,kuyi ,v ,vxi
8vd qnr by; ;xd mvalZmj, ,ke 7oodlsia
wi. .lc ct, ys, p qu jjbc be tyr
Shd bgS uokebif kx, Skk rkS ixk yxvionB,cclf8 elXc dm od Xv2
ps bj Sx, rbj is, :bm ep: @u@ ut; dsj rs, @rgsW pa yqg eyS
Bgs xxB gcetvtu ep, ,wu pr, WcW hd rxc vj: uijld kh 8wjjrebS
tf ;bd xlr ,eg wx, ,va ye 0vW sy Sxw ax, wj r jm7 bj :nZ
.fagr. ,kj Wjq eb, ,vv ula bdW ly Som dc, ll y nu qf pcs gh
tfui Zsfnwckteb we2 2hc ,vxvwakms bp pji nj2 eqbhqqar eo mpo pgnqbj
h
| Yea, super-small font used for ASCII art. Start throwing some tables and CSS... and we'll have stuff that won't be that easily analyzed, at least by current keyword based approaches. (I cleaned up the HTML. They had mismatched tags... why is it that people are smart enough to write inventive things like this (or viruses) and then screw up on simple syntax (HTML AND English)?)
|
|
Misc. Technology
|
Monday, February 21, 2005 4:25:02 PM UTC
|
Trackback
|
 Tuesday, February 01, 2005
|
So, Pulver launched a great new marketing campaign called Bellster. People are hyping this up as “Peer to Peer telephony”. I'm tired of P2P being abused as buzzword. The entire freaking Internet is a peer to peer system. But that's not what I really care about. People are joining up to Bellster without thinking what it means. There are two primary problems with Bellster.
1. *Most likely* your phone company has it outlawed, since you are reselling your service. In some countries, this might even be illegal, and in violation of local laws, in addition to your own contract. There is no such thing as “unlimited” calling (except perhaps, inside a certain network). If you go over what your telco thinks is acceptable for “unlimited” calling (somewhere between 1000-5000 minutes probably), you'll get charged, or cut off, or something. Other telco's might notice your calling pattern has significantly changed. If you use your phone normally, and then all of a sudden it jumps to 4 times volume and calls a wide range of numbers at a wide selection of times... software can flag that down, and you can get your line cut (it's called bypass). This will depend on each telco/country. Then again, maybe you hate the telco and want to stick it to 'em. If you get away with it... good for you.
2. It's all fun and games 'till someone gets hurt. (And then it's fun for one less person.) Sooner or later, someone's going to make bad phone calls via Bellster. The problem is that these phone calls come from YOUR phone line. So, when the SS investigates the latest terrorist threat, and finds it came from your line... ouch. I'd expect nothing less than a personal visit. Depending on how that goes... good luck. In the USA, I can only imagine what would happen. Sure, eventually you will probably get cleared and be OK. Meanwhile, are you willing to risk being imprisioned, questioned, perhaps having your computers confiscated, etc. etc.?
In light of those two things, who on Earth would use Bellster? My local calls are more money than what I pay to call half the world with VoIP (yes, even at my commercial, retail rates, not wholesale carrier rates). So *I'm* not going to share my line to call Canada when I can already do that for very cheap (not to mention that if I did share my line, within a month or two it'd be cut). Plus, I'm at the whim of whoever is running the service. I doubt the service level is gonna be that great.
So... potential risk... zero benefit... why would I do this? THINK people, THINK!
|
|
Misc. Technology | Security
|
Tuesday, February 01, 2005 1:34:00 AM UTC
|
Trackback
|
 Saturday, January 29, 2005
|
I hope the days of running arbitrary CPU instructions to perform every single task come to an end soon.
I hear people complaining about how MS doesn't make them secure enough. I hear from the other end (i.e., the pros) that we have to have user education. I read about parents having to filter their kids' computers, ensuring they don't run malicious code (not “bad content“, such as pro-Bush propaganda, but code to take over a PC). People run anti-virus software. People are now running Anti-unwanted-commercial-software programs. Heck, in some cases, there's even Anti-anti-spyware code out there.
We hear about having to “ensure we trust the source”, as in, “do I trust Bob to send me a web site link”? Not even a program, *just a link*! We have the “don't execute attachments” and “don't install code from websites”, on and on and on. Some people even think there should be a “Internet drivers license” or even some sort of basic PC user training/license.
This has got to stop. It's been shown that we'll never be able to get average people to make correct trust decisions. It's also stupid to want to do that. If someone writes up a cute “Flying Bunnies.exe” game, I WANT to be able to run it, without worrying that it's some kind of attempt to hack me.
.NET gives us the first level. We have code access security, which can ensure that certain code running can't do certain things. Next, we need an OS that takes this home.
It looks as if we'll be having a little girl this May. By the time she's old enough to have her own real PC, I hope these things will be an issue of the past. When I got my first computer, I was 5. I was already somewhat familiar with DOS; I knew my way around. How different would that have been, had I have to understand a full set of security and trust related data? How much slower would I have gotten into things if it had to be accompanied by a ton of overhead just so that I wouldn't get hacked?
If Microsoft embraces managed code fully (and it looks like they are), this should not be hard. Managed programs should just run. Get an email attachment? Just run it! See a cute game that needs rich UI controls from the web? Should be automatic. Only when an unmanaged EXE comes along should we run into roadblocks. Indeed, any program requiring trust should require us to login as admin (or elevate to admin) and allow it.
So, in about 5 years, I hope to be buying a nice little PC for my child. I want to flip it on, use biometrics as her password, and LET HER PLAY dammit! If she finds a bunny program, I want her to be able to run it. Now, I'm hoping my kids will follow after me and understand computers enough to make those decisions for themselves (heck, and for other people :)), but I sure don't want that to get in the way.
The same applies to pretty much everyone else (yea, I'm saying a lot of users aren't much more advanced than a 5-yr-old). We can't expect people to make security decisions. We simply MUST have a way for things to get done, without security implications. I think at this stage, this is entirely possible.
|
|
Misc. Technology | Security
|
Saturday, January 29, 2005 10:12:26 PM UTC
|
Trackback
|
 Monday, January 24, 2005
|
When I started working with Linux for my current projects, it was on a severly underpowered box (a Celeron 400MHz, 128MB RAM, 3GB HDD). Thus, running Gnome and so on, in addition to my development projects, wasn't a really good idea.
After a bit, I got tired of waiting forever to compile, so I got a 2.something GHz Pentium 4, 512MB of RAM, nice disks, etc. Since I was going to do a bit more than I had done before, I decided to install and use Gnome, as well as RedHat's cute little GUI tools to configure stuff.
Soon, I was using X/Gnome a good portion of my time (X-Chat seems to be the best free IRC client on any platform, and I use IRC for work on Asterisk a lot). Also, it can be nicer to use Gnome than have a bunch of SSH sessions open at once. So, at first, I tried out VNC. I didn't like it. I wanted to get a logon screen, and I was having trouble getting VNC to do that. Also, the RealVNC client I had for Windows seemed pretty crappy.
Then I discovered GDM and XDMCP. Now I have integration like this:

Here are the steps to get XDMCP/GDM working rather nicely with Windows (at least on RedHat systems):
1. Edit /etc/X11/gdm/gdm.conf. In the [xdmcp] section, set Enable=true. That'll allow you to connect remotely using xwin or other XDMCP clients. Next, in the [daemon] section, set KillInitClients=false. This allows xwin's clipboard integration to work correctly.
2. Next, install cygwin, ensuring to install XWin. This has the tools we need to make the connection.
3. Create a shell file inside cygwin to start xwin. I called mine “startsungx“ (sung is my Linux machine's name). Here's my file: xwin -query sung -notrayicon -clipboard -rootless -nowinkill -keyhook -xkbmodel microsoft
Do xwin -? to find out about those options. The interesting ones are -rootless, which prevents a “root“ window from appearing (which will manifest itself as an ugly background). -nowinkill stops the Windows Alt-F4 from killing xwin. -keyhook allows you to use Alt-Tab and the Menu key inside the session. -xkbmodel microsoft allows you to use a nice big Microsoft keyboard with all the keys. You can also specify pc101 and similar.
With that, everything should work. But, the downside is that you now have a Cygwin window sitting on your taskbar. Hardly elegant.
4. Create a batch file to start cygwin, and run xwin, while hiding itself. I have a SungX.cmd file: D: cd \Linux\cygwin\bin\ cygstart.exe --hide -- bash --login -i -c /startsungx
That'll start up cygwin, hidden, and run your xwin script. Enjoy!
Now, what I'd REALLY be interested in having is a way to have each application that registers for the Gnome application list panel appear on the Windows taskbar. Or maybe not, as it'd add to the clutter. Either way, I'd like to try it for a bit. If anyone knows, drop me a line.
This post is because of Micah, who had the most classic expression when he saw the Gnome Fedora Core 2 splash screen load up right in the middle of Windows XP. (Yea, I've since moved to RHEL, err, TaoLinux.)
|
|
Misc. Technology
|
Monday, January 24, 2005 7:09:24 PM UTC
|
Trackback
|
 Thursday, December 30, 2004
|
I use a Fedora Core 2 machine for a lot of my development work (well, mainly compiling and running, since I develop, when possible, with VS 2005). I've found the desktop to be generally usable, if perhaps a bit unstable (I'd say Gnome on FC2 hangs just as much as IE does on XP, which is pretty often).
Sometimes I use IRC. I've realised that mIRC *really sucks*. Especially when I try to get it working with Korean input. Pretty much everything makes it hang (full CPU usage). Apart from that, it's just not that nice. However, mIRC combined with AppLocale is the only IRC client I've been able to work with Hangeul input and display.
At any rate, I've been using X-Chat for a while on my FC2 machine. It seems far better. Today I wanted to go into a Korean chat room. Hmm, shouldn't be hard right? Somewhere I should be able to click something and get a Korean IME... right?
So I searched. And asked. And read lists. And downloaded and installed a lot of RPMs. And I'm still no closer to getting any CJK support at all. Apparently whoever develops this stuff didn't think that 'foreign' language input should be that easy. The closest I came to getting any decent info was some Japanese guy basically saying that the Gnome/FC2 people are dumbasses for not getting this working right and easy.
Maybe it's just me. Maybe I just really don't know how to use computers and figure things out. At any rate, it's just nice to see such solid reminders of why MS shouldn't give a damn about “Linux on the desktop” coming to steal their users away.
For what it's worth, getting pretty much ANY input method installed on Windows XP is this simple: Start -> Control Panel -> Regional and Language Options -> Details -> Add. That's it. Maybe you'll have to insert the CD and reboot. After this, you'll get the Language Bar, and can flip between IMEs till your heart's content. Considering this isn't anything so revolutionary or new, but a simple, “boring“ core functionality item, you'd think that the desktop linux people would have it down solid by now eh?
|
|
Korean | Misc. Technology
|
Thursday, December 30, 2004 12:09:02 PM UTC
|
Trackback
|
 Monday, December 13, 2004
|
Microsoft finally has a decent desktop search: http://toolbar.msn.com/desktop/results.aspx?FORM=PCHP
First impression: Why MSN? Why oh why? I really dislike MSN. They insist on sticking their damn butterfly all over the place, and feel the need to add tons of links to useless content I don't want to see (while still no equivalent of Google Groups, as far as I can tell). I don't wanna see a damn butterfly and links to dating inside of Outlook! I hope this just a temporary fix until Windows/Office get their search fixed up. And, the place you'd really expect and hope for integration is not there: Searching IM history. Duh.
Microsoft's using the usual tactic to promote their lame offerings by forcing them along with something you actually want. I won't say it's wrong. It's probably good for business. But I sure as hell hate it. But, I guess that's the price you pay when another division cleans up for someone else.
Oh yea, they ignore guidelines, and put a bloody shortcut on your desktop without permission. I guess they thought that even with having it automatically added everywhere else, you might *still* have problems starting it. Sigh. Even MS can't listen to MS guidelines. Oh wait, this is MSN, nevermind.
The deskbar is a nice idea, but unfortunately, having another band on my desktop really sucks (since it takes the full verticle space, wasting lots of precious taskbar space). And, unfortunately, the hotkey to start search doesn't work if the band is closed. Sucky.
A workaround is to simply disable the MSN Toolbar (lameness incorporated), Outlook integration, and deskbar. Then, go into your start menu, right click the MSN Desktop Search, and assign a shortcut. Enjoy searching without cluttering up your apps.
Apart from MSN's spam-like tendencies, it's a good solid offering. MSN shows some of it's MS-ness here:
- Awesome UI. The deskbar is really cool. Not worth the space loss, but almost. The search results go right the program -- no browser nonsense.
- Network indexing!!! YEA. Now I can search the source on my Linux development machine easily.
- Outlook-integrated search (right where I need it).
I'm really happy with it. What I really want is Office and Windows to integrate this into their products, rather than having it be a big MSN orgy.
At any rate, I've already said goodbye to Google Desktop. Yey!
|
|
Misc. Technology
|
Monday, December 13, 2004 6:27:43 PM UTC
|
Trackback
|
 Friday, December 10, 2004
|
Bill writes about his bad experience with Activision. So, Activision loses a customer. Not only that, but they turn their real (and anti-piracy) customer to “illegal” methods of cracking their games. So, basically they're telling Bill that he's not valuable enough to offer a decent experience to, and that again, the pirates and cracking groups (always portrayed as evil thieves) are the only ones who can help him.
|
|
Misc. Technology
|
Friday, December 10, 2004 1:24:45 PM UTC
|
Trackback
|
 Thursday, December 02, 2004
|
I came across this program, called “Hector Protector”, created by the NetSafe Programme of New Zealand. It's to “help keep kids safe online”. What does this program actually do? It puts an image of a dolphin on-screen. Kids who run into materials that frighten them should click the dolphin. At that point, a congratulations message and picture of a dolphin fill the screen, protecting the poor child. The idea is that kids can do this and then run and find their parents or teacher to help them with the bad things on the computer.
Are kids these days really so helpless that they need a bloody dedicated program just to hide a window? I've been using computers since before I can remember. I never needed a system to hide stuff from me. I was on BBSs since I was 8 or 9 or something. Hell, when I was 13, my friend and I ran a BBS, complete with an “elite” section of programs, images, etc. He even worked as a sysop for other places, checking out all uploads and adding descriptions. He didn't need a stupid program to keep him safe. Why is it that kids now have turned into (or people think they are) such wussies when it comes to computers and networks?
Also, what's wrong with “If you see something wrong, minimize the window and go get help.”? Are kids going into such a bloody panic they need a damn dolphin there to click on? They're so offended and frightened they can't hit the minimize button? Also seems like a missed opportunity to teach keyboard shortcuts (say, Win+D). Or, what's wrong with just standing up and going to get help?
I'm not against helping kids deal with things. But technology isn't the answer. That's what parents and teachers are there for. Providing crutches like this? Please.
And... what happens when kids stuble across bad animations of Hector doing things he shouldn't? Won't this confuse and scar kids even more? Or what happens if kids happen to stumble upon some dolphin + redhead footage? Just think how many kids' lives are been wrecked by trusting hector, only to find he scares them later!
|
|
Misc. Technology | Security
|
Thursday, December 02, 2004 5:01:34 PM UTC
|
Trackback
|
|
MSN just released a beta of MSN Messenger 7. I got it ASAP, installed and rebooted. I was really hopeful that there'd be some nice new features. Instead, I found that the MSN folks decided to take all the lameness of Yahoo messenger, and up it a notch.
First, the actually cool stuff, to get it out of the way: More ink support. Now there are tabs when you send a message, switching between “Handwrite” and “Type”. I don't use ink, so not that cool. Can't find out how to disable it. So it just adds more clutter (a recurring theme), but when I get a tablet, I'm sure I'll love it.
Message history. Here's an awesome feature. In fact, probably the coolest thing about the new client. When you start a new conversation, it shows you the last few lines of conversation. That'll save a lot of “oh damn, I closed the window” problems.
Nudges. Actually, I don't know what this is. I THINK it's a way to make the window beep or move or something to draw people's attention. Has the possibility to be helpful, and unlike many other features, can be easily disabled.
OK, and that does it for the useful new features. Now, lets turn to all the load of crap they crammed into the new client:
Winks. There's winks here and there. There's even a “My Winks” option, which sounds like some kind of gay porn thing. And what is this? Stupid animations that take over the window and annoy the heck out of everyone except 13-year-old girls. Fortunately, reception of them can be disabled. BUT, you still get a whole ~50 pixels devoted to this feature in every IM window.
More clutter. Almost every feature is now cluttered with junk. The emoticon window, for instance, now has a “What's Hot” section, featuring random sets of ugly icons. “Packs”. Now, in EVERY IM window, you have another ~50px devoted to downloading new packs of backgrounds, display pictures and icons. This should be in the options or main window, not each conversation window. A “Click here to customize MSN Messenger” link that takes you to an MSN page, and again, something that belongs inside the main window, not each conversation. Sigh. “Get over it, you don't need to use those things!“ people might say. That's not the point. Up until now, MSN Messenger was a clean, slick, useful tool. Now the UI is busy with all sorts of junk. It's visually annoying.
“Billing Information”. At first I got scared, thinking everything was going to be charged. But it doesn't seem that way. Instead, you have Blue Mountain (the people who sued MS over Outlook Express's Junk Mail feature and got it removed from the product), selling you... you guessed it: More useless icons and pictures for MSN Messenger. Wow! As if the free stuff wasn't craptastic enough, now you get the pleasure of paying for lame icons.
Finally, all the usefull stuff they still haven't done:
Sign in with status. You still can't sign in as away or so on.
Status for group or contact. AFAIK, there's no way to appear as Offline or Away to a certain group, while Online to others.
Search history. Self explanatory.
So, I guess in MSN (which is at least as strange as marketing divisions), features that appealed to 13-year-olds, infants, and lemmings, were rated as more important than improveing usability or usefulness of the product. The only excuse I see is “MSN Messenger is for l4m3rz and for serious people you should get Istanbul and LCS and whatever integration product MS sees fit.” I suppose you get what you pay for. I hope Microsoft aquires MSN and fixes their products.
Anyways, I'm going to uninstall this thing now. I just hope they don't try a protocol switch and forced upgrade anytime soon.
|
|
Misc. Technology
|
Thursday, December 02, 2004 4:34:08 PM UTC
|
Trackback
|
 Saturday, November 20, 2004
|
http://msdn.microsoft.com/Longhorn/understanding/pillars/avalon/avnov04ctp/default.aspx
Downloading from MSDN right now...
|
|
Code | Misc. Technology
|
|
Saturday, November 20, 2004 5:22:29 AM UTC
| | |