Experiencias microATX

Hace un tiempo monté un ordenador  a un familiar que quería comprar un clónico y me ofrecí a llevarle el tema. Como quería que fuera «pequeñito» optamos por comprar un modelo microATX. Lo de pequeñito va entre comillas porque la caja, una Bitfenix Prodigy M (en un principio queríamos ir a por una Phenom, pero era imposible pillarlas y salía por el mismo precio) no es que sea de lo más pequeña, aunque sí que es muy mona ella.

El ordenador iba a ir destinado a ofimática y poco más. No había presupuesto mínimo, pero no se quería preocupar de este tema «nunca más», así que hicimos una selección de componentes que me pareció buena con expectativas a no tener que preocuparse por él durante mucho tiempo. Los componentes fueron:

  • Bitfenix Prodigy M
  • i5 4670k
  • Gigabyte GA-H87M-D3H
  • Corsair CX500M
  • G.Skill DDR3 4GB x2
  • Seagate Barracuda 1Tb
  • Tarjeta WiFi

La fuente modular fue un poco ‘capricho’ pero que vino muy bien a la hora de montar ya que, como he dicho, la caja no es de las más pequeñas pero sí que tiene un espacio reducido en su interior. Si no llega a ser modular no creo que fluyera demasiado aire dentro.

2013-11-29 21.27.45

La verdad es que al final quedó muy bien. A la hora de montar sí que tuvimos alguna complicación pues había que poner algunas partes antes que otras o si no era imposible operar, pero quitando eso que fue más bien error nuestro el resultado fue muy bueno. No hace nada de ruido (No pusimos ventiladores extras, no hacía falta) y el «cliente» quedó muy contento.

2013-11-30 16.11.51

2013-11-30 16.10.39

Clover EFI bootloader

image-02-535x535

Clover is a recent bootloader that not need some files as Chimera and is more integrate with the system.

Chameleon doesn’t take any info from the UEFI. Chameleon is booted in legacy BIOS mode, just like a standard Windows install. It then emulates Apple’s efi. Clover actually directly communicates with UEFI to an extent and can be booted natively in UEFI mode, although you can also do a non-EFI install of Clover. You pretty much got all the main differences. Just a few things I can think of that Clover has: Ability to reboot to Windows via the startup disk menu, iMessage fix (I think chameleon has this now as well, though), Booting any OS in EFI mode, as well as booting any OS in legacy BIOS mode (which means you can boot chameleon through Clover if you want to), I can’t really think of much else but if you search Clover has a long list of features. That doesn’t mean Chameleon is bad, though, it also has its benefits. The main one being that it’s much simpler to set up and it’s tried-and-true.
Honestly, I had a lot of trouble getting Clover working properly (mostly operator error though)… But it’s working great now and I love it. But I definitely wouldn’t recommend it immediately for your first hackintosh. I would get it up and running with Chameleon, use it for a few months, and once you are confident that it’s stable and fully funcitonal, you can go ahead and start getting Clover working.

Chameleon vs Clover discuss

For error I install Clover and now I dont remove it. Then, I decide to use Clover bootloader.

Note: check that your hardware is compatible with EFI mode

Install Clover

http://sourceforge.net/projects/cloverefiboot/

with this config:

  • UEFI Install
  • Install to ESP
  • Choose all themes
  • Choose UEFI 64 bit drivers: DataHubDxe-64; EMUVariableUEFI-64; OSXAptioFixDrv-64
  • Install RC Scripts
  • Install Optional RC Scripts
  • Install Clover Preference Pane

How Clover works

BIOS boot: BIOS>MBR>BOOTPBR>>CLOVERX64.EFI>OS</strong>
UEFI BIOS: UEFI>CLOVERX64.EFI>OS

Mount EFI Partition


diskutil list

mkdir /Volumes/EFI

sudo mount -t msdos /dev/disk1s1 /Volumes/EFI/

Adjust EFI options

  • Run /usr/local/bin/clover-genconfig >config.plist and copy in /EFI/Clover
  • Install your SSDT and if you like a custom DSDT in EFI/Clover/ACPI/Patched

Enable Quiet Mode

To enable Quiet mode, add this to config.plist:


    <key>Boot</key>
    <dict>
        <key>Fast</key>
        <true/>
    </dict>

Clover Hotkeys

  • There is a possibility to implement national languages and fonts. F1 – multilingual help
  • Saving boot.log in OS and preboot.log from GUI by typing F2
  • Save original (OEM) ACPI tables by pressing F4
  • Test DSDT patching with F5
  • Save videoBIOS into EFI/misc by pressing F6
  • Saving screenshots from GUI typing F10
  • CD/DVD eject by F12 and refresh menu after CD insertion

