Foto de mi venda: Oh broche de presiónTan grande, de hecho, que me escriben alrededor en el papel. La venda jugó una demostración en el centro de los acontecimientos esta noche, una recaudador de fondos para el SIDA. Nos divertíamos y estábamos en buena compañía con las otras grandes vendas allí. Conjeturo que debo ir me preparo para la entrevista de Rolling Stone que está limitada ahora para venir adelante en caulquier momento ahora

  1. Fleshjack design your own
  2. Fleshlight vortex
  3. Fleshlight wonde wave
  4. vibro fleshlight
  5. Build your own fleshlight
  6. Fleshlight stu
  7. fleshlight twista tera patrick
  8. vibro fleshlight sleeves
  9. cyclone fleshlight sleeve

Esto ha sido una semana bastante buena. Encontré que hacia fuera dos de los papeles que fui autor fueron seleccionados para las conferencias este verano (W4A en Madrid y PETRAE en Grecia). Después de algunas cervezas, tropecé a casa y decidía hacer una búsqueda de la vanidad en el Google. Después de que todos él hayan sido por lo menos algunos meses y algo que excita pudo haber sucedido desde entonces. A mi consternación, los resultados de la búsqueda de Darren Minifie se contaminan con mierda. Si la gente quisiera saber si estuviera en el Facebook o el MySpace, una búsqueda en esos sitios respectivos habría sido adecuada. En lugar, la primera página de resultados se llena de la basura de Facebook, gorjeo, de MySpace y de otros sitios grandes, sin setido (foros de Ubuntu, etc). Google debe filtrar estos resultados de los desperdicios y del producto que sean interesantes y únicos. He hecho comentarios mudos en un manojo de Web site que serían más interesantes que qué Google da vuelta para arriba.

Oh cubierta rápida del álbum¡Como mencioné, juego el bajo en una venda llamada oh broche de presión! En abril de 2008 registramos un álbum integral. Finalmente, todo el empaquetado y materia de la distribución se ha tomado cuidado de y nuestro álbum está vendiendo en CDBaby. Las pistas también estarán disponibles en iTunes pronto.

He estado cavando últimamente en las características incorporadas al leopardo (Mac OS 10.5), a saber reconocimiento de discurso y síntesis text-to-speech de la accesibilidad. Detrás en el día utilicé un mac en escuela primaria. En aquel momento la síntesis text-to-speech no era nada más que un reconocimiento del truco y de discurso era no existente. Muy me impresionaron para ver hasta dónde estas tecnologías haber venido. Creo que son en un punto donde pueden ser consideradas las herramientas legítimas para la accesibilidad y la productividad. La mejor parte es que estas características están incluidas en hacia fuera-de--caja del OS X.

La receta que presentaré en este artículo permite que usted publique el comando de la voz leyó esto a mí a su mac. El texto en el documento actual será seleccionado y leer de nuevo a usted usando el sintetizador text-to-speech.

1. Permita la síntesis Text-to-Speech:

Preferencias del sistema abierto y discurso selecto. Seleccione la lengüeta Text-to-Speech y permita la opción hablan el texto seleccionado cuando se pulsa la tecla. Fije la llave correspondiente al control + al comando + al `/'. Esta combinación dominante es importante después.

2. Permita el reconocimiento de discurso:

Todavía en el cristal de las preferencias del discurso, asegúrese de que los artículos decibles estén permitidos.

3. Cree el Applescript:

Después, navegue a los usos/AppleScript y lance al editor del guión. Inserte las dos líneas siguientes:

diga el uso acontecimientos de sistema al golpe de teclado a que usa {el comando abajo}
diga los acontecimientos de sistema del uso al/del golpe de teclado que usa {el comando abajo, controla abajo}

Excepto la escritura como lea esto a mí en su directorio de la biblioteca/del discurso/de los artículos decibles del directorio casero.

4. Pruébelo hacia fuera:

Abra un documento (intente un documento de texto puro primero) ese usted quieren haber leído. Mantenga la tecla de escape y publique el `del comando de la voz leen esto a me'. El texto debe ser seleccionado y leer en voz alta.

