Overtake The Future: what is it all about?

EMC CLARiiON Performance Management.
Starting at US$ 99.95/month/system.
Request a FREE evaluation.

First a disclaimer. The contents of this text result from the analysis of the information I have, tracking the storage industry and EMC in particular for a few years.

I do not have contact with people involved in the products which will be unveiled at the Overtake The Future. I’m just a third party CLARiiON instructor.

I’ll list products and technologies alongside with how likely they’ll be announced on Tuesday 04/14.

A) TIGON, DMX-5, or whatever the name it will receive. 100% likely to be announced.

As The Register mentioned, they are sure DMX-5/TIGON will be launched Tuesday. They even found that one URL in the site mentioned the name TIGON.

B) FCoE (10Gbit ethernet) interfaces for its SAN/NAS offerings (DMX-5, CLARiiON and Celerra). 100% likely to be announced.

It is no secret EMC, VMware and Cisco are doing a lot of interesting things together. I heard many times at VMworld 2008 keynotes from the leaders of the 3 companies hints that something big would be introduced in the first half of 2009.

We already had the UCS announcement from Cisco. Tuesday we will have the EMC announcement and on 04/21 the VMware announcement.

Cisco is pushing 10Gbit ethernet as the unified interconnect for the datacenter.

Brocade who’s also a big EMC network partner announced on 04/09 their 10Gbit products.

Emulex and Qlogic also already have 10Gbit offerings.

No doubt EMC will announce products supporting the 10 Gbit ethernet standard. The only question is: just the DMX-5 adapters will be launched? Or adapters for CLARiiONs and Celerras too?

C) An UCS blade version of a Celerra. 30% likely. Probably in 1 year.

We already can run a Celerra Virtual Appliance. It would be very easy to port it to a UCS blade.

But I think it would be a lot of announcements for just one event.

D) An UCS blade version of a CLARiiON. Unlikely to be announced now. Probably in 18 months.

EMC probably is already working with CLARiiON Storage Processors (SPs) contained inside an UCS blade. It is evident that the storage platforms will be redesigned to use a 10 Gbit infrastructure for both front-end and back-end connections.

It will be the answer to this week 3PAR’s announcement of their array with 4 controllers. The CLARiiON family will be able to have many SPs, the only limiting factor will be a market decision: how far is it possible to push the CLARiiON power without competing with the DMX offerings?

But before it comes to life, other components must be designed, see E) and F) below.

E) DAE (disk enclosures) with 10 Gbit connections to a Nexus enterprise class switch. Highly unlikely to be announced now. Probably in 2 years.

Given that the 10Gbit interconnect will replace current 4Gbit technology, we will be able to plug the DAEs directly into the Unified Converged Datacenter Backbone (or whatever the marketing guys name it). It will bring many interesting options.

F) Cache Directors with 10 Gbit connections as the DAEs mentioned above. Highly unlikely to be announced now. Probably in 2 years.

But wait a minute. When we have DAEs and Cache Directors directly connected to the “converged backbone” it will be possible to run a software component which performs the functions of a storage controller. So expect to have Virtual Appliances which implement the functions of our current storage boxes. Probably by the next Summer Olympics.

As you can see, many interesting products are about to be introduced in the storage/virtualization/interconnect arena (or named it converged-something).

Expect announcements of a new DMX and 10Gbit FCoE gear to plug EMC equipment. If something else is announced, it will shake the ground.


Comments (9)

A Telefonica não consegue proteger seu serviço Speedy – o que você pode fazer a respeito

SAIBA COMO R-EVOLUX CONSULTING PODE AJUDAR A SUA EMPRESA A ECONOMIZAR DINHEIRO EM INFRAESTRUTURA DE TI.

Como dizem os americanos: “it is not rocket science”.
Segundo algumas matérias que li, há 4 milhões de assinantes Speedy. Sugiro que você faça a conta de quanto estes clientes rendem de faturamento mensal para a Telefonica.
E com estes recursos, eles não conseguem se proteger de um ataque DOS (Denial of Service – negação de serviço)!!??

Bom, mas o que pode ser feito para contornar isto?
Utilize servidores DNS alternativos que não são da Telefonica.

Ou instruções rápidas: inclua os servidores DNS na sua configuração de rede:

208.67.222.222
208.67.220.220


Leave a Comment

O que são números primos?

SAIBA COMO R-EVOLUX CONSULTING PODE AJUDAR A SUA EMPRESA A ECONOMIZAR DINHEIRO EM INFRAESTRUTURA DE TI.

Paulo, da Verizon, comentou sobre o post “Truques que você deveria ensinar …”

