Linux e Windows Server, ainda em dúvidas?

Faz anos que a Microsoft namora o Linux, e no ano passado o improvável aconteceu, ela se juntou a Linux Foundation (TLF), mostrando claramente que não ia adiantar muito tentar recuperar o mercado de servidores, atualmente dominado pelo Linux. Azure Runs Linux e Microsoft at Linux Foundation

Então a Microsoft tem seu próprio Linux (Azure Cloud Switch), voltado para o controle e hosting de servidores Windows em sua Nuvem Azure; aqui pra bom entendedor fica uma dica da própria, de que quando a coisa é pra valer, ela se valeu do Linux e, percebendo melhor o futuro, juntou-se à LF. Microsoft desenvolve seu próprio Linux

Muito provável que um leitor desatento ou eufórico vá encontrar dezenas de milhares de artigos, colocando o Windows dominando quase 100% desse mercado de servidores. Mas, tem um porém: como entrar em cada empresa e ver o que se está usando? O mais garantido seria vasculhar os mais de dez milhões de top servers na Internet toda, e que respondem que SO usam. Parece haver um consenso nessa metrificação, dizer o quanto cada um domina no market share pelo exposto na web. Se você pegar um relatório da SpiceWorks, verá um mercado de servidores de 10% Linux e 87% usam Windows Server. Nesse ponto até existe uma ótica que tem lógica, mas não se sustenta: bastam 10% de Linux pra fazer os 90% do Windows. A medição foi feita pelos números de downloads. Na metrificação por survey da W3Techs aparece um resultado totalmente diferente, 65% Linux contra 34% Windows.

O mais estranho nisso tudo, é que nem se discute o que seria mais sensato, como as habilidades do SO. E mais, é inquestionável a superioridade do Linux no que tange a ser um SO voltado para um processamento de alto desempenho, robustez, escalabilidade, multi processamento paralelo distribuído, mais com menos, etc. Difícil é ouvir algo do tipo: “mas eu não tenho gente qualificada em Linux”… nesse momento a luta acabou, jogaram a toalha! Sentimentalismo é coisa que enfraquece a razão.

O Windows foi a melhor coisa que aconteceu no mundo da computação pessoal, inquestionável a contribuição dela na Tecnologia da Informação no passado, no presente e, agora com Linux, no futuro. Mas isso não significa dizer que ela é melhor que um MacOS “casadinho” com o hardware proprietário da Apple, para a computação pessoal, mas o custo quase zero das versões desktops da Microsoft e a vantagem adicional de que não existe concorrente, a tornam ainda imbatível nesse mercado; conheça o Windows primeiro se pretende usar um Mac, você não voltará por livre e espontânea vontade a usar Windows. Fato!

Mais de 70% das empresas estão com seus servidores virtualizados e, nesse nicho o VMWare massacra. E vamos andando, e há coisas que não se pode mais parar, como ir para a Nuvem, que oferecem um ferramental nunca visto para administração de servidores, e como a sustentação para tanta tecnologia vem da comunidade, fica evidente a escolha por SOs que tenham: Confiabilidade, escalabilidade, robustez, alto desempenho e todo um arsenal para suportar infra estrutura, seja no “staging” ou “production“. A resistência não deve estar em usar Linux, que pode conviver tranquilamente com um ambiente Windows, aliás Linux é mesmo o “backend“, deixando a plataforma de desenvolvimento em Windows (bom mesmo seria MacOS!). O SqlServer já foi pra Linux!

According to IDC [1], 47.9% of the servers worldwide ran Windows Server whereas 40.5% ran Linux. W3Techs [2] ran a survey this month, which checked the top 1 million Web servers (according to Alexa) and 64.9% of them were running Unix/Unix-like operating systems, 35.2% were running Windows and less than 0.1% were running Mac.

Então, se olharmos para outras coisas como o aumento do uso e hegemonia de determinadas linguagens de programação, iremos ver Java e JavaScript (e Python!) como líderes e, veremos que as empresas adotaram e adotam Java, tradicionalmente mundo Linux. Não há o que discutir, atualmente e no futuro, Linux ou suas vertentes dominarão esse mercado, assim como Windows continuará a dominar o Desktop. E quem irá fazer isso serão os grandes players de Nuvem, já que aqui por baixo ainda carecem de coragem e conhecimento de Sistemas Operacionais. Mesmo o Windows sendo superior na Nuvem, por baixo tem Linux como hosting.

