Conectarse a Linux mediante SSH desde windows

Para poder conectarnos desde Windows a una máquina Linux desde Windows utilizaremos el protocolo SSH (Secure Shell).

Abriremos una consola en nuestra máquina Linux.

Ejecutamos el comando “sudo apt-get update” por si tenemos alguna actualización pendiente.

Después ejecutaremos el siguiente comando “sudo apt-get install ssh”.

Y ya podremos acceder al Ubuntu con un cliente SSH.

Para conectarnos desde Windows utilizaremos como cliente SSH la herramienta Putty

Introducimos la IP del Linux que hará de HOST y pulsamos Open.

Ya nos aparece el intérprete de comandos, tecleamos nuestro nombre de usuario y contraseña.

YouTube no funciona y Google muestra advertencia de malware

Vemos que este fin de semana no podemos cargar la archiconocida web Youtube.

Como siempre cuando ves que algo no funciona piensas que es algún virus pero hablando con más gente vemos que es un error general y que nuestros ordenadores no están infectados.

Lo extraño de todo es que ayer por ejemplo Google mostraba el siguiente mensaje “Advertencia- Si visitas este sitio web, tu equipo puede resultar dañado”. al realizar cualquier búsqueda.

Ayer hubo un rato que para poder acceder a la mayoria de las páginas (incluyendo yahoo, gmail..) se debía introducir la URL directamente en el navegador. No podemos quejarnos del servicio ya que tampoco pagamos nada pero la verdad que cuando una compañia de este tipo falla el mundo tiembla.

Ver Comunicado oficial de google

Simple respuesta: “Un error humano”. Marissa Mayer comentó que hoy les llegó una actualización que envió StopBadware.org, una ONG sin fines de lucro con la que trabaja Google, de las páginas que podrían hacerle daño a tu ordenador y hubo un error en la actualización que puso a toda la web en la lista negra. Todo fue culpa de un caracter ‘/’, que fue leído por error y cuya funcionalidad es expandir la lista a todas las URLs.

Con esto queda claro la alta exigencia que tenemos los usuarios respecto a cualquier servicio incluso aunque no pagemos ni un triste euro.

Charles Web Debugging Proxy

Charles is a web proxy (HTTP Proxy / HTTP Monitor) that runs on your own compute

Interesante proxy HTTP, monitor HTTP y reverse proxy, que permite al desarrollador ver todo el tráfico HTTP que existe entre su máquina e Internet. Muestra las peticiones, las respuestas y las cabeceras HTTP (junto a las cookies e información de caché). Realizado en Java, permite simular una conexión tipo modem para saber como se ve tu aplicación web mediante este tipo de conexión.

http://www.charlesproxy.com/

Barack Obama – Yes We Can music video

El grupo de HipHop Black eye peace hace una canción con un discurso del nuevo presidente de los Estados Unidos Barack Obama.

Las inevitables fases del oficio

Aquí un pequeño escrito que describe perfectamente el Rise and fall de un programador, todo ello explicado en un simple “hello world”

The Evolution of a Programmer

High School/Jr.High

10 PRINT “HELLO WORLD”
20 END

First year in College

program Hello(input, output)
begin
writeln(‘Hello World’);
end.

Senior year in College

(defun hello
(print
(cons ‘Hello (list ‘World))))

New professional

#include
void main(void)
{
char *message[] = {“Hello “, “World”};
int i;

for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}

Seasoned professional

#include
#include

class string
{
private:
int size;
char *ptr;

public:
string() : size(0), ptr(new char(‘\0′)) {}

string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}

~string()
{
delete [] ptr;
}

friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};

ostream &operator<<(ostream &stream, const string &s)
{
return(stream << s.ptr);
}

string &string::operator=(const char *chrs)
{
if (this != &chrs)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return(*this);
}

int main()
{
string str;

str = "Hello World";
cout << str << endl;

return(0);
}

Master Programmer

[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
// bring in the master library
importlib(“actimp.tlb”);
importlib(“actexp.tlb”);

// bring in my interfaces
#include “pshlo.idl”

[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
]
cotype THello
{
interface IHello;
interface IPersistFile;
};
};