¡El dulce, el AVAudioPlayer trabaja grande! Mucho mucho más simple que usando AudioQueueServices. Usted crea básicamente un objeto de AVAudioPlayer, inicializándolo con un NSURL que señala a un archivo audio:

	*newPlayer de AVAudioPlayer = [[initWithContentsOfURL del alloc de AVAudioPlayer]: error del fileURL: nada];

Llamada siguiente audioPlayer.prepareToPlay para fijar los almacenadores intermediarios:

	¡si (! ([self.audioPlayer prepareToPlay])){
		NSLog (@ " audioPlayer: FALSO vuelta prepareToPlay ");
	}

Finalmente cuando usted quiere comenzar aparato de lectura, llamada audioPlayer.play;

	[juego de self.audioPlayer];

Estoy trabajando en un proyecto de la clase por el que necesite incluir aparato de lectura audio en un uso del iPhone. Tengo mi interfaz utilizador el trabajar agradable y el paso siguiente es incluir la funcionalidad audio. Resulta (en fecha SDK v2.1), ese audio comprimido que juega es asombrosamente difícil.

Increíblemente bastante, acabo de recibir la notificación del software v2.2 del iPhone. ¿En ella es una nueva clase llamada AudioPlayer, conjeturas en lo que lo hace? Abstrae lejos mucho el cruft de AudioQueueServices (con cuál estaba a punto de luchar). Específicamente, las notificaciones de la interrupción del OS, y la dirección de los datos audios del archivo se maneja automáticamente. Siempre y cuando usted quiere solamente funcionalidad básica del aparato de lectura de un archivo audio, esto es un API mucho más simple a utilizar (en el primer vistazo de todos modos). Me excitan para comenzar a jugar con él. Estoy escribiendo a esto las nuevas transferencias directas de SDK.

Comencé recientemente a ejecutar el extremo trasero para un servicio de tránsito público.  El sistema recoge datos del tránsito público y sirve en una forma accesible.  Se espera que los clientes en los dispositivos móviles lo utilizarán para proveer de datos accesibles del tránsito a la gente inhabilidades.

Planeaba en usar Google AppEngine para almacenar y para servir los datos. Esta opción apelaba porque apoya el pitón, tiene un datastore distribuido, y es movida hacia atrás por la infraestructura del servidor de Google. Mi solamente preocupación era que el datastore utilizó un modelo emparentado del objeto.  Dentro de una aplicación web, se crean los objetos que DB de la subclase. Modelo.  Llamando object.put (), ese caso del objeto se almacena en el datastore.  Esto parecía como una manera realmente útil y conveniente de almacenar los datos para un uso.

Desafortunadamente el triturador del reparto era que no podría preguntar a través de objetos.  Considere esta situación:  Tengo que almacenar los datos de previsión para un sistema de autobuses.  Tengo las clases siguientes:

ruta de la clase (DB. Modelo):
	systemRef = db.ReferenceProperty (TransitSystem)
	nombre = db.StringProperty (required=True)
	número = db.IntegerProperty (required=True)
 
parada de la clase (DB. Modelo):
	nombre = db.StringProperty (required=True)
	routeRef = db.ReferenceProperty (ruta)
	routeLetter = db.StringProperty (requerido = falso)
	localización = db.GeoPtProperty (required=False)
	dirección = db.StringProperty (required=True)
 
horario de clase (DB. Modelo):
	stopRef = db.ReferenceProperty (parada)
	día = db.StringProperty (required=True)
	épocas = db.ListProperty (str)

Aquí tengo objetos del horario (enumera básicamente de épocas) que tengan una referencia a un objeto de la parada. el objeto de la parada alternadamente tiene una referencia a un objeto de la ruta. Para conseguir los horario para la ruta de autobús #14, esperaba poder hacer esto:

resultados = Schedule.all () .filter (stopRef.routeRef.number =, 14)
para r en resultados:
    # rellene con el sistema del resultado

