La idea es poder añadir una leyenda con el contador de caracteres maximo y los que quedan todavia:
A medida que se escribe el contador va bajando.

El codigo necesario está en github
Puede ver un ejemplo en vivo aqui
El atributo placeholder de un input se muestra mientras no tiene valor pero luego desaparece.
La idea es mostrar ese contenido en la parte inferior derecha de la caja de texto siempre que tenga un valor.
Asi para una caja como:

Cuando ponemos el valor el placeholder pasa a estar en la parte inferior
El código necesario está en github :
Y se puede ver funcionando en el siguiente enlace
Para ello hay que incluir la libreria jplaceholder.js ( es necesario el uso de JQUERY )
Y posteriormente ejecutar el codigo:
$('input').jPlaceHolderEmpty();
Generamos un fichero python
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders
import sys
if len(sys.argv) > 1:
toaddr = sys.argv[1]
else:
toaddr = "destinatario@defecto.ext"
if len(sys.argv) > 2:
asunto = sys.argv[2]
else:
asunto = "Asunto por defecto"
if len(sys.argv) > 3:
cuerpo = sys.argv[3]
else:
cuerpo = "Correo generado automaticamente"
if len(sys.argv) > 4:
fichero = sys.argv[4]
else:
fichero = ""
fromaddr = "tuemail@tudominio.ext"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = asunto
body = cuerpo
msg.attach(MIMEText(body, 'plain'))
filename = fichero
if fichero is not '':
attachment = open(fichero, "rb")
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
msg.attach(part)
server = smtplib.SMTP('smtp.dominio.ext', 587)
server.starttls()
server.login(fromaddr, "clavedelcorreo")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
Para utilizarlo se usa:
python fichero_python_email.py destino@probando.es "Email enviado desde raspberry" "adjunto un fichero de texto" fichero_que_quiero_mandar.txt
Si tenemos un formulario y queremos evaluarlo antes de hacer el submit, necesitamos llamar a validate
<script>
function callback(res){
if (res){
document.getElementById('formularioquequieroenviar').submit();
}
}
function comprobar(){
$('#formularioquequieroenviar').validate(callback);
}
</script>
<form id="formularioquequieroenviar" action="xxx.php" method="post">
<input id="numero" name="numero" type="text" placeholder="numero" data-validate="required" />
<input type="button" value="Comprobar" />
</form>
El resultado del callback será el que determine si se hace el submit o no.
Añadir automaticamente una leyenda a una imagen con su texto alternativo o poder cambiar las imagenes por un div con el mismo tamaño que la imagen y como contenido el texto alternativo.
Para ello nos hace falta JQuery y estilo css
Dada una imagen

Lo que obtenemos es la misma imagen pero con una leyenda inferior
La otra variante oculta la imagen y en su lugar muestra un hueco del mismo tamaño pero con el texto alternativo como contenido.

El ejemplo completo se puede ver aquí
Vivimos en una sociedad donde las relaciones humanas son cada vez mas difíciles, o por lo menos mas complicadas, dejarme que me explique: Ahora todo es digital, la manera de comunicarnos ha cambiado y hay que adaptarse a ello.
Hace algunos años no existían los móviles, ni con ellos los sms al principio o el whatsapp mas recientemente, tampoco había redes sociales.
Facebook por ejemplo empezó en 2004 pero no fué hasta 2008 cuando se convirtió en lo que es ahora.
A lo largo de los últimos años hemos visto como nacían muchas redes sociales (Instagram, Pinterest, Twitter) y algunas de ellas también morían, como por ejemplo Friendster o myspace.