Eu responderia à pergunta com outra pergunta: “– Você quer que eu faça a conta ou que escreva um programa?”
Além do mais, quem souber os 10 primeiros números primos de cabeça é porque precisa namorar mais, ir mais ao cinema, pedalar,
fazer sexo, etc.
Get a life!

O comentário foi aprovado parcialmente para evitar que algum(a) leitor(a) se sinta ofendido. O único trecho que não foi aprovado está cortado (strikethrough).

Vamos lá. A resposta do Paulo certamente traria uma declaração como: “em função de seu perfil e sua experiência, esperamos que a decisão seja tomada por você”.

Segundo ponto: não estou defendendo que alguém decore os N primeiros números primos, ou seja lá o que for. Qualquer pessoa que tenha recebido ensino básico adeqüado, sabe inferir quais são os números primos iniciais, pois isto apenas depende da velha tabuada.

1 não é primo
2 primo
3 primo
4 2×2
5 primo
6 2×3
7 primo
8 2×4
9 3×3
10 2×5
11 primo
12 2×6
13 primo
14 2×7
15 3×5
16 2×8
17 primo
18 2×9
19 primo
20 2×10
21 3×7
22 2×11
23 primo
24 3×8
25 5×5
26 2×13
27 3×9
28 4×7
29 primo

Como vocês vêem, não é nada de outro mundo.

E como bem lembrou o guru de Ruby Eustáquio Rangel: nem é necessário se lembrar dos primos.

require “mathn”
p = Prime.new
(1..10).each {|x| puts p.next}


Leave a Comment

Tools I Like 2

EventBox. Check for yourself. I use it for Tweeter and Google Reader. I can check quickly all the updates, using spacebar to read the next one and if something needs more attention, I can flag it to recheck later!


Comments (3)

Tools I like 1

Skitch. Superb software to make annotated screen snapshots. For Macs.


Leave a Comment

Tricks you should teach to your kids. And to yourself, if you are not a programmer.

LEARN HOW R-EVOLUX CONSULTING CAN HELP YOUR BUSINESS SAVE MONEY IN COMPUTER STORAGE AND IT INFRASTRUCTURE.

Portuguese version.

Many people are talking about the current Economic crisis. It hurts us one way or another.
However, crisis are good times for progress. If you think the competition for jobs is becoming even more fierce and the good opportunities are vanishing, it is time to invest in your own development. That’s what will differentiate you, in though times, or in good ones.
It is also very important to make sure your kids have the necessary skills to compete for the jobs in the future.
But, the future has already begun.
Computers are everywhere. Today, to understand computers, make wordprocessing, print reports are commodity skills. These skills are TAKEN FOR GRANTED by employers.
What will differentiate someone applying for a job is to know how to use computers to solve tougher problems, which require a skill set which so few understand: to know how to program a computer in order to automate and speed up tasks that take many hours if made manually.
It is not necessary to become a ninja programmer, it is enough to know the fundamentals of programming to make simple programs which brings big productivity gains.

Let’s take a typical question asked in an interview for a job at Google (or any other cutting edge technology company). Please observe that soon, a question like this will be common for ANY JOB INTERVIEW WHICH DEALS WITH COMPUTERS. It is very important that you and your kids be prepared for this!

Imagine yourself at this interview. After questions about your employment and academic history, the interviewer asks you:

“what is the sum of squares of the first 10 prime numbers?”

(this question was inspired by a tweet from my friend Galmeida)

What would be your answer?
Would you start calculations in the piece of paper they handed you at beginning of the interview?
If you do this, your chances to get the job will be close to 0.
Anyone who were selected for this interview knows how to do the math to answer this question. But few has basic knowledge of computer programming.

But what is the expected answer?
The interviewer expects an answer like:

s=0;[2,3,5,7,11,13,17,19,23,29].each{|x|s+=(x*x)};s

The code above is written in the Ruby programming language.
There are many other programming languages which could be used on this answer, but I choose Ruby because I think it is an easy to learn programming language.
Let’s decode the answer. First, let’s format it to facilitate reading:

s = 0
[2,3,5,7,11,13,17,19,23,29].each { |x|
s += (x*x)
}
s

What each line does?

s = 0

We define the variable s and assign 0 to it. It will hold the sum of the squares of the primes. The semicolon at the first unformatted answer is a separator, since now we have the code formatted, another separator is used, the end of line, thus the semicolon is no longer necessary.

[2,3,5,7,11,13,17,19,23,29]

This is the list of the first 10 prime numbers.

[2,3,5,7,11,13,17,19,23,29].each { |x|
s+=(x*x)
}

