Of course there already a kick ass simulator called Orbiter Space Simulator for free at http://www.orbitersim.com./ If NASA had any smarts they would contact the guy who built that and try to save themselves some $$$.
>VB is badly OO and confuses the language and the library too much.
By what definition? Because it doesn't have semi-colons? C# and VB.NET are 95% similar in how they handle the framework, memory, and setting up object. The big C# difference is how it handles unmanaged code. The big VB difference is that it a lot easier to sink events with VB syntax (via the handles keyword)
If you say that C# is badly OO then you have a valid argument.
> * VB is badly OO and OO is a bad paradigm to first learn to program in (and those two wrongs don't make a right).
OO is a bad paradigm to learn from but on the other hand you can write to console with any.NET langauge (VB, C#) so that usually a good way to proceed. However printing and graphics are a magnitude harder in.NET and earlier version of BASIC and that is not so good.
> * VB ties you down to using Windows, and Windows is a bad environment to learn to program in.
MonoBASIC isn't done yet but with Mono this arguement doesn't hold water.
> * VB does memory management the wrong way from a learning perspective. Rather than > specifying allocators and destructors when neccessary you simply let objects fall out of > scope.
Cough Cough, Ruby, Cough. Like the trend isn't for modern langauges to manage that for you. But to be fair non-derministic finalization in.NET is a step back. But it is nice to get away from COM's reference counting.
> * VB does not have first-class functions and cannot fake them: function manipulation > and functional paradigms (whether direct or through hacks to fake it like function >pointers or true reflection) is crucial to learning to program well and should be >started as early as possible.
Delegates, anonymous functions, need to read up on the latest. Again to be fair Lisp the originator of this stuff still does it way better than anything else.
> * VB teaches bad, verbose naming and programming habits
Wow, that is simply amazing, a langauge that has structured language elements at the least just magically teaches bad programming. But be the lack of those semi-colons. Damn I feel for the assembly langauge guys they don't have even what GW-BASIC has. They must have some really bad programs.
Then what do I know, I just been programming 15 years, wrote a complete CAD/CAM machine controller in Visual Basic 6, and a complete simulation of the Mercury and Gemini space capsules in C++. I guess been just a bad programmer.
In serious, this attitude is why Visual BASIC 6 has been so royally screwed by Microsoft. Someone BASIC is magically inferior. Deal is this if you are a company or an organization in charge of a programming langauge you need to give an upgrade path that doesn't require your users to rewrite their applications to move on. Most applications don't live in Internet time, they need to be supported over a decade or more. The applications you read about in the news are just to the tip of the iceberg. For every Microsoft World there are dozens of VARs selling specialized software to hospitals, lawyers, factories, etc. Every time a "purist" goes and mucks around with a langauge it winds up costing these guys a ton of money.
Sometimes there is some change involved like going from DOS to Windows. But it is better manage like the transition between QuickBASIC and VB 1, than how it is being done with VB6 and VB.NET
The patents cited in the ms article are all for the way FAT-32 supports long file names. Although most appeared to filed AFTER the release of Win 95 and FAT-32. Can anybody confirm this?
So older versions of FAT don't appear to effected but anything that uses FAT-32 does.
The danger of the shuttle was it was mounted to the side of the booster. It had no way of saving the astronauts during much of the ascent if something went wrong that threatened or caused a structural breakup.
But for getting things into orbit for human space flight it is the most verstile craft ever built. This is because of it's payload bay and the weight it could loft into orbit.
Now granted that you could send more with a heavy lift rocket but what the shuttle did was allow you configure a spacecraft with humans onboard for a nearly infinite variety of missions.
The shuttle was and is a great means of putting a temporay space station into orbit or bringing up the pieces of a much larger one that needs human presence.
There is nothing unsafe about re-entry unless something hits you on the way up that compromises your heat shield. The shuttle has huge flexibility in where it can come down because of the wings. But if the air force wasn't involved the wings could have been made smaller scarificing cross-range (left to right travel). Perhaps then they could have mounted it on the top of a booster rather than on the side.
The apollo style replacement will do one thing well and that is move people from earth to orbit and back again. But it won't do all the shuttle can do.
The best bet in my options to have a capsule based system for moving people, a heavy lift rocket devoted to getting stuff into orbit, and perhaps a a 2 man or unmanned shuttle that can dock with a station or the capsule for missions that require something to be brought back.
Rob Conley
Shameless plug You want try some of the possibilities fly Orbiter Sim. http://www.orbitersim.com http://www.alltel .net/~estar/orbiter.html
While the Microsofts, Corels, and Adobes grab all the headlines most of the work in software is not done in those areas but in what is called vertical markets.
There are a vast amount of industries in the US and around the world that benifit from the use of tailored software for accounting, data processing , and machine control. Medical, Tool & Die, Kitchen Equipment, and the list goes on. Even Beer distributors can benifit has many states have arcane reporting requirement that lend themselves to computerization.
Now many these have gone through their first wave of computers but are now ripe for a new generation. For example in my area I am working with a guy selling beer distributor programs. Our competition is still using software based around a DOS version of Clipper. I am not sure why he hasn't upgraded but it has given me and my partner an opportunity to compete and make some money.
However the caveat is that you need to know the industry and their needs. Because each industry needs is unique it is not easy to transfer specific information from one to another. However if you are able to get dealing with a vertical market it can provide a nice stable income for a long time whether you are working for a company or for yourself.
I work for a company that makes metal cutting machines (http://www.plasma-automation.com) . It been to nearly state of the union and it is unbelieveable the diversity of stuff people make and do. This is all from cutting patterns out of flat metal. I can't imagine what it would be going into the tool & die industry which we don't touch.
Software isn't dead. It has many areas still waiting to be updated with the latest or new areas that could use computerization. Many solutions exist only on windows and not on linux and so on.
>What ever happened to truly *free* sw like >Public Domain? Hell, even the BSD license is a >hell of a lot free-er (IMO) than *GPL. Why do I >have to *force* people to not use my code in >certain ways?
It depends your intent. For example I design rocket models using Orbiter Sim. I release all the my source under the BSD liscense. I am enough of a libertarian that I find forcing people to do what I say repugent.
However there is a community of users that run virtual space agency that use orbiter and my models (I create mostly historical rockets). For some reason they like to keep everything tight within themselves. I find them very cliquish (sp?).
So because I release under the BSD those agencie are not required to release their source to their modifications of my modules. And there are few other module writer that used pieces of my code to implement important aspect of a flight plan (re-entry flames, parachutes, etc) and don't release their source.
This really gets under my skin. But I still find it very repugent to force people to open their code under a GPL license. This for me outways my use of the GPL license.
My solution is that I feel that I am a good enough programmer with enough people working with me that I can reverse engineer anything that I find in a closed source version of my module. Also I and my compatriots can make a better version to boot.
However if other people want too use GPL then they have the right to do so. I think the strength of the community relies on the cooperation of working on a project with the source code open to all. If somebody or some company take a version of that source and close it doesn't matter because the bazaar will beat the cathedral.
But hey if folks feel they need the copyleft that the GPL provides then they have the perfect right to do it. And I have to perfect right NOT to use it if the GPL is not right to me. But I do use in a project that is dependent on it then I need to abide by the terms of the GPL.
Rob Conley http://www.alltel.net/~estar/orbiter.html http://www.orbitersim.com
Algorithms, we all use them to search binary trees and countless other tasks. But guess what Algorithms are procedural. Sure can use them in methods of objects but they don't help in design objects to work together in completing a task.
Let me repeat because it is important
They don't help us in designing objects to work together in completing a task.
But there is something that does help us. It is called patterns, and the best of which are in Design Patterns.
For example you want encapsulated commands that have undo/redo capability. You can be designing a web browser, a word processor, or a CAD program. If you want the capability Design Patterns will tell you the best practice to achieve that goal. Just like Knuth told use the best algorithm to search binary trees.
I am a designer for a CAD/CAM program that is used to control and make parts for metal cutting machines. The first thing you will need to realize that these types of application are considered vertical market applications. Everyone has a use for a word processor but not everyone has a use for one this programs but when you do you need it bad. When you design the architecture and the UI you need to keep flexibility in mind. This is not so much for the user but for you so you can met the needs of a SPECIFIC customer. It is my experience that customers really want the vertical market software they buy to aid their current way of doing things, not to change what they are doing to meet the needs of the software.
A specific industry has a lot of common needs but there is enough variation that if you don't design flexibility in mind it will drive you crazy with tech support and lose buyers who can't get the software to do what they exactly want.
There two things you need to consider for such programs. The architecture and the UI.
I following many of the standard advice on designing UIs but here are a couple that I try to keep in my mind.
1) Keep the focus of the screen in the center of the screen. Try to add widgets to the top AND bottom to keep the screen's focus in the center. For example there was a version of my software where the sheet of metal was bumped down so that it's center was a lot further down then the center of the screen. This is bad. The next version I redesigned that screen so that the widgets were equally distributed between the top and bottom. This way the user's eyes when they move to the monitor has the sheet exactly where it is needed.
2) Work-flow, you should provide either a means via keyboard or mouse to accomplish common tasks. You can do one, the other, or both. However what you shouldn't do is mix the two. If the task has keyboard components you should try to enable the user to complete the task without moving from the keyboard. The same for tasks involve the mouse. Tasks that involve a lot of moving from mouse to keyboard leave user unhappy.
Try to have a keyboard way and mouse way to do all tasks. Sometimes it isn't possible but if it is do it.
3)Softkeys, toolbars are nice it is my experience that users respond better to text then icons. User like big fat buttons on the screen. What I come up with the idea of softkeys. If you look across the top of your keyboard it probably has 12 function key arranged in groups of 4. What I do is have eight buttons on the top or bottom of my screen split into two groups of four. The first four correspond to F1 to F4 and the second four to F5 to F8. I use F9 to F12 for special actions. F9 is generally used for "flipping" the softkeys. This give me room for 16 commands per softkey group.
On the more complicated screen I have multiple groups of softkeys. For example Zoom, Cut, Edit Path, Sketch, Rotate, etc. Each having up to 16 commands. I also provide a way to switch between the groups.
The advantage of this that the user can see exactly what they can do in front of them. They can use the mouse to click on the command or use the corresponding function keys. While I do use some toolbar buttons most of commands are accessed through the softkeys.
4) Make important tasks very easily accessible. Use single letter or buttons to tie into the task. For example Edit Cutting Parameter is a command often used in my software. So I tie it into not only a softkey but a toolbar button accessible no matter what softkey group you are in.
Architecture.
First get Design Patterns and Refactoring Software, regardless of what langauge you use they will be very useful.
The goal of Architecture is to have flexibility to meet customer needs without introducing a lot of bugs into your software because you changed something. I am not sure what to call what I use but it builds heavily on Design Patterns.
Application Structure (I use an idiom of Jobs comprised of sheets with parts, with a separate Shop Standard that is refered too by all Jobs, and a list of installable libraries ).
UI Interface (nothing but Interfaces)
Commands (these use the command pattern to implement ) Installable Libraries (like reports, part creation, file types, etc)
UI Implementation (implements the UI interfaces with methods accessing commands and libraries).
The reason for UI Interface -> Commands -> UI Implementation is so that commands that just manipulate the UI (switch screens) can be written. The actual implementaion is last because the implementation needs to know what commands are available to assign to various screens and widgets.
I just went into partnership with a guy selling id tracking software. Basically in Pennslyvania the Liquour control board is real strict and hits bars that allowed underage drinkers in with very heavy fines.
The lisence scanning allows the estabilshment to show a good faith effort in checking id by maintaining a list of every one they scanned.
In addition, in PA, if you buy over a certain amount you have to sign a waiver to the seller telling them you are not re-selling the stuff. The program also prints the waiver with everything filled out.
The scanner is about $150 to $250 dollars and plugs in-line with your keyboard. Any magnetic strip card can be read by the scanner. It "types" the data into your computer. You can fire up notepad (or any text editor) and swipe and see what the strip holds.
My feeling on the whole matter is that problem is not with scanners but with a) driver's lisences and b) liquour and cigarettes laws. If you have those types of laws then you need ID. If the state feels that people are ignoring the law then they will require estabilshments to show that they check.
Get rid of or change the law you get rid of the problem. Keep the laws then you need IDs to enforce it.
Story not complete
on
.NETly News
·
· Score: 5, Informative
.NET is many things and many people are confused by what.NET exactly refers too. In the context of this story.NET is refering to the compilers, and libraries that make up Visual Studio.NET.
VB.NET, & C# are both geared toward using the CLR and.NET Framework. Visual C++.NET can use the CLR and.NET Framework but, unlike VB, you can work with Visual C++ like you could in previous versions and ignore the CLR and.NET Framework.
So what is the security error reported? This is the detail as reported by Cigital.
The protection afforded by the new feature allows developers to continue to use vulnerable string functions such as strcpy() as usual and still be "protected" against some forms of stack smashing. The new feature is closely based on an invention of Crispin Cowan's called StackGuard and is meant to be used when creating standard native code (not the new.NET intermediate language, referred to as "managed code").
This is a problem with Microsoft's Version 7 C++ compiler not with the CLR and.NET Framework.
The article on CNN and MSNBC both sound like the stories told by the American astronaunts in Burrough's book Dragonfly.
The problem seems that ground control (russian and US) doesn't seem to be able to come up with realistic timelines.
reasons in Dragonfly why it was difficult.
a)what is up there doesn't match the ground inventory
b) the task was not simulated properly so the estimate was off.
c) the crew is isolated and if they using russian ground control they only have comms for 10 minutes out of every 90 minute orbit. So the normal back and forth conversation between a astronaunt and ground control wasn't present on Mir. It was more like 80 minutes later 80 minutes later
This goes on and on for days.
Solution:
Experience and communication. The US has a lot of experience training for short-term mission. Now we need to learn what to do for long-term mission. As long as they don't try to critize the astronaunts we should get the kinks worked. The good news is that next month US Ground Control will take over the station.
Of course there already a kick ass simulator called Orbiter Space Simulator for free at http://www.orbitersim.com./ If NASA had any smarts they would contact the guy who built that and try to save themselves some $$$.
The earth isn't round it is a oblate spheroid. Get with the times.
>VB is badly OO and confuses the language and the library too much.
.NET langauge (VB, C#) so that usually a good way to proceed. However printing and graphics are a magnitude harder in .NET and earlier version of BASIC and that is not so good.
.NET is a step back. But it is nice to get away from COM's reference counting.
By what definition? Because it doesn't have semi-colons? C# and VB.NET are 95% similar in how they handle the framework, memory, and setting up object. The big C# difference is how it handles unmanaged code. The big VB difference is that it a lot easier to sink events with VB syntax (via the handles keyword)
If you say that C# is badly OO then you have a valid argument.
> * VB is badly OO and OO is a bad paradigm to first learn to program in (and those two wrongs don't make a right).
OO is a bad paradigm to learn from but on the other hand you can write to console with any
> * VB ties you down to using Windows, and Windows is a bad environment to learn to program in.
MonoBASIC isn't done yet but with Mono this arguement doesn't hold water.
> * VB does memory management the wrong way from a learning perspective. Rather than > specifying allocators and destructors when neccessary you simply let objects fall out of > scope.
Cough Cough, Ruby, Cough. Like the trend isn't for modern langauges to manage that for you. But to be fair non-derministic finalization in
> * VB does not have first-class functions and cannot fake them: function manipulation > and functional paradigms (whether direct or through hacks to fake it like function >pointers or true reflection) is crucial to learning to program well and should be >started as early as possible.
Delegates, anonymous functions, need to read up on the latest. Again to be fair Lisp the originator of this stuff still does it way better than anything else.
> * VB teaches bad, verbose naming and programming habits
Wow, that is simply amazing, a langauge that has structured language elements at the least just magically teaches bad programming. But be the lack of those semi-colons. Damn I feel for the assembly langauge guys they don't have even what GW-BASIC has. They must have some really bad programs.
Then what do I know, I just been programming 15 years, wrote a complete CAD/CAM machine controller in Visual Basic 6, and a complete simulation of the Mercury and Gemini space capsules in C++. I guess been just a bad programmer.
In serious, this attitude is why Visual BASIC 6 has been so royally screwed by Microsoft. Someone BASIC is magically inferior. Deal is this if you are a company or an organization in charge of a programming langauge you need to give an upgrade path that doesn't require your users to rewrite their applications to move on. Most applications don't live in Internet time, they need to be supported over a decade or more. The applications you read about in the news are just to the tip of the iceberg. For every Microsoft World there are dozens of VARs selling specialized software to hospitals, lawyers, factories, etc. Every time a "purist" goes and mucks around with a langauge it winds up costing these guys a ton of money.
Sometimes there is some change involved like going from DOS to Windows. But it is better manage like the transition between QuickBASIC and VB 1, than how it is being done with VB6 and VB.NET
You can download the free Orbiter Sim at
http://www.orbitersim.com
and the SS1 add-on at
http://www.orbithangar.com/download.cfm?ID=466
Enjoy
The patents cited in the ms article are all for the way FAT-32 supports long file names. Although most appeared to filed AFTER the release of Win 95 and FAT-32. Can anybody confirm this?
So older versions of FAT don't appear to effected but anything that uses FAT-32 does.
Rob Conley
The danger of the shuttle was it was mounted to the side of the booster. It had no way of saving the astronauts during much of the ascent if something went wrong that threatened or caused a structural breakup.
l .net/~estar/orbiter.html
But for getting things into orbit for human space flight it is the most verstile craft ever built. This is because of it's payload bay and the weight it could loft into orbit.
Now granted that you could send more with a heavy lift rocket but what the shuttle did was allow you configure a spacecraft with humans onboard for a nearly infinite variety of missions.
The shuttle was and is a great means of putting a temporay space station into orbit or bringing up the pieces of a much larger one that needs human presence.
There is nothing unsafe about re-entry unless something hits you on the way up that compromises your heat shield. The shuttle has huge flexibility in where it can come down because of the wings. But if the air force wasn't involved the wings could have been made smaller scarificing cross-range (left to right travel). Perhaps then they could have mounted it on the top of a booster rather than on the side.
The apollo style replacement will do one thing well and that is move people from earth to orbit and back again. But it won't do all the shuttle can do.
The best bet in my options to have a capsule based system for moving people, a heavy lift rocket devoted to getting stuff into orbit, and perhaps a a 2 man or unmanned shuttle that can dock with a station or the capsule for missions that require something to be brought back.
Rob Conley
Shameless plug
You want try some of the possibilities fly Orbiter Sim.
http://www.orbitersim.com
http://www.allte
If MSNBC cites X-Plane as an example of a indie game
;-)
then I have to plug Orbiter Sim. at http://www.orbitersim.com
and my own Mercury, Gemini add-ons at http://sourceforge.net/projects/mscorbaddon/
They even come with the original manuals.
Enjoy
Rob Conley
While the Microsofts, Corels, and Adobes grab all the headlines most of the work in software is not done in those areas but in what is called vertical markets.
There are a vast amount of industries in the US and around the world that benifit from the use of tailored software for accounting, data processing , and machine control. Medical, Tool & Die, Kitchen Equipment, and the list goes on. Even Beer distributors can benifit has many states have arcane reporting requirement that lend themselves to computerization.
Now many these have gone through their first wave of computers but are now ripe for a new generation. For example in my area I am working with a guy selling beer distributor programs. Our competition is still using software based around a DOS version of Clipper. I am not sure why he hasn't upgraded but it has given me and my partner an opportunity to compete and make some money.
However the caveat is that you need to know the industry and their needs. Because each industry needs is unique it is not easy to transfer specific information from one to another. However if you are able to get dealing with a vertical market it can provide a nice stable income for a long time whether you are working for a company or for yourself.
I work for a company that makes metal cutting machines (http://www.plasma-automation.com) . It been to nearly state of the union and it is unbelieveable the diversity of stuff people make and do. This is all from cutting patterns out of flat metal. I can't imagine what it would be going into the tool & die industry which we don't touch.
Software isn't dead. It has many areas still waiting to be updated with the latest or new areas that could use computerization. Many solutions exist only on windows and not on linux and so on.
>What ever happened to truly *free* sw like >Public Domain? Hell, even the BSD license is a >hell of a lot free-er (IMO) than *GPL. Why do I >have to *force* people to not use my code in >certain ways?
It depends your intent. For example I design rocket models using Orbiter Sim. I release all the my source under the BSD liscense. I am enough of a libertarian that I find forcing people to do what I say repugent.
However there is a community of users that run virtual space agency that use orbiter and my models (I create mostly historical rockets). For some reason they like to keep everything tight within themselves. I find them very cliquish (sp?).
So because I release under the BSD those agencie are not required to release their source to their modifications of my modules. And there are few other module writer that used pieces of my code to implement important aspect of a flight plan (re-entry flames, parachutes, etc) and don't release their source.
This really gets under my skin. But I still find it very repugent to force people to open their code under a GPL license. This for me outways my use of the GPL license.
My solution is that I feel that I am a good enough programmer with enough people working with me that I can reverse engineer anything that I find in a closed source version of my module. Also I and my compatriots can make a better version to boot.
However if other people want too use GPL then they have the right to do so. I think the strength of the community relies on the cooperation of working on a project with the source code open to all. If somebody or some company take a version of that source and close it doesn't matter because the bazaar will beat the cathedral.
But hey if folks feel they need the copyleft that the GPL provides then they have the perfect right to do it. And I have to perfect right NOT to use it if the GPL is not right to me. But I do use in a project that is dependent on it then I need to abide by the terms of the GPL.
Rob Conley
http://www.alltel.net/~estar/orbiter.html
http://www.orbitersim.com
Algorithms, we all use them to search binary trees and countless other tasks. But guess what Algorithms are procedural. Sure can use them in methods of objects but they don't help in design objects to work together in completing a task.
Let me repeat because it is important
They don't help us in designing objects to work together in completing a task.
But there is something that does help us. It is called patterns, and the best of which are in Design Patterns.
For example you want encapsulated commands that have undo/redo capability. You can be designing a web browser, a word processor, or a CAD program. If you want the capability Design Patterns will tell you the best practice to achieve that goal. Just like Knuth told use the best algorithm to search binary trees.
I am a designer for a CAD/CAM program that is used to control and make parts for metal cutting machines. The first thing you will need to realize that these types of application are considered vertical market applications.
Everyone has a use for a word processor but not everyone has a use for one this programs but when you do you need it bad. When you design the architecture and the UI you need to keep flexibility in mind. This is not so much for the user but for you so you can met the needs of a SPECIFIC customer. It is my experience that customers really want the vertical market software they buy to aid their current way of doing things, not to change what they are doing to meet the needs of the software.
A specific industry has a lot of common needs but there is enough variation that if you don't design flexibility in mind it will drive you crazy with tech support and lose buyers who can't get the software to do what they exactly want.
There two things you need to consider for such programs. The architecture and the UI.
I following many of the standard advice on designing UIs but here are a couple that I try to keep in my mind.
1) Keep the focus of the screen in the center of the screen. Try to add widgets to the top AND bottom to keep the screen's focus in the center. For example there was a version of my software where the sheet of metal was bumped down so that it's center was a lot further down then the center of the screen. This is bad. The next version I redesigned that screen so that the widgets were equally distributed between the top and bottom. This way the user's eyes when they move to the monitor has the sheet exactly where it is needed.
2) Work-flow, you should provide either a means via keyboard or mouse to accomplish common tasks. You can do one, the other, or both. However what you shouldn't do is mix the two. If the task has keyboard components you should try to enable the user to complete the task without moving from the keyboard. The same for tasks involve the mouse. Tasks that involve a lot of moving from mouse to keyboard leave user unhappy.
Try to have a keyboard way and mouse way to do all tasks. Sometimes it isn't possible but if it is do it.
3)Softkeys, toolbars are nice it is my experience that users respond better to text then icons. User like big fat buttons on the screen. What I come up with the idea of softkeys. If you look across the top of your keyboard it probably has 12 function key arranged in groups of 4. What I do is have eight buttons on the top or bottom of my screen split into two groups of four. The first four correspond to F1 to F4 and the second four to F5 to F8. I use F9 to F12 for special actions. F9 is generally used for "flipping" the softkeys. This give me room for 16 commands per softkey group.
On the more complicated screen I have multiple groups of softkeys. For example Zoom, Cut, Edit Path, Sketch, Rotate, etc. Each having up to 16 commands. I also provide a way to switch between the groups.
The advantage of this that the user can see exactly what they can do in front of them. They can use the mouse to click on the command or use the corresponding function keys. While I do use some toolbar buttons most of commands are accessed through the softkeys.
4) Make important tasks very easily accessible. Use single letter or buttons to tie into the task. For example Edit Cutting Parameter is a command often used in my software. So I tie it into not only a softkey but a toolbar button accessible no matter what softkey group you are in.
Architecture.
First get Design Patterns and Refactoring Software, regardless of what langauge you use they will be very useful.
The goal of Architecture is to have flexibility to meet customer needs without introducing a lot of bugs into your software because you changed something. I am not sure what to call what I use but it builds heavily on Design Patterns.
Data Structures
Application Structure
UI Interface
Commands/Installable Libraries
UI Implementation
Graphic Framework
Data Structures (Sheets, parts, etc)
Application Structure (I use an idiom of Jobs comprised of sheets with parts, with a separate Shop Standard that is refered too by all Jobs, and a list of installable libraries ).
UI Interface (nothing but Interfaces)
Commands (these use the command pattern to implement )
Installable Libraries (like reports, part creation, file types, etc)
UI Implementation (implements the UI interfaces with methods accessing commands and libraries).
Graphic Framework (Delphi, Qt, KDE, Gnome, VB Forms, etc).
The reason for UI Interface -> Commands -> UI Implementation is so that commands that just manipulate the UI (switch screens) can be written. The actual implementaion is last because the implementation needs to know what commands are available to assign to various screens and widgets.
I hope this helps
I just went into partnership with a guy selling id tracking software. Basically in Pennslyvania the Liquour control board is real strict and hits bars that allowed underage drinkers in with very heavy fines.
The lisence scanning allows the estabilshment to show a good faith effort in checking id by maintaining a list of every one they scanned.
In addition, in PA, if you buy over a certain amount you have to sign a waiver to the seller telling them you are not re-selling the stuff. The program also prints the waiver with everything filled out.
The scanner is about $150 to $250 dollars and plugs in-line with your keyboard. Any magnetic strip card can be read by the scanner. It "types" the data into your computer. You can fire up notepad (or any text editor) and swipe and see what the strip holds.
My feeling on the whole matter is that problem is not with scanners but with a) driver's lisences and b) liquour and cigarettes laws. If you have those types of laws then you need ID. If the state feels that people are ignoring the law then they will require estabilshments to show that they check.
Get rid of or change the law you get rid of the problem. Keep the laws then you need IDs to enforce it.
.NET is many things and many people are confused by what .NET exactly refers too. In the context of this story .NET is refering to the compilers, and libraries that make up Visual Studio.NET.
VB.NET, & C# are both geared toward using the CLR and .NET Framework. Visual C++.NET can use the CLR and .NET Framework but, unlike VB, you can work with Visual C++ like you could in previous versions and ignore the CLR and .NET Framework.
So what is the security error reported? This is the detail as reported by Cigital.
The protection afforded by the new feature allows developers to continue to use vulnerable string functions such as strcpy() as usual and still be "protected" against some forms of stack smashing. The new feature is closely based on an invention of Crispin Cowan's called StackGuard and is meant to be used when creating standard native code (not the new .NET intermediate language, referred to as "managed code").
This is a problem with Microsoft's Version 7 C++ compiler not with the CLR and .NET Framework.
Actually it was consistent with what happened on Mir. So I don't think the author was pushing an agenda.
The article on CNN and MSNBC both sound like the stories told by the American astronaunts in Burrough's book Dragonfly. The problem seems that ground control (russian and US) doesn't seem to be able to come up with realistic timelines. reasons in Dragonfly why it was difficult. a)what is up there doesn't match the ground inventory b) the task was not simulated properly so the estimate was off. c) the crew is isolated and if they using russian ground control they only have comms for 10 minutes out of every 90 minute orbit. So the normal back and forth conversation between a astronaunt and ground control wasn't present on Mir. It was more like 80 minutes later 80 minutes later This goes on and on for days. Solution: Experience and communication. The US has a lot of experience training for short-term mission. Now we need to learn what to do for long-term mission. As long as they don't try to critize the astronaunts we should get the kinks worked. The good news is that next month US Ground Control will take over the station.