viernes, 4 de septiembre de 2015

Cómo redirigir un subdominio a un dominio principal utilizando el .htaccess de apache (301)

Pues eso amig@s,

Si necesitamos redirigir un subdominio al dominio principal utilizando un redirect 301 desde el htaccess, podemos hacerlo utilizando el siguiente scripts.


//Redirigir el error 404 a una página en concreto
ErrorDocument 404 /404.html

//Activamos el mod_rewrite
RewriteEngine On
//Todo el tráfico que venga del subdominio test.dominio.com
//lo redirigimos a www.dominio.com
RewriteCond %{HTTP_HOST} ^test.dominio.com$ [NC] RewriteRule (.*) http://www.dominio.com/$1 [R=301,L]

//Todo lo que no venga con www, lo redirigimos a www.dominio.com RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.dominio.com/$1 [R=301,L]


Y voila!

Espero que les resulte útil.

Salu2.

martes, 14 de abril de 2015

Como descargar un fichero utilizando un método POST

Pues eso amig@s,

Si necesitamos descargarnos un fichero desde un servidor que solo acepta peticiones POST, necesitaremos crear un script que permite dicha tarea. Si tenemos muchos ficheros que descargar, lo que también necesitaremos es que al hacer clic en uno de los botones, éste se cambie de color. A continuación les dejo las instrucciones y código:

<html>
<body>
<form action="http://x.com/games/download/get/1         " method="post"><button id="button"  style="color:white" onclick="setColor(event, 'button', '#101010')"; data-count="1" class="btn-link" type="submit">desc</button></form>
<form action="http://x.com/games/download/get/2         " method="post"><button id="button"  style="color:white" onclick="setColor(event, 'button', '#101010')"; data-count="1" class="btn-link" type="submit">desc</button></form>
<form action="http://x.com/games/download/get/3         " method="post"><button id="button"  style="color:white" onclick="setColor(event, 'button', '#101010')"; data-count="1" class="btn-link" type="submit">desc</button></form>
<script>
function setColor(e, btn, color) {
  var target = e.target,
      count = +target.dataset.count;
 
   target.style.backgroundColor = count === 1 ? "#7FFF00" : '#FFFFFF';
   target.dataset.count = count === 1 ? 0 : 1;
}
</script>
</body>
</html>


Como nombre, he puesto a cada  botón desc, aunque esto nos da exactamente igual, ya que al descargarnos el fichero, el servidor nos proporcionará el nombre correcto. La función setColor, tras hacer clic en el primer botón cambiará el fondo de éste del básico a un verde fosforecente.

Espero que les resulte útil.
Salu2.

jueves, 4 de septiembre de 2014

Cómo solucionar problemas con el Windows Installer en Windows 7 de 64bits

Pues eso amig@s,

Si están teniendo problemas para instalar un programa y éste les devuelve un mensaje que ha ocurrido un problema al acceder al Windows Installer (errores 1709, 1406, etc) es debido principalmente a que las cadenas del registro utilizadas por el Windows installer, bien están corruptas o directamente se encuentran borradas.

Para solucionarlo de una forma automática, solo nos basta con descargarnos un Fixit de M$ que nos permite regenerar las cadenas del registro de Windows utilizadas por el Windows installer.

Se puede descargar desde aquí http://support.microsoft.com/kb/2438651/es

Espero que les resulte útil.

Salu2.

viernes, 22 de agosto de 2014

Solucionando problemas de navegación en Google Chrome

Si tenemos problemas con la navegación del algunas páginas webs o simplemente el google chrome no puede conectar con google.es mostrando el error Error 15 (net::ERR_SOCKET_NOT_CONNECTED): Unknown error.

Lo que debemos hacer es limpiar el spool de los sockets del chrome, para ello, copiamos en dirección el siguiente enlace: chrome://net-internals/#sockets

Luego hacemos clic en Close Idle Sockets y por último en Flush sockets pools



Voila!, Chrome accederá nuevamente al buscador google.es o google.com.

Espero que les resulte útil.

miércoles, 9 de julio de 2014

Comprobación del estado de una bbdd Oracle (Oracle database health check)

Hola!..

Os dejo un script que utilizo para comprobar el estado y consistencia general de una bbdd Oracle. Es compatible desde la versión 10g hasta la 12c.

Para ejecutar el script basta con utilizar un sqlplus con privilegios de DBA y poco más.

Ejemplo:
Sqlplus sys/sys@local @healthcheck.sql