[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{

// some code related header files
importheader();
importheader( );
importheader();
importheader(“pshlo.h”);
importheader(“shlo.hxx”);
importheader(“mycls.hxx”);

// needed typelibs
importlib(“actimp.tlb”);
importlib(“actexp.tlb”);
importlib(“thlo.tlb”);

[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
aggregatable
]
coclass CHello
{
cotype THello;
};
};

#include “ipfix.hxx”
extern HANDLE hEvent;
class CHello : public CHelloBase
{
public:
IPFIX(CLSID_CHello);

CHello(IUnknown *pUnk);
~CHello();

HRESULT __stdcall PrintSz(LPWSTR pwszString);

private:
static int cObjRef;
};

#include
#include #include
#include
#include “thlo.h”
#include “pshlo.h”
#include “shlo.hxx”
#include “mycls.hxx”

int CHello:cObjRef = 0;

CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
return;
}

HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf(“%ws\n”, pwszString);
return(ResultFromScode(S_OK));
}

CHello::~CHello(void)
{

// when the object count goes to zero, stop the server
cObjRef–;
if( cObjRef == 0 )
PulseEvent(hEvent);

return;
}

#include
#include #include “pshlo.h”
#include “shlo.hxx”
#include “mycls.hxx”

HANDLE hEvent;

int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();

hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

// Initialize the OLE libraries
CoInitiali, NULL);

// Initialize the OLE libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);

CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);

// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);

// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();

// Tell OLE we are going away.
CoUninitialize();

return(0); }

extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;

CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0×00, 0xAA, 0×00, 0×34, 0×28, 0×20 }
};

UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0×00, 0xAA, 0×00, 0×34, 0×28, 0×20 }
};

#include
#include #include
#include
#include
#include “pshlo.h”
#include “shlo.hxx”
#include “clsid.h”

int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];

// get object path
wcsPath[0] = ‘\0′;
wcsT[0] = ‘\0′;
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {
fprintf(stderr, “Object path must be specified\n”);
return(1);
}

// get print string
if(argc > 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L”Hello World”);

printf(“Linking to object %ws\n”, wcsPath);
printf(“Text String %ws\n”, wcsT);

// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

if(SUCCEEDED(hRslt)) {

hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);

if(SUCCEEDED(hRslt)) {

// print a string out
pHello->PrintSz(wcsT);

Sleep(2000);
ulCnt = pHello->Release();
}
else
printf(“Failure to connect, status: %lx”, hRslt);

// Tell OLE we are going away.
CoUninitialize();
}

return(0);
}

Apprentice Hacker

#!/usr/local/bin/perl
$msg=”Hello, world.\n”;
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, “>” . $outfilename) || die “Can’t write $arg: $!\n”;
print (FILE $msg);
close(FILE) || die “Can’t close $arg: $!\n”;
}
} else {
print ($msg);
}
1;

Experienced Hacker

#include
#define S “Hello, World\n”
main(){exit(printf(S) == strlen(S) ? 0 : 1);}

Seasoned Hacker

% cc -o a.out ~/src/misc/hw/hw.c
% a.out

Guru Hacker

% cat
Hello, world.
^D

AXE System programmer

LL0:
.seg “data”
.seg “text”
.proc 04
.global _main
_main:
!#PROLOGUE# 0
sethi %hi(LF26),%g1
add %g1,%lo(LF26),%g1
save %sp,%g1,%sp
!#PROLOGUE# 1
.seg “data1″
L30:
.ascii “Hello, World\012\0″
.seg “text”
.seg “data1″
L32:
.ascii “Hello, World\012\0″
.seg “text”
set L32,%o0
call _strlen,1
nop
mov %o0,%i5
set L30,%o0
call _printf,1
nop
cmp %o0,%i5
bne L2000000
nop
mov 0,%o0
b L2000001
nop
L2000000:
mov 0×1,%o0
L2000001:
call _exit,1
nop
LE26:
ret
restore
LF26 = -96
LP26 = 96
LST26 = 96
LT26 = 96
.seg “data”

