PEQUEÑA AYUDA EN ESTE CÓDIGO EN PYTHON

Tengo el siguiente código que toma como parámetro una lista como la descrita y devuelva la longitud del nombre más largo y quería saber porque en ciertas pruebas que realizo se me cumple y en otras no. El programa solo me fallaen estas dos pruebas de 8 que realicé

Prueas en las que falla: input: [‘John’,’Paul’,’Christopher’,’Peter’] output: 11 Me devuelve:5

input: [‘Max’,’Kate’,’Fred’] output: 4 Me devuelve: 3

import functions  names = ['Max','Kate','Fred'] length = functions.longest(names) print("El nombre más largo tiene longitud", length)   def longest(names):     longitud = len(max(names))       return longitud 

Control calefacción central. 2 sensores DHT, 3 relés de control. Problemas con código

Antes de nada, dar las gracias a tod@s aquell@s que dediquen un rato a ayudarme.

El tema es que hace tiempo comencé a montarme un termostato con arduino partiendo de cero, y en unos meses lo conseguí, hay que decir que de programación ando mal, y de electrónica algo mejor, finalmente me conseguí fabricar mi PCB, subir todo el código a un NODEMCU y gestionar la caldera desde el teléfono móvil, todo un logro para mí.

Pero claro, me emocioné y aprovechando que nos hemos comprado un piso, pues con un par de huev….cableé toda la casa y ahora quiero gestionar la calefacción de forma zonificada. Creía que me iba a costar mucho menos el tema del programa, pero a cada paso que doy, más perdido voy.

Comento, pretendo controlar 3 relés con 2 sensores DHT22, uno por cada zona.

• Problema 1. No consigo averiguar cómo hacer para que cuando un radiador demande calor, estén como estén el resto de relés de los radiadores, el relé de la Caldera siga ON.

• Problema 2. Cuando hago un GET 192.168.30/tempDeseadaDespacho40 consigo que el NODEMCU lo vea, me activa el relé del radiador del Despacho, me activa el relé de la Caldera, pero cuando hago un GET 192.168.1.30/tempDeseadaDespacho00, consigo que el relé del radiador se desactive, pero no el de la Caldera. • Tampoco consigo que los GET se vean reflejados de forma correcta en el navegador web.