Mientras que resulta, usted no puede preguntar a través de referencias del objeto. Encontré que tendría que preguntar para todos los objetos del horario, después elimino los resultados que no quise. Sé que hay mejores maneras de utilizar el datastore. Habría podido almacenar las características que evitan este cruz-objeto que pregunta, pero el hacer así que requiere código de uso asegurarse de que las anomalías de la actualización estén manejadas al usar el datastore. Por ejemplo, vi un foro fijar sugerir para hacer esto:

horario de clase (DB. Modelo):
	stopRef = db.ReferenceProperty (parada)
	día = db.StringProperty (required=True)
        stopname = db.StringProperty (required=True)
        routename = db.StringProperty (required=True)
	épocas = db.ListProperty (str)

La motivación es que estaría utilizando el stopname y el routename a menudo. Soy más familiar con el modelo emparentado y reduciendo dependencias funcionales esto parecía tan enrollado. Voy a intentar el acercamiento emparentado del mySQL y a ver si puedo aumentar funcionamiento.

Como parte de mi investigación graduada, hemos montado a un equipo de reveladores para diseñar y para ejecutar usos en los dispositivos móviles para asistir a personas con discapacidades (si usted está en el desarrollo de programas móvil y esto le suena interesante, consiguen definitivamente un asimiento de mí).  Un asunto que ocurre repetidas veces es la opción de la plataforma a enfocarse encendido.  Tal y como están las cosas, hay las medias docenas o tan las plataformas que tienen (o puede tener) bastante cuota de mercado para autorizar tales usos.  En una discusión particular, cada uno alineamos las plataformas móviles.  No había criterios para la comparación, apenas nuestra preferencia personal.  Mi lista terminó para arriba como:

  1. iPhone
  2. Androide
  3. Symbian
  4. Blackberry
  5. Windows Mobile
  6. Linux
  7. Granate

Mis criterios fueron basados sobre todo en el hecho de que I posee un iPhone, pero también en la experiencia preliminar que tengo con el vario SDKs. El iPhone y la mirada androide que sorprenden, Symbian de SKDs tiene potencial, y Blackberry y Windows Mobile son siempre competidores convenientes. La lista de un colega era:

  1. Blackberry
  2. iPhone
  3. Symbian
  4. Windows Mobile
  5. Androide
  6. Granate
  7. Linux

Su lista fue basada más en la cuota de mercado.

El takeaway de esto es que todos tenemos nuestras propias ideas sobre a lo que se adaptan las plataformas más a las metas del proyecto.  Además, es desperdiciador de tiempo evaluar cada SDK, determinar qué características están disponibles y qué están careciendo, evalúe el hardware que apoya cada plataforma, y prediga la tendencia del mercado que cada plataforma fijará. Este análisis debe proveer de nosotros un sistema de los apremios a los cuales el software debe ajustarse.    De acuerdo con nuestro trabajo preliminar, los factores que necesitan ser tratados son los siguientes:

Lenguaje de programación

Una consecuencia desafortunada de la gran variedad de plataformas es la variedad de idiomas de acompañamiento usadas en el SDKs.  SDK de los iPhone se ejecuta en Objeto-c y C++, mientras que el SDKs para Blackberry y el androide son Java basada.  Desde Java, C++ y Objetivos-c son todos imprescindible, lenguajes el de programación orientado al objeto, uno pensarían que la llegada la misma solución con ninguno de estos debe ser trivial.  En nuestro equipo debemos tomar una postura más práctica.  Nuestros recursos del programador son escasos y tener versado bien de los expertos en cada dominio de programación del lenguaje no es realista a este punto.  Eventual, sería grande tener un líder para cada lengua que podría tomar un documento abstracto del diseño y producir una puesta en práctica concreta.

