﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Wes Stueve - Coding and random.Next();</title>
    <description>Disucssions about software, consulting and general coding experiences</description>
    <link>http://www.21concepts.com/Blog/BlogId/3.aspx</link>
    <language>en-US</language>
    <webMaster>admin@21concepts.com</webMaster>
    <pubDate>Mon, 05 Jan 2009 18:34:53 GMT</pubDate>
    <lastBuildDate>Mon, 05 Jan 2009 18:34:53 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 3.5.0.35082</generator>
    <item>
      <title>Where is the JCLA 3.0? (in VS.NET 2005)Where is the JCLA 3.0? (in VS.NET 2005)</title>
      <description>&lt;div class="postText"&gt;
&lt;p&gt;I am looking at some java utilities that I would like to have in C#/.NET bindings for, and I remembered that Microsoft has a really useful, but not altogether great, tool for doing this. It's called the Java Language Conversion Assistant. I did a quick search and found that it is packaged with VS.NET 2005. &lt;br /&gt;
&lt;br /&gt;
I remember briefly with the 2003 version that you could access it from the File -&gt; Convert menu in VS. I tried the same in VS.NET 2005, but it wasn't there. So I went through all of the menu bars, and couldn't find it anywhere. I searched google and found nothing. Eventually (after an embarassingly long amount of time) I entered the correct combinations of words in google and found an obscure reference on where it could be.&lt;br /&gt;
&lt;br /&gt;
So, for those of you that are missing this, here is how to start the JLCA 3.0 to convert java to C# in Visual Studio .NET 2005.&lt;br /&gt;
&lt;br /&gt;
First, is it in File -&gt; Convert?&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
If not:&lt;/p&gt;
&lt;p&gt;Second, go to Tools -&gt; Customize -&gt; Commands -&gt; Rearrange Commands -&gt; Menu Bar: File -&gt; Add ... -&gt; Add Command Dialog -&gt; File -&gt; Convert -&gt; Hit Ok&lt;br /&gt;
&lt;br /&gt;
Now move the Convert... menu item to an appropiate location in the File Menu, and close the dialogs. Convert... is now where you placed it.&lt;br /&gt;
&lt;br /&gt;
Happy Converting!&lt;/p&gt;
&lt;/div&gt;</description>
      <link>https://www.21concepts.com/Blog/tabid/54/EntryId/7/Where-is-the-JCLA-3-0-in-VS-NET-2005-Where-is-the-JCLA-3-0-in-VS-NET-2005.aspx</link>
      <comments>https://www.21concepts.com/Blog/tabid/54/EntryId/7/Where-is-the-JCLA-3-0-in-VS-NET-2005-Where-is-the-JCLA-3-0-in-VS-NET-2005.aspx#Comments</comments>
      <guid isPermaLink="true">https://www.21concepts.com/Blog/tabid/54/EntryId/7/Where-is-the-JCLA-3-0-in-VS-NET-2005-Where-is-the-JCLA-3-0-in-VS-NET-2005.aspx</guid>
      <pubDate>Mon, 21 Apr 2008 14:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.21concepts.com/DesktopModules/Blog/Trackback.aspx?id=7</trackback:ping>
    </item>
    <item>
      <title>Copying Data from SQL Server 2005 to SQL Server 2000</title>
      <description>&lt;p&gt;I'm running 2005, but a client of mine is on 2000. I thought I was in for trouble, but here is the solution: &lt;a href="http://www.thescripts.com/forum/thread532998.html"&gt;&lt;font color="#1d797f"&gt;http://www.thescripts.com/forum/thread532998.html&lt;/font&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here are some hints in case you want to try on your own first:&lt;/p&gt;