Copiar el siguiente contenido a un fichero de texto y ponerle de nombre healthcheck.sql

spool c:\resultado_heathcheck.txt
prompt**-----------Database health check script for Oracle Database's-----------**
prompt**------Based on the Shahid Ahmed script - Updated by Eduardo Arana-------**
prompt**------Updates:----------------------------------------------------------**
prompt**------01/03/2014 - Check if there any sessions blocked | E.Arana--------**
prompt
prompt**---------------Database General Information-----------------------------**
SELECT DBID "DATABASE_ID", NAME "DB_NAME", LOG_MODE, OPEN_MODE, RESETLOGS_TIME  FROM V$DATABASE;
SELECT instance_name, status, to_char(startup_time,'DD-MON-YYYY HH24:MI:SS') "DB Startup Time"
FROM   sys.v_$instance;
column "Host Name" format a15;
column "Host Address" format a15;
SELECT UTL_INADDR.GET_HOST_ADDRESS "Host Address", UTL_INADDR.GET_HOST_NAME "Host Name" FROM DUAL;
SELECT BANNER "VERSION" FROM V$VERSION;
col "Database Size" format a15;
col "Free space" format a15;
select round(sum(used.bytes) / 1024 / 1024/1024 ) || ' GB' "Database Size",
round(free.p / 1024 / 1024/1024) || ' GB' "Free space"
from (select bytes from v$datafile
union all select bytes from v$tempfile
union all select bytes from v$log) used,
(select sum(bytes) as p from dba_free_space) free
group by free.p;

prompt**---------------Database SGA Component Size------------------------------**
set line 200;
select    pool, m_bytes from ( select     pool, to_char( trunc(sum(bytes)/1024/1024,2), '99999.99' ) as M_bytes
    from     v$sgastat
    where     pool is not null   group     by pool
    union
    select     name as pool, to_char( trunc(bytes/1024/1024,3), '99999.99' ) as M_bytes
    from     v$sgastat
    where    pool is null  order     by 2 desc
    ) UNION ALL
    select    'TOTAL' as pool, to_char( trunc(sum(bytes)/1024/1024,3), '99999.99' ) from v$sgastat;

prompt**---------------DB Characterset Information-------------------------------**
Select * from nls_database_parameters;
col name  format A60 heading "Control Files";
select name from   sys.v_$controlfile;
col member  format A40 heading "Redolog Files";
set line 200;
col archived format a15;
col status format a10;
col first_time format a20;
select a.group#, a.member, b.archived, b.status, b.first_time from v$logfile a, v$log b
where a.group# = b.group# order by a.group#;

prompt**---------------DB Profile and Default Information--------------------------**
set line 200;
col username format a25;
col profile format a20;
col default_tablespace format a25;
col temporary_tablespace format a25;
Select username, profile, default_tablespace, temporary_tablespace from dba_users;

prompt**---------------PGA_AGGREGATE_TARGET------------------------------------**
set line 200;
select  name, cnt, decode(total, 0, 0, round(cnt*100/total)) percentage
from (select name, value cnt, (sum(value) over()) total
from v$sysstat where name like 'workarea exec%'
);
Prompt--DBA increase this Parameter when "multipass" value are greater than ZERO and Reduce whenever the optimal executions are 100 percent.
select name, value from v$pgastat;

prompt**---------------Users Log on Information------------------------------------**
set line 200;
col OSUSER format a40;
col STATUS format a15
col MACHINE format a35;
Select to_char(logon_time,'dd/mm/yyyy hh24:mi:ss') "Logon_Time",osuser,status,machine from v$session where type !='BACKGROUND';

prompt**---------------Monitoring Schema Growth Rate---------------------------**
select    obj.owner "Owner",  obj_cnt "Objects",  decode(seg_size, NULL, 0, seg_size) "Size in MB"
from (select owner, count(*) obj_cnt from dba_objects group by owner) obj,
(select owner, ceil(sum(bytes)/1024/1024) seg_size
    from dba_segments group by owner) seg
where obj.owner  = seg.owner(+)
order by 3 desc ,2 desc, 1;

prompt**---------------Largest object in Database----------------------------------**
SET LINE 200;
col SEGMENT_NAME format a30;
col SEGMENT_TYPE format a30;
col BYTES format a30;
col TABLESPACE_NAME FORMAT A30;
SELECT * FROM (select SEGMENT_NAME, SEGMENT_TYPE, BYTES/1024/1024/1024 GB, TABLESPACE_NAME from dba_segments order by 3 desc ) WHERE ROWNUM <= 5;