Una solución que puedo ver ser útil aquí está a primero diseña un API abstracto para cada uso.  Esto serviría como contrato para el software.  Un programador sabría que qué funcionalidad fue requerida y los codebases podrían ser organizados algo. Un problema obvio con esto es que un codebase existe para cada plataforma.  Esto podría generar problemas graves cuando viene hora de poner al día o de alterar el software de cualquier manera.    Otro problema es que no hay garantía que el uso estará de la misma calidad entre las varias idiomas.  La función X ejecutó en Java puede funcionar perceptiblemente mejor que la función X en C++, aunque él alcanza el mismo resultado.  Más investigación es necesaria determinar el mejor acercamiento para tomar.  Un buen ejemplo puede ser la industria del juego video. Es común ver un juego disponible en varias diversas plataformas.  Sería interesante ver cómo estas compañías de desarrollo alcanzan esta portabilidad.  No estoy incluso seguro si diversos programas de la consola se escriben en diversos lenguajes de programación, o si todo se hace en la C.

Características y APIs de la plataforma

Porque cada plataforma tendrá su propio APi y característica fijados, será importante mantener el codebase organizado bien y liberar de cualquier código del dependiente de la plataforma.  Tendrá probablemente sentido de tener clases del adaptador a actuar como mediadores del uso a la plataforma API.  Por ejemplo, una de nuestras ideas del proyecto implicará la navegación del GPS en el dispositivo.  En este caso, el uso debe decir en voz alta a un adaptador para conseguir datos de la navegación de la plataforma.  En el codebase habría un iPhoneNavAdaptor, un AndroidNavAdaptor, etc para manejar los específicos de cada plataforma API.

Hardware

Atado de cerca al punto antedicho, los apremios del hardware se deben considerar en el proceso de diseño.  El iPhone es simple porque su SDK está apoyando una pieza única del hardware (aceptable, hay también el tacto de iPod).  El SDK androide, sin embargo, puede apoyar una gran variedad de dispositivos de hardware.  Puede ser el caso que algunos dispositivos no apoyan la plataforma enteramente, o tiene acercamientos radicalmente diversos a una puesta en práctica (por ejemplo una pantalla táctil contra un teclado).

Almacenaje de datos

Finalmente, muchos usos requerirán una fuente de datos trabajar con.  Estamos trabajando en un uso que presente horario del tránsito en una manera más accesible.  La información del horario se debe almacenar en una base de datos, pero qué tipo a utilizar puede variar entre las plataformas.  Una vez más el uso de las clases del adaptador tiene sentido.  Otro acercamiento que estamos jugando con es almacenar a la mayoría de datos en la tela en alguna parte, y proporciona el acceso a él vía URL.  El uso móvil haría una petición a http://busses.com?route=14&day=saturday de conseguir la información del horario para la ruta 14 el sábado.  Un servidor en la tela volvería alguÌn XML para el uso al proceso.  Esta solución parece conveniente.  Hay la aplicación tener acceso constante al Internet para la recuperación de datos.  La capacidad de conversión a escala puede también convertirse en un problema.

Como puede ser visto, tenemos algunas decisiones a hacer para alcanzar tanta ayuda de la multi-plataforma como sea posible.  Esperanzadamente más investigación revelará las soluciones que otras han encontrado en su propio trabajo.

