6 de octubre de 2014

problema de la rana

Estaba aburrido y me coloque a revisar una demo de esto de pruebas de programador y pues hice el problema de la rana.

una pequeña rana quiere llegar al otro lado del camina. la rana se encuentra en la posiciónX y quiere llegar a una distancia igual o mayor a Y. la ramita solo puede saltar siempre una distancia D.

Se necesita contar el mínimo numero de saltos que necesita la rana para llegar a Y. se necesita construir una función del tipo:

int solution(int X, int Y, int D)

Que dado tres números enteros X,Y y D , retorne el mínimo numero de saltos hacia una distancia igual o mayor a Y.

Como ejemplo daban algo similar a esto:

X = 25
Y = 100
D = 29

La función retornaría 3 porque la ramita hace el siguiente proceso;
  • primer salto queda en (25 + 29)= 54
  • segundo salto (25 + 29 + 29) = 83
  • tercer salto (25 + 29 + 29 + 29) = 112
Se asume que:
  • X, Y y D son enteros de rango desde el 1 al 1.000.000.000
  • X ≤ Y
  • La complejidad debe ser de O(1)

#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int salto(int x,int y,int d);
int main(int argc,char *argv[])
{
 printf("saltos :%i\n",salto(atoi(argv[1]),atoi(argv[2]),atoi(argv[3])));
 return 0;
}
/**Solucion**/
int salto(int x,int y,int d){
int div,mod;
div=(y-x)/d;
mod=(y-x)%d;
 if(0<mod)
 return (div+1);
 else
 return div;
}

Lo pueden compilar así gcc -W saltos.c -o saltos y ejecutar ./saltos 25 100 29

22 de agosto de 2014

Getting Post Data from the View adaptado para la versión 2.X

bueno he estado trabajando últimamente ya que en mi casa no me pueden ver sin hacer nada, he estado trabajando y aprendiendo sobre el framework llamado Cakephp ya que se me encargo de hacer un sistema web,yo c quería usar PHP y no ruby on rails, revisando la literatura disponible, hay un ejemplo de un libro antiguo(2008 para mi ya es antiguo :p ) llamado "Cakephp Application Development", el código que sigue es el ejemplo:

Se debe crear un controlador users_controller.php con el siguiente código:
<?php 
class UsersController extends AppController {
          var $name = 'Users';
          var $uses = array();
          function index() {
          if (!empty($this->data)) {
          //data posted
          echo $this->data['name'];
          $this->autoRender = false;
}}}
?>

la correspondiente vista en /app/views/users/index.ctp con el siguiente código:

<php echo $form->create(null, array('action' => 'index'));?>
 <fieldset>
<legend>Enter Your Name</legend>
< echo $form->input('name'); ?>
</fieldset>
<?php echo $form->end('Go');?>

Todo eso funciona(supongo) en la versión 1.3 pero yo estoy usando la versión 2.x, después de averiguar un poco se puede hacer así:

Creen un controlador /app/Controller/UsersController.php con el siguiente código:

<?php
class UsersController extends AppController {
var $name = 't';
var $uses = array('t');
function index() {
         if (!empty($this->request->data)) {
         $this->autoRender = false;
         $this->layout = NULL;
         pr($this->request->data);
            }
         }
}?>

Creen una vista en /app/View/Users/index.ctp con el siguiente form:

<?php echo $this-Form->create('t', array('action' => 'index'));?>
<fieldset>
<legend>Enter Your Name</legend>
<?php echo $this->Form->input('name'); ?>
</fieldset>
<?php echo $this->Form->end('Go');?>

El pr les va a mostrar el arreglo completo con la variable name y el valor ingresado, para que sirve esto pues a mi no me sirvió para lo que quería pero si a alguien si le puede servir.

fuente

9 de agosto de 2014

Modificar el password de un usuario en Mysql

bueno estab haciendo algunas cosas y no se por que el mysql el password de un usuario que cree no se creo bien, así que obligado a cambiarlo, entramos usando el tipico mysql -u root -p y luego:
UPDATE mysql.user SET Password=PASSWORD('Nuevo_Password') WHERE User='El_Usuario' AND Host='Mi_host';