#include <FS.h> #include <ESP8266WiFi.h>  #include "ThingSpeak.h"  #include <DHT.h> #include <WiFiManager.h> #include <ArduinoJson.h> #include <ESP8266mDNS.h> #include <DNSServer.h> #include <ESP8266WebServer.h> #include <WiFiClient.h> #include <WiFiServer.h> #define DHTTYPE DHT11 #define DHTTYPE DHT22 #include <DoubleResetDetector.h> #include <LiquidCrystal_I2C.h> #include <Wire.h>  #define DRD_TIMEOUT 10 #define DRD_ADDRESS 0  #define DHTPINDespacho 10 //_____________________________________________PONER PATILLA #define DHTPINSalon  4//_________________________________________________PONER PATILLA   const int releCaldera = 2; //Pin al que está conectado el rele de salida (PINOUT)  const int releDespacho = 12; //Pin al que está conectado el rele de salida del radiador del Despacho (PINOUT) const int releSalon = 15; //Pin al que está conectado el rele de salida del radiador del Salon (PINOUT)    float histeresis = 1; static unsigned long last_loop;  unsigned long int anteriorRefreshDatosDespacho = 0; unsigned long int anteriorRefreshDatosSalon = 0;   float tempDespacho= 0; float tempSalon= 0;  float tempDeseadaDespacho = 00; float tempDeseadaSalon = 00;   int calderaHabilitada; int estadoRele = 0; int contconexion = 0; bool shouldSaveConfig = false; bool initialConfig = false;   DoubleResetDetector drd(DRD_TIMEOUT, DRD_ADDRESS); //Función de doble reset para configurar NODEMCU  LiquidCrystal_I2C lcd(0x27, 16, 2);   DHT dhtDespacho(DHTPINDespacho, DHT22); DHT dhtSalon(DHTPINSalon, DHT22);   WiFiClient client; WiFiServer server(80);  //Parámetros de Thingspeak  const char* serverThingspeak = "api.thingspeak.com"; char  myWriteAPIKey[17] = "0WU6GVSSUPYI8EED"; char  myChannelNumber[11] = "888615";  void saveConfigCallback () { Serial.println("Should save config"); shouldSaveConfig = true;   }   void setup() {    dhtDespacho.begin(); dhtSalon.begin();  delay(10);  Serial.begin(115200); Serial.println();   //Aqui decimos que el rele de la caldera este desconectado pinMode(releCaldera, OUTPUT); digitalWrite(releCaldera, LOW);  pinMode(releDespacho, OUTPUT); pinMode(releSalon, OUTPUT); pinMode(DHTPINDespacho, INPUT); pinMode(DHTPINSalon, INPUT);    Serial.println();  if (WiFi.SSID()==""){     Serial.println("We haven't got any access point credentials, so get them now");        initialConfig = true;     }     if (drd.detectDoubleReset()) {     Serial.println("Doble reset detectado");     initialConfig = true;       }       if (initialConfig) {       Serial.println("Starting configuration portal.");           lcd.clear();           lcd.setCursor(0,0);           lcd.print("INTRODUCIR");           lcd.setCursor(0,1);           lcd.print("USUARIO Y PASS");       WiFiManager wifiManager;       wifiManager.resetSettings();       }        //Leer configuración de Json      Serial.println("mounting FS...");    if (SPIFFS.begin()) {     Serial.println("mounted file system");     if (SPIFFS.exists("/config.json")) {       //file exists, reading and loading       Serial.println("reading config file");       File configFile = SPIFFS.open("/config.json", "r");       if (configFile) {         Serial.println("opened config file");         size_t size = configFile.size();         // Allocate a buffer to store contents of the file.         std::unique_ptr<char[]> buf(new char[size]);          configFile.readBytes(buf.get(), size);         DynamicJsonBuffer jsonBuffer;         JsonObject& json = jsonBuffer.parseObject(buf.get());         json.printTo(Serial);         if (json.success()) {           Serial.println("\nparsed json");            strcpy(myWriteAPIKey, json["myWriteAPIKey"]);           } else {           Serial.println("failed to load json config");         }       }     }   }   WiFiManagerParameter custom_myWriteAPIKey("API-Key", "myWriteAPIKey", myWriteAPIKey, 17);  WiFiManager wifiManager;  //Establecer configuración guardada  wifiManager.setSaveConfigCallback(saveConfigCallback);      IPAddress _ip = IPAddress(192, 168, 1, 30);     IPAddress _gw = IPAddress(192, 168, 1, 1);     IPAddress _sn = IPAddress(255, 255, 255, 0);     wifiManager.setSTAStaticIPConfig(_ip, _gw, _sn);      wifiManager.addParameter(&custom_myWriteAPIKey);      if (!wifiManager.autoConnect()) {       Serial.println("failed to connect and hit timeout");       delay(10);              ESP.reset();       delay(10);       }    //Si has llegado aquí estás conectado a una WIFI   Serial.println("Conectado a una Wifi");           lcd.clear();           lcd.setCursor(0,0);           lcd.print("CONECTANDO...");           delay(20);    //Leer parámetros actualizados      strcpy(myWriteAPIKey, custom_myWriteAPIKey.getValue());       //Guardar los parámetros en FS      if (shouldSaveConfig) {       Serial.println("saving config");       DynamicJsonBuffer jsonBuffer;       JsonObject& json = jsonBuffer.createObject();       json["myWriteAPIKey"] = myWriteAPIKey;            File configFile = SPIFFS.open("/config.json", "w");           if (!configFile) {           Serial.println("failed to open config file for writing");             }       json.printTo(Serial);       json.printTo(configFile);       configFile.close();     //Guardado finalizado     }   Serial.println();   Serial.println("local ip");   Serial.println(WiFi.localIP());   delay(10);}      void refreshDatosDespacho(){  if (millis() > anteriorRefreshDatosDespacho + 20000){     anteriorRefreshDatosDespacho = millis();     float tempDespacho = dhtDespacho.readTemperature();     float humiDespacho = dhtDespacho.readHumidity();       if (isnan(tempDespacho) || isnan(humiDespacho)){        Serial.println("Fallo en lectura de temperatura y humedad del Despacho");       return;}         if (calderaHabilitada = 1){           if (tempDespacho + histeresis >= tempDeseadaDespacho && tempDespacho > 0)  digitalWrite(releDespacho, LOW);         else if (tempDespacho < tempDeseadaDespacho && tempDespacho > 0){          digitalWrite(releDespacho, HIGH);         digitalWrite(releCaldera, HIGH);}       else digitalWrite(releDespacho, LOW);        }                     Serial.println();       Serial.println("Leyendo datos....");       Serial.print("Temperatura deseada: ");       Serial.println(tempDeseadaDespacho);        Serial.print("Temperatura Despacho: ");       Serial.println(tempDespacho);       Serial.print("Humedad Despacho: ");       Serial.println(humiDespacho);             lcd.clear();             lcd.setCursor(0,0);             lcd.print("Temp Despacho: ");             lcd.print(tempDespacho);             lcd.print(" ");             lcd.print((char)223);             lcd.print("C");             lcd.setCursor(0,1);             lcd.print("Hum Despacho:  ");             lcd.print(humiDespacho);             lcd.print(" %");             int estadoRele = digitalRead(releCaldera);       if (estadoRele == LOW){           Serial.print("Estado relé caldera: ");             Serial.println("LOW");           lcd.setCursor(15,0);           lcd.print(" ");                     } else {                     Serial.print("Estado relé caldera: ");                       Serial.println("HIGH");                     lcd.setCursor(15,0);                     lcd.print("C");                     }                        // Start the server     ThingSpeak.begin(client);     Serial.println("Cliente thingspeak iniciado");     server.begin();     Serial.println("Server iniciado");     Serial.println(myWriteAPIKey);     Serial.println("local ip");     Serial.println(WiFi.localIP());     delay(10);     ThingSpeak.setField(1, tempDespacho);     //ThingSpeak.setField(2, humiPasillo);      ThingSpeak.setField(6, estadoRele);     //ThingSpeak.setField(4, tempDeseadaDespacho);     ThingSpeak.writeFields(String(myChannelNumber).toInt(), myWriteAPIKey);        delay(100);     Serial.println("Enviando datos...");     Serial.println();                  }          }           void refreshDatosSalon(){    if (millis() > anteriorRefreshDatosSalon + 20000){       anteriorRefreshDatosSalon = millis();       float tempSalon = dhtSalon.readTemperature();       float humiSalon = dhtSalon.readHumidity();       if (isnan(tempSalon) || isnan(humiSalon)){        Serial.println("Fallo en lectura de temperatura y humedad del Salon");        return;}         if (calderaHabilitada = 1){           if (tempSalon + histeresis >= tempDeseadaSalon && tempSalon > 0)  digitalWrite(releSalon, LOW);         else if (tempSalon < tempDeseadaSalon && tempSalon > 0){          digitalWrite(releSalon, HIGH);         digitalWrite(releCaldera, HIGH);}       else digitalWrite(releSalon, LOW);        }                Serial.println();       Serial.println("Leyendo datos....");       Serial.print("Temperatura deseada: ");       Serial.println(tempDeseadaSalon);        Serial.print("Temperatura Salon: ");       Serial.println(tempSalon);       Serial.print("Humedad Salon: ");       Serial.println(humiSalon);             lcd.clear();             lcd.setCursor(0,0);             lcd.print("Temp Salon: ");             lcd.print(tempSalon);             lcd.print(" ");             lcd.print((char)223);             lcd.print("C");             lcd.setCursor(0,1);             lcd.print("Hum Salon:  ");             lcd.print(humiSalon);             lcd.print(" %");             int estadoRele = digitalRead(releCaldera);       if (estadoRele == LOW){           Serial.print("Estado relé caldera: ");             Serial.println("LOW");           lcd.setCursor(15,0);           lcd.print(" ");                     } else {                     Serial.print("Estado relé caldera: ");                       Serial.println("HIGH");                     lcd.setCursor(15,0);                     lcd.print("C");                     }   // Start the server     ThingSpeak.begin(client);     Serial.println("Cliente thingspeak iniciado");     server.begin();     Serial.println("Server iniciado");     Serial.println(myWriteAPIKey);     Serial.println("local ip");     Serial.println(WiFi.localIP());     delay(10);     ThingSpeak.setField(3, tempSalon);     //ThingSpeak.setField(2, humiSalon);      //ThingSpeak.setField(3, estadoRele);     //ThingSpeak.setField(4, tempDeseadaSalon);     ThingSpeak.writeFields(String(myChannelNumber).toInt(), myWriteAPIKey);        delay(100);     Serial.println("Enviando datos...");     Serial.println();                  }          }   void loop() {            drd.loop();   refreshDatosDespacho();   refreshDatosSalon();          WiFiClient client = server.available();     if (!client) {         return;             }      // Read the first line of the request   String req = client.readStringUntil('\r');   Serial.println(req);   client.flush();     int  val;          int  valDespacho;        if (req.indexOf("/tempDeseadaDespacho40") != -1){       tempDeseadaDespacho = 40;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho40") != -1){       tempDeseadaDespacho = 22;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho23") != -1){       tempDeseadaDespacho = 23;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho24") != -1){       tempDeseadaDespacho = 24;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho25") != -1){       tempDeseadaDespacho = 25;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho26") != -1){       tempDeseadaDespacho = 26;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho00") != -1){       tempDeseadaDespacho = 00;       valDespacho = 0;        } else {       Serial.println("peticion invalida");       client.stop();       return;             }         int  valSalon;        if (req.indexOf("/tempDeseadaSalon40") != -1){       tempDeseadaSalon = 40;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon22") != -1){       tempDeseadaSalon = 22;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon23") != -1){       tempDeseadaSalon = 23;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon24") != -1){       tempDeseadaSalon = 24;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon25") != -1){       tempDeseadaSalon = 25;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon26") != -1){       tempDeseadaSalon = 26;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon00") != -1){       tempDeseadaSalon = 00;       valSalon = 0;        } else {       Serial.println("peticion invalida");       client.stop();       return;             }        calderaHabilitada = val;       client.flush();    // Prepara la respuesta web       String sDespacho = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";   sDespacho += (valDespacho)?"high":"low";   sDespacho += "</html>\n";          String sSalon = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";   sSalon += (valSalon)?"high":"low";   sSalon += "</html>\n";     // Send the response to the client   client.print(sDespacho);   client.print(sSalon);   delay(1);   client.stop();   Serial.println("Client disonnected");   }                                    

