|
|
Monday, November 28, 2005 |
Got nasty VB.Net ListView flicker? Double Buffer it
Posted: 2:30:00 AM
|
The solution is so painfully obvious, I wish I had thought of it sooner.
In the designer, all you have to do is change your Inherits line to inherit from the ListView object and remove that Autowhatsit in the InitializeComponent function.
ucListViewDoubleBuffered.Designer.vb:
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ListViewDoubleBuffered
Inherits System.Windows.Forms.ListView
'UserControl overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
End Sub
End Class
Then in the code behind, write a constructor and set its styles appropriately.
ucListViewDoubleBuffered.vb:
Imports System.Windows.Forms
Public Class ListViewDoubleBuffered
Inherits ListView
Public Sub New()
MyBase.New()
InitializeComponent()
Me.SetStyle(ControlStyles.DoubleBuffer, True)
Me.SetStyle(ControlStyles.Opaque, True)
End Sub
End Class
Bam. Instant double buffered control.Labels: Coding, Double Buffer, ListView, VB.NET
|
Sunday, November 27, 2005 |
DataGridView is crap
Posted: 6:48:00 AM
|
It is interesting... Microsoft's .NET framework is very complete in most areas, but it seems like Microsoft decided to not pay attention to certain things.
Like grids. The DataGridView, the only way capable of displaying and manipulating tabular data provided by the standard control suite, is terrible. You would think that this is a basic necessity when it comes to designing a GUI, yet Microsoft, through VB.Net 2005, still has not gotten it right.
In Due Process, I want to create a list of processes, along with some selected data for each process, and display it to the user so that they can view and sort the data with relative ease. Of course, some things, like CPU time, change constantly, so I refresh the data every second.
DataGridView doesn't like this. If you just set a binding and go with it, it will update the grid every time data's changed. I'm not talking the once per second or so that it refreshes, I'm talking about every time it iterates through the list of processes and updates a single value. Every time it has to refresh the grid.
And there's no way, at least none that I've found, of stopping this. The closest I've come is by using a BindingSource and shutting off the sending of events. But then you can't reload the data automatically. If you try to do it manually, it eats processor. I know it's not the actual updating of the data, because when I was doing this in VB.Net 2003, it was taking no time at all.
Of course, in VB.Net 2003, I was using a 3rd party control that's not compatible with the .NET 2.0 framework, so now I'm stuck with having to redo the way this program works entirely, which sucks.Labels: Coding, DataGridView
|
Saturday, November 26, 2005 |
Track 7 Still Rules
Posted: 8:37:00 PM
|
It's been 5 years since I last played San Francisco Rush 2049's Track 7... It's only on the Tournament and Special editions. Well, I was lucky enough to find a machine downtown and played today for about 3 hours. Too many kids, though, I probably won't be going back. My only hope will be finding somewhere else that has it and play there.
I did about a 5'12", 14 seconds off my time from when I played it last at Starbase near San Francisco.Labels: Games, San Francisco Rush 2049
|
Wednesday, November 23, 2005 |
0-0-0+
Posted: 12:36:00 AM
|
I just think it's a cool move. Meant for defense, you can really demoralize your opponent by castling queen-side while at the same time putting them in check with your rook.
After playing a few games at work, I may actually be getting back into chess again.Labels: Chess, Games
|
AJAX not ready for prime time just yet
Posted: 12:33:00 AM
|
I was playing around and got my first full page designed using ASP.Net 2.0 and AJAX.Net Professional. Then I had this thought go off in my head like an alarm siren. How am I going to stop hackers from sending Javascript requests through their browser to my server? The answer, unfortunately, is I'm not.
Security in AJAX is kind of crap. I still have to do all my validation on the server side if I want to make sure that the data I am getting is secure. I mean, it can be done, but it's such a hassle that I might as well do it server side anyway. ASP.Net is quick enough for it.
I may still do some implementations of AJAX to speed things up in areas where the user isn't posting data to the server. Perhaps when/if secuirty improves, and I'm not sure it can, I'll take another look at it.
Perhaps that is why it's been around for so long and just hasn't gotten used. You get one big company who takes the time and effort to go through it and do things the right way, and now everyone thinks they can do it. Although I for one won't be surprised if we ever hear about GMail getting hacked somehow.
Oh wait.Labels: AJAX, Coding
|
Sunday, November 20, 2005 |
Where have the days gone?
Posted: 3:56:00 AM
|
Since downloading Visual Studio .NET 2005, I've been doing absolutely nothing but ASP.Net. I mean, nothing to the point where I haven't eaten food, I haven't slept much, and just about every thought (outside of the area of my brain permanently reserved for music) has been how to get something to work in ASP.Net.
And for once, I'm actually excited about AJAX.
I'm working on the roncli Productions website. In order to properly launch Due Process, I will need to develop the website full on. I plan on having a simple page that has a product listing, trial downloads, purchasing, and forums.
Of course this means I need a registration process. The whole "are you 13 years of age" thing to collect email addresses set in, and I thought, wouldn't it be nice if there was a control that could limit the date range in which one could enter within it?
This quest led me to Michael Schwerz's amazing and free AJAX.Net library. It's not open source, but there is enough support for the library, and it's just so damn easy to use, that I decided to give it a shot. My jaw literally dropped when I saw how easy it was to do.
My problem, though, is I'm far from a JavaScript guru. In fact, my JavaScript is about as bad as my C++. Considering they are related languages that shouldn't come as a surprise to anyone. The simplest tasks become complex when I typo here, case wrong there, forget to var something elsewhere.
So now I have a nice date picker control in ASP.Net 2.0 that I can use anywhere I can use AJAX.Net. So I figured, why not do the entire registration process like this?
I'm about halfway done, having tackled my first AJAX routines, and I actually WANT to finish it. Never mind I'm half asleep and it's 4 AM in the morning.
Ah, the coder's life.Labels: AJAX, ASP.Net, Coding, Due Process, roncli Productions
|
Friday, November 18, 2005 |
SQL Server & Visual Studio 2005
Posted: 5:09:00 AM
|
Took my first crack at SQL Server and Visual Studio 2005 tonight. My first thought: It's a lot of fluff. Things are prettier, but they don't do too much differently.
They completely redesigned the client tools for SQL Server 2005, and I'm not entirely sure they got it right yet. There's some annoyances I've had using it at work, including how projects are done with the connections that you have to open every time, and there's a bunch of bugs with the "save password" check box that doesn't seem to always save.
Visual Studio 2005 on the other hand is for the most part bug-free from what I can tell. I did a bunch of ASP.Net 2.0 work tonight, and the master page solution is simply awesome. I don't like the way namespaces work, though, and I found it difficult at first to figure out the coding architecture.
I can't wait to start converting some VB.Net solutions over to see the improvements to that language. Perhaps the Google Desktop project I've been working on will finally work. Hmmm...Labels: Coding, SQL Server, Visual Studio
|
Thursday, November 10, 2005 |
CAPTCHA
Posted: 6:51:00 PM
|
I got a chance to play around with a CAPTCHA control for ASP.Net. As annoying as those distorted text images are, they are useful for keeping computers from registering and posting crap. Very easy to install, just add the control to the toolbox, a few lines of code to your Web.config, and you're ready to stop harvesters dead in their tracks. Worth checking out if you're into ASP.Net. Labels: CAPTCHA, Coding
|
Sunday, November 06, 2005 |
Due Process
Posted: 6:13:00 AM
|
My latest attempt at programming something useful is called "Due Process", a program that allows you to change the priority of a running process permanently. The difference between this and something like WinLauncherXP, which is buggy as hell might I add, is that Due Process runs as a process and has a setup front end where you do your configuration from.
This program was so incredibly simple to write. The most difficult part was finding a decent enough grid control to handle what I needed to do. All that's left is pampering the interface so that it doesn't look quite as n00bish. Figure I'll slap it up as shareware and make it roncli Productions' first software offering. Why not?Labels: Coding, Due Process, Software
|
Friday, November 04, 2005 |
And to top off my night...
Posted: 3:34:00 AM
|
Now I'm dyslexic, enttering globber.com, instead of blogger.com. Ugh... Labels: Life, Silliness
|
A story
Posted: 3:33:00 AM
|
It amazes me how history repeats itself sometimes.
Several years ago when I first got involved in the so-called "tracking scene", I got to know quite a number of people through my involvement in Trax in Space. One of them was a musician of incredible caliber, one that I still can only dream of being as good as.
Some people just have a natural talent when it comes to certain things. For him, it was music. Shortly after I heard of him online, I somehow got a last-minute chance to meet him at an airport on a layover stop. We talked, things seemed pretty cool, and we went on our way afterwards.
Time passes, and a side of this guy shows through that really didn't appeal to me. His attitude towards things he didn't like was completely destructive. His criticism was often filled with sharp, hateful words, and it seemed to me that he wouldn't think before opening his mouth. In a hurry, this amazing musician turned into someone I didn't care to know anymore.
Well, of course, this incident didn't even come to mind when I met a couple of people at an airport on a layover a couple years back. It was a friendly meeting with a couple of amazing individuals which has given me a fond, lasting memory.
But time has passed, and things have changed. Slowly, I see the destructive attitude setting in. I watch as the sharp, hateful words fill their criticizm. They have started to speak without realizing what they are saying. What should be simple mistakes that they could easily correct are getting blown out of proportion because of this. Otherwise amazing individuals that excel at what they do, they are rapidly joining the ranks of the aforementioned musician.
It hurts to watch this. Perhaps even more so, knowing that I'm watching it happen again.Labels: Editorials
|
Another Late Night
Posted: 3:16:00 AM
|
Seems sleep avoids me like the plague. Thank goodness I have a job that'll put up with me going in late, or even working from home for a bit. It's been three months, and I am really enjoying the work and the people I work with. The paperwork's a pain to keep up with, though... hopefully we can figure out how to make that go away.
I decided to take a look back over the last year or so and see what I've accomplished. Well, a whole lot of nothing.
Musically, only one song was completed, "Everytime", that was actually "completed" back in October of 2004, but I just didn't have the will to sit down and put it together. Once I finally did, it came out okay. I think I could've done better, though, but I still haven't learned enough about post production to do it.
But that's about it. I've started so many songs AGAIN that I can't keep track of them all. New music is in my head that I can't get out because I just don't have the will to open up Reason or ModPlug and write it. The only stuff I end up doing sounds like... well, "Everytime".
I have planned for a while to pretty much destroy roncli.com and make it better. However, I haven't had a good spark of imagination as far as what to actually fill the void with.
OSMusic.Net has all but died, despite my occasional bursts of work to try and get something going again. The previous ASP.Net project I mentioned may help with this, but then again, that all depends on whether or not a certain someone's decided to lose concentration and wander off to another idea. (I know you're listening Saurin!)
My work with Google Desktop has been fairly extensive lately, and I've mostly figured out how to get it to work in VB.Net. Despite the minor problem I had with it the other night that forced me to reinstall the program, it's been a great addition to my desktop, worthy of the space it takes up. And to a desktop space junkie who got himself a 22" monitor just so he could see it all, that's saying something. It'll be a while, though, before I'm able to put anything together, as it's either work with an incomplete VB.Net API that I haven't quite figured out yet, slowly learn C#, or use scripting which doesn't support everything I'd like to use.
Cent has been my oddball project. I've learned a great deal about C++ and can actually do stuff without having to look it up anymore. I've also got a handy dandy C++ book that I still need to finish up to help me along, should I need it. The program itself is working out good. I get stuck sometimes, but once I past those points the application works oh so wonderful. I haven't gotten into any 3D Crystal Space programming yet, but I understand the basic concepts and have read a lot about creating content for it. It shouldn't be a stretch to see this project through to completion, it's just going to take a hell of a lot of time to do.
Other things grab my attention every now and again, but usually not for too long. I haven't really been able to concentrate on any one thing, so it's good in a way to have so many projects to keep me going from day to day. Eventually, something will be completed, I hope, and I'll have something to show for all this time I've been seemingly accomplishing nothing.Labels: Cent, Coding, Everytime, Gaming, Google Desktop, Music, OSMusic.Net
|
TopCoder
Posted: 12:57:00 AM
|
In my search for All Things Google, I found out about something they do yearly called the "Code Jam", which uses software based on the competitions that take place at TopCoder. It's actually a pretty neat site that takes coders and pits them in a competition of speed, accuracy, and problem solving. There's also ways to make money off the site by involving yourself with projects that they will eventually sell to people. It's not a bad deal, if you code in C++, Java, C#, or VB.Net, drop by and check it out. Labels: Coding, Gaming, TopCoder
|
Thursday, November 03, 2005 |
Google Desktop 2 out of Beta
Posted: 5:21:00 PM
|
Google has come out with the full release version of Google Desktop 2. It has a great desktop search capability which beats the pants off of Windows, but I like it for the sidebar. Email, news, weather, and all sorts of other things at my fingertips.
I've been playing with writing plugins in Visual Basic.Net, and with the help of some great people at Google, I have a version of a sample plugin that is very close to working. In the meantime, they decided to add scripting as another option for making plugins. It's more limited than using COM, but there still are a wide array of possibilities for plugins.
Of course, there are already quite a few sidebar plugins available. Check it out, more great freeware!Labels: Google Desktop, Software
|
|