Mas não só o SO importa tanto, já que uma linguagem precisa ser usada para que a mágica aconteça. O que se observa historicamente é que até um dado momento, o Java estava muito forte nos ambientes acadêmicos, no mundo open source, e entranhado fortemente no governo (quem nunca usou o IRPF da Receita Federal, por exemplo). Antes da abertura do código do .Net, o Java foi fortemente “patrocinado” por algumas das gigantes de tecnologia (IBM, Sun, Oracle e HP) como forma de combater a hegemonia e dependência da Microsoft. A Microsoft por sua vez corria por fora, e era a preferência das empresas produtoras de software “pacote” e desenvolvedores iniciantes, pela maior facilidade de acesso à material oficial e suporte.

Enquanto isso, no emergente ambiente de aplicações móveis, ou mobile, em termos de aplicações nativas, a Microsoft “dormiu no ponto” durante décadas com o arcaico “Windows CE”, e o .Net ainda hoje só acha espaço no Windows Phone, já que o Android essencialmente se utiliza do Java, e no mundo iOS da Apple a linguagem é o Objective-C. Então se formos falar de SOs, e Android é Linux (fork), então já está sanada a dúvida.

É inegável que tanto o Java quanto .Net estão maduros e são performáticos (se bem implementados), e tem promessas de continuidade e de evolução. Mas não existem estatísticas confiáveis e nem consenso sobre qual é o mais utilizado globalmente, dado a grande variedade de cenários de uso e soluções existentes. Dependendo do custo complexidade, tamanho, orçamento e prazo disponível para implantar uma solução, você perceberá que a escolha não é óbvia.

 

sed – 20 examples to remove / delete characters from a file

In this article, we will see the examples of how to remove or delete characters from a file. The syntax of sed command replacement is:

$ sed 's/find/replace/' file

This sed command finds the pattern and replaces with another pattern. When the replace is left empty, the pattern/element found gets deleted.

Let us consider a sample file as below:

$ cat file
Linux
Solaris
Ubuntu
Fedora
RedHat

1. To remove a specific character, say ‘a’

$ sed 's/a//' file
Linux
Solris
Ubuntu
Fedor
RedHt

This will remove the first occurence of ‘a’ in every line of the file. To remove all occurences of ‘a’ in every line,

$ sed 's/a//g' file

2. To remove 1st character in every line:

$ sed 's/^.//' file
inux
olaris
buntu
edora
edHat

.(dot) tries to match a single character. The  ^ tries to match a pattern(any character) in the beginning of the line.   Another way to write the same:

$ sed 's/.//' file

This tells to replace a character with nothing. Since by default, sed starts from beginning, it replaces only the 1st character since ‘g’ is not passed.

3. To remove last character of every line :

$ sed 's/.$//' file
Linu
Solari
Ubunt
Fedor
RedHa

The $ tries to match a pattern in the end of the line.

4. To remove the 1st and last character of every line in the same command:

$ sed 's/.//;s/.$//' file
inu
olari
bunt
edor
edHa

Two commands can be given together with a semi-colon separated in between.

5. To remove first character only if it is a specific character:

$ sed 's/^F//' file
Linux
Solaris
Ubuntu
edora
RedHat

This removes the 1st character only if it is ‘F’.

6. To remove last character only if it is a specific character:

$ sed 's/x$//' file
Linu
Solaris
Ubuntu
Fedora
RedHat

This removed the last character only if it s ‘x’.

7. To remove 1st 3 characters of every line:

$ sed 's/...//' file
ux
aris
ntu
ora
Hat

A single dot(.) removes 1st character, 3 dots remove 1st three characters.

8. To remove 1st n characters of every line:

$ sed -r 's/.{4}//' file
x
ris
tu
ra
at

.{n} -> matches any character n times, and hence the above expression matches 4 characters and deletes it.

9. To remove last n characters of every line:

$ sed -r 's/.{3}$//' file
Li
Sola
Ubu
Fed
Red

10. To remove everything except the 1st n characters in every line:

$ sed -r 's/(.{3}).*/\1/' file
Lin
Sol
Ubu
Fed
Red

