Scriptkittens
Sunday, 1 December 2013
Tuesday, 12 November 2013
What is Facebook?
Facebook is an online social
networking service. It was named after the “facebook” some American University
students are given at the beginning of the academic year which contains photos
and personal information.
Founders
Facebook was
founded by:
- · Mark Zuckerburg
- · Eduardo Saverin
- · Andrew McCollum
- · Dustin Moskovitz
- · Chris Hughes
How it all started: a
Brief History of Facebook
Before Mark Zuckerburg attempted to write the Facebook we
know and love today, he created a site called FaceMash on October 28, 2003. He
was, then, still a sophomore at Harvard University. To create this “hot or not”
site, Zuckerburg hacked into Harvard’s server to retrieve private dormitory ID
photos. It was not long until he moved on to an even bigger project.
In February 2004, Facebook, then called “the facebook”, was
founded by Mark Zuckerburg and fellow Harvard University students Eduardo
Saverin, Andrew McCollum, Dustin Moskovitz and Chris Hughes. The popularity of
“The facebook” increased rapidly among Harvard students since it was created.
In fact, within 24 hours 1200 students signed up.
The site soon extended to other universities in Boston, and
then, all US universities. After August 2005, when the site bought the domain
“facebook.com” for $200,000, students from universities worldwide began signing
up. The next month even US high school students could join as well.
Since September 2006, anyone (worldwide) with an e-mail
address could sign up and millions have joined. Facebook’s popularity is ever
increasing and the company is continuously developing by creating and updating
the site and Facebook-related apps.
Services offered by
Facebook
Facebook is one of the largest social networking websites. It
assists in the wide spread building of businesses through advertisements of the
services and products. Facebook offers a great way to build among its customers
by offering four main services:
·
Facebook
Deluxe
·
Facebook
Advanced
·
Facebook
Basic
·
Facebook
Kick start
FACEBOOK
DELUXE
Facebook Deluxe is for persons or
businesses who have large following, several store fronts in different
geographical location and are in need of constant monitoring of their page. The
deluxe package offers individualized content, posting, interaction, monitoring,
rapid response times and management.
FACEBOOK
ADVANCED
Facebook Advanced allows the user to
be totally hands-off. It takes advantage of the social delivered team to
completely manage an individual’s Facebook interaction including writing,
custom content, posting, interaction and monitoring seven days a week.
FACEBOOK
BASIC
Facebook Basic is for individuals
who can handle interactions and monitoring. The Facebook team launches or
improve your page and provide custom content and consistent delivery of the
content.
FACEBOOK
KICKSTART
Facebook Kick start offers the setup
of a Facebook business page and two (2) hours of virtual training with a second
Media Specialist.
Revenue
HOW DOES
FACEBOOK MAKE MONEY?
Year
|
Revenue
|
Growth
|
2006
|
$52
|
—
|
2007
|
$150
|
188%
|
2008
|
$280
|
87%
|
2009
|
$775
|
177%
|
2010
|
$2,000
|
158%
|
2011
|
$4,270
|
114%
|
Facebook Finance
The total
net worth can be summarized as:
- -- Total
assets
US$ 15.10 billion (2012)
- -- Total
equity
US$ 11.75 billion (2012)
- Stock
Price (2013)
At the time of
writing, Facebook’s stock prick is around $46 a share.
Life Working At Facebook.
As anyone
would expect a social network company is one of the most interesting places to
work. It can be considered as doing what you love. Facebook hires trailblazers,
hackers and pioneers. It is stated that the company employs individuals who can
solve challenging problems, make a real impact, build something big and
embraces the concepts of working fast, being open and taking risks. The concept
of fast for Facebook truly means fast. For instance, it was reported that
engineers must have codes live within one week of starting. Interestingly
enough, it has been said, that unlike most companies, the main communication
among employees of Facebook (at work) is via Facebook.
New Innovations
The newest
invention to the Facebook world is the Smartphone App development. The new
Facebook Messenger App introduces enhanced speed, function and design. The app
is available on Androids to start. The updated Facebook app for Blackberry and
Android also makes big promises. The announcement of the upgrade advertises
improved data use. Facebook works on enhancing its users’ experience and we can
only expect greater competency in the future.
Saturday, 2 November 2013
Multithreading
Introduction
Multi-threading is the
ability of a computer’s central processing unit to execute multiple threads in
a single process. A
thread is a building block for multithreaded systems or in simple terms a path
taken by a process or application when executed. Operating systems or “OS”, as
they are commonly called, foster the ability of multithreading in the modern
world. This blog post is geared towards discussing concepts, advantages and
disadvantages of multithreading.
Before
the concept of multi-threading can be understood fully, the main concept of a
thread must be looked at briefly.
What is a Thread?
A thread is a basic unit of CPU
utilization, that is,
the smallest sequence of a program that can be executed independently while
sharing the process’ resources (such as memory). Processes on the other hand,
do not share resources. Therefore, a thread is
generally referred to as a light-weight process contained by heavy-weight
processes. Threads consist of a program counter,
a processor state (including the current instruction pointer), a stack for running in user mode and a stack for
running in kernel mode and a set of registers.
Threads are divided into two main types: User threads and Kernel threads. User threads are threads used by application programmers, whereas, kernel threads are managed by the operating system. The relationship between user threads and kernel threads can be identified by their models: one-by-one, many-to-one and many-to-many.
These
models are shown in the diagrams below.
Whats is Multithreading?
Multithreading
is the ability of an operating system to simultaneously
execute the processing of multiple threads controlled by a single process
within the same address space.
Mutithreading
is a way of providing a user with a high level of response since a single
thread can run while other threads await instructions. For example;
Multithreaded programing in Java have the ability for one subprogram or process
to display an animation on the screen while other subprograms build the next
sequence of animations to be displayed. Also multithreaded operating systems
have the ability to log file changes, index data and manage windows at the same
time as background tasks.
In
multithreading, a parent process contains all threads. Each thread within the
parent process handles a separate transaction, algorithm or message. They share
the resources and memory allocated to the parent process including the
computing units, the CPU caches and the translation lookaside buffer (TLB). This makes it
less costly to generate multiple threads.
When
executed on a multiprocessor, multiple threads can run in parallel across
multiple processors as only one process may be executed on one processor.
Hence, it is safe to say that multithreading takes advantage of a single core by using
parallelism of both thread-level and instruction-level.
Why Multithreading?
Let us now weigh the
advantages and disadvatages of multithreading to see how beneficial
multithreading can be.
Advantages of Multithreading
Ø Inproved
responsiveness: is faster communication between threads; and a process can be
running even if some threads within the process are stalled, working on a
lengthy task, or awaiting user interaction while a single-threaded application
cannot respond to user input until it is done a particular task.
Ø Faster
application and more efficient processing:
multithreading
takes advantage of a single core by using
parallelism of both thread-level and instruction-level.
Ø Simultaneous
acess to to multiple applications
Ø Reduced
numbers of required servers
Ø More efficient
programming:
1. Threads
are easier to create than processes: this is so because they do not require a
separate address space.
2. There is greater
control in module programming and the timing of application-related events.
Disadvantages of Multithreading
Ø Difficulty
of managing conconcurrency: threads may interfere with each other when sharing
hardware resources (e.g.) caches or translation lookaside buffers (TLBs).
Ø Extensive Programming
Ø Debugging
Multithreading using multiple cores
FAQ’s of Multithreading
Question
Why
is multithreading important if I already have a computer with several cores?
Processes are even faster: The
multithreading process on a computer with a single processr allows a user to
continue using a program even while another thread is doing some lengthy
procedure but only one thread executes at a time. On the hand with a multiprocessor
system, more than one processor may be running different threads in the same
process. Hence, the execution of your program becomes significantly faster.
Question
What is the difference between a thread and
a process?
Answer
A thread is the smallest sequence of a program that can be
executed independently while sharing the process’ resources. It includes a
processor context: which consists of a program counter, a processor state
(including the current instruction/stack pointer), a stack for running in user
mode and a stack for running in kernel mode and a set of registers. Threads are executed sequentially with the
ability to be interrupted so that another thread can be executed.
A process is a collection of threads and the necessary
resources including memory, open files, windows and devices. It has a private memory address space in which the
process's code and data are stored.
Subscribe to:
Posts (Atom)