Ver como se lee el codigo en Netbeans

no se si me pueda explicar, quiero ver como Netbeans lee el código, para ir testeando que es lo que realmente eta haciendo con los bucles, creo que hace años vi algo similar en PSeint, cuando ejecutaba algo el programa mostraba lo que leia linea por linea, como una sombra que mostraba que linea leia y cual se repetia por los bucles. algo así necesito no se si en Netbeans tenga algo similar, muchas gracias.

N elementos HTML trabajando con el mismo codigo javascrip

La cosa es asi.

Código javascrip crea dinámicamente una tabla con información, y la idea es que al seleccionar un campo este active una función común para todos los elementos generados, La idea más simple seria que al crear la tabla a cada elemento se le añada un onclick = “Funcion_comun_para_todos(Id_del_elemento)” pero la estructura ya creada de de la pagina complica esto, ya que esta función requiere además del id del elemento de variables aisladas.

No hay variables globales y los datos están dentro de variables en window.onload = function () y todos los elementos HTML solo tienen su id y dentro de window.onload = function () estan unos cuantos document.getElementById(“Id_X”).onclick = function(), desde ese punto se realizan un par de comprobaciones y se llaman funciones pasándoles los datos ya que las variables hacen parte de todo ese lote de codigo.

Entonces hay dos caminos, el del ejemplo de idea más simple, usar onclick = “Funcion_comun_para_todos(Id_del_elemento)” pero con el problema de que esta función tiene que poder acceder a esos datos que están fuera de su alcance.