0000000 0103 0107 0000 0060 0000 0020 0000 0000
0000020 0000 0030 0000 0000 0000 0054 0000 0000
0000040 033f ffff 8200 63a0 9de3 8001 1100 0000
0000060 9012 2000 4000 0000 0100 0000 ba10 0008
0000100 1100 0000 9012 2000 4000 0000 0100 00 ba10 0008
0000100 1100 0000 9012 2000 4000 0000 0100 0000
0000120 80a2 001d 1280 0005 0100 0000 9010 2000
0000140 1080 0003 0100 0000 9010 2001 4000 0000
0000160 0100 0000 81c7 e008 81e8 0000 0000 0000
0000200 4865 6c6c 6f2c 2057 6f72 6c64 0a00 4865
0000220 6c6c 6f2c 2057 6f72 6c64 0a00 0000 0000
0000240 0000 000c 0000 0608 0000 006e 0000 0010
0000260 0000 060b 0000 006e 0000 0014 0000 0286
0000300 ffff ffec 0000 0020 0000 0608 0000 0060
0000320 0000 0024 0000 060b 0000 0060 0000 0028
0000340 0000 0186 ffff ffd8 0000 004c 0000 0386
0000360 ffff ffb4 0000 0004 0500 0000 0000 0000
0000400 0000 000a 0100 0000 0000 0000 0000 0012
0000420 0100 0000 0000 0000 0000 001a 0100 0000
0000440 0000 0000 0000 0020 5f6d 6169 6e00 5f70
0000460 7269 6e74 6600 5f73 7472 6c65 6e00 5f65
0000500 7869 7400
0000504

% axe_generate -f system.uhdl
Application ‘Exchange’ generated
2324042350000000 source code lines
No Errors detected.
Hardware retrieval…done OK
Certification Test…done OK
Packing…………..done OK
Delivery………….done OK
Application ‘Exchange’ delivered to customer
23456000 bytes/sec.
End processing, 2345 seconds.

Ultra high level programmer

system.uhdl :

SYSTEM
CREATE ScreenWin
SIZE 20000000/Unit=One
DESTINATION Order.dest[One]
OUTPUT CHARACTER['Hello world']
END
END

New Manager

10 PRINT “HELLO WORLD”
20 END

Middle Manager

mail -s “Hello, world.” bob at b12

Bob, could you please write me a program that prints
“Hello, world.”? I need it by tomorrow.

^D

Senior Manager

% zmail all

I need a “Hello, world.” program by this afternoon.

Chief Executive

% message
message: Command not found
% pm
pm: Command not found
% letter
letter: Command not found.
% mail
To: ^X ^F ^C

>> help mail

help: Command not found.

>>what

what: Command not found

>>need help

need: Command not found

>> damn!

!: Event unrecognized

>>exit

exit: Unknown

>>quit

%
% logout

El hacker de la autopista

Fake o realidad esta claro que el hacker de la autopista nos deja a todos un poco alucinados. Aunque es un poco raro que muestre su rostro así como si nada y sin todo los problemas que le puede conllevar hacer esto. Por más que busqué info de este hack, no pude encontrar. Si alguien puede traducir al holandés este que nos cuente. Sin lugar a dudas, un gran hack. Queda la duda de cómo pudo hackear los letreros de la autopista con su Mac: WiFi, Bluetooth, hackeo del servidor, ¿o simplemente un fake?

COLDPLAY – VIVA LA VIDA -Barcelona

SpeedFan – Ajustar la velocidad de los ventiladores del PC.

ajustar velocidad de los ventiladores del pc

Cansado de tener que apagar el ordenador por las noches por el incesante ruido de los ventiladores del PC? Aburrido de escuchar más el ruido de los ventiladores que la propia música o pelicula favorita?

Os recomiendo usar SpeedFan una aplicación FREE para monitorizar la velocidad de los ventiladores, voltage y muchos más componentes de tu ordenador (sólo windows..). Podrás realizar un control manual y reducir considerablemente el molesto ruido de los ventiladores o configurar el programa para que el mismo automáticamente ajuste el rendimiento más eficiente dependiendo de las temperaturas de tu sistema.

La mejora es considerable y la reducción de ruido es un gran alivio para nuestros odios pero debemos andar con mucho ojo y hacer un uso responsable ya que el ordenador necesita constantemente una buena refrigeración para su correcto funcionamiento y evitar el calentamiento de sus componentes.

Devolviendo un iJam en San Francisco



Hace unos meses hablamos en este blog del divertido e ingenioso iJam. Pues la broma sigue y nos encontramos con este video donde podemos ver a los creadores del CONCEPTO iJam en un Apple Store de San Francisco con la intención de devolverlo. Nos quedamos con la cara del vendedor..

Trucos SQL: Buscar dentro de Stores Procedures y Triggers

Necesitamos saber que StoreProcedure o que Trigger tiene alguna referencia de una determinada tabla o columna de nuestra base de datos pues con esta sentencia podremos buscar directamente el nombre de una tabla o una columna mediante la tabla interna SYSOBJECTS de SQLSERVER.

select name, text
from sysobjects c_obj left join syscomments com on c_obj.id = com.id
where (c_obj.xtype = 'P' or c_obj.xtype = 'TR') and text like '%quebusco%'