The construction list.each … makes the content between { and } to be repeated for each element in the list, starting with 2, then 3, and so on, until the last number, 29.

{ |x|
s+=(x*x)
}

This block of code will be executed for each number in the list (the first 10 prime numbers). The number which will be processed on each iteration is stored in the variable x.
s+=(x*x) means that Ruby will sum the result o x times x to the variable s.
This block will be repeated and at the end

s

Makes IRB (Interactive Ruby Shell) to print the content of s. The sum of the squares of the first 10 prime numbers is 2397.

Look at the result:


How can I use Ruby on my computer?

The easiest answer, for small programs like the sum of the squares of primes, is to execute it through a web browser. There is a Ruby interpreter available at http://tryruby.hobix.com/


If you use MacOSX, Ruby is installed by default. Just execute irb inside a terminal window.

If you use Linux, probably Ruby was installed. Type irb inside a terminal windows. If it is not found, you must install it. The instructions varies from distribution to distribution.

If you use Windows, install the package Cygwin, this is the easiest way to use Ruby on this platform.

Don’t hesitate to contact me if you have questions!

To learn about new articles on how to learn to program, follow me on Twitter!


Comments (1)

Truques que você deveria ensinar a seus filhos. E a você mesmo, caso não seja programador.

SAIBA COMO R-EVOLUX CONSULTING PODE AJUDAR A SUA EMPRESA A ECONOMIZAR DINHEIRO EM INFRAESTRUTURA DE TI.

English version.

Muitos falam sobrem a crise econômica. Ela nos afeta de uma forma ou de outra.
Crises são um bom momento para progredir. Se hoje você acha que o mercado de trabalho está cada vez mais concorrido e as vagas estão escassas, é hora de investir em seu próprio progresso. Isto é que vai diferenciá-lo, seja em momentos difíceis, ou em momentos de bonança.
Também é muito importante que você se assegure de que seus filhos tenham habilidades para competir no mercado de trabalho do futuro.
Mas, pensando bem, o futuro já começou.
Computadores estão por toda parte. Hoje não é mais um diferencial saber usar computadores, processar textos, imprimir relatórios. Estas habilidades são FUNDAMENTAIS.
O diferencial é saber usar os computadores para resolver problemas um pouco mais difíceis, que requerem uma habilidade que ainda é domínio de poucos. O grande diferencial é saber programar computadores – tornar automáticas e rápidas uma série de tarefas que poderiam levar horas caso sejam feitas manualmente.
Não é necessário tornar-se um ninja programador, basta conhecer os fundamentos para que possa codificar programas simples que tragam grandes benefícios para sua produtividade.

Vamos a uma típica pergunta em uma entrevista pra trabalhar no Google (ou em qualquer outra empresa de tecnologia de vanguarda). Observe que em pouco tempo, uma pergunta como essa pode ser muito comum em entrevistas para QUALQUER TRABALHO QUE ENVOLVA COMPUTADORES. É muito importante que você e seus filhos estejam preparados!

Imagine-se em nesta entrevista de trabalho. Após a série de perguntas convencionais sobre sua história profissional e acadêmica, o entrevistador lhe pergunta:

“qual é a soma dos quadrados dos 10 primeiros números primos?”

(esta pergunta foi inspirada por um tweet do meu amigo Galmeida)

Qual seria sua resposta?
Você começaria a fazer o cálculo no papel que lhe foi cedido no início da entrevista?
Se você fizer isto, suas chances de obter o emprego são próximas de 0. Qualquer pessoa que se candidate a esta vaga conhece as operações matemáticas envolvidas. Mas talvez nem todas tenham conhecimento básico de programação.

Mas qual é a resposta esperada?
O entrevistador espera que você responda algo como:

s=0;[2,3,5,7,11,13,17,19,23,29].each{|x|s+=(x*x)};s

A linha de código acima está escrita na linguagem de programação Ruby.
Há várias outras linguagens de programação que poderiam ser usadas nesta resposta, minha escolha baseia-se no fato de eu considerar Ruby uma linguagem de fácil aprendizado.
Vamos decodificá-la, em primeiro lugar, vamos formatá-la de uma forma mais agradável:

s = 0
[2,3,5,7,11,13,17,19,23,29].each { |x|
s += (x*x)
}
s

O que cada linha faz?

s = 0

Definimos que a variável s tem valor 0. Vamos utilizá-la para armazenar a soma dos quadrados dos primos. O ponto e vírgula presente na resposta sem formatação é o que é chamado de separador, como aqui estamos com o programa formatado, o seperador passa a ser a quebra de linha, dispensando assim o ponto e vírgula.