prompt**--------------Monitoring Most resource usnig SQL statements-------------------**
set line 200;
SELECT * FROM   (SELECT Substr(a.sql_text,1,50) sql_text,
               Trunc(a.disk_reads/Decode(a.executions,0,1,a.executions)) reads_per_execution,
               a.buffer_gets, a.disk_reads, a.executions, a.sorts, a.address
        FROM   v$sqlarea a
        ORDER BY 2 DESC)
WHERE  rownum <= 5;

prompt**--------------Monitoring Objects Created within 7 days---------------------**
select count(1) from user_objects where CREATED >= sysdate - 7;

prompt**--------------Counting Invalid object in Database---------------------------**
Select owner, object_type, count(*) from dba_objects where status='INVALID' group by  owner, object_type;

prompt**--------------Monitoring Current Running Long Job in DB--------------------**
SELECT SID, SERIAL#, opname, SOFAR, TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) COMPLETE
FROM   V$SESSION_LONGOPS
WHERE TOTALWORK != 0 AND    SOFAR != TOTALWORK order by 1;

prompt**----------------Monitoring DML Lock------------------------------------------**
set line 200;
col username format a30;
col lock_type format a20;
col osuser format a30;
col owner format a25;
col object_name format a50;
SELECT s.sid, s. serial#, s.username, l.lock_type, s.osuser, s.machine,
    o.owner, o.object_name, ROUND(w.seconds_in_wait/60, 2) "Wait_Time"                
FROM
     v$session s, dba_locks l, dba_objects o, v$session_wait  w
WHERE   s.sid = l.session_id
  AND l.lock_type IN ('DML','DDL')
  AND l.lock_id1 = o.object_id
  AND l.session_id = w.sid
ORDER BY   s.sid;

prompt**-----------Monitor Non-Sys owned tables in SYSTEM Tablespace-----------------**
SELECT owner, table_name, tablespace_name FROM dba_tables WHERE tablespace_name = 'SYSTEM' AND owner NOT IN ('SYSTEM', 'SYS', 'OUTLN');

prompt**---------------Track Redolog Generation-------------------------------------**
select trunc(completion_time) logdate, count(*) logswitch, round((sum(blocks*block_size) / 1024 / 1024)) "REDO PER DAY(MB)"
from v$archived_log
group by trunc(completion_time)
order by 1;

prompt**--------------Monitor DB Corruption or Need of Recovery--------------------**
set line 200;
SELECT r.FILE# AS df#, d.NAME AS df_name, t.NAME AS tbsp_name, d.STATUS,
    r.ERROR, r.CHANGE#, r.TIME FROM V$RECOVER_FILE r, V$DATAFILE d, V$TABLESPACE t
    WHERE t.TS# = d.TS# AND d.FILE# = r.FILE#;

--Added dual checking if there any sessions getting blocked right now. --E.Arana
prompt**--------------Check if there any sessions getting blocked right now--------**
-- WHAT ALL THE SESSIONS ARE GETTING BLOCKED
select 'SESSIONS BLOCKED',process,sid, blocking_session from v$session where blocking_session is not null;

prompt**--------------Check which session is blocking which sessions---------------**
-- WHICH SESSION IS BLOCKING WHICH SESSION
set lines 9999
set pages 9999
select s1.username || '@' || s1.machine
|| ' ( SID=' || s1.sid || ' ) is blocking '
|| s2.username || '@' || s2.machine || ' ( SID=' || s2.sid || ' ) ' AS blocking_status
from v$lock l1, v$session s1, v$lock l2, v$session s2
where s1.sid=l1.sid and s2.sid=l2.sid
and l1.BLOCK=1 and l2.request > 0
and l1.id1 = l2.id1
and l2.id2 = l2.id2 ;


prompt**---------------Tablespace Information--------------------------------------**
col tablespace_name format a15 heading "Tablespace Name"
SELECT Total.name "Tablespace Name",
       nvl(Free_space, 0) Free_space,
       nvl(total_space-Free_space, 0) Used_space,
       total_space
FROM
  (select tablespace_name, sum(bytes/1024/1024) Free_Space
     from sys.dba_free_space
    group by tablespace_name
  ) Free,
  (select b.name,  sum(bytes/1024/1024) TOTAL_SPACE
     from sys.v_$datafile a, sys.v_$tablespace B
    where a.ts# = b.ts#
    group by b.name
  ) Total
