23 February, 2007
List of .NET Languages and .NET Language Projects
C# Online.NET has a "list of .NET language and .NET language projects." The post claims to be a complete list but a quick scan tells a different story. If you know of any other .NET languages or .NET projects please add it.
14 January, 2007
New Line Cinema puts Peter Jackson on the Blacklist
SCIFI.com is reporting that Robert Shaye, head of New Line Cinema, will not let Peter Jackson direct another film for New Line Cinema.
As I understand it, Shaye is upset with Jackson because Jackson is suing New Line Cinema. The lawsuit is over an accounting issue on the movie "Fellowship of the Ring." It appears that there was some anomalies that surfaced from a partial audit that Jackson would like answered.
After reading reading the posting on SCIFI.com entitled "Shaye: New Line Blacklists Jackson", I am inclined to believe that New Line Cinema is shooting itself in the foot. Peter Jackson has proved he can make money and produce a multiple good movies. Are these not the qualities a movie studio would want in a director?
On a personal note, I am interested in seeing what Peter Jackson can and would do with the "Hobbit". I think New Line is making a big mistake not wanting to work with Jackson. I am hoping Jackson will get the chance to direct more movies and he gets the opportunity to bring the "Hobbit" to us on the big screen.
As I understand it, Shaye is upset with Jackson because Jackson is suing New Line Cinema. The lawsuit is over an accounting issue on the movie "Fellowship of the Ring." It appears that there was some anomalies that surfaced from a partial audit that Jackson would like answered.
After reading reading the posting on SCIFI.com entitled "Shaye: New Line Blacklists Jackson", I am inclined to believe that New Line Cinema is shooting itself in the foot. Peter Jackson has proved he can make money and produce a multiple good movies. Are these not the qualities a movie studio would want in a director?
On a personal note, I am interested in seeing what Peter Jackson can and would do with the "Hobbit". I think New Line is making a big mistake not wanting to work with Jackson. I am hoping Jackson will get the chance to direct more movies and he gets the opportunity to bring the "Hobbit" to us on the big screen.
03 January, 2007
Starship size comparison chart
For all the sci-fi geeks, check out this "starship size comparison chart."
What Does 200 Calories Look Like?
For the last few months, I have been working on improving my eating habits. My basic plan is to reduce the amount of food I eat and to eat less processed food. So far I have lost 15 pounds just working on changing my eating habits. Over at "wiseGEEK" there is a neat post on "What Does 200 Calories Look Like?"
09 November, 2006
Learning about Smart Client Applications
My day job is requiring me to do some Smart Client development. Since my knowledge on the topic is rather limited, I am thinking a little research is in order. My research started with the MSDN website and had lead me to putting together this quick little post. I hope others find it useful.
A Smart Client application is the combination of rich and responsive user interface with the ability to work offline. A smart client can be designed to run on a desktop PC, laptop, Tablet PC, Pocket PC and Smartphones.
A well-designed Smart Client can take advantage of a rich user experience while providing the manageability benefits of a thin client. From a developers point of view this allows me to write programs that can take advantage for the client PC, provide a rich user experience, access to wide variety of local and remote services, and application manageability of a website.
Smart Clients applications are broken down into three broad groups: Windows Smart Client applications, Office Smart Client Applications, and Mobile Smart Client applications.
Windows Smart Client Applications are typically Windows Forms. This type of application provides the familiar Windows user interface. A Windows Smart Client would run on a desktop, laptop or Tablet PC.
Office Smart Client Applications are tightly coupled with one or more Microsoft Office application.
Mobile Smart Client Applications are designed to run on smart devices like the Pocket PC and Smartphones. These types of devices has limited screen size, limited memory and limited processing power. The ability is work in a non-connected mode is paramount. Applications are developed for the .NET Compact Framework.
Smart Clients can take advantage of the local machines resources. This means the application will run in a disconnected mode. I will not have control over the data on the user’s machine and the logic in the users’ version of the application could be out of date or using old logic.
Handling data in a Smart Client Application will take considerable thought. Data is broken in two major types: read-only reference data and transient data.
Read-only reference data is data that the client application will not change. This includes static or lookup data, data to support the data validation process, and presentation data. This type of data will be updated infrequently.
Transient data will be created, updated, and deleted by the client application. One of the major challenges is handling data changes from multiple clients.
Caching data is an important component to a Smart Client. An application can get a performance boost from caching data. The caching mechanisms should be able to handle both read-only reference data and transient data. The goal is to update the client’s data at any time regardless of the data of the data. You do not want to lose any changes the transient data the user has made. See the Caching Application Block for more information.
To keep data in synch, there are two main approaches: pessimistic concurrency or optimistic concurrency. Both of the approaches are similar in concept to pessimistic and optimistic locking in the database.
DataSets are one way of helping with the managing and syncing of the data. See the Microsoft documentation on ADO.NET for more information. DataSets offer a few benefits: DataSets can be treated like a database, DataSets can be bound to user controls, and DataSets keeps track of changed data.
There are multiple ways for a Smart Client to communicate with other resources: .NET Enterprise Services, .NET remoting, Message Queuing (MSMQ), and web services.
.NET Enterprise services provide access to COM+ service infrastructure. .NET remoting provides remote procedure call (RPC) mechanism to .NET components. MSMQ provides message-base access. Web services provide an industry standard was of communicating.
There are two major architectural approaches: data-centric and service-oriented. A data-centric approach utilizes a local installed database. The database handles the synchronization process, conflict resolution, and propagating the changes. The service-oriented approach stores data in messages and arranging the messages. Once the connection has been reestablished the messages to the server for processing.
There are seven main considerations for security: Authentication, Authorization, Data Validation, Protecting Sensitive Data, Auditing and Logging, Exception Management, and Change and Configuration Management.
Authentication uniquely identified the user of the client application. Authorization determines what resources the user can access. Data validation ensures on valid data is accepted by the application. Protecting sensitive data provides methods for storing and transmitting data. Auditing and logging keeps track of events and user action. Exception management ensures errors are well handled. Change and configuration management assists in tracking configuration changes.
There are multiple options of deploying a Smart Client: no-touch deployment, no-touch deployment with and application update stub, running code from a file share, xcopy and Windows installer packages.
No-touch deployment requires putting the application on a web server and sharing the link. No-touch deployment with an application update stub method follows the no-touch deployment process with the addition downloading the rest of the application to the local disk. Running code from a share requires a file share that all the users can access. Xcopy is to copy the files directly to the client. Windows installer package method is that traditional way most people think of deploying an application.
Deploying Smart Client updates also have multiple options: No-touch deployment, automatic updates, updates form a file share, xcopy updates and Windows installer package deployment.
No-touch deployment updates are simply copying the new files to a web server, when your application starts is checks the web server for updates. Automatic updates involve building the updating infrastructure in the Smart Client application. Updates from a file share involve replacing the old code on the file share with the new code. Xcopy updates are also really simple. Just copy the new files. Windows installer updates are to create an installer package with the new code.
Smart Client applications are part of the wave of the future. Smart Clients give the user a rich experience while give administrators and vendors a way of updating application with fewer headaches. I look forward to learning more.
A Smart Client application is the combination of rich and responsive user interface with the ability to work offline. A smart client can be designed to run on a desktop PC, laptop, Tablet PC, Pocket PC and Smartphones.
A well-designed Smart Client can take advantage of a rich user experience while providing the manageability benefits of a thin client. From a developers point of view this allows me to write programs that can take advantage for the client PC, provide a rich user experience, access to wide variety of local and remote services, and application manageability of a website.
Smart Clients applications are broken down into three broad groups: Windows Smart Client applications, Office Smart Client Applications, and Mobile Smart Client applications.
Windows Smart Client Applications are typically Windows Forms. This type of application provides the familiar Windows user interface. A Windows Smart Client would run on a desktop, laptop or Tablet PC.
Office Smart Client Applications are tightly coupled with one or more Microsoft Office application.
Mobile Smart Client Applications are designed to run on smart devices like the Pocket PC and Smartphones. These types of devices has limited screen size, limited memory and limited processing power. The ability is work in a non-connected mode is paramount. Applications are developed for the .NET Compact Framework.
Smart Clients can take advantage of the local machines resources. This means the application will run in a disconnected mode. I will not have control over the data on the user’s machine and the logic in the users’ version of the application could be out of date or using old logic.
Handling data in a Smart Client Application will take considerable thought. Data is broken in two major types: read-only reference data and transient data.
Read-only reference data is data that the client application will not change. This includes static or lookup data, data to support the data validation process, and presentation data. This type of data will be updated infrequently.
Transient data will be created, updated, and deleted by the client application. One of the major challenges is handling data changes from multiple clients.
Caching data is an important component to a Smart Client. An application can get a performance boost from caching data. The caching mechanisms should be able to handle both read-only reference data and transient data. The goal is to update the client’s data at any time regardless of the data of the data. You do not want to lose any changes the transient data the user has made. See the Caching Application Block for more information.
To keep data in synch, there are two main approaches: pessimistic concurrency or optimistic concurrency. Both of the approaches are similar in concept to pessimistic and optimistic locking in the database.
DataSets are one way of helping with the managing and syncing of the data. See the Microsoft documentation on ADO.NET for more information. DataSets offer a few benefits: DataSets can be treated like a database, DataSets can be bound to user controls, and DataSets keeps track of changed data.
There are multiple ways for a Smart Client to communicate with other resources: .NET Enterprise Services, .NET remoting, Message Queuing (MSMQ), and web services.
.NET Enterprise services provide access to COM+ service infrastructure. .NET remoting provides remote procedure call (RPC) mechanism to .NET components. MSMQ provides message-base access. Web services provide an industry standard was of communicating.
There are two major architectural approaches: data-centric and service-oriented. A data-centric approach utilizes a local installed database. The database handles the synchronization process, conflict resolution, and propagating the changes. The service-oriented approach stores data in messages and arranging the messages. Once the connection has been reestablished the messages to the server for processing.
There are seven main considerations for security: Authentication, Authorization, Data Validation, Protecting Sensitive Data, Auditing and Logging, Exception Management, and Change and Configuration Management.
Authentication uniquely identified the user of the client application. Authorization determines what resources the user can access. Data validation ensures on valid data is accepted by the application. Protecting sensitive data provides methods for storing and transmitting data. Auditing and logging keeps track of events and user action. Exception management ensures errors are well handled. Change and configuration management assists in tracking configuration changes.
There are multiple options of deploying a Smart Client: no-touch deployment, no-touch deployment with and application update stub, running code from a file share, xcopy and Windows installer packages.
No-touch deployment requires putting the application on a web server and sharing the link. No-touch deployment with an application update stub method follows the no-touch deployment process with the addition downloading the rest of the application to the local disk. Running code from a share requires a file share that all the users can access. Xcopy is to copy the files directly to the client. Windows installer package method is that traditional way most people think of deploying an application.
Deploying Smart Client updates also have multiple options: No-touch deployment, automatic updates, updates form a file share, xcopy updates and Windows installer package deployment.
No-touch deployment updates are simply copying the new files to a web server, when your application starts is checks the web server for updates. Automatic updates involve building the updating infrastructure in the Smart Client application. Updates from a file share involve replacing the old code on the file share with the new code. Xcopy updates are also really simple. Just copy the new files. Windows installer updates are to create an installer package with the new code.
Smart Client applications are part of the wave of the future. Smart Clients give the user a rich experience while give administrators and vendors a way of updating application with fewer headaches. I look forward to learning more.
07 November, 2006
Book Review: Code Complete 2nd Edition
Yesterday, I finished Steve McConnell's book "Code Complete, Second Edition." As a self taught developer, I am always looking for books, magazine articles and web posts that can help me improve my craft. This book has become an important part of my library.
One of my favorite parts of the book is the checklists at the end of sections. I have used the "Using Conditionals" Checklist multiple times in my work. The checklist has prompted me to refactor my code and to think about the code I write differently. The code looks cleaner, is more readily understood by myself and other developers.
Another benefit I have gotten out of the book was better ways to communicate with non-programmers about technical topics. I have used several of the items in the book with end users. The results have been positive. I was able to more clearly present technical issues to the end users. I have been able to develop a better working relationship with the end user. These same points have also caused me to think about my end users in a different light.
This book has already become a favorite of mine and I have a feeling I will referencing this book frequently in the future.
If you are a programmer, a developer, a coder, an architect or a manager of technical people this book should be in your library.
Book specs:
Paperback: 960 pages
Publisher: Microsoft Press; 2nd edition (June 2004)
Language: English
ISBN: 0735619670
One of my favorite parts of the book is the checklists at the end of sections. I have used the "Using Conditionals" Checklist multiple times in my work. The checklist has prompted me to refactor my code and to think about the code I write differently. The code looks cleaner, is more readily understood by myself and other developers.
Another benefit I have gotten out of the book was better ways to communicate with non-programmers about technical topics. I have used several of the items in the book with end users. The results have been positive. I was able to more clearly present technical issues to the end users. I have been able to develop a better working relationship with the end user. These same points have also caused me to think about my end users in a different light.
This book has already become a favorite of mine and I have a feeling I will referencing this book frequently in the future.
If you are a programmer, a developer, a coder, an architect or a manager of technical people this book should be in your library.
Book specs:
Paperback: 960 pages
Publisher: Microsoft Press; 2nd edition (June 2004)
Language: English
ISBN: 0735619670
One Reason Why I Don't Read the St. Louis Post-Dispatch
It is just a little past 8:00 PM Central time on Election Day. I have been trying for the last 10 minutes to find election results from the St. Louis area. I made a major mistake, I assumed the website for the St. Louis Post-Dispatch (www.stltoday.com) would have the numbers. Just to have a sanity checked, I checked out a couple of news websites. With in a 2 minutes, I was able to find information on the elections are shaping up.
I am so glad that I no longer waste my money on a subscription to a newspaper that can't do its job.
I am so glad that I no longer waste my money on a subscription to a newspaper that can't do its job.
Subscribe to:
Posts (Atom)
Challenging myself to learn something new
I have recently set a big challenge for myself. I want to know about Machine Learning . To add to the challenge, I am trying out usin...
-
I am always looking for different programming languages. I believe that a programmer can not have to many langauges in their toolbox. Today...
-
For the last few days I have read a number of stories about shark attacks. It appears that the same story is being replayed. National Geogr...
-
I have recently set a big challenge for myself. I want to know about Machine Learning . To add to the challenge, I am trying out usin...