El tema de los moviles tambien es digno de destacar, hace 20 años los telefonos moviles se utilizaban solo para llamar y muchas veces ni eso, se hacia una «llamada perdida» que dependiendo de la situacion podia significar varias cosas, como ya he llegado o si era de hijos a padres un «llamame tu».
Ahora los moviles se usan menos para llamar pero mas para la comunicación digital, sobre todo whatsapp, siendo la aplicación mas utilizada en españa.
Pero volvamos al tema principal, antes la unica manera de conocer gente era mediante el trato personal, habia que hablar con la persona y eso podia ser el comienzo de una amistad. Las interacciones se producian en el lugar de trabajo, el gimnasio, o en bares y zonas de ocio, los mas mayores recordarán tambien los recreativos o las plazas llenas de niños jugando.
Ahora todo es digital, cada vez se ven menos niños jugando en la calle, menos balones y menos bicicletas, y un ejemplo se pudo comprobar solo hace unos días, mas concretamente el 25 de diciembre, donde hace 20 años veías gente en la calle estrenando regalos, ahora no había nadie, los chicos solo quieren cosas digitales, consolas, videojuegos, teléfonos móviles y tabletas.
Eso nos lleva otra vez a que si los niños son así, los mayores tambien cambian sus habitos, todo el mundo tiene el movil «a mano», e Internet es la manera de comunicarnos e informarnos, de interactuar con el entorno, fotos de lo que comemos, de donde vamos y de con quien estamos, etiquetamos todo y comentamos lo que hacen nuestros amigos y conocidos.
Todo esto nos lleva a que cada vez hay menos relaciones personales, incluso entre parejas que estando sentadas juntas se escriben por whatsapp…
Entonces, ¿como se hacen amigos?
Dependiendo de la edad las redes sociales te pueden ayudar, los amigos de tus amigos comentan, tu respondes y puede que surja una conversación, o por el otro lado, si no conoces gente de verdad no puedes añadir a nadie a las redes sociales por lo que no hay manera de empezar a «hablar» aunque sea digitalmente.
Luego está el tema de cuantos amigos tienes y la «calidad» de esas amistades, mucha gente tiene 500 o mas amigos en una red social, pero de verdad los conoces a todos o has hablado con ellos alguna vez.
Entonces descubrimos que una manera de conocer gente puede ser un foro de amistad, donde buscar un tema que te apasione y encontrar gente que también le guste, ese es el punto de partida que necesitamos para conocer gente.
Para mandar un correo con acentos en el asunto hay que añadir
$classmail->Subject = "=?ISO-8859-1?B?".base64_encode(utf8_decode($asunto))."=?=";
Partimos del siguiente xml:
Everyday Italian Giada De Laurentiis 2005 30.00 Harry Potter J K. Rowling 2005 29.99 XQuery Kick Start James McGovern Per Bothner Kurt Cagle James Linn Vaidyanathan Nagarajan 2003 49.99 Learning XML Erik T. Ray 2003 39.95
y trabajamos con javascript para utilizar xpath y ver los resultados
Y vemos como resultado:
/bookstore/book/author Giada De Laurentiis J K. Rowling James McGovern Per Bothner Kurt Cagle James Linn Vaidyanathan Nagarajan Erik T. Ray //title Everyday Italian Harry Potter XQuery Kick Start Learning XML //book/author[1] Giada De Laurentiis J K. Rowling James McGovern Erik T. Ray //book[@category="web"]/title XQuery Kick Start Learning XML
Se puede interactuar y probar desde la url: aquí
La idea es teniendo una caja de texto o un elemento input añadir un contador de los caracteres que faltan y que se vaya actualizando a medida que escribimos.
para ello utilizamos JQuery y la siguiente libreria:
(function($) {
'use strict';
$.fn.countChar = function() {
return this.each(function(i, element) {
$(element).keyup(function updateCharCounter() {
var $me = $(this);
var maxLength = parseInt($me.attr('maxlength'), 10);
var charCount = $me.val().length;
var nombrecajalimite=$me.prop('id')+"_limit";
var cajalimite = $('#'+nombrecajalimite);
cajalimite.text('' + maxLength + '/' + (maxLength - charCount));
});
var $me = $(this),
maxLength = parseInt($me.attr('maxlength'), 10),
charCount = $me.val().length;
var nombrecajalimite=$me.prop('id')+"_limit";
var cajalimite = $('#'+nombrecajalimite);
if (cajalimite){
$me.after('');
}
cajalimite = $('#'+nombrecajalimite);
cajalimite.text('' + maxLength + '/' + (maxLength - charCount));
});
};
$( "" ).appendTo( "head" )
}(jQuery));
Con esto lo único que tenemos que hacer es añadir una clase a nuestra caja de texto:
Y añadir al final del documento la linea que lo enlaza: