This document provides an overview of Moser Baer, a leading global technology company. It discusses Moser Baer's history and growth since 1983, locations worldwide, leadership as one of the top two media manufacturers. The document also summarizes Moser Baer's diversification into various businesses like solar energy, entertainment, IT peripherals and consumer electronics. It provides details on Moser Baer's manufacturing process, quality systems, research and development initiatives, markets served, and competitive strategies.
The document discusses the evolution of marketing and communication models from a monologue approach of the past to a dialogue approach for the future. It outlines Pace's use of various tools like Raiser's Edge and Constant Contact to improve communication and engagement with target audiences. The bulk of the document then focuses on explaining social media and how it has fundamentally shifted communication online towards conversations and user-generated content. It emphasizes that people now trust recommendations from other consumers over traditional advertisements, so the new model for marketing involves starting transparent conversations on social media rather than just talking at people.
This document provides an overview of Moser Baer, a leading global technology company. It discusses Moser Baer's history and growth since 1983, locations worldwide, leadership as one of the top two media manufacturers. The document also summarizes Moser Baer's diversification into various businesses like solar energy, entertainment, IT peripherals and consumer electronics. It provides details on Moser Baer's manufacturing process, quality systems, research and development initiatives, markets served, and competitive strategies.
The document discusses the evolution of marketing and communication models from a monologue approach of the past to a dialogue approach for the future. It outlines Pace's use of various tools like Raiser's Edge and Constant Contact to improve communication and engagement with target audiences. The bulk of the document then focuses on explaining social media and how it has fundamentally shifted communication online towards conversations and user-generated content. It emphasizes that people now trust recommendations from other consumers over traditional advertisements, so the new model for marketing involves starting transparent conversations on social media rather than just talking at people.
This document provides results from a 117 mile yacht race from Denia to Ibiza held on April 10, 2004. It lists 48 boats that completed the race along with their classification, time of arrival, ratings, and other details. It also lists 14 boats that did not finish the race. The first place finisher was Rocinante III with a time of 07:34:21.
The document lists several plants and animals that are endangered in the Amazon Rain Forest. Some endangered plant species include bromeliads, the Rafflesia flower, the kapok tree, orchids, and mangrove trees. Endangered animal species mentioned include the buffy-headed marmoset, Cleber's arboreal rice rat, giant armadillo, giant otter, golden-headed lion tamarin, golden lion tamarin, maned three-toed sloth, pacarana, pied tamarin, pygmy short-tailed opossum, white-eared marmoset, and white-whiskered spider monkey.
1. The document discusses how data helps prioritize ideas and determine the success of projects.
2. It provides an example of using data to justify improving a signup flow based on past experiment results and goals to grow user numbers.
3. An A/B test was run to move the email confirmation step which resulted in more users making it through signup but less email activations, though overall user retention improved.
Dokumen tersebut membahas beberapa model jaringan komputer yaitu Adidas Network, Master Slave, Peer to Peer, dan Client Server. Client Server dijelaskan memiliki keunggulan kecepatan dan optimalisasi sumber daya tetapi memiliki kelemahan kompleksitas pengaturan dan biaya tinggi. Terdapat beberapa tipe server dalam arsitektur client server seperti server berkas, basis data, transaksi, groupware, objek, dan web.
Suburbarian analyzes social media and online data to provide sentiment scores and insights about different suburbs. This helps people choose between living in a nice house in a bad suburb or a bad house in a nice suburb. Suburbarian gathers available data, analyzes it to extract meaningful insights, and presents simple metrics to help users make the right decision about where to live. Their vision is to become the top provider of affordable sentiment analysis worldwide and give individuals access to crowd wisdom.
Presentation to create awareness in the top management of sport organization ...Pedro Sobreiro
The strategy gives a context that helps to define the area to be targeted and improved using a Business Process Management approach. This presentations is being used for raising awareness in the top managers of sport organizations for the work to be done and how results can be achieved
Rugby is a team sport that can be played in different formats. It was developed in the 19th century by William Webb Ellis. Teams work to advance an oval ball down the field by passing it behind them or carrying it. Points are scored through tries, drop goals, and penalty kicks. Tackling is only allowed against the player carrying the ball.
Ольга Кочкина Что творится на рынке труда в сфере ITSiel01
Кто «охотится» за IT-специалистами? Кто пользуется особой популярностью и имеет все шанс продать себя подороже? Сколько хотят и реально могут получить IT-специалисты? Вся правда о построении карьеры CIO? Ольга раскроет много тайн. И, наконец, вы сможете узнать и проверить на что же, на самом деле, способны профи из IT.
Николай Мациевский Насколько открыт Open source ADD-2010Siel01
Очень часто мы слышим вокруг, что использование Open Source кода — это хорошо и правильно, это развивает ИТ-индустрию, это позволяет накапливать знания, а не тратить время разработчиков, создавая очередной «велосипед». Но давайте разбираться, так ли дело обстоит на самом деле, какие трудности будут нас преследовать на пути распространения Open Source продуктов, и как их преодолеть.
11. Äîêàçóåìàÿ êîððåêòíîñòü
Face it:
Ëèáî ïðîãðàììà äîêàçóåìî êîððåêòíà
Ëèáî îíà, ïî÷òè íàâåðíÿêà, íåêîððåêòíà
Tony Hoare:
There are two ways of constructing a software design.
One way is to make it so simple that there are obviously no
deciencies, and the other way is to make it so complicated that
there are no obvious deciencies.
The rst method is far more dicult.
21. Ôîðìóëû LTL
p1, p2, . . . Ïåðåìåííûå
A ∧ B, ¬A. . . Ëîãè÷åñêèå ñâÿçêè
XA Â ñëåäóþùèé ìîìåíò A (neXt)
GA ≡ A Âñåãäà A (Globally)
FA ≡ ♦A Êîãäà-íèáóäü A (Future)
AUB A, ïî êðàéíåé ìåðå äî íàñòóïëåíèÿ B
70. Eventual consistency
Îòíîñèòñÿ ê ðàñïðîñòðàíåíèþ äàííûõ è èçìåíåíèé ïî
ðàñïðåäåëåííîé ñèñòåìå.
”
Êàæäîå èçìåíåíèå êîãäà-íèáóäü ñòàíåò âèäíî âñåé ñèñòåìå“.
Âèäèìî, åäèíñòâåííàÿ ýôôåêòèâíàÿ ìîäåëü â äåéñòâèòåëüíî
áîëüøèõ ñèñòåìàõ (Amazon, eBay è ò.ï.)
CAP Theorem
Choose any 2:
Consistency: âñå óçëû âèäÿò ñèñòåìó îäèíàêîâî
Availability: çàïðîñ ê æèâîìó óçëó îáÿçàòåëüíî ïîëó÷àåò îòâåò
Partition tolerance: ëþáîå ñîîáùåíèå ìåæäó óçëàìè ìîæåò
áûòü óòåðÿíî
71. Eventual consistency
Consistency, Availability, Partition Tolerance.
ACID
1 → BASE
2
ACID
Atomicity
Consistency
Isolation
Durability
BASE
Basically Available
Soft state
Eventually consistent
Soft state
The state . . . could be lost in a crash without permanent disruption
of the service features being used.
Clark, The design philosophy of the DARPA internet protocols
1
Êèñëîòà
2
􌑔֟
72. Further reading
http://www.webperformancematters.com/journal/2007/8/
21/asynchronous-architectures-4.html î
ìàñøòàáèðîâàíèè â em—zonF Î÷åíü ïîëåçíûå ñîâåòûF
http://www.infoq.com/interviews/
dan-pritchett-ebay-architecture î ìàñøòàáèðîâàíèè â
ef—y
http://roc.cs.berkeley.edu/ Èññëåäîâàòåëüñêèé ïðîåêò
‚e™overyEyriented gomputing
Áîðîòüñÿ ñ ïîñëåäñòâèÿìè îøèáîêD ïîñêîëüêó èñêîðåíèòü
âñå ïðè÷èíû íåâîçìîæíî
Íåñêîëüêî îñíîâíûõ ïðèíöèïîâ @èçîëÿöèÿD èçáûòî÷íîñòüD
undoD ñàìîäèàãíîñòèêàD ïåðåçàïóñêàåìîñòüA
Î÷åíü ðàçóìíîD åñëè ïîäóìàòüF
93. Fork/Join
Ïðèìåð: Óìíîæåíèå ìàòðèö: C+ = AB (Â ò.÷. ïîèñê ïóòåé â
ãðàôàõ è ò.ï.)
A è B ìàëû ⇒ âëîá
Fork: Ïîäåëèòü A íà âåðõ/íèç è B íà ëåâî/ïðàâî
Join: Íè÷åãî, ïðîñòî äîæäàòüñÿ ðåçóëüòàòîâ Fork
95. Fork/Join in JDK7
Ïðèìåðíî òàê. Îôèöèàëüíîãî îêîí÷àòåëüíîãî Javadoc äî ñèõ
ïîð íåò.
class Solver extends RecursiveAction {
private final Problem problem;
int result;
protected void compute() {
if (problem.size THRESHOLD) {
result = problem.solveSequentially();
} else {
int m = problem.size / 2;
Solver left, right;
left = new Solver(problem.subProblem(0, m));
right = new Solver(problem.subProblem(m, problem.size));
forkJoin(left, right);
result = //get the result from left right
}
}
}
ForkJoinExecutor pool = new ForkJoinPool(
Runtime.availableProcessors());
Solver solver = new Solver(new Problem());
pool.invoke(solver);
96. Âåêòîðíûå àëãîðèòìû
Huge-scale SIMD: Ïðèìèòèâíûå îïåðàöèè îïåðèðóþò ñðàçó íàä
áîëüøèìè ìàññèâàìè.
Map: Ïðèìåíåíèå ôóíêöèè ê êàæäîìó ýëåìåíòó / ñêëåéêà
N ìàññèâîâ ïî N-àðíîé îïåðàöèè
Fold: Àññîöèàòèâíàÿ ñâåðòêà â ìîíîèäå.
àññîöèàòèâíà: a (b c) = (a b) c
u åäèíèöà : a u = u a = a
fold u [x0, x1, . . . , xn] = u x0 x1 . . . xn
Scan (Prex sum): Ïðîáåã (Ïðåôèêñíàÿ ñóììà)
scan u [x0, x1, . . . , xn] = [u, u x0, u x0 x1, . . . , u . . . xn]
120. Àñèíõðîííîå ïðîãðàììèðîâàíèå
Ïðè÷èíû:
Áëîêèðóþùèå âûçîâû íåóäîáíû èëè íå ïîääåðæèâàþòñÿ
eteˆ
q…s @
”
àñèíõðîííî ïîëó÷èòü ðåçóëüòàò äèàëîãà“ è òFïFA
Àñèíõðîííûé API äîïóñêàåò áîëåå ýôôåêòèâíóþ
ðåàëèçàöèþ
Àñèíõðîííûé ââîäEâûâîä
Àñèíõðîííûé äîñòóï ê õðàíèëèùàì äàííûõ F F F
Àêòèâíàÿ ñòîðîíà @ñåðâåðD ñåòåâîé äðàéâåð ÎÑ F F F A ìîæåò
ðåøàòüD êîãäà è â êàêîì ïîðÿäêå îòâå÷àòü íà çàïðîñû
128. Àñèíõðîííîå ïðîãðàììèðîâàíèå
Ó÷èìñÿ ó .NET âîîáùå è F# â ÷àñòíîñòè.
let AsyncHttp(url:string) =
async { // Create the web request object
let req = WebRequest.Create(url)
// Get the response, asynchronously
let! rsp = req.GetResponseAsync()
// Grab the response stream and a reader. Clean up when we're done
use stream = rsp.GetResponseStream()
use reader = new System.IO.StreamReader(stream)
// synchronous read-to-end
return reader.ReadToEnd() }
Ýòî íàçûâàåòñÿ
”
asynchronous workows“.
Workow êðàñèâûé ñèíîíèì äëÿ ñëîâà
”
Ìîíàäà“
(google://workow, monad).
http://blogs.msdn.com/dsyme/archive/2007/10/11/
introducing-f-asynchronous-workflows.aspx
130. Àñèíõðîííîå ïðîãðàììèðîâàíèå
Ìîíàäû ïðîíèêëè â ìåéíñòðèì: ó C# òåïåðü òîæå ó÷èìñÿ
(LINQ).
var requests = new[]
{
WebRequest.Create(http://www.google.com/),
WebRequest.Create(http://www.yahoo.com/),
WebRequest.Create(http://channel9.msdn.com/)
};
http://www.aboutcode.net/2008/01/14/Async+WebRequest+
Using+LINQ+Syntax.aspx
131. Àñèíõðîííîå ïðîãðàììèðîâàíèå
Ìîíàäû ïðîíèêëè â ìåéíñòðèì: ó C# òåïåðü òîæå ó÷èìñÿ
(LINQ).
var pages = from request in requests
select
from response in request.GetResponseAsync()
let stream = response.GetResponseStream()
from html in stream.ReadToEndAsync()
select new { html, response };
http://www.aboutcode.net/2008/01/14/Async+WebRequest+
Using+LINQ+Syntax.aspx
141. Data Parallel Haskell
Âåêòîðèçàòîð (òðàíñëèðóåò äàæå ðåêóðñèâíûå ôóíêöèè â
âåêòîðíûå îïåðàöèè)
Áèáëèîòåêà ïàðàëëåëüíûõ âåêòîðíûõ îïåðàöèé
dotp_double :: [:Double:] - [:Double:] - Double
dotp_double xs ys = sumP [:x * y | x - xs | y - ys:]
smMul :: [:[:(Int,Float):]:] - [:Float:] - Float
smMul sm v = sumP [: svMul sv v | sv - sm :]
http://research.microsoft.com/en-us/um/people/simonpj/
papers/ndp/NdpSlides.pdf ñëàéäû
142. Data Parallel Haskell
sort :: [:Float:] - [:Float:]
sort a = if (length a = 1) then a
else sa!0 +++ eq +++ sa!1
where
m = a!0
lt = [: f | f-a, fm :]
eq = [: f | f-a, f==m :]
gr = [: f | f-a, fm :]
sa = [: sort a | a - [:lt,gr:] :]
Âåêòîðèçóåòñÿ è ïàðàëëåëèçóåòñÿ.
143. Repa
Regular, shape-polymorphic, parallel arrays in Haskell.
The Haskell code transparently makes use of multicore hardware
Ñäåëàíî ãðóïïîé Ìàíóýëÿ ×àêðàâàðòè ýòî îäèí èç
êðóòåéøèõ èìïëåìåíòîðîâ Õàñêåëëà.
http://justtesting.org/
regular-shape-polymorphic-parallel-arrays-in
144. Òðàíçàêöèîííàÿ ïàìÿòü
transfer :: Account - Account - Int - IO ()
transfer from to amount = atomically do
deposit to amount
withdraw from amount
150. Parallel LINQ (PLINQ)
IEnumerableT data = ...;
var q = from x in data.AsParallel()
where p(x)
orderby k(x)
select f(x);
foreach (var e in q) a(e);
Òðàíñëèðóåòñÿ â êîìáèíàöèþ
ParallelEnumerable.{Select,Where,OrderBy} è ò.ï.
151. Parallel LINQ (PLINQ)
IEnumerableT leftData = ..., rightData = ...;
var q = from x in leftData.AsParallel()
join y in rightData on x.a == y.b
select f(x, y);
152. Clojure
Clojure is to concurrent programming as Java was to OOP
Áèáëèîòåêà ÷èñòî ôóíêöèîíàëüíûõ ñòðóêòóð äàííûõ
4 ìåõàíèçìà concurrency: Atoms, Vars, Agents, Refs
Âñå îíè îïåðèðóþò íàä immutable çíà÷åíèÿìè è
÷èñòûìè ôóíêöèÿìè
fe™—use this is the w—y to goF
153. Atoms
Áîëåå èëè ìåíåå îáû÷íûå atomic ïåðåìåííûå.
(swap! atom f)
”
Àòîìàðíî çàìåíèòü x íà f (x), âåðíóòü
ñòàðûé x (compare-and-exchange)“
f îáÿçàíà áûòü ÷èñòîé: åå ìîãóò âûçâàòü
íåñêîëüêî ðàç
http://clojure.org/atoms
154. Vars
Thread-local, dynamically scoped ïåðåìåííûå.
(def x 0) îáúÿâèòü x ñ ãëîáàëüíûì çíà÷åíèåì ïî
óìîë÷àíèþ 0.
x ïðî÷èòàòü çíà÷åíèå x.
(set! x 5) ïðèñâîèòü x = 5 â ðàìêàõ òåêóùåé íèòè.
(binding [x 5] (do-something)) âûïîëíèòü do-something,
ïîëàãàÿ x = 5 â ðàìêàõ òåêóùåé íèòè.
http://clojure.org/vars
155. Agents
Àñèíõðîííî èçìåíÿåìûå ïåðåìåííûå.
(agent 0) àãåíò ñ íà÷àëüíûì çíà÷åíèåì 0
(deref x) òåêóùåå çíà÷åíèå
(send x f) àñèíõðîííî çàìåíèòü x íà f (x)
(await x) äîæäàòüñÿ îêîí÷àíèÿ âñåõ äåéñòâèé íàä àãåíòîì
(set-validator x f) ïîâåñèòü âàëèäàòîð ñîñòîÿíèÿ
(add-watch x f) ïîâåñèòü ñëóøàòåëÿ
http://clojure.org/agents
156. Refs
Òðàíçàêöèîííàÿ ïàìÿòü (STM).
Äîâîëüíî îáû÷íàÿ
Òðàíçàêöèè äîëæíû áûòü áåç ïîáî÷íûõ ýôôåêòîâ
Ëþáîïûòíî: (commute x f): çàìåíèòü x íà f (x),
ïðåäïîëàãàÿ ÷òî f êîììóòèðóåò ñ îñòàëüíûìè.
ÍàïðèìåðD (commute counter inc) ïîäîéäåò
Ðàáîòàåò ñëåãêà áûñòðååD ÷åì äðóãèå ôóíêöèèEìóòàòîðû
http://clojure.org/refs
161. Java Memory Model
Ãðóáî: Íàáîð àêñèîì î òîì, êàêèå ïðîèñøåñòâèÿ â ïàìÿòè êîìó
è êîãäà âèäèìû.
×òîáû êîìïèëÿòîð ìîã âûïîëíÿòü îïòèìèçàöèè
Ïåðåóïîðÿäî÷åíèåD óäàëåíèå äîõëîãî êîäà F F F
×òîáû ìîæíî áûëî ýôôåêòèâíî èñïîëüçîâàòü êýøè,
îñîáåííî â ìíîãîïðîöåññîðíûõ ñèñòåìàõ.
162. Ïðèìåð
private int x, y;
void foo() {
x = 5;
y = 7;
}
void bar() {
if(x==5) {
// Íåâåðíî, ÷òî y==7
}
}
163. nal ïîëÿ è JMM
Ïðèìåð
public final class Foo {
private int x;
Foo(int x) {this.x = x;}
int getX() {return x; }
}
Íå thread-safe! x äîëæåí áûòü nal.
164. Java Memory Model
Áîëåå òî÷íî: Íàáîð àêñèîì î òîì, êàêèå íàáëþäåíèÿ
ðåçóëüòàòîâ ïîñëåäîâàòåëüíîñòè äåéñòâèé â ïàìÿòè
âîçìîæíû.
Öåëè:
Áåçîïàñíîñòü
Áåçîïàñíàÿ èíèöèàëèçàöèÿ
Èíòóèòèâíîñòü
Ýôôåêòèâíàÿ ðåàëèçóåìîñòü
166. Java Memory Model
Îñíîâíûå ïîíÿòèÿ:
Äåéñòâèå
Îáðàùåíèå ê ðàçäåëÿåìûì ïåðåìåííûì
ÂõîäGâûõîä èç ìîíèòîðà
ÇàïóñêGîæèäàíèå íèòåé
Âèäèìîñòü
Îòíîøåíèå happens-before
Æèçíü I íèòè óïîðÿäî÷åíà
Æèçíü I ìîíèòîðà óïîðÿäî÷åíà
Æèçíü I vol—tile ïåðåìåííîé óïîðÿäî÷åíà
167. ×òî âñå-òàêè äåëàåò volatile?
×òåíèå îäíîé volatile ïåðåìåííîé ïî÷òè òî÷êà
ñèíõðîíèçàöèè.
class VolatileExample {
int x = 0;
volatile boolean v = false;
public void writer() {
x = 42; v = true;
}
public void reader() {
if (v == true) { /* x==42 */ }
}
}
173. Íåáëîêèðóþùèå àëãîðèòìû è îïåðàöèè
Ñðåäñòâà â Java:
java.util.concurrent.atomic
AtomicInteger, AtomicLong
AtomicReference, AtomicStampedReference
(ìàëîèçâåñòíî) AtomicIntegerArray, Long, Reference
174. Àòîìàðíûå îïåðàöèè
Ïðèìåð àëãîðèòìà íà CAS:
public class ConcurrentStackE {
AtomicReferenceNodeE head = new AtomicReferenceNodeE();
public void push(E item) {
NodeE newHead = new NodeE(item);
NodeE oldHead;
do {
oldHead = head.get();
newHead.next = oldHead;
} while (!head.compareAndSet(oldHead, newHead));
}
public E pop() {
...
}
}
http://www.ibm.com/developerworks/java/library/j-jtp04186/
index.html