&lt;p&gt;Generate the script for your database object, split it so that the foreign key run after the second step.&lt;/p&gt;
&lt;p&gt;Generate two bulk copy scripts with a select statement from sysobjects: one for exporting 2005 and one importing batch file for 2000.&lt;/p&gt;</description>
      <link>https://www.21concepts.com/Blog/tabid/54/EntryId/6/Copying-Data-from-SQL-Server-2005-to-SQL-Server-2000.aspx</link>
      <comments>https://www.21concepts.com/Blog/tabid/54/EntryId/6/Copying-Data-from-SQL-Server-2005-to-SQL-Server-2000.aspx#Comments</comments>
      <guid isPermaLink="true">https://www.21concepts.com/Blog/tabid/54/EntryId/6/Copying-Data-from-SQL-Server-2005-to-SQL-Server-2000.aspx</guid>
      <pubDate>Fri, 14 Mar 2008 20:54:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.21concepts.com/DesktopModules/Blog/Trackback.aspx?id=6</trackback:ping>
    </item>
    <item>
      <title>UMKC Advisory Board Meeting</title>
      <description>&lt;p&gt;Two years ago or so, I started recruiting computer science students from UMKC. It's only around 15 minutes or so away from Henderson Engineers (my former employer), and I figured that I could recruit some good students to help out with the development and give back a little to the community. It also has the added benefits of training potential employees who can hit the ground running, an unparalleled screening process, and keeping fresh ideas flowing in. I had great success with this, and it is a testament to the quality of study available at UMKC.&lt;/p&gt;
&lt;p&gt;I had eight UMKC students or alum working under my supervision at some point or another, and I recruited one more right before I resigned. From what I hear, he is fantastic. I have to admit it was kind of a no brainer since he had a serious chance of &lt;a href="http://www.nsa.gov/careers/students_1.cfm"&gt;&lt;font color="#1d797f"&gt;interning&lt;/font&gt;&lt;/a&gt; for the NSF, which is why I didn't hire him sooner. I really felt like it had been a win-win situation. These young men and women helped us get a lot of stuff done, and we were able to provide them with guidance, perspective and experience.&lt;/p&gt;
&lt;p&gt;The faculty at UMKC took notice. Since I had a fair share of students working for me, I was asked to sit on the UMKC computer science advisory board. I was kind of shocked that I would be asked to join something so prestigious. I kind of felt like I may have outgrown my britches, but decided I might work my way into some new ones. Also, since I was a math student and mostly independent study in computer science (save for about 2 years of formal education), I felt I had a unique perspective and might be able to shed some light on what I feel has made me successful. I accepted and hoped to do my best.&lt;/p&gt;
&lt;p&gt;The day came to go to the meeting. I got up early and headed into downtown Kansas City. I stopped by the office to check on things and get my parking pass. Once I got to the stoplight at 75&lt;sup&gt;th&lt;/sup&gt; and Frontage, an older lady got my attention and told me I needed to take a look at my tire since it was flat. I promptly pulled into McDonald's, checked it, and sure enough, it was flat. So, I had to call UMKC and tell them I couldn't make it because, of all things, my tire was flat. As a side note, the tire was ruined.&lt;/p&gt;
&lt;p&gt;Anyhow, they must have empathized with me, because I received an invitation for the next meeting. I arrived about 15 minutes late much to my chagrin. There was an accident, but really, I underestimated the morning traffic past 69 Highway in I-35 N. I found my way back easily to the room. I entered and sat down quickly in an empty seat by the door. Dr. Van de Liefvoort (affectionately known as Appie by his students) asked me to introduce myself. I did the required, "My name is…", and reported that I studied theoretical math at Kansas State and computer science at CVUT in Prague. Upon hearing Prague, Appie said something about &lt;a href="http://dobrepivo.blogspot.com/"&gt;&lt;em&gt;&lt;font color="#1d797f"&gt;pivo&lt;/font&gt;&lt;/em&gt;&lt;/a&gt; which caught me a little off guard. It's been a long time since I've encountered anyone who knows any Czech, nonetheless knows my favorite word in the entire Czech vocabulary.&lt;/p&gt;
&lt;p&gt;Once this was out of the way, I surveyed the room to see if there was anyone I knew. Not really, but there were a mix of folks from some of the largest employers to software firms founded by graduates to CSEE faculty. Then, Appie went on to explain what we were doing there. The main goal was to gather feedback and ideas from industry in the area. We could help provide insight into what we expected of graduates, and how they fit into our organizations. So, Appie started by asking what roles a CS graduate could play in an organization. He went around the room asking most of the other members before getting to me, so I had to really pick my brain to try to add anything meaningful to the list. When we suggested something, Appie also asked to classify the role from 1-5 on a &lt;a href="http://en.wikipedia.org/wiki/Likert_scale"&gt;&lt;font color="#1d797f"&gt;Likert&lt;/font&gt;&lt;/a&gt; type scale with 1 being purely IT and 5 being purely CS. Here is our result:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Pre-graduate student –5&lt;/li&gt;
    &lt;li&gt;Software developers—5&lt;/li&gt;
    &lt;li&gt;Database developers—4&lt;/li&gt;
    &lt;li&gt;Software architects—5&lt;/li&gt;
    &lt;li&gt;Build, installation and deployment developer—4&lt;/li&gt;
    &lt;li&gt;QA Analyst—3&lt;/li&gt;
    &lt;li&gt;Process analyst—2&lt;/li&gt;
    &lt;li&gt;User experience developers—3&lt;/li&gt;
    &lt;li&gt;Systems analyst—2&lt;/li&gt;
    &lt;li&gt;Technical support—1&lt;/li&gt;
    &lt;li&gt;Senior leadership (CIO, Director, etc.)—1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I tried to add something meaningful, but the list was really good at this point, so I added these two with diminishing value on return:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Business analyst—2&lt;/li&gt;
    &lt;li&gt;Project manager—3&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Clearly this might not be an exhaustive list, but I believe it should represent the vast majority of graduates. Next, Appie asked how we prepare a student for this. We talked about the skills involved in each role, day to day tasks and what would be nice if new grads knew, but we were kind of running off course without realizing it. We were talking about what types of things we could teach students so we wouldn't have to train them, and not about a well rounded education. Dr. Price and another faculty member steered us in the right direction:&lt;/p&gt;
