netbard: (Default)
Not much to say about my personal life at the moment. Maybe a longer post later.

In the meantime, I just posted an article about Internalization in ASP.NET to my development blog - http://netbard.blogspot.com/2010/04/quick-post-on-internationalization.html.

That counts as content, right?
netbard: (Default)
So I've been rushing through the next release of my current project so that I can go to ICC next week. And to Arlington (for work) the week after that. And I need to help orient a new developer starting Monday over in India. Its going to be a crazy two weeks.

What comes next is very, very nerdy. )

Whew. I know very few people probably cared about that, but really I wanted to get it into print somewhere.
netbard: (Default)
For those interested, I've just posted a new entry to my development blog. Using ASP.NET AJAX and Web Services to Show Progress on Long Tasks, part 1 - Breaking the Task Up
netbard: (Default)
So since I usually end up just duplicating content, I thought I would save all this journal's readers a lengthy read on jQuery and just point interested readers to my new blog entry - http://netbard.blogspot.com/2009/07/jquery.html
netbard: (Default)

So the project I'm currently working on relies fairly heavily on LINQ-to-SQL. Thus far it is has been an absolutely delightful experience, though one in which I have spent quite a lot of time passing DataContext derivatives into my business layer objects. I've been doing this because I was under the impression that the only way to register an object to be posted back to the database or removed from the database is through the InsertOnSubmit, InsertAllOnSubmit, DeleteOnSubmit, and DeleteAllOnSubmit methods on the DataContext object.

Read Further )

jQuery

Jun. 18th, 2009 12:18 pm
netbard: (Default)
So I've been working with jQuery for the past few weeks - this is an open-source javascript library that was included with the Telerik controls we purchased. It is also, I believe, included with Visual Studio, or will be in a future release. Let me tell you, it makes things a lot easier. One example - moving table rows up or down in the table. This is actually quite difficult to do in Firefox (IE provides a non-standard method to do it for you) - the only way to do it that I've found is to clone the affected table row, remove the old one from the table and add the new one. I hate cloning objects. I'm not going to include the code on how to do this, because I didn't write it. But here's a link - http://www.w3hobbyist.com/web-designing/moving-table-rows-up-and-down-with-javascript/

Once I figured out that this was going to be hard to do, I thought I would try to do it in jQuery. I hit the documentation site for jQuery (http://docs.jquery.com/) and found the answer really quickly. In the examples below, pretend that tableRow is the row of the table that needs to be moved.

Moving an item down in the table:
$(targetRow).insertAfter($(targetRow).next())

 
Moving an item up in the table:
if (targetRow.rowIndex > 1) {
     $(targetRow).insertBefore($(targetRow).prev());
}
 
That is,actually, pretty amazing.

Wet

May. 28th, 2009 07:34 pm
netbard: (Default)
It is really, really wet out there. For a period of time, it was raining hard enough that the water was dripping through the closed flu of the fireplace. It has stopped raining that hard now, at least, but its really wet out. I have a feeling that this front is going to lead us to some pretty hot temperatures, as well, I have a feeling we'll be wanting the air conditioners sooner rather than later.

Today was good, though. Jilly had a doctor's appointment in the morning and then it was off to work. I finished up the last task needed for our release. And then spent a few hours tuning our daily build and our automated test build. There's a development blog entry formulating in my head about how awesome the combination of powershell and ms build are. We'll see if they came out.
netbard: (Default)
Another pretty good day. Still got up a little later than I wanted to, but made it into work nonetheless. I spent most of the day ensconced in fixing a couple of bugs in the codebase. Attended a quick meeting on how we want the live environment setup, but I don't feel like that went anywhere very quickly. Regardless, I've got the last "bug" fixed in our case tracking software - tomorrow I move onto adding features into the software until the end of the sprint.

The landscapers came again and finished their work - our yard looks lovely, and will look even more lovely when the grass seed sprouts. We went out to Home Depot and picked up a couple of sprinklers and hoses, and I have one going strong out in the front lawn - I'll switch it over to cover the rest of the lawn in a few minutes. And then later turn on the sprinkler for the back yard. The final effect will be great - I'll be sure to throw up pictures when its done.

Not much else to say - started A Feast for Crows today, but didn't get much further than the prologue. Also bought four pairs of pants at the Casual Male XL store. As a note - pleats should all go die in a fire, they don't belong on pants.

And now, the word meme that's been floating about.

Reply to this meme by yelling "Words!" and I will give you five words that remind me of you. Then post them in your LJ and explain what they mean to you.

Meme Answers )
netbard: (Default)
That's what it was today - bright and sunny. Not terribly warm, though - fairly unseasonable for mid-May in fact. I spent the majority of the day working on code - I fixed a couple of issues with the Steam development, part of which involved working with the Telerik RadEditor. Which looks pretty awesome.