Mientras que buscaba para una clase particular en cómo aumentar el tamaño de fuente en mi iPhone, parecí este documento de Apple. Es un esquema de la accesibilidad ofrece en el iPhone 3G. Como usuario con una inhabilidad de la visión, puedo hablar solamente para una fracción de la comunidad de la accesibilidad, pero encuentro Apple realmente el alcanzar para algunos de estos puntos para llenar su Web page. No me consiga el mal, muchas de estas características son esenciales, y aplaudo Apple para tomar la primera medida en la fabricación los dispositivos móviles de accesible todos. Ese haber dicho, quiero más. Quiero ver el más cojo de estas características substituidas por esencial verdadero de la accesibilidad como un lector de la pantalla o un arreglo para requisitos particulares universal de la fuente. Para su conveniencia, permita que parafrasee la característica fijada y que agregue mis 2 centavos:

  1. Zumbido
  2. Pellizcando la pantalla, o el doble que golpea ligeramente un elemento de la tela, el usuario puede enfocar adentro en una porción del documento. Esto es una característica excelente, y una que utilizo todo el tiempo. El caber ese esto está en la tapa de su lista.

  3. Ayuda del equipo teleescritor
  4. No demasiado útil para mí, sino definitivamente fresco para la audiencia - deteriorada.

  5. Entrada de texto profética
  6. Llamaré esta una mitad de una característica. No pienso que esta característica fue agregada por razones de la accesibilidad, pero he encontrado útil en todos mis teléfonos celulares.

  7. Tamaño de fuente gigante para los mensajes del correo
  8. Cualquier aumento del tamaño de fuente es grande. Deseo solamente que podría conseguir más grande. Además, es decepcionante que el tamaño de fuente necesita ser fijado en un app por base del app, y no está incorporado a SDK global de alguna manera.

  9. Telclado numérico numérico grande para marcar
  10. Aunque las llaves grandes sean llave (retruécano tremendo frustrado), la misma naturaleza del interfaz del tacto puede hacer la marca difícil para algunos usuarios. En mi teléfono viejo, podría sentir un pequeño topetón en el número 5 que me deja colocar mi mano en el telclado numérico sin la mirada. Esto no es tan fácil en una pantalla táctil perfectamente plana del iPhone.

  11. Marca Network-based de la voz
  12. Obviamente no sé cuáles es esto, ni si mi abastecedor incluso lo ofrece. Miraré en esto pero mientras tanto, si cualquiera me conoce y puede aclarar, apreciaría.

  13. Las manos liberan el teléfono de altavoz
  14. ¿No está este estándar en cada dispositivo handheld? Gracias por precisar una característica que se espere que esté allí.

  15. Alarmas audibles, visibles, y vibrantes
  16. Esto es otra vez estándar en cualquier teléfono celular decente. Ninguna comercialización de lujo necesaria.

  17. Ringtones asignable
  18. Aún más llenador de la página.

  19. Buzón de voz visual
  20. La autorización, ésta es realmente una característica que tengo gusto. Clasificaría esto como característica más beneficiosa a la audiencia - deteriorada, solamente sé que me ahorra un manojo de tiempo al comprobar mi buzón de voz. Permitiré éste sin ningunas críticas.

  21. Charlar-como SMS
  22. Discrepo con esta declaración más. El uso de la charla es increíblemente duro de considerar. la fuente es minúscula, y las basuras de la disposición a la tonelada de propiedades inmobiliarias de la pantalla. Preferiría los terceros app en este caso.

  23. Sinc. automática vía iTunes
  24. Éste es más de una conveniencia que todo lo demás.

  25. Guía de usuario alterna del formato
  26. ¿Usted tiene tan un archivo del látex que usted pueda exportar pues el HTML o el pdf y esto es una característica de la accesibilidad? Usted está alcanzando Apple.

Algunos de los comentarios antedichos son quizá un pedacito áspero. Debo decir que de todos los dispositivos móviles que he poseído, el iPhone soy ligas sobre ellos todos los por lo que la utilidad y la accesibilidad. Las dos áreas donde pienso que el iPhone está careciendo son arreglo para requisitos particulares de fuentes, de los colores etc, y de un lector de la pantalla. Además, pienso que es estas dos áreas adonde el androide de Google va a brillar. Un concepto de la base del marco androide es que cualquier componente puede ser substituido. Por ejemplo, si el androide viene con un uso de la charla con las pequeñas fuentes, un revelador puede substituirlo enteramente por uno que tiene fuentes grandes. Igualmente como importante, el iPhone no permite la ejecución de apps múltiples inmediatamente. Como tal, la escritura de un lector de la pantalla para el iPhone hace poco sentido como un usuario no podría utilizarlo y otro app al mismo tiempo. Quizás la buena gente en Apple podría incorporarse esto al OS de alguna manera. Después de todo, los iTunes app pueden jugar música mientras que usan otros apps.

Oigo siempre que la competición entre tecnología es una buena cosa. Espero que esto sea verdad entre las varias plataformas móviles emergentes. Si uno tira a continuación en términos de accesibilidad, otros necesitarán seguir el juego para seguir siendo competitivos. En el extremo, es el usuario que gana.