.* -> matches any number of characters, and the first 3 characters matched are grouped using parantheses. In the replacement, by having \1 only the group is retained, leaving out the remaining part.

11. To remove everything except the last n characters in a file:

$ sed -r 's/.*(.{3})/\1/' file
nux
ris
ntu
ora
Hat

Same as last example, except that from the end.

12. To remove multiple characters present in a file:

$ sed 's/[aoe]//g' file
Linux
Slris
Ubuntu
Fdr
RdHt

To delete multiple characters, [] is used by specifying the characters to be removed. This will remove all occurences of the characters a, o and e.

13. To remove a pattern  :

$ sed 's/lari//g' file
Linux
Sos
Ubuntu
Fedora
RedHat

Not just a character, even a pattern can be removed. Here, ‘lari’ got removed from ‘Solaris’.

14. To delete only nth occurrence of a character in every line:

$ sed 's/u//2' file
Linux
Solaris
Ubunt
Fedora
RedHat

By default, sed performs an activity only on the 1st occurence. If n is specifed, sed performs only on the nth occurence of the pattern. The 2nd ‘u’ of ‘Ubuntu’ got deleted.

15. To delete everything in a line followed by a character:

$ sed 's/a.*//' file
Linux
Sol
Ubuntu
Fedor
RedH

16. To remove all digits present in every line of a file:

$ sed 's/[0-9]//g' file

[0-9] stands for all characters between 0 to 9 meaning all digits, and hence all digits get removed.

17. To remove all lower case alphabets present in every line:

$ sed 's/[a-z]//g' file
L
S
U
F
RH

[a-z] represents lower case alphabets range and hence all lower-case characters get removed.

18. To remove everything other than the lower case alphabets:

$ sed 's/[^a-z]//g' file
inux
olaris
buntu
edora
edat

^ inside square brackets negates the condition. Here, all characters except lower case alphabets get removed.

19. To remove all alpha-numeric characters present in every line:

$ sed 's/[a-zA-Z0-9]//g' file

All alpha-numeric characters get removed.

20. To remove a character irrespective of the case:

$ sed 's/[uU]//g' file
Linx
Solaris
bnt
Fedora
RedHat

By specifying both the lower and upper case character in brackets is equivalent to removing a character irrespective of the case.

Original article here, from The UNIX School.

increase ulimit in CentOS

By default the ulimit is set to 1024 only, first you need to increase system wise with adding this one in /etc/sysctl.conf

“fs.file-max = 65536″

and then…

# sysctl -p

switch to /etc/security/limits.conf and add the following lines:

*     hard      nofile     65536
*     soft      nofile     16384

switch to user for which you need to increase the file-max for, with this the default for all users will be 16384, you can increase with ulimit -n XXXX now.

 

Install Classic Menu Indicator in Ubuntu 12.04

The classic menu indicator is now available to Ubuntu 12.04 LTS Precise Pangolin and the earlier releases Oneiric and Natty as well. It will add a quite similar Gnome classic menu with sub menus for applications and system settings menus. Install Classic Menu Indicator in Ubuntu 12.04 Precise Pangolin/11.10 Oneiric/11.04 Natty

Classic Menu

Installation of Classic Indicator, open Terminal and enter following commands:

sudo apt-add-repository ppa:diesch/testing
sudo apt-get update 
sudo apt-get install

Now Press Alt+F2 and enter following command to start indicator:

classicmenu-indicator

nautilus-open-terminal, a terminal quick launch

Tonite it’s getting late but I wanted to post something that is useful for quickly getting to the shell from any GUI location. The package nautilus-open-terminal does just what you might guess it does. It allows you to launch a gnome-terminal from a right-click within nautilus.

You might remember I blogged about something similar long-long ago with nautilus scripts.  This is based on the same idea, but now wrapped in a nice shiny deb package.  From the package description:

"Nautilus plugin for opening terminals in arbitrary local paths nautilus-open-terminal is a proof-of-concept Nautilus extension which allows you to open a terminal in arbitrary local folders."

To install this quick-launch to the terminal simply run:

sudo apt-get install nautilus-open-terminal

You may need to restart gnome / nautilus for the change to take effect, but afterwards you’ll have a “open terminal” button on your right-click menu anywhere within nautilus or gnome-desktop area.  Enjoy.