From: Ricky B. <rb...@te...> - 2003-05-21 18:39:13
|
Russ W. Knize wrote: > MH does seem to have its roots in X10-like home automation, but has grown > a lot since then. There needs to be some kind of rosetta stone or compass > that points the user in the right direction, based on what the users wants > to do with MH at the time. With that and an mh.ini that has most > everything turned OFF to start (maybe have a demo.ini with everything on), > I think the experience will be a little better in the beginning. I'm > still finding myself grepping through the code for an error message from > some module that I can't seem to turn off. Hear Hear! I am just at this point and another spot is that this Rosetta Stone is *USUALLY* the documentation but in MH's case I have found the "install" doc has zero information about the .ini file! It just gets to that point and says "Configure the .ini file". Great. How? I *am* a computer geek, a software geek even, and I still can't get the bloody thing up and running! Granted, I'm trying to get it to run outside of the USA which means half the shit I want (TV, movies, weather) apparently will never run unless I code my own (is this even right? although it's so place-specific there is NO localization documentation anywhere in the docs I can find for somebody not in the USA!!!!!), and maybe that makes the install even harder, but dammit it *shouldn't*. There should be a whole goddam set of mh.*.ini files, maybe up to a hundred, for pieces of what you want to do, all commented to death and back: mh.festival.ini: Using MH with the Festival voice synth mh.weather.ini: Using MH to grab and display weather info mh.viavoice.ini: Using MH with ViaVoice for input mh.tv.ini: Using MH to grab and display TV info (maybe mh.tv-usa.ini and mh.tv-canada.ini and etc?) Half the trouble with the mh.ini file is I dunno which bits mean what, and the other half is to configure, say, Festival ... if I take mh.ini and copy it and start editing and deleting stuff, then the parts I need for Festival are in about 3 different places! So I can't think "OK, today I'll get Festival working" and scroll down to the voice synth section and figure the damm thing out. And even when I find part of it, there's no indication how it actually works. For example this: # These are good for Festival #voice_names = male=>male1, mike=>male1, sam=>male2, elder_male => male3, # mary=> female I ended up using voice_names = default => default because I still haven't figured out which ones are the names I defined in the festival ini files and which ones are the names I want used in the MH interface! Such a stupidly simple piece of information is not ANYWHERE in the whole mh.ini file! (Nitpick: Why's mh.ini in the BINARY directory anyway? Didn't you ever hear af /etc?) I shall shut up now. Don't bother even telling me the answer to the question, I hate cargo cult programming and I don't want different voices anyway, I don't have the space for more than one lex/dict set. The point is it just says "Use this if you want Festival" instead of saying somewhere: # This hash variable links the (hard-to-remember) names that the voice # synth uses for its different voices, with the names the you can choose # for MH to display on the screen. It works like this: # voice_names = # MH_Voice_Name_Of_Your_Choice => Synth_Voice_Name_1, # MH_Voice_Name_Of_Your_Choice => Synth_Voice_Name_2, # blah blah blah # If you leave this variable undefined, MH will ... (I have no idea!) Which should be through the WHOLE MH.ini file and would make configuring it about ten thousand times easier. Another thing that'd make it ten thousand times easier is to use sub-sections all just pulled in by include/require/load files (Perl knows this, it won't even use up any code!). So If I want to use festival, I just go uncomment the right line in the voice synth section out of: #load synth/viavoice.ini; load synth/festival.ini; #load synth/att.ini; #load synth/ms.ini; with a little instruction that says to go to the relavant file and configure it, and with the file, once I look in the file it's commented as above. That way I just edit ~mh/etc/synth/festival.ini, which is commented as above (I realize this will lead to some duplication of comments, but that's not a problem really), and I don't have to laboriously comment out everything meant for all the synths I don't have and don't want to use and never heard of, and I know that once I configured synth/festival.ini then it has ALL the parameters for using festival in it and NONE of the parameters point to the wrong synth, instead of maybe some of them being 100 lines down the file where I forgot to look. This would also be enormously helpful if, for example, I was experimenting with different synths (I have ViaVoice installed to, to experiment with for voice rec., maybe I might test out its tts capabilities?) and that way I can have etc/synth/viavoice.ini populated with my correct variables too and it's the work of 10 seconds to comment out one load file and uncomment the other one, if I want to switch between. Currently this task would take me a good half an hour. I really think these ideas (proper defensive commenting and simple modularization) are pretty basic and should have been looked at a long time ago considering how bloody complicated the dammed .ini file is! Regards, Ricky& -- : Usual state: (e) None of the above. : rb...@te... http://tertius.net.au/~rb/ : I find that anthropomorphism really doesn't help me deal with : hardware all that much, because it lends a certain attitude of : disdain to what would otherwise be a mere malfunction. : -- Carl Jacobs |