All posts by AleWhite

How to disable IE Enhanced Security in Windows Server 2012

This is just a quick guide to disabling the setting that makes Internet Explorer unbarable in a labb or test environment. Often, you do use the browser on the lab, dev or test server to quickly verify functionality or in SharePoint, to access Central Administration web site and make the first initial configurations. When IE ESC is eneabled, you get popups all the time and you are asked to add every new url to the IE trusted sites zone.
So, on a dev, test or lab server, it is ok to disable it, at least if you ask me. As long as you are aware of what you are doing and that it after all does provide an extra layer of security.

GUI – Graphical User Interface

The steps:

1. On the Windows Server 2012 server desktop, locate and start the Server Manager.

2. Select Local Server (The server you are currently on and the one that needs IE ESC turned off)

3. On the right side of the Server Manager, you will by default find the IE Enhanced Security Configuration Setting. (The default is On)

4. You have two settings that can be disabled, one only affects the Administrators and the other all users. The preferred method when testing (if for example SharePoint) is to use a non-admin account and if that is the case, disable the IEESC only for users. Using a local administrator account would cause an additional threat to security and it will also often not give you the required result in tests, since the administrator has permissions where a normal user do not.
Make your selection to Off for Administrators, Users or both.

5. In this example, I have selected to completely disable Internet Explorer Enhanced Security. When your seelction is made, click OK.

6. Back in the Server Manager, you will see that the setting has not changed at all. Press F5 to refresh the Server Manager and you wil see that it is changed to Off.

Done, open up a IE browser windows and try to access any internal site to test the setting, you will notice that you no longer are prompted in the same way.


Top 10 Greatest Programmers in the World of all Time

Top 10 Greatest Programmers in the World of all Time
Top 10 Greatest Programmers in the World of all Time

Dennis Ritchie

Dennis Ritchie I'm Programmer
Dennis Ritchie I’m Programmer
Dennis MacAlistair Ritchie was an American computer scientist who “helped shape the digital era”. He created the C programming language and with long-time colleague Ken Thompson, the Unix operating system. Ritchie and Thompson received the Turing Award from the ACM in 1983, the Hamming Medal from the IEEE in 1990 and the National Medal of Technology from President Clinton in 1999. Ritchie was the head of Lucent Technologies System Software Research Department when he retired in 2007.

Bjarne Stroustrup

Bjarne Stroustrup

Bjarne Stroustrup is a Danish computer scientist, most notable for the creation and development of the widely used C++ programming language. He is a Distinguished Research Professor and holds the College of Engineering Chair in Computer Science at Texas A&M University, a visiting professor at Columbia University, and works at Morgan Stanley.

James Gosling

James-Gosling I'm Programmer
James-Gosling I’m Programmer
James Arthur Gosling is a Canadian computer scientist, best known as the father of the Java programming language. James has also made major contributions to several other software systems, such as NeWS and Gosling Emacs. Due to his extra-ordinary achievements Gosling was elected to Foreign Associate member of the United States Natioal Academy of Engineering.

Linus Torvalds

Linus-Torvalds i'm programmer
Linus-Torvalds i‘m programmer
Linus Benedict Torvalds is a Finnish American software engineer, who was the principal force behind the development of the Linux kernel. He later became the chief architect of the Linux kernel, and now acts as the project’s coordinator. He also created the revision control system Git as well as the diving log software Subsurface. He was honored, along with Shinya Yamanaka, with the 2012 Millennium Technology Prize by the Technology Academy Finland in recognition of his creation of a new open source operating system for computers leading to the widely used Linux kernel.

Anders Hejlsberg

Anders-Hejlsberg I'm Programmer
Anders-Hejlsberg I’m Programmer
Anders Hejlsberg is a prominent Danish software engineer who co-designed several popular and commercially successful programming languages and development tools. He is the creator of popular programming language C#. He was the original author of Turbo Pascal and the chief architect of Delphi. He currently works for Microsoft as the lead architect of C# and core developers on TypeScript.

Tim Berners-Lee

Tim-Berners-Lee I'm Programmer
Tim-Berners-Lee I’m Programmer
Sir Timothy John “Tim” Berners-Lee is also known as “TimBL”, is a British computer scientist, best known as the inventor of the World Wide Web. He made a proposal for an information management system in March 1989 and he implemented the first successful communication between a Hypertext Transfer Protocol (HTTP) client and server via the Internet. Berners-Lee is the director of the World Wide Web Consortium (W3C), which oversees the Web’s continued development.

Brian Kernighan

 Brian-Kernighan I'm Programmer
Brian-Kernighan I’m Programmer
Brian Wilson Kernighan is a Canadian computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie and contributed to the development of Unix. He is also coauthor of the AWK and AMPL programming languages. Kernighan’s name became widely known through co-authorship of the first book on the C programming language with Dennis Ritchie.

Ken Thompson

Ken Thompson

Kenneth Thompson commonly referred to as ken in hacker circles is an American pioneer of computer science. Having worked at Bell Labs for most of his career, Thompson designed and implemented the original Unix operating system. He also invented the B programming language, the direct predecessor to the C programming language, and was one of the creators and early developers of the Plan 9 operating systems. Since 2006, Thompson works at Google, where he co-invented the Go programming language.

Guido van Rossum