WHERE Free.Tablespace_name(+) = Total.name
ORDER BY Total.name
/
prompt**---------------Shows Used/Free Space Per Datafile---------------------------**

set linesize 200
col file_name format a50 heading "Datafile Name"


SELECT SUBSTR (df.NAME, 1, 40) file_name, df.bytes / 1024 / 1024 allocated_mb,
         ((df.bytes / 1024 / 1024) - NVL (SUM (dfs.bytes) / 1024 / 1024, 0))
               used_mb,
         NVL (SUM (dfs.bytes) / 1024 / 1024, 0) free_space_mb
    FROM v$datafile df, dba_free_space dfs
   WHERE df.file# = dfs.file_id(+)
GROUP BY dfs.file_id, df.NAME, df.file#, df.bytes
ORDER BY file_name;

TTI off

prompt**---------------Report Tablespace < 10% free space-----------------------------**
set pagesize 300;
set linesize 100;
column tablespace_name format a15 heading Tablespace;
column sumb format 999,999,999;
column extents format 9999;
column bytes format 999,999,999,999;
column largest format 999,999,999,999;
column Tot_Size format 999,999 Heading "Total Size(Mb)";
column Tot_Free format 999,999,999 heading "Total Free(Kb)";
column Pct_Free format 999.99 heading "% Free";
column Max_Free format 999,999,999 heading "Max Free(Kb)";
column Min_Add format 999,999,999 heading "Min space add (MB)";
select a.tablespace_name,sum(a.tots/1048576) Tot_Size,
sum(a.sumb/1024) Tot_Free, sum(a.sumb)*100/sum(a.tots) Pct_Free,
ceil((((sum(a.tots) * 15) - (sum(a.sumb)*100))/85 )/1048576) Min_Add
from (select tablespace_name,0 tots,sum(bytes) sumb
from sys.dba_free_space a
group by tablespace_name
union
select tablespace_name,sum(bytes) tots,0 from
sys.dba_data_files
group by tablespace_name) a
group by a.tablespace_name
having sum(a.sumb)*100/sum(a.tots) < 10
order by pct_free;

prompt**-------------------File I/O statistics--------------------------------------**

prompt

set linesize 150
col name format a50 heading "Datafile Name"
select name,PHYRDS "Physical Reads",PHYWRTS "Physical Writes",READTIM "Read Time(ms)",WRITETIM "Write Time(ms)",AVGIOTIM "Avg Time" from v$filestat, v$datafile where v$filestat.file#=v$datafile.file#;
set feedback on
prompt

rem -----------------------------------------------------------------------
rem Filename:   sga_stat.sql
rem Purpose:    Display database SGA statistics
rem -----------------------------------------------------------------------
prompt Recommendations:
prompt =======================
prompt* SQL Cache Hit rate ratio should be above 90%, if not then increase the Shared Pool Size.
prompt* Dict Cache Hit rate ratio should be above 85%, if not then increase the Shared Pool Size.
prompt* Buffer Cache Hit rate ratio should be above 90%, if not then increase the DB Block Buffer value.
prompt* Redo Log space requests should be less than 0.5% of redo entries, if not then increase log buffer.
prompt* Redo Log space wait time should be near to 0.
prompt
set serveroutput ON
DECLARE
      libcac number(10,2);
      rowcac number(10,2);
      bufcac number(10,2);
      redlog number(10,2);
      redoent number;
      redowaittime number;
BEGIN
select value into redlog from v$sysstat where name = 'redo log space requests';
select value into redoent from v$sysstat where name = 'redo entries';
select value into redowaittime from v$sysstat where name = 'redo log space wait time';
select 100*(sum(pins)-sum(reloads))/sum(pins) into libcac from v$librarycache;
select 100*(sum(gets)-sum(getmisses))/sum(gets) into rowcac from v$rowcache;
select 100*(cur.value + con.value - phys.value)/(cur.value + con.value) into bufcac
from v$sysstat cur,v$sysstat con,v$sysstat phys,v$statname ncu,v$statname nco,v$statname nph
where cur.statistic# = ncu.statistic#
        and ncu.name = 'db block gets'
        and con.statistic# = nco.statistic#
        and nco.name = 'consistent gets'
        and phys.statistic# = nph.statistic#
        and nph.name = 'physical reads';
