If you don't know, OS stands for Operating System. Revolution OS tells the inside story of the hackers who rebelled against the proprietary software model and Microsoft to create GNU/Linux and the Open Source movement.
Saturday, August 25, 2012
VIDEO: Revolution OS - Spanish Subs
A recommendation from one of my teacher at university, Revolution OS!
If you don't know, OS stands for Operating System. Revolution OS tells the inside story of the hackers who rebelled against the proprietary software model and Microsoft to create GNU/Linux and the Open Source movement.
If you don't know, OS stands for Operating System. Revolution OS tells the inside story of the hackers who rebelled against the proprietary software model and Microsoft to create GNU/Linux and the Open Source movement.
Some pieces of software for logical circuits and Karnaugh maps
By navigating through the web, I've found some pieces of software to check out whenever I have some free time, dedicated to logical circuits, Karnaugh maps and other related stuff. Here they come:
- Karma 3 and Logic2Logic: http://www.inf.ufrgs.br/logics/index.php?option=com_content&task=view&id=52&Itemid=51
- Karnaugh Map Minimizer: http://k-map.sourceforge.net
- GK Map: http://sourceforge.net/projects/gkmap/
- Gorgeous Karnaugh: http://gorgeous-karnaugh.com
Have you tested any of them? Do you have any other to recommend?
Well, my first step is to learn it on paper, haha that's what'll be demanded in my exams by the end of the semester.
Sunday, June 3, 2012
Avarento VS Pródigo
Segue mais uma nota de aula de conceitos antagônicos a saber:
Avarento: pessoa que tem avareza, apego sórdido ao dinheiro para o acumular
Pródigo: pessoa que dissipa a fortuna loucamente ou a compromete com gastos excessivos. A pessoa que por sua prodigalidade, pode ser inerdita de administrar seus bens
Avarento: pessoa que tem avareza, apego sórdido ao dinheiro para o acumular
Pródigo: pessoa que dissipa a fortuna loucamente ou a compromete com gastos excessivos. A pessoa que por sua prodigalidade, pode ser inerdita de administrar seus bens
Meritocracia e Plutocracia
Este é apenas um lembrete, informação do Wikipedia:
Meritocracia: Meritocracia (do latim meritu, mérito e cracia, poder)[1] é um sistema de governo ou outra organização que considera o mérito (aptidão) a razão para se atingir determinada posição. Em sentido mais amplo, pode ser considerada uma ideologia. As posições hierárquicas são conquistadas, em tese, com base no merecimento e entre os valores associados estão educação, moral, aptidão específica para determinada atividade. Em alguns casos, constitui-se em uma forma ou método de seleção.
Plutocracia: A plutocracia (do grego ploutos: riqueza; kratos: poder) é um sistema político no qual o poder é exercido pelo grupo mais rico. Do ponto de vista social, esta concentração de poder nas mãos de uma classe é acompanhada de uma grande desigualdade e de uma pequena mobilidade.
Há muito mais sobre Meritocracia na página do Wikipedia: http://pt.wikipedia.org/wiki/Meritocracia
Meritocracia: Meritocracia (do latim meritu, mérito e cracia, poder)[1] é um sistema de governo ou outra organização que considera o mérito (aptidão) a razão para se atingir determinada posição. Em sentido mais amplo, pode ser considerada uma ideologia. As posições hierárquicas são conquistadas, em tese, com base no merecimento e entre os valores associados estão educação, moral, aptidão específica para determinada atividade. Em alguns casos, constitui-se em uma forma ou método de seleção.
Plutocracia: A plutocracia (do grego ploutos: riqueza; kratos: poder) é um sistema político no qual o poder é exercido pelo grupo mais rico. Do ponto de vista social, esta concentração de poder nas mãos de uma classe é acompanhada de uma grande desigualdade e de uma pequena mobilidade.
Há muito mais sobre Meritocracia na página do Wikipedia: http://pt.wikipedia.org/wiki/Meritocracia
Sunday, March 25, 2012
8 ways to write shorter tweets and subject lines
Original content available at: http://www.email-marketing-reports.com/iland/2012/02/shorter-subject-lines.html
============================
The world is full of sensible advice that’s hard to put into practice.
Do more exercise.
Reduce your stress levels.
Accept that salt and vinegar flavor chips are not, in fact, a mainstay of a well-balanced diet. (Damn).
Oh, and keep your tweets and subject lines short.
Actually you can argue about that last bit of advice. But if you have something to say and have two equally impactful ways of saying it, then pick the shorter one.
Often it’s just a question of practicality.
Shortening your Tweets makes it easier to fit the message within the 140 character limit. If you can get the length down further, then you leave enough space for people to retweet your message in its entirety*.
Shorter subject lines avoid the pitfalls of email software arbitrarilycutting off your words.
But…how do you actually keep subject lines and Tweets short?
I’m hoping you’ll offer your own suggestions in the comments, as there’s not a lot of practical advice out there beyond, um, “keep it short”.
But here a few tips I’ve picked up over the years…
1. Rewrite
The famous quote commonly attributed to Blaise Pascal runs something like this:
“I have made this letter longer than usual, only because I have not had the time to make it shorter.”
My biggest challenge with copywriting emails, for example, is not finding the words, but finding fewer words to express the same meaning.
Your first line of text probably does communicate what you want to say, but it takes rewrites to communicate it succinctly.
2. Synonyms are your best friends
Rare is the word with no alternative. We often fall into patterns and habits, where we favor particular words simply because they’re the ones we’ve always used. Perhaps you can find shorter synonyms? For example:
Excellentarticle onGreatarticle on
Toparticleon
Top post on (9 spaces saved)Purchase
Buy (5 spaces saved)Difficult
Hard (5 spaces saved)Lots of
Many (3 spaces saved)Last year
In 2011 (2 spaces saved)A few
Some (1 space saved)
But take care…
Not all synonyms are truly identical and a different word can introduce a subtle change in meaning.
Even true synonyms can draw a slightly different emotional response in the reader. In subject lines, particularly, it pays to test variations to find the choice that elicits the best response.
These two concepts apply to many of the tips below, too, so keep them in mind.
3. Eliminate implied and unnecessary words
Do you have any words that are not contributing to the message? Words with no impact on the meaning, value, emotion, etc. of the tweet or subject?
These are common candidates for freeing up space.
If tweeting as an individual, for example, the “I” in “I love this article:” is implicit. “Love this article:” would be fine.
Where possible, scrap unnecessary modifiers like “that”, “which” and “who”:
The presenterwho wasafter me
The presenter after meNew productsthatyou’ll love
New products you’ll love
You can shorten phrases using contractions:
Tips for summer fashions
Summer fashion tipsPeople in New Yorklove Apple
New Yorkers love AppleThis is an article that really engages:
A really engaging article:
4. Mathematical symbols and numerals
Styleguides typically say numbers up to ten should appear as words, not numerals. But you have more flexibility in tweets and subject lines:
Sevenways to win with words
7 ways to win with words
“&” or “+” or even “/” can substitute for “and”:
Email more popular than beerandchocolate
Email more popular than beer & chocolate
The “>” and “<” symbols can be used for “less than”, “more than”, “under”, “over”…with certain audiences:
Fewer than10% of marketers test their copy
<10% of marketers test their copy
Try “=” instead of “equals”, “means”, “leads to” etc.:
Donut consumption shown to lead to higher risk of stomach ache
More donuts = more stomach aches
5. The active voice
Switching from passive to active voice simply reads better, but also means shorter text:
Half of marketersare usingemail design preview toolsHalfof marketers use email design preview tools
50% of marketers use email design preview tools
6. Hashtags
Twitter’s hashtags, like many tools, are neither good nor bad. It’s all in how you use them.
A suitable hashtag might replace lengthier information explaining the context for a tweet:
Images lift clicks by 34%when usedin marketing emails
Images lift clicks by 34%in marketing emails
Images lift clicks by 34% #emailmarketing
7. Abbreviations
Nobody is going to write United Kingdom when they can write UK. Abbreviations are great space savers, provided you follow two rules.
1. They must be understandable (audience)
Well, yeah.
Except it’s easy to use abbreviations you’re familiar with, and forget that your audience isn’t. “Promo code” for “promotional code” seems unarguable. “w/ free shipping” for “with free shipping”? Maybe.
2. They must be appropriate (context)
My wife is familiar with the abbreviation OMG. I’m not sure, though, she wants to see it in an email from her gynecologist:
“OMG, u r pregnant!”
(She’d be quite surprised, too).
Your choice of abbreviations says something about you as a sender / tweeter.
Equally, subject lines are not tweets and tweets are not SMS text messages. The medium alone changes what abbreviations are acceptable and that’s before we get into the context of the message itself.
Too many abbreviations are also difficult to read and interpret if you’re not familiar with that kind of writing.
“UNESCO says tnx FB 4 gr8 AIDS donation”
Ugh.
FYI, Social Media Today has a list of common Twitter abbreviations.
8. URL shorteners
Needless to say, anyone putting a link in a tweet should use one of the common URL shortening services out there. The popular tools used to send tweets should make this easy. So the Hootsuite tool turns:
http://www.email-marketing-reports.com/iland/2012/01/law_and_deliverability.html
…into…
http://ow.ly/8Er1J
Links in tweets posted through Twitter itself are also automatically shortened.
9. Colons and trailing dots
OK, this is your bonus tip with a couple of related techniques.
If space isn’t an issue and you have trouble getting important keywords near the front of your subject line or tweet, consider the colon option. Example:
Great advice on how to write shorter subject lines
Subject lines: how to make them shorter <– great advice
If you’re running out of space and want to imply there’s more information than you can reasonably fit into the subject line or tweet, consider using trailing dots:
Free shipping on top brands: Calvin Klein, Burberry, Coach, Trussardi, Fila,…
And finally…
In King Lear, Shakespeare wrote:
“Thou art a boil, a plague sore, an embossed carbuncle in my corrupted blood”
He could have said:
“You annoy me”
…and saved 63 spaces. But it’s not the same is it?
Short, concise writing can destroy style, humor, emotion and personality if handled badly. And these may be the very things that differentiate you from the competition or drive higher responses. Words matter and, sometimes, long beats short.
So…your tips please!
*You need two spaces for the RT, then a space, then your username plus a colon plus a space: so tweets by @MarkatEMR need to be 125 characters or less to be retweeted as RT @MarkatEMR: Blah Blah
OMG! Over 40 Twitter Abbreviations You Should Know
They are:
B4- Before
b/c, bc- Because
BRB - Be Right Back
BTW - By The Way
DM- Direct message, a private message or “direct message” to a person you follow.
EM or EML- Email
Fab- Fabulous
FB- Facebook
FF- Follow Friday(#followfriday) A Twitter “endorsement” Tweeted show the user's favorite people on twitter. (see this cool article on how to automatically populate a follow friday list)
Followers- Twitter Members that follow user updates
F2F (and while we’re at it, B2B, B2C): face to face, Business to business, Business to Client (Business to Community)
FYI- For Your Information
Gr8- Great GTG, G2G- Got To Go
Hashtag #: A way of organizing your updates for Twitter search engine & to enable others to discover relevant posts. For example, here are some of the worlds favourite hashtags from 2011:
- #egypt
- #tigerblood
- #threewordstoliveby
- #idontunderstandwhy
- #japan
- #improudtosay
- #superbowl
- #jan25
- #thingslongerthankimsmarriage
- #thankyousteve
- #prayforjapan
- #winning
- #inthe90s
- #rw2011
- #theawkwardmoment
- #11/11/11
HT - Hat Tip, or "Heard Through" instead of a classic "RT"
HTH - Here to Help or "Happy" To Help
IC - I See
IDC- I don't care
IDK- I don’t know
IM- Instant Message
JK or J/K- Just Kidding (or for UK people, Joking)
L8- Late
LI- LinkedIn
LMAO- Laughing My A** Off
LMK- Let Me Know
LOL- Laughing Out Loud-- not “lots of love” like my mother thinks it is.
MT - Modified Tweet
NSFW- Not Safe For Work
OH- Overheard
OMG- Oh My God
OMW - On My Way
ORLY- Oh Really?!!
ROFL- Rolling On The Floor Laughing
@reply: a Twitter update (a tweet) that is directed to another user within their tweet.
RT- ReTweet
SMH- Shaking My Head
Thx or Tx- Thanks
TMI- Too Much Information
Trend- A topic "Trending" or "popular" right now on Twitter
TTYL- Talk To You Later
TTYS- Talk To You Soon
TY- Thank You
YT- YouTube
=================
More details about this post in its original location accessible here: http://socialmediatoday.com/marketmesuite/421522/omg-over-40-twitter-abbreviations-you-should-know
Saturday, March 24, 2012
Cálculo do tempo de processamento de algoritmos
Como já
sabido, toda operação de computador requer um certo tempo e “esforço” do
processador para acontecer. Quando programamos um computador, também é sabido
que podemos produzir diversos códigos diferentes para obter o mesmo resultado,
de forma similar a chegar a um mesmo resultado em Matemática a partir de
distintas formas de fazer a mesma coisa. Contudo, meios diferentes requerem
diferentes esforços, sejam nossos ou dos processadores, dando-nos mais ou menos
trabalho, exigindo-nos mais ou menos tempo.
Com
computadores, estamos falando de algoritmos, estas seqüências lógicas de
processamento, se corretamente escolhidas, podem facilitar todo o processo na
questão tempo e esforço.
O possível
estimar o tempo de execução de algoritmos com a finalidade de saber quais são
os melhores quando comparados uns com os outros, e é disso que venho falar.
A
performance de um computador é determinada por fatores como:
·
Hardware:
o
Processador
usado
o
Memória
disponível
o
Disco
disponível
·
Software
o
Linguagem
e plataforma utilizada
o
Compilador
usado
o
Sistema
Operacional utilizado
Alguns
exemplos de tempos exigidos para tarefas diversas:
- · tfetch => tempo necessário para obter um dado (variável do programa) da memória
- · tstore => tempo necessário para salvar um dado na memória (armazená-lo em uma variável)
- · t+ => tempo necessário para executar uma operação de soma. Representações similares existem para as outras 3 operações elementares
- · t< => tempo necessário para realizar a comparação lógica “menor que”. Existe a equivalente para “maior que”
- · treturn => tempo necessário para finalizar a execução de um método/função, a partir do momento em que a instrução de código “return” é acionada
- · t[.] => tempo necessário para calcular endereços quando trabalhando-se com “arrays”
Exemplos (Te = tempo de execução):
Exemplo
1:
y = x;
Te = tfetch
+ tstore
Exemplo 2:
y = y + 1;
Te = 2(tfetch) + t+ + tstore
Primeiro
exercício abordado em sala:
O seguinte
código foi abordado em sala para calcularmos o tempo de processamento (funciona
em C, C++, C# e Java):
// 1) int result = 0;
// 2) for (int i
= 1; i <= n; ++i)
// 3) {
// 4) result
+= i;
// 5) }
// 6) return
result;
Obviamente,
o código não está completo, sempre há código necessário tanto antes como depois
dessas instruções, em qualquer linguagem, para poder compilar e executar tais
instruções.
Vale a pena
lembrar também que
result +=
i;
é uma forma
abreviada de escrever
result =
result + 1;
Vamos então
ao cálculo do tempo de processamento. Resolverei primeiro da forma que o
professor fez em sala, e depois, mostrarei uma forma alternativa que pensei
aqui que, quando testando, dão o mesmo resultado, e achei bem mais simples do
que o método do professor.
Professor:
// 1) tfetch + tstore
// 2) tfetch + tstore
// 2) [2(tfetch)
+ t<] * (n + 1)
// 2) [2(tfetch)
+ t+ + tstore]
* n
// 4) [2(tfetch)
+ t+ + tstore]
* n
// 6) tfetch + treturn
________________________________________________ +
________________________________________________ +
[6(tfetch)
+ 2(tstore)
+ t< + 2(t+)] * n + 5(tfetch)
+ 2(tstore)
+ t< + treturn
Minha forma
alternativa:
Para
facilitar, vou criar variáveis de mais fácil manipulação para nós que estamos
acostumados com Álgebra e Polinômios desde o ginásio (primeiro grau):
tfetch = x
tstore = y
t< = w
t+ = z
treturn = s
(n + 1) = a
n = b
Agora,
basta trabalhar com x, y , w, z, s, a e b. Veja como fica:
// 1) x + y
// 2) x + y
// 2) (2x + w) *
a
// 2) (2x + z +
y) * b
// 4) (2x + z +
y) * b
// 6) x + s
____________________
+ (agrupando termos iguais)
2 (x + y)
a * (2x +
w)
2b * (2x +
z + y)
x + s
____________________
+ (aplicando a distributiva, somando e agrupando os monômios similares)
(2x + 2y) +
(2xa + aw) + (4bx + 2bz + 2by) + (x + s) =
3x + 2y +
2xa + aw + 4bx + 2bz + 2by + s (está resolvido)
Agora que a
Álgebra foi realizada, trazendo novamente a nomenclatura técnica, fica assim:
3(tfetch) + 2(tstore) + 2[(n + 1)(tfetch)] +
[(n + 1)(t<)] + 4
[n(tfetch)] +
2[n(t+)] + 2[n(tstore)] + treturn
Para testar
os resultados, tanto o do professor quanto o meu, que visualmente não há
indicações de serem equivalentes, basta escolher um valor para a variável “n” e
verificar o que obtemos. Ambos dão o mesmo resultado, portanto são
equivalentes, e vou mostrar isso escolhendo arbitrariamente o valor 4 para a
variável “n”. Temos portando 2 resultados:
Professor:
[6(tfetch)
+ 2(tstore)
+ t< + 2(t+)] * n + 5(tfetch)
+ 2(tstore)
+ t< + treturn
Meu:
3(tfetch) + 2(tstore) + 2[(n + 1)(tfetch)] +
[(n + 1)(t<)] + 4
[n(tfetch)] +
2[n(t+)] + 2[n(tstore)] + treturn
Testando a
equivalência, para n = 4:
Em ambos os
casos, obtemos
29(tfetch) + 10(tstore) + 5(t<) + 8(t+) + treturn
Conclusão:
Confesso
que não entendi a última etapa do método do professor, e como preciso de um
método para calcular isso (as provas chegarão um dia), acabei pensando na forma
acima, que eu acredito simplificar o entendimento durante todo o processo,
facilitando para não se perder durante as contas.
Eu acredito
que ele fez da forma que fez porque ele quis agrupar o resultado de forma a ser
visível através da fórmula
T(n) = t1 + t2n
sendo:
t1 = 5(tfetch)
+ 2(tstore)
+ t< + treturn
t2 = [6(tfetch)
+ 2(tstore)
+ t< + 2(t+)] * n
Esta é uma fórmula
geral para tal tipo de cálculo dentro de um looping “for”. Caso fosse um
looping “for” dentro de outro, também conhecido como “nested loop”, de acordo
com o professor, a fórmula seria
T(n) = t1 + t2n2
Bom, é isso
o que tenho a dizer no momento. Espero que o conteúdo acima sirva para os
companheiros de sala e para todos que dependam deste entendimento.
Abraços!
Subscribe to:
Posts (Atom)