&lt;ul style="margin-left: 38pt"&gt;
    &lt;li&gt;UMKC is a university and not a technical college.&lt;/li&gt;
    &lt;li&gt;Technical colleges train them skill sets and subject specific matter.&lt;/li&gt;
    &lt;li&gt;Universities train minds with a subject of concentration to produce academically mature minds.&lt;/li&gt;
    &lt;li&gt;Some students will study theory only in postgraduate work and need to be prepared for this. (I believe should be the main goal of a university, and I know it's very high on UMKC's list as well.)&lt;/li&gt;
    &lt;li&gt;Exposure to many subjects gives students better perspective when asked to help with something they know little about.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With that, it became clear to all in the room, that we were not answering the question, "How do I train a developer, DBA, and so on?" But, rather, "How do I prepare a mind in such a way that ensures it can quickly learn and perform well in these roles?" This is obviously a much harder question to answer. Part of the solution certainly is taking many courses in a wide variety of subjects. I believe it gives a foundation for understanding and reason. Different subjects simply exercise different parts of the brain, strengthening neuron passageways which would not be as well connected if it weren't for this type of study (from what I've read). It helps in those situations in which there isn't a direct algorithm to generate, data to store, or a proof to be had. You really need to be able to think for yourself and be able to come up with something new based on what you already know.&lt;/p&gt;