[2,3,5,7,11,13,17,19,23,29]

É a lista dos 10 primeiros números primos.

[2,3,5,7,11,13,17,19,23,29].each { |x|
s+=(x*x)
}

A construção lista.each … vai fazer com que o conteúdo entre { e } seja repetido para cada elemento da lista, começando com 2, passando por 3, continuando a seqüência até o 29.

{ |x|
s+=(x*x)
}

Isto será executado para cada número da lista (cada um dos primos). O número que será processado neste momento será colocado na variável x. s+=(x*x) significa que você somará a s, o resultado de x multiplicado por x.

Assim, todo o processo se repetirá para cada primo e ao final

s

Fará com que o resultado seja mostrado no IRB (Shell Interativa Ruby). A soma dos quadrados dos 10 primeiros primos é 2397.

Veja como fica esta execução:


Como eu posso utilizar Ruby em meu computador?

A forma mais fácil, para programas pequenos como o deste artigo, é executá-lo via browser Web, há um interpretador Ruby disponível em http://tryruby.hobix.com/


Se você utiliza MacOSX, Ruby é instalado por padrão, basta executar irb em uma janela de terminal.

Se você usa Linux, provavelmente Ruby foi instalado. Digite irb em um terminal. Caso não seja encontrado, será necessário instalar e as instruções variam de distribuição para distribuição.

Se você usa Windows, instale o pacote Cygwin é a forma mais fácil de usar Ruby nesta plataforma.

Caso tenha dúvidas, não hesite em entrar em contato!

Para saber sobre novos artigos sobre como aprender a programar, siga-me no Twitter!


Comments (5)

Apple’s iFPGA

My friend Galmeida sent me a link to an Arstechnica article.
Very interesting, there are references to unknown products inside the iPhone 3.0 beta software.
One of the unknown products is an “iFPGA”. I mentioned in a previous post that Apple is already working on FPGAs integrated to their products.

“(…) iPhone OS 3.0 beta contains references to iPhone3,1; iPod3,1; iFPGA; and iProd0,1. (…) Smith suggests that the iFPGA could be a prototype device that uses field-programmable gate arrays, a type of programmable microchip. It doesn’t conform to the standard numbering scheme that Apple uses for its hardware products, so it isn’t likely something intended to be released. “


Leave a Comment

Open Letter to Intel – Update 1B

LEARN HOW R-EVOLUX CONSULTING CAN HELP YOUR BUSINESS SAVE MONEY IN IT INFRASTRUCTURE.

Thanks to my friends Rodrigo Corbera and Renato Sbizzera who also provided feedback. My cousin Caroline suggested some writing improvements.
Rodrigo mentioned commercial FPGA boards.
Here you can find Altera boards. Starting at US$ 199.

I received some interesting feedback at a Google Finance discussion. Thanks to all who answered.

Amitra, a FPGA Design engineer reminds that the current FPGAs runs at 100 – 200 MHz.

Kskaro submitted a very interesting article about memristors and its potential to improve FPGAs.

Josh, FPGA professional, wrote a very detailed post, mentioning the issues with the integration of FPGAs. It is reproduced below. My comments at the end of the post.

I’ve done FPGA work for over a decade professionally, and I’ve spent
considerable time with mainstream CPU architects from various
companies. Using the advanced process technology that Intel has, or
that its competitors are developing, the speed of the reprogrammable
circuit regions can be enhanced substantially — but it probably would
have a different structure than Xilinx or Altera parts. Different
technology solutions would be more useful for the manufacturing
processes they use, given the surrounding dedicated logic. That said,
the speed still will fail to match the highest levels of Nehalem or
Penryn parts. The Atom parts, at around 1 GHz, are more likely
targets if the area and power budget is sacrificed to hit that
performance bin.

The real issues with FPGA macrocells inside of mainstream cores, or
SoC solutions, isn’t with the speed or getting the configuration
loaded. Good compilers and smart programmers work around latencies
all the time. The primary issues boil down to these:

- Multiple Users : the configuration of the reprogrammable macrocell
is typically achieved with SRAM bits. One bit per logical gate. Even
small FPGAs have vast amounts of SRAM to implement the configuration
state. Each process will want to load its own image into the
macrocell, and that’s a lot of memory to move through the cache
hierarchy. These devices also do not “reprogram” quickly, even when
they support partial reconfiguration by strips. If it takes several
milliseconds to stop the unit, load the new configuration, initialize
the state, and then begin feeding it, what use is it? Not much. Task
migration, virtualization, threading programs, and so on all
complicate these issues.