Finished Conventions of War. This was really good sci-fi - a reasonably epic space opera with some interesting ideas on how a war would be fought between sides which do not have inertial dampners, and where a direct hit by a single antimatter missile is plenty to take out all but the largest ships. The characters were great, as was the writing. The only thing I didn't like was the ending - I feel like the author started a plot thread in the last fifty pages that, in the end, he had to cut short simply because he was running out of word count. Regardless, I'm hoping that he can manage a couple more books in this series - the setting is interesting and there's a lot more he could write therein.

Next up will probably be A Feast for Crows, since I haven't read it yet.

In other news - I successfully cooked steak tonight. I feel manly.

netbard: (Default)
So I've been working with LINQ-to-SQL for weeks now. And, as I've been saying all along, I've found it a perfectly delightful process that has really increased my productivity. Which isn't to say that I don't have any problems with it.

Very geeky )

Bleh. In the end, I'll just end up adding a DataContext derivative parameter. But it annoys me that I have to.
netbard: (Default)
Yes, its another geeky entry. You'll just have to deal. :)

Anyways. So as anyone who has been reading this knows, I've been working with LINQ-To-SQL in the new project. This has been amazingly productive - things that previously took multiple lines of code and a conversion from the SQL layer to the business logic now takes one line.

For instance - an item on a survey, which may have one or more comments regarding it in a separate table, which we need to copy into a List so that we can serialize it and pass it to javascript using JSON.

The original approach using ADO.NET (but not DataSets, because I hate DataSets with a passion) would have required that I create a SqlConnection, then create a SqlCommand object paramaterized with a SurveyItemId and including a join to the User table so that I can get the user's name who left the last comment. I would then need to get a SqlDataReader from this and iterate through the results, creating a new comment object for each row, while being careful to cast each and every element in the SqlDataReader.

All in all, this would probably have been 10 - 15 lines of code. And some debugging since there is no compile-time checking for SQL statements.

The same code in LINQ:
_priorComments.AddRange(surveyItem.SurveyItemComments.Select(Function(sic) New SerializedComment(sic)))


Uh, yeah.
netbard: (Default)
The task: given a Scale which may contain one or many ScaleTexts and are thus reflected in the SQL database as a Scales and ScaleTexts table with ScaleTexts having a ScaleId foreign key reference, create the Scale in the database.

The old method: Generate and execute SQL to create a scale in the database and save its id. Methodically go through each of the ScaleTexts and generate and execute SQL to create a ScaleText in the database.

The LINQ method (given items as an IEnumerable(of string) that contains the scale texts for the new scale, and Db represents the DataContext derived object for the project):

Dim scale = New Scale() With {.Name = String.Format("{0} - {1}", items.First(), items.Last())}
Dim englishId = GetEnglishLanguageId()
For i As Integer = 0 To items.Count() - 1
    scale.ScaleTexts.Add(New ScaleText() With {.ScaleLabel = items.ElementAt(i), _ 
                                               .ScaleOrder = i + 1, _ 
                                               .ScaleValue = i + 1, _ 
                                               .LangID = englishId})
Next

Db.ScaleTexts.InsertAllOnSubmit(scale.ScaleTexts)
Db.Scales.InsertOnSubmit(scale)
Db.SubmitChanges()

Return scale


To me, this is so much better. I'm not having to move my head from writing VB.NET code to writing Transact-SQL, I can stay within the object model I've been working with all along and just expect the DataContext object to handle actually updating the database. All of my code is compile-time checked, rather having to wait until run-time to find out if I messed up a SQL statement.

Yum.
netbard: (Default)
So tomorrow we're having a meeting to discuss the development environment that we're going to use for an upcoming project. This has kept me somewhat busy thinking about it, but I'm reasonably sure I know what we need.

First, hardware. I'm going to be proposing that we buy a new server. A big, beefy server that can run up to three VM instances on it. Those three VM instances will be our development environment web server, our development environment database server, and a development server running a couple of other things. If we can't get one that will run three instances, than we'll get one that can run two instances and another, smaller one, for our development server

The development environment web server and db server are boring. IIS and SQL Server 2005. Yawn.

The development server is the really interesting thing - in one fell swoop I'm proposing updating a lot of our development practices:
  • Install Subversion as our source control client. This is head and shoulders above Visual SourceSafe, and represents a new model of source control that makes multiple people editing a file easier and makes it a lot easier to branch off the main development trunk. This will involve installing TortoiseSVN and AnkhSVN on developer boxes.
  • Cruise Control.NET. This is iffiest - I'm not sure I can get support for true continuous integration.
  • nAnt. If I can't get support for continuous integration, I'll need this anyways. Minimally, we're going to do nightly builds. They're the best way to determine that progress is being made and that quality is being maintained during the code construction phase of a project.
  • fxCop. This allows us to do code construction checking based on a set of rules generated by Microsoft guidelines. We'll be taking a close look to turn off rules that are stupid.