dbms_output.put_line('SGA CACHE STATISTICS');
dbms_output.put_line('********************');
dbms_output.put_line('SQL Cache Hit rate = '||libcac);
dbms_output.put_line('Dict Cache Hit rate = '||rowcac);
dbms_output.put_line('Buffer Cache Hit rate = '||bufcac);
dbms_output.put_line('Redo Log space requests = '||redlog);
dbms_output.put_line('Redo Entries = '||redoent);
dbms_output.put_line('Redo log space wait time = '||redowaittime);
if
 libcac < 90  then dbms_output.put_line('*** HINT: Library Cache too low! Increase the Shared Pool Size.');
END IF;
if
 rowcac < 85  then dbms_output.put_line('*** HINT: Row Cache too low! Increase the Shared Pool Size.');
END IF;
if
 bufcac < 90  then dbms_output.put_line('*** HINT: Buffer Cache too low! Increase the DB Block Buffer value.');
END IF;
if
 redlog > 1000000 then dbms_output.put_line('*** HINT: Log Buffer value is rather low!');
END IF;
END;
/
spool off
exit

El resultado de la ejecución generará un fichero de salida en c:\ llamado resultado_healthcheck.txt

Espero que os resulte útil.
Un saludo.

miércoles, 18 de junio de 2014

Examen Práctico HSK-1 Español mi nueva app disponible en Google Play

Esta aplicación Examen Práctico HSK-1 en Español te permitirá prepararte para el nivel oficial HSK 1 directamente desde tu móvil o tablet. Incluye el diccionario completo de 150 palabras requerido por el HSK 1 dividido en tres columnas, Hànzì, Pinyin y Español. Con lo que podrás conocer como se dice en español cada palabra, lo que logrará una mejor comprensión y adaptación al idioma.
Esta aplicación consta de un menú con tres opciones:
Objetivos: Breve explicación sobre los objetivos necesarios para presentarse al HSK-1. Incluye un cuadro donde puede verse en que temas se divide el examen.
Vocabulario: Vocabulario completo de 150 palabras requerido por el HSK-1 dividido en tres columnas, Hànzì, Pinyin y Español. Lo que facilitará una mejor comprensión y memorizado de cada palabra.
Comenzar Examen: Examen Práctico en Español que consta de 40 preguntas (HSK-1) más 9 preguntas adicionales que se incluyen en los exámenes de pruebas proporcionados por el Instituto HanBan / Confucio. En total 49 preguntas, 25 de comprensión auditiva y 24 de comprensión de lectura.
¡PREPÁRATE PARA EL EXAMEN OFICIAL HSK-1 CON ESTA APLICACIÓN DIRECTAMENTE DESDE TU MÓVIL O TABLET!
CONTENIDO:
● Aplicación es completamente gratuita.
● Diccionario con las 150 palabras del nivel HSK-1
● Caracteres simplificados, tradicionales y traducción al Español.
● 49 Preguntas en el examen de prueba.
● Todo el contenido de audio está grabado en chino nativo.
● Puntaje en tiempo real de cada pregunta resuelta en el examen práctico.
Más información aquí:
Capturas:






domingo, 9 de marzo de 2014

Como instalar MAC OS X Mavericks en una Asus Rampage III con I7 950 y una NVIDIA GTX 650 TI

Hola Amig@s,

A continuación les dejo un mini tutorial que he hecho acerca de como instalar el Mac Os X Mavericks 10.9 en un ordenador (computadora), algo que comúnmente se denomina HACKINTOSH.


Indice:

Sección 1: Configuración actual de mi sistema y necesarios para la instalación.
Sección 2: Creación del usb con myHACK
Sección 3: Instalación
Sección 4: Requisitos post instalación.

Sección 1: Configuración actual de mi sistema

Asus Rampage III Extreme
Intel I7 Extreme 950 3.07GHZ
12GB RAM
Nvidia GTX 650 TI
60GB SSD Corsair GT << No lo utilizo para MAC.
450GB Western Digital Velociraptor

Sección 1: Requisitos para la instalación
Disco duro con al menos 20GB de espacio
Llave USB de 8 GB mínimo

Sección 2: Creación del usb con myHACK

1-Deberemos descargar la última versión del Mac Os X 10.9 Mavericks, es gratuito y se puede descargar desde Aquí



2-Insertar nuestra llave USB en un sistema MAC original o también podemos montar una utilizando VirtualBox y Mavericks. Aquí podremos encontrar una guía paso a paso, yo he utilizado esta última opción para crear el USB con myHack