O la otra usar document.getElementById(“Id_X”).onclick = function() con el problema de que como son N elementos no puedo crear N “document.getElementById”, pero si se pudiera usar el mismo Id “cosa que claro no se puede” para todos los N elementos HTML, o otra cosa que les pueda agrupar a todos y usar el mismo codigo, como un tag o la class, y de esta forma el document.getElementById este dentro de window.onload y pueda acceder a los datos que están dentro

Acepto cualquier idea, pero la cosa es evitar variables globales. : (

¿Donde está el problema en este código Python?

El programa debe factorizar y mostrar todos los factores primos de un número ingresado por el usuario:

def detector(num):     cont = 0     for i in range(1, num+1):         if num % i == 0:             cont += 1     if cont == 2 or num == 1:         return True     else:         return False   def primeFactorization():      factor = 2     number = int(input('Please, choose a number to factorize: '))      while number != 1 and detector(factor):         if number % factor == 0:             yield factor             number = number / factor         else:             factor += 1  primeFactorization() 

Reducir código y generar gráficos dinámicos

Actualmente estoy realizando el juego de N Reinas y a pesar de que eh logrado generar los gráficos que representan a las reinas. Mi problemática es que quiero agregar estas piezas de forma dinámica ya que dejare que el usuario seleccione la cantidad de reinas que desea colocar en el tablero, mi problema surge cuando le quiero agregar el método MouseDragged a cada pieza en el tablero pero el problema es que solo los eh podido agregar de forma manual y quisiera agregarlos de forma dinámica o saber si existe otra forma de hacer esto que quiero.

public class OtraPrueba extends JFrame {      JPanel jpanel = (JPanel) this.getContentPane();     JLabel label[] = new JLabel[8];     Border border = BorderFactory.createLineBorder(Color.black, 1);     int N = 0, recX, recY;      public static void main(String[] args) {         OtraPrueba op = new OtraPrueba();         op.setBounds(0, 0, 500, 500);         op.setVisible(true);         op.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);     }      public OtraPrueba() {         jpanel.setLayout(null);         jpanel.setBackground(Color.CYAN);          for (int i = 0; i < label.length; i++) {             label[i] = new JLabel();             label[i].setBounds(25 + (50 * i), 25, 30, 30);             label[i].setText("Q" + (i + 1));             label[i].setBorder(border);             label[i].setHorizontalAlignment(SwingConstants.CENTER);             jpanel.add(label[i], null);         }          label[0].addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {             @Override             public void mouseDragged(java.awt.event.MouseEvent evt) {                 j1MouseDragged(evt);             }         });         label[1].addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {             @Override             public void mouseDragged(java.awt.event.MouseEvent evt) {                 j2MouseDragged(evt);             }         });         label[2].addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {             @Override             public void mouseDragged(java.awt.event.MouseEvent evt) {                 j3MouseDragged(evt);             }         });         label[3].addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {             @Override             public void mouseDragged(java.awt.event.MouseEvent evt) {                 j4MouseDragged(evt);             }         });         label[4].addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {             @Override             public void mouseDragged(java.awt.event.MouseEvent evt) {                 j5MouseDragged(evt);             }         });         label[5].addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {             @Override             public void mouseDragged(java.awt.event.MouseEvent evt) {                 j6MouseDragged(evt);             }         });         label[6].addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {             @Override             public void mouseDragged(java.awt.event.MouseEvent evt) {                 j7MouseDragged(evt);             }         });         label[7].addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {             @Override             public void mouseDragged(java.awt.event.MouseEvent evt) {                 j8MouseDragged(evt);             }         });     }      public void j1MouseDragged(java.awt.event.MouseEvent evt) {         label[0].setLocation(newPosition(evt)[0], newPosition(evt)[1]);     }      public void j2MouseDragged(java.awt.event.MouseEvent evt) {         label[1].setLocation(newPosition(evt)[0], newPosition(evt)[1]);     }      public void j3MouseDragged(java.awt.event.MouseEvent evt) {         label[2].setLocation(newPosition(evt)[0], newPosition(evt)[1]);     }      public void j4MouseDragged(java.awt.event.MouseEvent evt) {         label[3].setLocation(newPosition(evt)[0], newPosition(evt)[1]);     }      public void j5MouseDragged(java.awt.event.MouseEvent evt) {         label[4].setLocation(newPosition(evt)[0], newPosition(evt)[1]);     }      public void j6MouseDragged(java.awt.event.MouseEvent evt) {         label[5].setLocation(newPosition(evt)[0], newPosition(evt)[1]);     }      public void j7MouseDragged(java.awt.event.MouseEvent evt) {         label[6].setLocation(newPosition(evt)[0], newPosition(evt)[1]);     }      public void j8MouseDragged(java.awt.event.MouseEvent evt) {         label[7].setLocation(newPosition(evt)[0], newPosition(evt)[1]);     }      public int[] newPosition(MouseEvent evt) {         int newX, newY;         if (evt.getXOnScreen() <= 25) {             newX = 25;         } else if (evt.getXOnScreen() <= 75) {             newX = 75;         } else if (evt.getXOnScreen() <= 125) {             newX = 125;         } else if (evt.getXOnScreen() <= 175) {             newX = 175;         } else if (evt.getXOnScreen() <= 225) {             newX = 225;         } else if (evt.getXOnScreen() <= 275) {             newX = 275;         } else if (evt.getXOnScreen() <= 325) {             newX = 325;         } else if (evt.getXOnScreen() <= 375) {             newX = 375;         } else {             newX = 375;         }          if (evt.getYOnScreen() <= 25) {             newY = 25;         } else if (evt.getYOnScreen() <= 75) {             newY = 75;         } else if (evt.getYOnScreen() <= 125) {             newY = 125;         } else if (evt.getYOnScreen() <= 175) {             newY = 175;         } else if (evt.getYOnScreen() <= 225) {             newY = 225;         } else if (evt.getYOnScreen() <= 275) {             newY = 275;         } else if (evt.getYOnScreen() <= 325) {             newY = 325;         } else if (evt.getYOnScreen() <= 375) {             newY = 375;         } else {             newY = 375;         }          recX = newX;         recY = newY;          int retorno[] = {newX, newY};          return retorno;     }  } 