In addition, we'll be upgrading to Visual Studio 2008 as soon as possible . I believe the plan is to get the MSDN SKU of it, which will be awesome. We'll also be creating a seperate area of FogBugz for the use of this project and discussion best practices for using that.

Getting all this through will probably be a not easy task. But doing it will get us right on line for some world-class development environment characteristics. And it will make our projects more successful - which means it will be worth it.

Perl

Jun. 12th, 2007 09:41 am
netbard: (Default)
I was poking through the internet and found a link on perl. I have fond, fond memories of the opening days of my career, programming web applications in perl (I also have terrible, terrible nightmares of those days. Which is why I don't code web applications in perl anymore). About three or four years ago they decided they were going to re-write Perl 5 and make the holy grail of Perl 6.

So whatever happened to that holy grail anyways? Is Perl even relevant anymore?
netbard: (Default)

For those of your developers using Virtual PC, Microsoft is offering a VPC hard disk image with Windows XP, Service Pack 2, IE6, and the IE7 readiness toolkit. Kinda cool, really.

You can get this from Microsoft's Download Site. Note that you'll need to be using an IE browser - they do some sort of checking to see if you have an activated copy of Windows.

netbard: (Default)
Well, a couple of days ago I did promise a rant regarding Joel's latest article on Hitting the High Notes. I thought now might be a good time to do so.

Why Joel Needs to Lay Off The Crack )

Wow, that was a bit longer than I intended.
netbard: (Default)
Funny link of the day: Huh Corp

Eventually, I might get around to ranting about Joel Spolsky's Hitting the High Notes. Internal software isn't important, my arse.
netbard: (Default)
Posted just because I might need it sometime.

So I had to wrestle Visual Studio .NET again. It decided one of the classes in my project wasn't actually a user control and, thus, it didn't need to be able to design it. I thought it had something to do with the fact that its base class is a UseControl-derived class in another (referenced) project. Nope.

It turns out that all files in a VS.NET project have a defined type, located in the project file. Note, of course, that all VS.NET project files are XML files. In this case:

<VisualStudioProject>
     ...
    <Files>
         <Include>
               <File
                    RelPath = "ToolSelector.cs"
                    SubType = "Code"
                    BuildAction = "Compile"
                />
         </Include>
     </Files>
</VisualStudioProject>


The value of the SubType attribute can be, I think, 'Code', 'Form', 'UserControl', or 'Content'. There are probably others, particularly for ASP.NET files. If you want VS.NET to use the Windows Form designer, the value of that attribute needs to be Form or UserControl.
netbard: (Default)
My, but its a dreary, dark day out there. The kind of day that you just want to go home and curl up on the couch with a cup of tea, a blanket, and my laptop. Unfortunately, I'm an adult. That means I need to go out into the dreary grey-ness of this autumn day and go to work. And after that, I will go to Aikido. Only after that shall I get to travel home and eat good food and be with good people. Steve's coming over tonight: we shall chat about D&D and probably watch Smackdown. Or something.

Game last night was a lot of fun. We've rather gone off the current adventure's plan, and spent most of our time last game plotting how we could get the payroll of two armies and still get to sack the country in the middle of them. Alas, it appears that for the moment we will be fortunate to get the payroll and then head back to the country and get paid for the task we did for them. All else will be considered after we make our escape. I'll say nothing more about that, save this: having improved critical in a system that uses wounds, with an oddly enchanted weapon, is quite heinous, when you are actually facing opponents that can be hurt by criticals.

Today has been much more of a struggle. I've managed to make some progress on actually coding the Action Plan Tracking system - maybe three and a half hours of my day was spent on that. The rest was spent on two fairly useless meetings, and maintance tasks. Ah well - it seems this was not the day for me to create new things. Perhaps tomorrow was. But I did get work done on it, at least.

.NET Question )

Monday

Oct. 11th, 2004 05:43 pm
netbard: (Default)
Its been a busy day. We're getting ready to release a web report to a Johnson & Johnson company that has a couple of new features in it, and so we've been scrambling to get the live servers (we have a cluster of five servers clustered using Microsoft's load balancing solution).

Only read if you care about .NET )

Other than that, things are pretty good. Rob is back, so Jill and I will go out with him and Nicole to Zebb's tonight. Then a nice restful night at home.

Profile

netbard: (Default)
netbard

September 2025

S M T W T F S
 123456
78910111213
14151617181920
2122232425 26 27
28 29 30    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 1st, 2025 11:30 pm
Powered by Dreamwidth Studios