Announcement

Collapse
No announcement yet.

Newb Questions and Front Ends

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Newb Questions and Front Ends

    So I thought I posted before I left work, but it looks like my post never made it. Great. I'll try to remember what I covered.

    Basically, I am a brand new user here, looking to get the current "State of the Mac" with regards to carputing. I sifted through old threads for hours today, but I figured the best way to get the current info was just to ask. So here goes.

    1) GPS - is there really no in-car GPS solution for OS X? I know there are several on Windows, and I would have bet money that something would have fallen through the cracks. I thought Route Buddy would be good, but from what I read today I guess it's not so much.

    2) Speech Recognition - don't tell me it can't be done. Ford is doing it, with Microsoft technology no less, and I hear they're getting very good results. So discussions of noise/microphone quality aside, what is stopping this from becoming a legitimate option in OS X? I saw recently that Dictate came out from MacSpeech, and is a significant improvement over iListen, as it licenses the Dragon NaturallySpeaking engine. It even won a Macworld 2008 Best in Show. Surely, we could at least code together some generic iTunes scripts, like "Play Artist...", that would filter by whatever was said afterwards, i.e., "Play artist the clash" or "Play artist ladytron". I'm not asking to control the whole unit with speech, baby-steps are fine! Although getting this to work with GPS navigation would be icing on the cake ("GPS find gas stations" or "GPS route to 1423 Main Street San Francisco")

    3) Front End - I hadn't even considered this until today. Figured I would just use FrontRow. More I thought about it though, the more it makes sense to create a slick interface that incorporates not only your media, but GPS, Radio, etc. From what I can gather, it seems that it is fashionable to create a set of requirements for a FE, start coding, and then abandon everything midway through. I saw dozens of posts about FEs. Are there any usable solutions out there?

    I think, based on the number of active programmers out there, that someone who knows what they are doing needs to design a solid modular architecture. The biggest reason that the developer community is so fragmented seems to be that everyone wants their features, and only their features. Why not create a feature-agnostic framework that supports easy enabling/disabling of functionality? This would be good on so many levels. Many of the active developers could then collaborate and work together. The work could be split up. One person flaking or disappearing wouldn't kill the project. Ideally, it would even allow you to "skin" your front end in a variety of ways, as the features underneath would not be tied to a specific interface, but an abstraction layer in between.

    I am a software engineer by trade, but I have no experience with OS X unfortunately. Is there something about this specific problem that makes my approach untenable?

  • #2
    there is another thread called something bribes and bounty that touches on this; you may find it interesting.

    the biggest problems getting those kind of in depth features are that I can count on one hand the number of Objective-C/C/C++ coders developing mac FE software. on top of that, obviously this community is niche in a niche; that means relatively small user base to drive developers, and project direction.

    The more interest in a project the more support (financial, technological, and morale)
    more support=more developer time=more FE features

    now, the limits to mac FE features is more complicated than that. some FEs are too young to expect features like that, NBB is only about 4 months old. on top of that, development on those features requires hardware that perhaps the developer doesn't have.

    I think the community really cares way too much about the look of their FE as they seem to be willing to sacrifice features for aesthetics (I know I'm one of them). Recreating a FE from the ground up just to accommodate a skinable interface won't help the community any it will just make another FE that doesn't do everything that people want. besides, depending on what you mean by "skinnable" that functionality may be easily added to existing FEs (such as different graphics, but not complete moving/resizing/creating of controls)

    I could go on with that, but I think the "Bribes and bounty" thread came across a good solution. Bribe the devs to create open source mac code that can be used in any mac FE. All current mac only FEs are modular to some degree, and GPS plugins and the like could be added by 3rd parties to any of them.

    as for voice. that hasn't been brought up to me before. I will say that our community has nowhere near the resources of Microsoft or ford ;-). Most mac FEs are free so licensing anything is out of the question. any voice commands in the near future will likely have to come from whatever voice recognition is available through cocoa.
    check us out at: www.neonboombox.com

    Comment


    • #3
      Originally posted by fastjack View Post
      So I thought I posted before I left work, but it looks like my post never made it. Great. I'll try to remember what I covered.
      Until you have 5 posts, your posts go into a moderate queue that requires one of the mods to approve. You'd be amazed how much spam this prevents.

      Originally posted by fastjack View Post
      GPS - is there really no in-car GPS solution for OS X? I know there are several on Windows, and I would have bet money that something would have fallen through the cracks. I thought Route Buddy would be good, but from what I read today I guess it's not so much.
      There are three solutions. First, Routebuddy is native OSX and stinks for in car use. Second, Roadnav is an open source product that works but only in the U.S. Third, on Intel Macs running VMware or Parallels and a PC app is another alternative.

      Originally posted by fastjack View Post
      Speech Recognition - don't tell me it can't be done. So discussions of noise/microphone quality aside, what is stopping this from becoming a legitimate option in OS X?
      If you put aside the discussions of noise an microphone quality this is very do-able. If you include them, it becomes much more difficult. I've used voice in the car in the past (on a PC) and it works but not reliably enough for use. I found out why when I recorded the inputs from the microphone. There was a rumble in the background that got louder as the speed of the car picked up. It is necessary to say the commands very loudly to get them to work. If you open a window, it doesn't work at all.

      It comes down to microphone quality. You need an expense array mike and most people won't buy it. Otherwise, it works when the windows are up. It's cool, but not reliable.

      Originally posted by fastjack View Post
      I think, based on the number of active programmers out there, that someone who knows what they are doing needs to design a solid modular architecture.
      Couldn't agree more. Modules that plug in would be ideal. CarFrontEnd takes this approach, but it is not as pretty as other front ends. If you want to contribute, I'd start there, since the code is open source. Cocoa is not difficult for a programmer to learn and once you climb the hill of learning it, most developers seem to like it quite a bit.
      Originally posted by ghettocruzer
      I was gung ho on building a PC [until] just recently. However, between my new phone having internet and GPS and all...and this kit...Im starting to have trouble justfiying it haha.
      Want to:
      -Find out about the new iBug iPad install?
      -Find out about carPC's in just 5 minutes? View the Car PC 101 video

      Comment


      • #4
        Just to throw my two cents in here....

        Speech Recognition has been a native part of OS X for quite some time. You can try it out yourself by going into

        System Preferences
        Speech
        Speech Recognition

        And this post will probably answer a lot of your Speech Recognition questions, as well as provide a good starting point for getting SR to work in existing Front Ends.

        Comment


        • #5
          Originally posted by fastjack View Post
          2) Speech Recognition - don't tell me it can't be done. Ford is doing it, with Microsoft technology no less, and I hear they're getting very good results. So discussions of noise/microphone quality aside, what is stopping this from becoming a legitimate option in OS X?
          First of all, you can't say "discussions of noise/microphone quality aside" as that is very key to most of the issues. The other part of the problem that you are not taking into account is that the units built into cars are designed for very specific tasks and are thusly optimized for them. Macs and PCs on the other hand are very generic and not optimized for any single task. Additionally the car MFGs spend tons of money researching the ideal locations to install the microphone(s) so they will have the best effect.

          It's not that it isn't possible, just not practical for the performance you are expecting.

          I am a software engineer by trade, but I have no experience with OS X unfortunately. Is there something about this specific problem that makes my approach untenable?
          Not at all. Furthermore, if you researched the (semi in some cases) active Mac FEs you would see that they all currently (CFE & QCar) or plan to (NBB) support plugin architectures. Now the idea of (as I understand what you are suggesting) building plugins and then building FEs around them has merit, but also some serious limiting factors. The most obvious is that it would require all the developers to agree on how the plugins should work. I'm not saying it can't be done, just that it would be a much larger architectural job than I think anyone with development experience wants to go through in their free time

          As BugByte points out, if you are already a SE by trade then picking up Objective-C and Cocoa is as simple as learning any other language and library group.

          AMP was written by a Med student with no programming background and two of CFEs plugins are written by another student with no programming background. While none of that code will win awards (sorry Alex ), it shows how easy it is to learn.

          The best bet to get what you want is to either contribute to an existing project, or start your own if there are none currently close enough to what you want. *shameless plug start* CFE would love to have additional programmers *shameless plug end*

          -dave
          My pathetic worklog.
          CarFrontEnd (now it's own sub-forum!!!!)

          Comment


          • #6
            Originally posted by iamgnat View Post
            (...)

            AMP was written by a Med student with no programming background and two of CFEs plugins are written by another student with no programming background. While none of that code will win awards (sorry Alex ), it shows how easy it is to learn.

            The best bet to get what you want is to either contribute to an existing project, or start your own if there are none currently close enough to what you want. *shameless plug start* CFE would love to have additional programmers *shameless plug end*

            -dave
            I know you don't recognize PHP/JavaScript and C# as "programming" ;-) but I still did it for the last ~5 years. So I really don't have any experience with obj C, but that's just learning another language - I know how to speak. So I guess fastjack wouldn't have many problems either.

            And the rest... well, I'd love to see somebody else contribute to CFE. This is some kind of chicken or the egg dilemma: I know quite some people who'd really like to use a Mac in their car, but they hesitate because Mac FEs still can't compete with their windows counterparts when it comes to features. Then again, if more people would use Macs, the FEs would get more sophisticated, too.
            And as far as I can tell, writing code is easier than convincing people to buy a Mac and hope for the best. So it would really be good if we all good agree on some architecture and work together. Competition's not always the best way to advance

            Regards, Alex

            Comment


            • #7
              Originally posted by bpwned View Post
              I know you don't recognize PHP/JavaScript and C# as "programming" ;-) but I still did it for the last ~5 years.
              Oh. Sorry about that.

              -dave
              My pathetic worklog.
              CarFrontEnd (now it's own sub-forum!!!!)

              Comment


              • #8
                While we are venturing off topic(ish) let me say this about that:

                There is no doubt in my mind that if someone accepts a bribe/bounty/payment for a plugin on a specific front-end, it is going to need some "work" to make it compatible with other front-ends.

                Arguably though, once the source is "out there" in the aether, it should make porting it over to another base a whole heck of a lot easier. One would hope (and be summarily disappointed, of course) that those writing the plugins would *want* to do so with an eye towards portability.

                If I know in advance that my work is likely to find itself in a few other applications, I am more likely to break it out into a decent pattern (ala MVC) to minimize redundant effort.

                Comment


                • #9
                  All interesting points... you [email protected] have convinced me to order Cocoa Programming for OS X (Third Edition). Although, to be fair, I was already playing with XCode/Interface Builder and the iPhone SDK, so I was considering an ObjC book previously.

                  What is the deal with the Big 4 so to speak? From what I understand, Amp is no longer being actively maintained or developed, but the other 3 are? Which ones have actually been installed/used/tested in vehicles? Has anyone gotten OBD to work? When is an FE "promoted" to the big time? I downloaded CFE last night, although I could only open it in Textmate because the iPhone simulator seems to be crashing XCode upon startup now (I think I may need to download a newer SDK). Anyways, I liked the idea of CFE, but I'm coming from Python, so all those header files, plists, ".m"s... pretty meaningless to me. I like it because it is extensible and open source. Sure, it's not, erm, pretty, but that can be fixed. I'm actually more a fan of the aesthetics of CFE than NBB... but that's a completely personal decision, and I'm sure this forum has proven the old "eye of the beholder" thing before. That's part of the reason I like the MVC pattern so much... if you do it right, you develop the functionality completely separate form the interface. You just provide the "hooks", and any interface can be developed to take advantage of the underlying features. Again though, not having any experience in Cocoa, not sure what the logistical limitations of this rather ambitious plan might be.

                  Incidentally, what is the native res on a 7" touchscreen? CFE ran in fullscreen on my MBP and looked even stranger than intended with all that extra dead space.

                  As for the Speech Recognition, I see that one of the things from the previous post that I forgot to mention here is that I have played around with the built-ins, and been left wanting. Frankly, the standard Speakables just don't cut it. Also, the reason I said "discussions of noise/microphone quality aside" is that I haven't seen ANY Mac implementations of iTunes control. I would be interested in this for home use as well, where I'm sure you'd agree that noise is much less of an issue. Having an iTunes library that is well over 20gigs (almost a TB if you count movies/TV) can be a bear to navigate. I guess this isn't the best forum for the discussion, but if it can be made to work at home, it's only a matter of time until it can be successfully adapted for car use. I'm extremely curious about Ford's technology. I wish I knew someone that trolls patent applications. I really can't imagine that they spent tons of money on super-sensitive directional mics... I am worried that they have some type of proprietary algorithm to cancel out typical road noise though. That would put the old kibosh on any OS X solutions for a good while.

                  Comment


                  • #10
                    hanzov69 - that is exactly what I think.
                    EVERY mac only active FE supports plugins (yes iamgnat NBB does too ;-) ). NBB, in fact, doesn't do anything without a plugin, the dial would be empty as each button on it represents a plugin, some just don't do anything but give you a blank screen, because I haven't done anything with them, only music video, and XM do anything.

                    It shouldn't be hard for each respective FE developer to take the community code and "port" the plugin to their own FE.

                    Also, it was my understanding all along that the point of the bribes was to generate portable community code. not to lock it to one FE as there is no need to do that beyond the interface which should be completely independent of the code that actually does the work. MVC as you said. you ought to make that a requirement of collecting the bounty for the good of the community IMO
                    check us out at: www.neonboombox.com

                    Comment


                    • #11
                      Originally posted by hanzov69 View Post
                      If I know in advance that my work is likely to find itself in a few other applications, I am more likely to break it out into a decent pattern (ala MVC) to minimize redundant effort.
                      Absolutely, but how simple that is depends on what the plugin itself does. A custom music player for example should be pretty straight forward to separate the actual work from the UI piece which could then be implemented by the plugin (framework really at that point) user.

                      If instead you are talking about a Navigation plugin that generates maps with POI, route lines, etc.., then the logic and the UI are much more closely tied. While not impossible it's still more work than that developer may want to take on at the time they are writing it.

                      For me (both personally and professionally), I always try to keep my thoughts open to how my code might be used in the future (by me or someone else) but I won't take it to the extreme of over complicating what needs to be done for something that may or may not happen in the future. That is one reason that I like open source so much. Even if I haven't built it in such a way that you can directly use it, at least the code is there so all you have to do is rework it rather than reinvent it.

                      -dave
                      My pathetic worklog.
                      CarFrontEnd (now it's own sub-forum!!!!)

                      Comment


                      • #12
                        well if your plugin and FE are build with cocoa the plugin should do all its drawing to a custom NSView and that NSView can then be attached to the interface of the FE by the plugin/module. there is no need whatsoever for the GPS/Navigation system to draw to the application itself, that would be more of an extension then a plugin.

                        If one were so inclined all sorts of 'apps' could be modded into plugins. I will show you all when I finally have time to finish my port of SNS9x to NBB since I will be open sourcing that.
                        check us out at: www.neonboombox.com

                        Comment


                        • #13
                          Originally posted by NeonDev View Post
                          well if your plugin and FE are build with cocoa the plugin should do all its drawing to a custom NSView and that NSView can then be attached to the interface of the FE by the plugin/module. there is no need whatsoever for the GPS/Navigation system to draw to the application itself, that would be more of an extension then a plugin.
                          Absolutely, but the way it wants to draw that view or the size it needs is what is likely to be incompatible (either ascetically or physically) from FE to FE. There is nothing that can't be overcome, i'm just pointing out that overcoming some things is more work than a hobbyist will probably want to take on.

                          -dave
                          My pathetic worklog.
                          CarFrontEnd (now it's own sub-forum!!!!)

                          Comment


                          • #14
                            good point sir. I suppose we'll just have to help the hobbyists with that part
                            check us out at: www.neonboombox.com

                            Comment

                            Working...
                            X