fuente

19 de abril de 2014

usando wget para bajar de paginas con password

Pues hasta el momento esto es lo que he pillado para poder bajar de paginas que tienen que usar el usuario y password, respetando el nombre  que la misma pagina le da a los archivos.

wget --auth-no-challenge --content-disposition --http-user=usuario --http-password=mi_pass -nc

15 de abril de 2014

Acceso tareas estructuras de datos USM

Bueno ya casi no voy a la universidad y el dia que me toco habian unos alumnos de segundo año que no tenian idea de como trabajar desde sus casas ya que no es necesario que instalen linux o una maquina virtual con linux

Lo primero que quiero explicar es que les piden la tarea de estructuras de datos en linux en el Laboratorio de informatica es por un asunto de tener una plataforma comun pero tambien es para que programen usando ANSI-C , es decir usen lo estandar y no usen librerias externas tipicas en windows.

Acceso SSH en windows


Lo que se necesita es un cliente ssh para poder entrar remotamente lo pueden bajar aqui, al abrilo se peuden conectar por el momento(cada cierto tiempo cambia) ssh2.inf.utfsm.cl asi:

 

Pueden salvarla session y el puerto por defecto de ssh  es el 22 despues al dar "open" les va a solicitar el login el cual es del tipo nombre.apellido y obviamente se password, ahora esta todo unificado, por lo tanto es lo mismo de su correo de informatica, moodle, la cuenta del lab.


pues  presionan SI y deberia aparecer una tipica pantalla negra donde puedes escribir comandos :D



Escribiendo la tarea

Para escribir la tarea les recomendaria usar un editor de texto, uno que les parecera simpatico en windows y que les parsea o pinta las palabras propias del lenguaje es notepad++ y subiral suando un cliente ftp, pero tambien existe la opcion de escribir directamente en la terminal usando  Nano y Vim.

usando nano

nano es un editor de texto en linux muy simple de usar basta con que escribamos algo como esto nano ari1.c y mi tarea de ari se vera asi:


Guardar: Ctrl + o
Salir: Ctrl+x

usando Vim
Vim es un poco mas complicado de usar, pero tiene la ventaja de que parcea los colores si detecta el tipo de archivo(tambien se le puede indicar que lenguaje estamos usando entonces podriamos hacer vim ari1.c


Se nota la diferencia sin embargo


  • guardar se hace escribiendo :w
  • salir es :q
  • forzar para salir :!q
  • para poder escribir primero se presiona la letra i y de ahi uno escribe
  • si uno quiere ir a una linea especifica basta con que  uno escriba :numero_de_fila es decir si yo quiero ir a  la fila 64 escribo :64


Subiendo la tarea

Para poder subir la tarea usando windows una forma es usando un cliente ftp uno bastante conocido es el Filezilla


  • host usamos:ssh2.inf.utfsm.cl
  • login:nombre.apellido
  • password:el de su cuenta
  • port: 22


Con estos datos tendremos acceso a nuestro espacio donde podemos subir el archivo con nuestro codigo

Compilando la Tarea

Las tareas usualmente son en C si lo queremos compilar recominedo hacer esto, por lo que deben usar GCC los ayudantes descuentas por los warnings:

gcc -W Ejemplo.c -o Ejemplo

  • Ejemplo.c es un archivo de texto plano que no es necesario que tenga al final el .c.
  • para darnos cuenta necesitamos incluir el flag -W.
  • Renombrar el archivo compilado -o , si no renombramos el archivo lo mas probable es que nos salga un archivo a.out.

Ahora para ejecutarlo se deberia hacer asi:

fabian.pinto@ohiggins:$./Ejemplo

Con lo cual se deberia ejecutar nuestro ejemplo

PD: en todo caso cualquier duda preguntenle a los primos o algun estudiante decente  de 4 semestre hacia arriba.
Laboratorio de Computacion de Valpo

30 de marzo de 2014

Splunk Installer was unable to create Splunk Services


si reinstalando la aplicacion me salio el siguiente mensaje:

Splunk Installer was unable to create Splunk Services

la solución al menos para mi fue aplicar el siguiente comando en D.o.S

sc delete splunkd

fuente