No one special yet. Give me some time and patience. I'll be around awhile. :)
Published on November 18, 2009 By SirBedwyr In Personal Computing

Looking for some further development experience, especially creating a GUI and working inside an IDE like V Studio or Eclipse.  Anyone, especially of the SD variety welcome to lend advice on what would be a nice small problem to solve.  Mostly just for practice, but I have ulterior motives.

Background:

Pilot becoming an engineer.  Know my way around the basics of Java, C++, Matlab, and Labview.  No formal data structures training work yet.  Working on finagling a GUI for autopilot output to Labview and suspect it may require some kind of activeX interface.  Labview likes to have its control and display backgrounds be static vs real-world avionics which have things like moving and rotating cards and "tapes".

Also about to take on a small Matlab project using something called linear wind fields for an Atmos. professor.  That will be my entree into fluid dynamics.

3rd ulterior motive: to get on Brad's good side and someday get some advice from him on AI stuff so I can make UAVs become more aware of their surroundings and do better collision avoidance.

 

But for now I'm still a dumb 'ol English major turned dumb 'ol pilot struggling to learn this science stuff.  So lets keep it at the see Spot run level.


Comments
on Nov 18, 2009

Not sure how the things you are talking about work or expose their data, but if you are into GUI, you should really try to make sure you understand the concepts of OOP and the language you are using (I suppose you are using some OOP language as you mention C++ and Java) and read about the MVC (Model View Controller) and related design patters. MVC shows a good way of dividing UI stuff into more easily to maintain and understand blocks.

on Nov 18, 2009

If you need to do a GUI app, you might be best off getting a book on C# and teaching yourself that. In C++ there's the Windows Presentation Forms (WPF) but the difference between managed and unmanaged code is pretty significant so you may as well learn it with C# which was made to be a managed language.  The book will have little sample projects to teach you how to do stuff.

 

on Nov 18, 2009

CariElf
If you need to do a GUI app, you might be best off getting a book on C# and teaching yourself that. In C++ there's the Windows Presentation Forms (WPF) but the difference between managed and unmanaged code is pretty significant so you may as well learn it with C# which was made to be a managed language.  The book will have little sample projects to teach you how to do stuff.
 

I just started the switch to C# and it is fantastic!  I bought 3 O'Reilly books after I read up on the language, and I have zero regrets.

Also, O'Reilly always has a buy 2 get one free deal going, with free shipping on orders over (i think) $30.  Great place to get programming books, in my opinion.

on Nov 18, 2009

Thanks for the advice.  I'll browse around a bit further.  Mostly I'm interested in just getting a GUI, any GUI, running first.  Then I'll worry about ActiveX.

For posterity's sake my friend for whom I'm researching this stuff found that the add-on to Matlab called Simulink appears to do almost everything we need.  We'll see, but I want to continue wrestling with LabView and its various interfaces.

on Nov 20, 2009

If you are going the C# route, there's plenty of material out there to learn. Two free books:

http://www.charlespetzold.com/dotnet/ - .Net Zero by Charles Petzold

http://www.csharpcourse.com/ - C# Yellow Book by Rob Miles

There are plenty of other great books (paying). "C# in Depth" and "CLR via C#" are two explendid books for learning C# well (but they aren't for new people, so you should study other things first).

For WPF, my advice would be: avoid Windows Forms at all costs. Thinking in WinForms and thinking in WPF is pretty different, so if you learn WinForms you will find much harder to learn WPF later. For WPF two good books are "Pro WPF in C# 2008" and "WPF in Action".

 

on Nov 20, 2009

http://www.charlespetzold.com/dotnet/ - .Net Zero by Charles Petzold

Can't go wrong with Petzold

This url comes in handy for certain C# coding: http://pinvoke.net/

I just want to mention, writing C# apps in visual studio is really nice


Mike

on Nov 27, 2009

Thanks Vicente.

on Dec 13, 2009

I do think C# is a big improvement on Java, but there are also other languages in a similar vein on both platforms which are better still: Scala and F# both open up some of the more useful parts of functional programming, but you also write bog-standard OO in them to reap the benefits of shorter, neater syntax and a better type system.

If you do decide to work on the Java platform, JavaFX is more or less the Java equivalent of WPF. I gather they do a lot of things in a very similar way, although of the two I have only used WPF.

WPF will be more mature, JavaFXScript looks a lot easier to read than WPF's XAML for my money, although it also has a really silly name (as if there wasn't enough confusion between Java and JavaScript already).

Technically I believe WPF uses Model-View-ViewModel rather than Model-View-Controller, but the difference is subtle. You could also see this post... http://drwpf.com/blog/2008/01/23/a-new-software-architecture-pattern-m-v-poo/

I found 'C# 3.0 in a Nutshell' to be an excellent book for learning C# (I went from C -> Java -> C#).

on Dec 13, 2009

Nights Edge
I do think C# is a big improvement on Java, but there are also other languages in a similar vein on both platforms which are better still: Scala and F# both open up some of the more useful parts of functional programming, but you also write bog-standard OO in them to reap the benefits of shorter, neater syntax and a better type system.

While I like F# a lot, support for it is much worse than C#, and that's a big problem There are less resources, VS2008 doesn't support it (2010 will, but it's not here yet), etc. And while there are neat things you can do in F#, C# supports a enough functional style for lots of things (and if you are going to use VS2010 you have all the C# 4.0 features, which are nice).

About WPF and MVC, true the patter it uses in MVVM (because databinding is superb with WPF ).

on Dec 13, 2009

Scala, on the other hand, has pretty decent integration with Eclipse (the most popular Java IDE) these days, so I think I would always pick it in preference to Java when working on the Java platform.

Although lately I find myself dropping back to development using VIM and Notepad++/Scite in preference to IDEs.

I feel the greatest failing of Java, which is a result of its lack of function passing, is that it lacks proper set logic: you do everything with loops instead. Until I came to C# and played with Linq I had no idea about Select (Map), Aggregate (Reduce), Where (Filter), and their various relations (list comprehensions etc.). I have since found that this sort of thing is standard in most other programming languages. Using loops makes the code longer, less clear in its intent, and exposes you to the risk of a class of bugs that you simply shouldn't have to deal with.

on Dec 13, 2009

Nights Edge
I feel the greatest failing of Java, which is a result of its lack of function passing, is that it lacks proper set logic: you do everything with loops instead. Until I came to C# and played with Linq I had no idea about Select (Map), Aggregate (Reduce), Where (Filter), and their various relations (list comprehensions etc.). I have since found that this sort of thing is standard in most other programming languages. Using loops makes the code longer, less clear in its intent, and exposes you to the risk of a class of bugs that you simply shouldn't have to deal with.

I think the biggest problem of Java if that it's a pain to make it evolve. A glaring example is the horrible generics implementation (type erasure, come on...).