Guido-van-Rossum I'm Programmer
Guido-van-Rossum I’m Programmer
Guido van Rossum is a Dutch computer programmer who is best known as the author of the Python programming language. In the Python community, Van Rossum is known as a “Benevolent Dictator For Life” (BDFL), meaning that he continues to oversee the Python development process, making decisions where necessary. He was employed by Google from 2005 until December 7th, 2012. Where he spent half his time developing the Python language. In January 2013, Van Rossum started working for Dropbox.

Donald Knuth

Donald-Kuth I'm Programmer
Donald-Knuth I’m Programmer
Donald Ervin Knuth is an American computer scientist, mathematician, and Professor Emeritus at Stanford University. He is the author of the multi-volume work The Art of Computer Programming. Knuth has been called the “father” of the analysis of algorithms. He contributed to the development of the rigorous analysis of the computational complexity of algorithms and systematized formal mathematical techniques for it. In the process, He also popularized the asymptotic notation. Knuth is the creator of the TeX computer typesetting system, the related METAFONT font definition language and rendering system and the Computer Modern family of typefaces.

Recommended for you:

Must See:

PHP tutorials:
C Programming Language Tutorials:
JavaScript Video Tutorials:
Ajax Video Tutorials:
Some Cool tech stuffs for hackers:


Docker vs Vagrant: diferencias y similitudes y cuándo usar cada uno


Una de las cuestiones más de moda en los últimos meses en el mundillo de los “devops” es, sin duda, el uso de contenedores. Como ya explicamos aquí hace tiempo, la tecnología de contenedores va un paso más allá de la virtualización para ofrecer entornos ligeros de ejecución aislados del sistema operativo subyacente, pero sin toda la carga que conlleva hacer una verdadera virtualización. Consulta el enlace anterior para conocer más detalles.

Una confusión común en estos entornos es la de mezclar tecnologías diferentes bajo el mismo paraguas. Y un ejemplo claro de esto es la confusión que existe entre dos tecnologías muy conocidas relacionadas con todo esto pero que, como veremos, no tienen nada que ver entre sí: Docker y Vagrant.

Como ya explicamos en el artículo enlazado antes, Docker es una tecnología Open Source para crear contenedores ligeros y portables para cualquier aplicación. Lo bueno que tiene es que podemos empaquetar nuestra app en un contenedor Docker desde nuestro portátil y moverla tal cual a un servidor, una máquina virtual o a la nube sin hacer cambio de ningún tipo, asegurándonos que va a funcionar exactamente de la misma manera. Con esto nos olvidamos de dependencias, versiones del sistema operativo y bibliotecas, etc… Se trata de un avance increíble y está llamado a acabar con aquella famosa disculpa de “Pero, ¡en mi máquina funcionaba!”.

Por otro lado Vagrant es otro tipo totalmente diferente de tecnología pero, dado que el resultado es parecido, hay cierta tendencia a confundirlos. Lo que proporciona Vagrant es la creación y gestión sencilla de entornos de trabajo “portables” y replicables que funcionan sobre tecnologías de virtualización conocidas, ofreciendo además un modo de trabajo claro para poder transportar dichos entornos y que funcionen sin problemas en otro lugar: nuevamente en un servidor, la nube, etc… En realidad Vagrant se puede asimilar a un gestor de máquinas virtuales ya que por debajo usa la tecnología de virtualización que nos interese: VMWare, VirtualBox, Hyper-V, Amazon web Services, RackSpace Cloud, Google Compute Engine… Su factor diferencial es lo mucho que facilita la creación de las máquinas virtuales: creas un archivo que describe el tipo de máquina que necesitas, el software que tiene que tener instalado, la forma de acceder a la máquina virtual… Luego abres una línea de comandos, lanzas una  instrucción y en un momento Vagrant te crea el entorno completo que necesites, tal y como lo has descrito. Luego te puedes llevar ese entorno a cualquier otro sistema y usarlo desde allí.

Los resultados son parecidos, pero la tecnología para lograrlo es completamente distinta, y no hay que confundirlas.

Si hay algo que debería haberte quedado claro de todo lo anterior es que son tecnologías diferentes y no son excluyentes entre sí. Es decir, es posible utilizar Vagrant para crear un entorno capaz de ejecutar Docker dentro de éste y así desplegar una aplicación. Es más, Vagrant viene “de serie” con un proveedor para generar contenedores Dockerdirectamente en el sistema operativo actual.

De todos modos hay más diferencias entre ellos que podemos resumir en la siguiente tabla:

Característica Docker Vagrant
Tipo de virtualización: Contenedores Máquina virtual
Nivel de aislamiento: Débil Muy alto
Tiempo de creación: <10 min >10 min
Tamaño del despliegue: Al menos 100MB Al menos 1GB
Tiempo de arranque: Segundos Minutos
Impacto en el sistema: Muy bajo Alto
Garantiza recursos en el S.O.: No
Cuántos se pueden albergar a la vez: >50 <10
Principal ventaja: Rápido, ligero, fácil de aprender Fácil de gestionar, muy bien preparado para entornos de empresa

Ambas herramientas son excelentes para entornos de desarrollo y de pruebas y para pasar a producción entornos completos despreocupándonos por las posibles diferencias o la falta de bibliotecas o servicios necesarios. En ambos casos son mucho más flexibles que una “simple” máquina virtual tradicional, y bien utilizados, pueden suponer un ahorro enorme de problemas y de dificultades de gestión. Es por eso que todos los grandes actores de la industria están apostando por ellos, especialmente por Docker, e incluso Microsoft ofrece soporte para el producto dentro de sus sistemas operativos y dentro de Azure (hay que pensar que originalmente Docker solo funcionaba en Linux).