¿Como podria optimizar este codigo?

Este codigo es para validar los archivos que se ingresan a una carpeta o directorio y en caso de que se encuentren ya en el directorio pues mandar un aviso, me gusta pero siento que se puede mejorar y bastante. Si alguien pudiera ayudarme me seria de mucho agrado.

$  imagen = $  _FILES['img']; $  nombre = $  imagen['name'];  function subirimagen($  imagen, $  nombre){ $  escaner = scandir('./carpetaprueba'); foreach ($  escaner as $  scan){     if ($  nombre == $  scan) {         $  msg = '<h2>La imagen ya se encuentra dentro</h2>';         break;     }else{         move_uploaded_file($  imagen['tmp_name'], "carpetaprueba/$  nombre");         header("Refresh: 3 URL=index.php");         $  msg = "<h2>La imagen fue subida correctamente</h2>";} }          return $  msg; } 

Necesito un código o script que me permita colocar la fecha en la columna B cuando se llenan los datos en la columna A

Necesito colocar la fecha en la columna B cuando se llenan los datos de la columna A y que sea la fecha del día cuando se colocaron los datos, copio código de excel donde lo tengo en una tabla pero lo requiero en un doc de google. Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range(“A:A”)) Is Nothing Then

Range(“B” & Target.Row) = Date