&lt;p&gt;It seems that the program may have two different general paths. One is to produce an individual immersed in theory, algorithms, computational complexities, and automata. These students will dedicate their lives to learning all they can about the science. Their goal is to research and discover new solutions and patterns for the generations of tomorrow. Much time and effort will be devoted by these people, and it really is quite an accomplishment to make it to the end.&lt;/p&gt;
&lt;p&gt;The other route to take is to become mature in the subject matter, but, in the end apply it in practice. When I say mature, anyone who has gone to college has probably had this moment. For me, it was Abstract Algebra. The professor issued his first set of problems, and I started to work them like I normally do. Look at the problem, infer the form, and search for an example with the same form in the front of the chapters. Well, let's just say there weren't any. All of a sudden I realized this is lot harder than before. I had to discover general things about the forms before I could solve the problem. At first, it was like putting pseudo code through an ANSI c compiler, but eventually I grew comfortable and efficient at it just like before. This is the maturity that I believe makes the university education worth it. It raises the threshold of comprehension.&lt;/p&gt;
&lt;p&gt;So, if we suppose we'll take at least two paths for a computer science degree: theory or applied, then we can think about how to support it. The math program at KSU was set up for something similar. It had three areas of concentration: theory, applied, and actuarial. Theory was pre-graduate mathematics, applied was general knowledge, and actuarial prepared students to pass the actuarial exams and get jobs as actuaries (which is a lot harder than it sounds). Your concentration determined what courses you would take. UMKC graduates seem to have a decent mix of both. They know things like version control, HTML, CSS and other things I have found is something you have to train a lot of other graduates on. They also seem to have had a decent survey of what it takes to do certain things from an academic point of view. However, I think there are some things that might help a little.&lt;/p&gt;
&lt;p&gt;Perhaps instead of taking Calculus III, which in my opinion can be largely extrapolated from I &amp; II (I get it, add an extra dimension and you need to integrate one more time). I would instead require a proof based Elementary Number Theory. Three reasons I like this course: it has a low barrier to entry (number theory doesn't rely on calculus), it gives a basic foundation for cryptography, and it is proof based. It seems to me that all computer science majors should be forced to take at least one proof based mathematics course. It strains the mind and forces that higher level of analytical thinking. You can't run a proof against a compiler or try it out and see if it works. You must understand the axioms and theorems to devise and know when you have a correct solution. It seems to me that this would be an invaluable tool to have with either path.&lt;/p&gt;
&lt;p&gt;Now I'm not sure what the syllabi are for these courses, so these suggestions might be off base, but operating systems, programming languages, and computer architecture seem somewhat esoteric. I don't think they shouldn't be offered, but just not required. One of the principles I use day in and day out is the concept of abstraction. In other words, I don't need to know the inner workings of something to use it effectively. I just need to know the basics of function. So, perhaps a good survey course for 2&lt;sup&gt;nd&lt;/sup&gt; or 3&lt;sup&gt;rd&lt;/sup&gt; semester would be sufficient. Along with this survey course, I would require a network theory course to teach and test many of the same concepts (semaphores, queuing, mutexes, threading, state machines, etc.) one learns in these courses and be more practical to applied science.&lt;/p&gt;
&lt;p&gt;Perhaps one of the most glaring deficiencies, in my humble opinion, is a patterns and practices course. One of the biggest reasons to teach this is because it enables students to speak the language of computer architecture. It is so much simpler if you can tell someone to use a session façade pattern instead of having to explain the whole thing. It would be great to say we're using active record instead of domain objects on this project and have everyone know what I was talking about. Fowler's &lt;em&gt;Patterns of Enterprise Application Architecture&lt;/em&gt; would definitely suffice for a good text book. Comprehension of this subject matter is of unequaled importance if you wish to rise through the ranks to software architect. This is certainly a day in and day out skill to have and once mastered enables you to take on larger responsibilities.&lt;/p&gt;
&lt;p&gt;One of the other day in and day out things we do is work on top of frameworks. Virtually nothing is built from scratch. So, it would make sense to me to have a course for building applications against a framework. It would be a good 4&lt;sup&gt;th&lt;/sup&gt; or 5&lt;sup&gt;th&lt;/sup&gt; semester course. Basically, the skill this course would teach is how to use abstraction to your advantage. Many times, this is hard for interns and new graduates to do. At HEI and at 21 Concepts, we utilize tools which take away a lot of database programming code in our applications. It was a completely foreign concept for the most part and took them some time to get used to it. I also saw this from time to time become a major stumbling block for software developers as they would like to get too far into the inner workings of the framework to the point it slowed them tremendously. To be a successful developer, you have to be able to read and infer someone else's code quickly. So, this course should be rigorous enough to ensure this is the case. &lt;a href="http://www.lhotka.net/cslanet/"&gt;&lt;font color="#1d797f"&gt;CSLA&lt;/font&gt;&lt;/a&gt; would be a good framework to build on top of. It would expose students to entities, complex inheritance hierarchies, encapsulation, generics, data transfer objects, lazy loading, separation of concerns, validation, as well as a variety of other solutions for other day to day problems. CSLA is also open source and free.&lt;/p&gt;
&lt;p&gt;One of the things I find has helped me the most in my career is perspective. I started programming when I was in the fourth grade and really never stopped. By the time I got to high school, my programming courses were mostly review and very easy. I was able to do some pretty neat screensaver applications in Turbo Pascal because I would generally finish the week's work on Friday right before it was due. Unfortunately, perspective can only really be had by practice, lots and lots of it. Architecture programs seem to do a fairly decent job of this, so I'm recommending a studio course, in which knowledge is applied and re-applied so that students get a chance to see specific programming strategies in action. This would replace software engineering and take it to a new level. Long projects which require day in and day out work is what we do in practice. It requires planning, execution and work ethic. Perhaps not all students need this, but if a lot of graduates are looking to find jobs in the industry, this wouldn't hurt. You could also tailor the program to make use of the current lines of thought from year to year. For example, one semester teach web applications, the next teach mobile. At least one of the studios (around 3 would be right) should be individual work. A lot of times, I've heard my interns complain about software engineering how one person or more couldn't accomplish the task, so they did it just to get it done.&lt;/p&gt;
&lt;p&gt;Something else that has always bothered me is that I've never taken a business course. Sure, I learn a lot via research and chatting with businessmen, but I sure wish I would have taken one when I went on to found 21 Concepts. I'm not sure if this would apply, but it would be something to think about especially if this is the destination for a large majority of graduates. It seems to me that it might be a good idea instead of a general elective or make it so that it would count for one literature, history or philosophy type elective.&lt;/p&gt;
&lt;p&gt;Anyhow, it seems there is still plenty of food for thought. It's easy to spout out all these ideas, however, it's another matter to organize them within a budget, create syllabi, find textbooks, and try to fit it all into a four year program. I applaud the UMKC staff for their effort and results. The fact that I am engaged in thinking about this is a demonstration of the passion and commitment this group has for what they do. I am honored to be chosen for the opportunity and will certainly do my best to keep up with their standard.&lt;/p&gt;</description>
      <link>https://www.21concepts.com/Blog/tabid/54/EntryId/5/UMKC-Advisory-Board-Meeting.aspx</link>
      <comments>https://www.21concepts.com/Blog/tabid/54/EntryId/5/UMKC-Advisory-Board-Meeting.aspx#Comments</comments>
      <guid isPermaLink="true">https://www.21concepts.com/Blog/tabid/54/EntryId/5/UMKC-Advisory-Board-Meeting.aspx</guid>
      <pubDate>Sun, 09 Mar 2008 21:35:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.21concepts.com/DesktopModules/Blog/Trackback.aspx?id=5</trackback:ping>
    </item>
    <item>
      <title>Better C# Property Code Snippet for Visual Studio 2005</title>
      <description>&lt;p&gt;Microsoft provides a very good extension model for Visual Studio 2005. One of my favorites is the snippet library. It helps to make short work of repetitive tasks. One that I use more than any other is the property snippet. I have created an improvement on this and these are the instructions for setting it up.&lt;/p&gt;&lt;a href=https://www.21concepts.com/Blog/tabid/54/EntryId/4/Better-C-Property-Code-Snippet-for-Visual-Studio-2005.aspx&gt;More...&lt;/a&gt;</description>
      <link>https://www.21concepts.com/Blog/tabid/54/EntryId/4/Better-C-Property-Code-Snippet-for-Visual-Studio-2005.aspx</link>
      <comments>https://www.21concepts.com/Blog/tabid/54/EntryId/4/Better-C-Property-Code-Snippet-for-Visual-Studio-2005.aspx#Comments</comments>
      <guid isPermaLink="true">https://www.21concepts.com/Blog/tabid/54/EntryId/4/Better-C-Property-Code-Snippet-for-Visual-Studio-2005.aspx</guid>
      <pubDate>Sun, 09 Mar 2008 13:34:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.21concepts.com/DesktopModules/Blog/Trackback.aspx?id=4</trackback:ping>
    </item>
    <item>
      <title>Setting Up BlogEngine.NET on GoDaddy</title>
      <description>&lt;p&gt; Step by Step instructions on how to setup BlogEngine.NET to work on GoDaddy(c) Hosting provider&lt;/p&gt;&lt;a href=https://www.21concepts.com/Blog/tabid/54/EntryId/3/Setting-Up-BlogEngine-NET-on-GoDaddy.aspx&gt;More...&lt;/a&gt;</description>
      <link>https://www.21concepts.com/Blog/tabid/54/EntryId/3/Setting-Up-BlogEngine-NET-on-GoDaddy.aspx</link>
      <comments>https://www.21concepts.com/Blog/tabid/54/EntryId/3/Setting-Up-BlogEngine-NET-on-GoDaddy.aspx#Comments</comments>
      <guid isPermaLink="true">https://www.21concepts.com/Blog/tabid/54/EntryId/3/Setting-Up-BlogEngine-NET-on-GoDaddy.aspx</guid>
      <pubDate>Mon, 11 Feb 2008 15:12:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.21concepts.com/DesktopModules/Blog/Trackback.aspx?id=3</trackback:ping>
    </item>
  </channel>
</rss>