- Effective circuit generation : finding kernel blocks or special
functions that can benefit from a dedicated soft-hardware logic unit
isn’t particularly hard. What is hard is a mechanism to render that
subset into HDL, synthesize it, and have a proper API or abstraction
layer such that a compiler can know that there is some unit it can
interact with to render function X(). Compilers have to adjust for a
great many things, such as latency, blocking/non-blocking, liveness,
etc. It’s been demonstrated that outside of certain niche domain
languages (read: special corner cases few mainstream programmers care
about or will adjust their lives for), this is tremendously hard.

What it boils down to most often is that if you could truly benefit
from an FPGA in your CPU-based system, then you pick up a PCI based
add-in card and use that. While it’s quite possible to see very small
macrocells appear in mainstream cores for dedicated special function
situations, the odds of them being exposed to a programmer are slim to
none. Instead, they are far more likely to be used for ISA
transparent dynamic adaptation and optimization of running programs.

Those systems that are currently enjoying limited success aren’t faced
with these two problem categories by design. They are embedded niche
markets, for example, that don’t multi-task and never need to
reprogram the FPGA cell once it has been configured. They are shipped
in 1M unit lots with the code statically installed with no updates
possible. The development cost of the FPGA circuit is easily
amortized over the volume. When “normal” programmers are faced with
such a task, it’s all but impossible to recoup the costs of the
circuit design.

The issue about multiple users and the time to reprogram the FPGA, is not significant. The proposed use of the FPGA has two categories: developer and user. The developer is a machine which will brew new FPGA designs. The reprogramming is necessary, but the time consumed for this is not too high.
The user will benefit from brewed FPGA designs, thus the FPGA modules will be programmed once for a certain function and after that these modules will be updated when newer versions of the FPGA design are available.


Leave a Comment

Open Letter to Intel – Update 1A

LEARN HOW R-EVOLUX CONSULTING CAN HELP YOUR BUSINESS SAVE MONEY IN IT INFRASTRUCTURE.

Thanks to everyone who provided feedback.

Robert Cringely asked more details, by the way he published a post, Rise of the Machines, where he exposes the role of evolutionary systems in the financial meltdown of 2008.

Below, portions of my answer to him, rewritten in the form of questions and answers.

Q: What am I asking in the Open Letter to Intel?

A: I’m asking them (actually not necessarily asking Intel, but asking anyone in the industry, be it AMD, IBM, Apple, or some startup which may even not exist now) to consider using the space used by at least 1 core inside a microprocessor for a different purpose: use this space to put FPGAs (field programmable gate arrays).
Instead of making a, say 8 core processor, make a 6 core processor + a FPGA with few million programmable logic gates.

Q: What are FPGAs?

A: FPGAs are microcircuits composed of logic gates whose interconnections can be wired and rewired on the fly.
When a company needs a special purpose circuit, if they have volume they design it and put it on silicon by making an ASIC (Application Specific Integrated Circuit). If there’s no volume, the approach is to buy FPGAs, program the gate interconnect and put the circuits to work.

Q: Why am I asking for wide availability of FPGAs?

A: I believe that the wide availability of FPGAs will enable a quantum leap in the field of Artificial Intelligence.
It will be achieved by the use of Evolutionary Algorithms (EAs) evolving optimal circuits on FPGAs to address many problems like: computer vision, any kind of simulation, machine learning, etc, etc.

Q: How does EA work?

A: EAs basically:
1) take a mathematical description of a problem.
2) generate a set of random solutions meeting predefined constraints (computer code, FPGAs interconnects, etc, …)
3) evaluate the solutions to check which ones are “stronger”, the ones which are closer to item 1)
4) generate combinations between the strongest solutions and introduce some random “mutations”
5) go to step 3, repeating indefinitely.

Q: What are Genetic Algorithms?

A: The term Genetic Algorithm is frequently used, instead of EA.

Q: OK, I understood the concepts, but I can’t imagine how EAs would develop evolutionary solutions to real word problems. Do you have a nice and simple example?

A: An interesting example of EA in action is the evolution of a crane using lego bricks.

Q: What will happen if we have FPGAs on every desktop?

a) our computers can morph from general purpose machines, to adaptive machines. We will be able to buy pieces of software which explore this feature, like real speech recognition, which is immune to accents and background noise; or software which makes the simulation of enzime interaction 20x faster. The applications are endless.

b) to have computers whose microprocessors can dynamically rewire part of its circuits will transform completely how we do computing. It is a paradigm shift.

c) a whole new industry will flourish. The early microprocessors enabled what we name Silicon Valley. Dynamic microprocessors, will boost the entire Tech Industry.


Comments (3)