Range(“C” & Target.Row) = Format(Now, “hh:mm”)

End If

End Sub

Log In como su desde código usando el comando system

Estoy trabajando con Raspbian y Qt en C. Hace poco instale mutt directamente en la consola para poder enviar correos desde la línea de comandos, hasta ahí todo funciona perfectamente.

El problema viene al intentar incorporar esa función dentro de mi código en Qt, utilizo el comando system() de stdlib.h para poder pasarle la línea de comandos directamente, pero me da un error.

El problema está en que para enviar correos usando mutt tengo que logearme como “sudo su” en la consola y posteriormente enviar el correo. Mi pregunta es, ¿hay alguna forma de logearme como “sudo su” desde el código en Qt, para que así me permita mandar correos desde el programa? Lo he intentado haciendo:

System("sudo su")  System(Línea de comando de mutt para el correo)  

Pero haciendo lo anterior, el programa logea como sudo su pero se cuelga en ese paso.

Alguien podria explicar este codigo en php?

<?php      session_start();     ob_start();     require_once 'core/models/class.Autoload.php';     Autoload::load(); ?> 

descargue un proyecto que me hizo mi programador, y ahora estoy estudiando php para poder rehacerlo yo mismo, lo descargue de amazon, pero nose porque me lo toma con muchos defectos en localhost, se ve que hay algo que no logra cumplir la llamada.

Me gustaria ir entendiendo para poder ir trabajandolo en localhost. ese codigo, es necesario para un localhost? tengo que modificar el autoload para que me ande en localhost? muchas gracias