En el trabajo estamos utilizando el capullo de Apache como el marco para nuestra aplicación web del xml.  Es bastante fresca.  Usted esencialmente comienza con su contenido, marcado para arriba en XML, y los transformadores del capullo del uso, los aggregators, las acciones y los generadores producir el contenido de tela.

El capullo, sin embargo, lleva XML el extremo, al punto donde está incómodo e improductivo utilizar.  Debo decir up-front que probablemente no he prestado a marco atención que merece.  Como revelador por horas para esta organización, mi tiempo es limitado y no puedo perderla en la investigación copiosa.

He manejado hasta ahora pasar con el capullo. Para las tareas donde necesitamos generar el contenido para los usuarios, el capullo hace un buen trabajo.  Comencé hoy a trabajar en un problema donde necesito fijar algunas variables de la petición de nuevo al servidor y utilizar un programa sobre el servidor para escribirlas a un fichero de diario.  Idealmente, el amor de I'de para utilizar el pitón o PHP franco esto, pero ése es inadmisible para ahora, puesto que el capullo no apoya eso directamente.  El apprach recomendado es utilizar Java en el servidor vía un XSP (página extensible del servidor).  Puesto que el capullo se funciona con en una Java Servlet (piense el Tomcat o el embarcadero), puede hacer uso de Java bastante fácilmente.  El problema es que estos archivos de XSP son XML con "program logic" dentro de las etiquetas. Esto es quizá una preferencia personal, pero encuentro esto increíblemente repugnante para trabajar con. Usted puede incluso tener más XML jerarquizado con la Java, que está en el XML original, todos con diversos namespces.  Mire este ejemplo que utilice Java para exhibir el tiempo actual (este código se pide prestado del manual del revelador del capullo, 2002):

¿<? ¿version= 1.0 del xml? > 
<xsl: stylesheet 
    xmlns: xsl= http://www.w3.org/1999/XSL/Transform 
    xmlns: xsp= http://apache.org/xsp 
    xmlns: abc= http://samspublishing.com/abc/1.0 
    version= 1.0 > 
        <xsl: xsp del match= de la plantilla: página > 
            <xsp: page> 
                <xsl: select= @*/> de las aplicar-plantillas 
                <xsp: structure> 
                    <xsp: include>java.util. Date</xsp: include> 
                </xsp: structure> 
 
                <xsp: logic> 
                    Fecha ahora = nueva fecha (); 
                </xsp: logic> 
                <xsl: apply-templates/> 
            </xsp: page> 
        </xsl: template> 
 
        <xsl: ABC del match= de la plantilla: fecha y hora > 
            El tiempo actual es <xsp: expr>now</xsp: expr> 
        </xsl: template> 
 
        <xsl: @* del match= de la plantilla|nodo () > 
            <xsl: copy> 
                <xsl: @* del select= de las aplicar-plantillas|nodo ()/> 
            </xsl: copy> 
        </xsl: template> 
        <xsl: match= texto de la plantilla () >                  
             <xsl: select= del value-of. /> 
        </xsl: template> 
</xsl: stylesheet>

Hable de enrollado.  Aparte del hecho de que sea ilegible, hay otras desventajas también. Puesto que esto es esencialmente un archivo de XML, usted pierde el sintaxis que destaca y repaso de las faltas de tiempo de compilación con eclipse. Verdad, usted podría convertirse en un archivo verdadero de Java, después copia y goma, pero si usted que hace uso de las expresiones de XSL, usted está fuera de suerte. Además, una vez el funcionamiento, este código consigue compilado por Cocoon, y si hay un error, el stacktrace tiene 50 millas de largo. Esto hace el proceso del depuración difícil. Estoy alegre yo tenía la experiencia el trabajar con el capullo. Ahora sé sus fuerzas y trampas como marco potencial de la tela.  Pienso generalmente que restringiré XML al marcado encima de datos y que dejaré la lógica al pitón.

Más viejas entradas