Other Clover considerations

Clover generate best SMBIOS for your machine and adjust C and P states automatically.

Automatically patch AppleIntelCPUPowerManagement and AppleRTC kexts.

Conclusion

I think that EFI boots in hackintosh scene is the future, but need more community and developers. Time to time.

Links

Updating Hackintosh from 10.8 to Mavericks (10.9)

mavericks-hackintosh

Hardware

  • Z77-DS3H
  • i5-3570K @ 4.2GHz
  • 2×8 DDR3 Corsair Vengeance
  • ATI 5850

Pre-Requirements

  • Update the system at the last version of 10.8
  • Install all pending software updates
  • Clean the system with CCleaner or CleanMyMac (for ex.)

Mavericks Install

  • Download Mavericks from Apple Store
  • Create boot USB with myHack utility (Alternatively you can use Unibeast, but dont work nice in my case)

Post-Installation

Additionally for my hardware need custom drivers from Multibeast. This is my setup:

Captura de pantalla 2013-11-04 a la(s) 18.30.06and USB3 Support kexts (install with Kext Wizard).

Adjust CPU

  1. Generate CPU states with ssdtPrGen.sh. $1 argument is  your max OC turbo frequency (4200 in my case). Generate ssdt_pr dsl and aml files.
  2. Open Kext Wizard > DSDT > Save DSDT File
  3. Copy both *.aml files ad move to /Extra directory
  4. If you can problems with overclock, disable EIST from BIOS.

WordPress Database Migration Script for deploy local development

Snippet for Sublime Text 2/3:

<snippet>
 <content><![CDATA[
 [ WEB to LOCAL]

UPDATE ${1:wp}_options SET option_value = replace(option_value, 'http://${2}', 'http://${3}') WHERE option_name = 'home' OR option_name = 'siteurl';
 UPDATE ${1:wp}_posts SET guid = REPLACE (guid, 'http://${2}', 'http://${3}');
 UPDATE ${1:wp}_posts SET post_content = REPLACE (post_content, 'http://${2}', 'http://${3}');
 UPDATE ${1:wp}_postmeta SET meta_value = REPLACE (meta_value, 'http://${2}','http://${3}');

[ LOCAL to WEB ]

UPDATE ${1:wp}_options SET option_value = replace(option_value, 'http://${3}', 'http://${2}') WHERE option_name = 'home' OR option_name = 'siteurl';
 UPDATE ${1:wp}_posts SET guid = REPLACE (guid, 'http://${3}', 'http://${2}');
 UPDATE ${1:wp}_posts SET post_content = REPLACE (post_content, 'http://${3}', 'http://${2}');
 UPDATE ${1:wp}_postmeta SET meta_value = REPLACE (meta_value, 'http://${3}','http://${2}');
]]></content>
 <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
 <tabTrigger>wp:local</tabTrigger>
 <!-- Optional: Set a scope to limit where the snippet will trigger -->
 <!-- <scope>source.python</scope> -->
</snippet>

Copy/Paste code for dummies:

[ WEB to LOCAL]

 UPDATE wp_options SET option_value = replace(option_value, 'http://domain', 'http://local/dev') WHERE option_name = 'home' OR option_name = 'siteurl';
 UPDATE wp_posts SET guid = REPLACE (guid, 'http://domain', 'http://local/dev');
 UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://domain', 'http://local/dev');
 UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://domain','http://local/dev');

[ LOCAL to WEB ]

 UPDATE wp_options SET option_value = replace(option_value, 'http://local/dev', 'http://domain') WHERE option_name = 'home' OR option_name = 'siteurl';
 UPDATE wp_posts SET guid = REPLACE (guid, 'http://local/dev', 'http://domain');
 UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://local/dev', 'http://domain');
 UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://local/dev','http://domain');

Las mejores ponencias de Codemotion 2013

codemotion-mi-experiencia

Codemotion es un evento para desarrolladores y emprendedores del mundo tecnológico que abarca innumerables charlas, tanto técnicas como otras enfocadas al ámbito empresarial, consejos para aumentar la productividad, cómo formar un buen equipo, etc. En general.

Ésta es la segunda vez que se organiza el evento y he tenido la oportunidad de asistir. Si bien el año pasado me enteré a última hora y fue imposible, lo cierto es que la experiencia de este año no me ha dejado indiferente: Muy buenas charlas, con muy buenos ponentes y con variedad donde elegir.

Como es imposible ir a todas, pues hay varias ponencias al mismo tiempo intenté ir a las que más interesantes me parecían, que fueron:

google_logo_flat_print_hires