3-Una vez que instalemos myHack, lo ejecutamos:



4-myHack nos solicitará la contraseña de gestión ya que debe realizar ciertos ajustes y solo con los permisos de administrador es posible llevarlos a cabo.



5-Una vez introducida la contraseña, seleccionamos del desplegable la opción "Create OS X Installer"



6-Una vez seleccionada la opción, hacemos clic en OK.

7-El mensaje que aparecerá a continuación nos preguntará si deseamos eliminar toda la información del USB, a lo que respondemos que OK.

NOTA IMPORTANTE EN EL PASO 8:
En el transcurso de la creación del USB nos aparecerán varios cuadros de dialogo solicitando diferentes opciones. En una de ellas, nos preguntará si deseamos aplicar el patch sobre la MBR a lo que respondemos que NO. Es imperativo seleccionar esta opción debido a que luego, en el momento de arrancar el instalador, evitaremos problemas de ejecución y core dumps.

9-Esperamos a que terminen todas las tareas de myHack, podemos saber esto, cuando al final, nos aparece el botón de QUIT.

10-Si lo hemos hecho con un MAC original, quitamos nuestra llave usb, si han utilizado mi método a través de VIRTUALBOX deberán realizar la mismoa operación (extraer medio usb).

11-Continuamos con la siguiente sección.

Sección 3: Instalación

1-Seleccionamos desde nuestra BIOS arrancar desde USB.

2-Una vez que aparezca la pantalla de inicio del boot loader, deberemos introducir el siguiente texto:

-v cpus=1 npci=0×2000 GraphicsEnabler=NO forceHPET=NO

Dicha linea es indispensable para poder instalar nuestro MAC OS X en un ordenador con placa base ASUS RAMPAGE III.

3-Cuando el boot loader finalice la tarea de carga de controladores, nos aparecerá la siguiente pantalla:





Seleccionaremos el idioma por defecto que tendrá nuestro sistema e instalación. Para continuar haremos clic en la flecha.

4-En el siguiente paso debemos definir la partición con la utilidad "Disk Utility" 




5-Pinchamos sobre el disco duro donde instalaremos nuestro MAC OS X y luego a la derecha en ERASE:



6-Por último nos aseguraremos de tener seleccionada la opción de formato (MAC OS EXTENDED) y haremos clic en el botón ERASE para eliminar los datos del disco duro y crear una partición compatible con la instalación.

7-Una vez particionado el disco duro, continuaremos con la instalación.

Sección 4: Requisitos post instalación.

1-Para continuar, necesitaremos descargarnos e instalar el Multibeast desde Aquí. (Quizás toque registrarse)



2-Una vez que tengamos instalado el MultiBeast, necesitaremos nuestro DSDT personalizado para esta placa base (Asus Rampage iii Extreme) y también los controladores de audio, red y video. Por lo que necesitaremos descargarnos éste fichero ZIP y descomprimirlo en nuestro escritorio del Mac Os X Maverick (Doble clic sobre el fichero y se descomprimirá sobre la misma ruta).

3-Para añadir nuestro DSDT con el MultiBest deberemos hacer clic en QuickStart y seleccionar el botón USER DSDT y buscar en nuestro escritorio el fichero dentro de nuestra carpeta recién comprimida (EXTRA/dsdt.aml).




4-Una vez instalado nuestro DSDT deberemos también instalar los controladores, para ello necesitaremos una utilidad llamada Kext Utility que la podrán descargar desde Aquí.

Esta app funciona directamente seleccionando todos los controladores que necesitemos instalar y arrastrándolos dentro de la propia pantalla de la app:


5-Para buscar los controladores necesarios, solo nos basta con entrar al directorio del fichero rar que nos hemos descargado (el que hemos descomprimido anteriormente) y luego acceder a la subcarpeta SYSTEM /LIBRARY/EXTENSIONS y seleccionar todos los ficheros que hay dentro y arrastrarlos al Kext Utility para instalarlos. Posiblemente solicite la contraseña del usuario administrador para realizar los cambios en los permisos de ficheros y directorios.

Una vez finalizado el paso anterior, reiniciaremos nuestro ordenador y si todo ha sido correcto Voila! tendremos nuestro propio MAC o mejor dicho nuestro HACKINTOSH.

Está guía está basada en la guía de RampageDEV pero adaptada para funcionar con una placa base Asus Rampage III.

Espero que les resulte útil ;).