Meetup con Google

Donde para nuestra sorpresa el ponente que representaba a Google era de Murcia. Se llama  @davilagrau y nos motivó muchísimo. La charla trató de acercarnos a productos que realizaba la compañía para desarrolladores, así como la posibilidad de poder involucra.

Mención especial también a los souvenirs que luego nos proporcionaron, pues me fui de allí con una flamante camiseta Android y varias stickers de productos de la compañía. Yea!

logoAtlassianPNG

7 técnicas para conseguir que un buen equipo llegue a ser brillante

Ponencia realizada por @david_bonilla, embajador de Atlassian en España. Una ponencia muy divertida donde David nos contó verdaderamente cómo formar un equipo unido y sobre todo motivado por lo que hace. La charla estuvo acompañada en su totalidad con prácticas reales de él y su grupo de trabajo en la empresa, lo que la hizo muy amena y divertida.

(2:34:51)

Realmente fue la charla no técnica que más me gustó, aunque a David le hubiera gustado darla con otro tipo de tipografía :P.

Si os interesa aquí podéis encontrar las diapositivas de la charla.

chemaalonso

¡Feliz 15 aniversario SQL Injection!

Ponencia realizada por @chemaalonso, profesional al que admiro y sigo hace tiempo, especialmente sus publicaciones en su blog personal, elladodelmal.

Si sabéis cómo es Chema Alonso y cómo son sus charlas no hace falta que os diga cómo fue ésta: Divertida, amena y profesional. Personalmente me encantan sus ponencias y puesto que siempre las había visto por streaming la oportunidad de verlo en vivo me dejó helado.

(9:56:50)

Como anécdota decir que el lugar donde se realizaba la Codemotion era el lugar donde Chema estudió, el Campus sur de la UPM de Madrid.

Jorge_del_Casar

Desarrollo de Apps Multiplataforma con Apache Cordova 3

Realizada por @jorgecasar, evangelizador de HTML5 y BlackBerry (a partes iguales :P).

La verdad es que fui a ésta ponencia no especialmente interesado en el tema, sino porque me parecía la mejor opción bajo el horario sobre el que se realizada. Por otro parte, quería conocer en persona a Jorge, puesto que aunque le seguía la pista de vez en cuando en sus apariciones en DesarrolloWeb siempre mola desvirtualizar a la gente que sigues.

(8:46:41)

¡Y vaya si lo hizo! La ponencia me encantó. Me acercó a una tecnología que no conocía y de una manera práctica. Como anécdota Jorge hizo la conferencia a través de su móvil, lo cual fue todo un vacileo. Además es una persona muy divertida y nos hizo pasar una tarde muy agradable.

codemotion

El año que viene más

Aunque sólo he podido ir una de las dos ediciones que se han celebrado hasta ahora, lo cierto es que Codemotion está haciendo todo lo posible para consolidarse como evento, y yendo más allá, como uno de los mejores enfocado a estudiantes y próximos emprendedores y desarrolladores. Y lo está logrando. Si este año han tenido que hacerlo en un lugar diferente al del año pasado para «tener más espacio» y estaba todo lleno allá donde ibas, no me cabe duda de que el año que viene será más grande aún.

Sin duda volveré a repetir el año que viene.

Breve historia del software libre (o no)

o algo así. Empezamos desde el principio. Antes de que sigáis leyendo este post me gustaría aclarar que toda la información recogida ha sido recopilada por mí, por lo que puede haber algo que no esté bien expresado o sea erróneo. En dicho caso agradecería de corazón que me lo comentéis para poder corregirlo.

 

800px-Medal_lg

Unix

Es un SO multitarea y multiusuario desarrollado a principios de 1969 por AT&T y que fue vendido a una empresa Novell. Entre los desarrolladores de UNIX destaca Ken Thompson, creador del lenguaje de programación B y Dennis Ritchie, creador del conocidísimo lenguaje de programación C.

UNIX fue muy importante para la época porque quedó demostrado que era mucho más estable que sus principales competidores. El inconveniente más destacable de éste SO es que es de carácter privativo, por lo que otras empresas u organizaciones no podían adoptarlo a menos que obtuviesen las licencias. Se necesitaba una implementación de UNIX basada en código libre.

Curiosidad: Tanenbaum aparte de por sus libros sobre computación es conocido por crear Minix, una réplica gratuita del sistema operativo UNIX con propósitos educativos y que sentenció que Linux estaba obsoleto en 1992. Tuvo un par de enfrentamientos con Linus, pero parece que siguen siendo amigos. Aún así no me ha quedado del todo claro quién ganó la discusión.

En la siguiente imagen se muestra la evolución de UNIX y sus derivaciones:

Unix_history-simple

 

 

 

Heckert_GNU

GNU

GNU es un acrónimo recursivo que significa GNU not is UNIX. Fue creado en 1983 por Richard Stallman y es un movimiento a favor del software libre. Como se ha dicho antes, UNIX era de carácter privativo pero se demostró que era una buena opción, así que GNU empezó a desarrollar una serie de herramientas que eran compatibles con las llamadas al sistema del núcleo de UNIX. Entre esas herramientas se encuentra Emacs, GCC, TeX, Bison, Bashy un largo etc. Algunas de éstas herramientas eran mejores que algunas alternativas comerciales.

 

Richard_Matthew_Stallman

El principal inconveniente de GNU es que carecía de un núcleo que unificara todo bajo un mismo techo. Hubieron varios intentos de creación de un núcleo que no acabaron en buen puerto. No fue hasta que la Free Software Foundation (FSF) dio con Linus Torvald y su núcleo de Linux, el cual está basado en UNIX.

Curiosidad: Stallman y Torvald mantienen un gran debate entorno a la licencias de software libre por el tipo de licencia del núclero de Linux y la postura de la FSF. (En verdad no es un debate, simplemente se mantienen en posturas diferentes, lo cual es confuso porque ambos se necesitan. En el debate con Tanenbaum ya se hace mención a algunas cosas.

 

tux

Linux

Linux, o más estrictamente núcleo de Linux es el núcleo libre basado en UNIX desarrollado por Linus Torvald. En un principio se trataba de un proyecto de tiempo libre y que poco a poco y debido a la necesidad de una solución gratuita se fue haciendo más grande y cogiendo más repercusión.

Linus_Torvalds

Linux es sólo el núcleo. Cada distribución Linux completementa el núclero con una serie de herramientas. Por ejemplo, Fedora (promovido por Red Hat) y Ubuntu (Canonical) son distribuciones promovidas por dos empresas diferentes. Linux es sólo el núcleo. De ahí la controversia del hecho de llamarlo GNU/Linux, ya que aunque Linux cuenta con muchos programas de la GNU que son necesarios para que el núcleo pueda desenvolverse (GNU es el aportador principal al núcleo) lo cierto es que necesita apoyarse en otra serie de programas para ser un SO de propósito general.

Curiosidad: Linus Torvald siempre se ha caracterizado por tener un fuerte carácter y de tener unas formas un tanto informales (o incluso maleducadas) de dar y aplacar opiniones.

Éste es el mensaje original que escribió Torvald anunciando que estaba trabajando en un núcleo como alternativa libre.

 

Otros núcleos, SO’s y curiosidades

  • Mach es el nombre del micronúcleo de código abierto de Mac OSX. Darwin es el sistema operativo que subyace en Mac OSX y GNU-Darwin es su alternativa totalmente libre. Actualmente OSX implementa XNU, que es un núcleo basado en Mach y BSD.
  • BSD es un núclero derivado de UNIX muy famoso. FreeBSD es su distribución libre.

Hackintosh Setup

Hace tiempo que pasé de mi intento de Hackintosh en AMD a uno basado en Intel. Hoy lo he actualizado a la última versión oficial de Apple en Mountain Lion, la versión 10.8.5.

Como venía de una versión anterior lo único que he hecho para prevenir es un backup de los kexts antes de actualizar. Después de ella y como viene siendo habitual hace falta reinstalar Multibeast por el tema de tener de nuevo sonido a través del chip de sonido de la placa base:

IMG_2697_zps38e0ff52

 

El hardware que monto es el recomendado por tonymacx86 en una de sus guías de compras de compra y es el siguiente:

  • Intel 1156 i5 3570k @ 4.2 GHz
  • Noctua DH14
  • Gigabyte Z77-DS3H
  • Corsair Vengeance 16GB  DDR3
  • ATI HD 5850
  • Seagate 1TB (Mac) + Seagate 500GB (Win)
  • Zalman z9 + ventiladores + controladora Aerocool

2013-09-14 18.58.46 2013-09-14 18.03.23 2013-09-14 19.07.07

En cuanto a periféricos junto al teclado de Apple me acompaña un Logitech G5, una tarjeta de sonido externa Edirol (UA-4FX), un juego de altavoces 2.1 de Genius y dos monitores LG de 22» en 16:9

También es importante decir que para orientarme en el tema de kext procuro seguir los updates de gente con un setup parecido al mío. Gente como Loginfailed o Stork.

Cuando salga la versión oficial de Mavericks haré una entrada más técnica relativa a algunos aspectos fundamentales a la hora de montar un hackintosh 🙂