itextsharp add annotation to existing pdf c# : Adding a link to a pdf in preview SDK Library service wpf asp.net .net dnn 2015_open_source_yearbook1-part1862

O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
9
•   Easy integration of authentication styles, such as OAuth, 
Basic Auth, or API Tokens.
•   Simple permission system for fine-grained control of which 
users can use which API endpoints and/or actions.
•   Built-in rate limiting.
•   Nearly automatic API documentation when combined with 
django-rest-swagger [16].
•   Extensive ecosystem of third-party libraries.
Although you could certainly build an API without DRF, we 
can’t  fathom a reason  why you would start off  down  that 
path. Even if you don’t use all of DRF’s features, building 
up your own API views from their solid base view classes is 
a huge win in terms of safety, consistency of your API, and 
development velocity. If you aren’t using DRF already, you 
should set aside some time to check it out.
Best Django-based CMS: Wagtail
Wagtail is the current darling of the Django CMS world and 
with good reason. Like most CMS systems, it gives you flex-
ibility to define different types of pages and their content via 
simple Django models. This takes you from zero to a basi-
cally working system in hours, not days. To give you a quick 
example, to define a Staff page type for people at your com-
pany can be as simple as:
from wagtail.wagtailcore.models import Page
from wagtail.wagtailcore.fields import RichTextField
fr om wagtail.wagtailadmin.edit_handlers import  
FieldPanel, MultiFieldPanel
fr om wagtail.wagtailimages.edit_handlers import  
ImageChooserPanel
class StaffPage(Page):
name = models.CharField(max_length=100)
hire_date = models.DateField()
bio = models.RichTextField()
email = models.EmailField()
he adshot = models.ForeignKey(‘wagtailimages.Image’, 
null=True, blank=True)
content_panels = Page.content_panels + [
FieldPanel(‘name’),
FieldPanel(‘hire_date’),
FieldPanel(‘email’),
FieldPanel(‘bio’, classname=”full”),
ImageChoosePanel(‘headshot’),
]
The real appeal of Wagtail, however, is in its easy-to-use 
modern  admin  interface  and  flexibility.  You  can  control 
which types of pages are allowed in different areas of the 
site, add additional complex logic to your pages, and get 
standard moderation/approval workflows right out of the 
box. With most CMS systems, at some point you run into 
a wall you can work around. With Wagtail, we have yet to 
find a wall we couldn’t easy find a door through to make 
it do exactly what we want in an easy and maintainable 
file system directories as well, which is perfect for non-re-
usable scenarios.
We mention cookiecutter as a great Django package, but 
honestly it’s useful for plain Python or even non-Python-re-
lated purposes. Being able to lay things out exactly as you 
like in an easily repeatable way makes cookiecutter a great 
tool for keeping your workflow DRY.
Best static asset server: Whitenoise
For many years, serving your site’s static assets—images, 
JavaScript,  CSS—was  a  pain.  The  built-in  django.views.
static.serve view [12] is, as the documentation states, “not 
hardened for production use and should be used only as a 
development aid.” But serving media from a “real” web serv-
er, such as NGINX or out of a CDN, can be difficult to set up.
Whitenoise cleanly solves this problem. It’s as easy to set up 
as the development-only static server, and is hardened and 
optimized for production. Setup is simple:
1.   Make sure you’re using Django’s contrib.staticfiles app 
[13],  and  that  you’ve  correctly  set  `STATIC_ROOT`  in 
your settings file.
2.   Enable Whitenoise in your `wsgi.py` file:
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
application = get_wsgi_application()
application = DjangoWhiteNoise(application)
That’s really all it takes! For large applications, you’ll likely 
want  to use a dedicated media server and/or a CDN, but 
for most small- or medium-sized Django sites, Whitenoise is 
more than powerful enough.
For more information on Whitenoise, check out the docu-
mentation [14].
Best Tool for REST APIs: Django REST Framework
REST APIs are quickly becoming a standard feature of mod-
ern web applications. An API is really simply talking in JSON 
rather than HTML, and of course you can do this with just 
Django. You can craft  your own views that set  the proper 
content types and return data in JSON rather than templat-
ed HTML responses. This is exactly what many people did 
before API  frameworks  such  as  Django  Rest  Framework 
(a.k.a., DRF) [6] were released.
Building a  REST API  with  DRF  is similar  to working  with 
Django’s Class Based Views if you’re familiar with them, except 
these are specifically designed and targeted around an API use 
case. Quite a bit of code is involved in your average API setup, 
so instead of a code sample to get you excited, we’ll highlight 
some of DRF’s features that make your life easier:
•   Automatic browseable API, which makes development and 
manual testing a breeze. Click around in the DRF demo 
example [15]. You  can view API responses and support 
POST/PUT/DELETE type operations without having to do 
anything yourself.
Adding a link to a pdf in preview - insert, remove PDF links in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Free C# example code is offered for users to edit PDF document hyperlink (url), like inserting and deleting
clickable links in pdf; add links to pdf file
Adding a link to a pdf in preview - VB.NET PDF url edit library: insert, remove PDF links in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Help to Insert a Hyperlink to Specified PDF Document Page
active links in pdf; add url to pdf
10 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
W O R K I N G
......... .
... .. ... .
.. .. .. ....
to work, too. This is nice for anyone with custom authen -
tication needs.
django-allauth is easy to setup and has extensive docu-
mentation. The project is also well tested so you know that 
everything actually works.
way. If you’re interested, we wrote up a deeper dive into 
Wagtail [17].
Best Social Login Tool: django-allauth
django-allauth  [18]  is  a  reusable  Django  application  that 
solves your registration and authentication needs. Whether 
you need a local or social registration system, django-allauth 
has you covered.
The  project  supports  multiple  authentication  schemes, 
such as user name or email address. Once a user has signed 
up, multiple strategies are supported for account verification 
ranging from none to email verification. Multiple social and 
email accounts are also supported. Pluggable signup forms 
are also supports which allows asking additional questions 
during registration.
django-allauth  supports  more  than  20  authentica-
tion  providers,  including  Facebook, GitHub,  Google, 
and Twitter. If you have an account on a social website 
that’s not supported, then it’s most supported through a 
third-party add-on. The project supports writing custom 
backends, which allows custom authentication systems 
Links
[1]   Django: https://www.djangoproject.com/
[2]   How to write reusable apps: https://docs.djangoproject.
com/en/1.8/intro/reusable-apps/
[3]   PyPi packages: https://pypi.python.org/pypi?:ac-
tion=browse&c=523
[4]   Cookiecutter: https://github.com/audreyr/cookiecutter
[5]   Using WhiteNoise with any WSGI application:  
https://github.com/audreyr/cookiecutter
[6]   Django Rest Framework:  
http://www.django-rest-framework.org/
[7]   Wagtail: https://wagtail.io/
[8]   django-allauth:  
http://www.intenct.nl/projects/django-allauth/
[9]   Django Packages: https://www.djangopackages.com/
[10]  Grid for REST tools:  
https://www.djangopackages.com/grids/g/rest/
[11]   Lawrence-born Django celebrates 10th anniversary:  
http://www2.ljworld.com/news/2015/jul/09/happy-birth-
day-django/
[12]  django.views.static.serve view: https://docs.djangoproject.
com/en/1.8/ref/views/#django.views.static.serve
[13]  staticfiles app: https://docs.djangoproject.com/en/1.8/ref/
contrib/staticfiles/
[14]  Whitenoise documentation:  
http://whitenoise.evans.io/en/latest/index.html
[15]  DRF demo example: http://restframework.herokuapp.com/
[16]  Django REST Swagger: http://django-rest-swagger.
readthedocs.org/en/latest/index.html
[17]  Get ready for Wagtail, the best Django CMS yet:  
https://opensource.com/business/15/5/wagtail-cms
[18]  django-allauth documentation:  
http://django-allauth.readthedocs.org/en/latest/
Authors 
Jeff Triplett has worked at the Lawrence Journal-World in 
Lawrence, KS, where Django was invented. He now works 
at Revolution Systems (Revsys) as a developer and a con-
sultant. Jeff is  a  co-founder  of the  Django  Events Foun-
dation North America (DEFNA) and Conference Chair for 
DjangoCon US 2015 and 2016.
Jacob  Kaplan-Moss  is  a  core  contributor  to  Django  and 
works at Heroku as Director of Security.
Frank Wiles is President and Founder of Revolution Sys-
tems, a open source consultancy specializing in performant 
and large scale Python, Django, PostgreSQL, and related 
web infrastructure.  He is a frequent author and speak-
er on open source topics. Frank’s personal homepage is 
frankwiles.com.
C# PDF insert image Library: insert images into PDF in C#.net, ASP
viewer component supports inserting image to PDF in preview without adobe this technical problem, we provide this C#.NET PDF image adding control, XDoc
pdf link to specific page; pdf edit hyperlink
C# PDF Page Insert Library: insert pages into PDF file in C#.net
applications. Support adding and inserting one or multiple pages to existing PDF document. Forms. Ability to add PDF page number in preview. Offer
add hyperlink to pdf acrobat; adding a link to a pdf
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
11
W O R K I N G
..........
.........
..........
Facebook 
believes in the power of open source. 
When a community gathers to work 
on code, there are a host of benefits. Fresh eyes point out 
problems and we arrive at solutions faster. Together we tackle 
the challenges we’re facing, innovation accelerates, and the 
community stretches the limitations of existing technology.
Of course, a successful open source program depends on 
a strong, collaborative community. As the end of the year ap-
proaches, we wanted to reflect on Facebook’s top five open 
source  projects in 2015,  measured by  community activity 
and impact.
HipHop Virtual Machine (HHVM)
HHVM [1]  is our virtual machine and web server that we 
open sourced in 2013, building on the HPHPc compiler we 
released in 2010. In the past year alone, we’ve seen a 29% 
increase in the number of commits and a 30% increase in 
the number of forks.
HHVM  is  most  commonly  run  as  a  standalone  server, 
replacing both Apache and mod_php, designed to execute 
programs written in  Hack  and PHP.  It  uses  a just-in-time 
compilation  approach  to  achieve  superior  performance, 
while maintaining the flexibility that PHP developers are ac-
customed to. We’ve reached great milestones in 2015:
1.  We made new Async features [2] available by default, in-
cluding Async MySQL [3] and MCRouter [4] (memcached) 
support.
2.  In December we announced [5] support for all major PHP 
7 features at the same time that the language itself was 
released, and  we  released our  next generation of  user 
documentation.
3.  Box announced [6] HHVM as the exclusive engine that 
serves its PHP codebase.
4.  Etsy migrated to HHVM in April, which helped the compa-
ny address a variety of challenges associated with build-
ing mobile products at the scale needed.
React
Facebook open sourced React [7] in May 2013, and in the 
past year we’ve continued to see strong collaboration in the 
community, including a 75% increase in the number of com-
mits and a 198% increase in the number of forks. React is 
Facebook’s  JavaScript  library  for  building  user  interfaces, 
and is being used by many companies because it takes a 
different approach to building applications: React allows you 
to break the application down into separate components that 
are decoupled so that the various components can be main-
tained and iterated on independently.
This year we had two major releases, launched React Na-
tive,  announced  new  developer  tools  [8],  and  saw  more 
companies—including Netflix [9] and WordPress [10]—use 
React to build their products.
Presto
Presto [11] is our distributed SQL engine for running interac-
tive analytic queries against data sources of all sizes, rang-
ing from gigabytes to petabytes. We created Presto to help 
us analyze data faster because our data volume grew and 
the pace of our product cycle increased.
Since  making  Presto  available  to  others  in  November 
2013, we’ve seen a lot of growth, adoption, and support for 
it, including a 48% increase in the number of commits and a 
99% increase in the number of forks in the past year. Com-
panies like Airbnb [12], Dropbox, and Netflix [13] use Presto 
as their interactive querying engine.  We also  see growing 
adoption all over the world, including by Gree [14], a Jap-
anese social media game development company, and Chi-
nese e-commerce company JD.com .
Facebook’s top 
5 open source 
projects of 2015
BY 
CHRISTINE ABERNATHY
C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
clickable links in pdf from word; add url link to pdf
VB.NET PDF insert text library: insert text into PDF content in vb
Multifunctional Visual Studio .NET PDF SDK library supports adding text content to adobe PDF document in VB.NET Add text to PDF in preview without adobe
add links pdf document; add link to pdf file
12 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
W O R K I N G
......... .
... .. ... .
.. .. .. ....
Links
[1]   HipHop Virtual Machine (HHVM):  
https://github.com/facebook/hhvm
[2]   Async introduction:  
https://docs.hhvm.com/hack/async/introduction
[3]   Async MySQL extention:  
https://docs.hhvm.com/hack/async/extensions
[4]   MCRouter extention:  
https://docs.hhvm.com/hack/async/extensions#mcrouter
[5]   Improved user documentation announcement:  
http://hhvm.com/blog/ 10925/improved-user-documentation
[6]   Box’s HHVM migration:  
https://code.facebook.com/posts/1607907626123431/un-
der-the-hood-box-s-hhvm-migration/
[7]   React: https://github.com/facebook/react
[8]   New React Developer Tools:  
https://facebook.github.io/react/blog/2015/09/02/new-re-
act-developer-tools.html
[9]   Netflix Likes React:  
http://techblog.netflix.com/2015/01/netflix-likes-react.html
[10]  The Story Behind the New WordPress.com:  
https://developer.wordpress.com/2015/11/23/the-story-be-
hind-the-new-wordpress-com/
[11]   Presto: https://github.com/facebook/presto
[12]  Introducing Airpal: http://nerds.airbnb.com/airpal/
[13]  Using Presto in our Big Data Platform on AWS:  
http://techblog.netflix.com/2014/10/using-presto-in-our-big-
data-platform.html
[14]  A year of using Presto in production:  
http://labs.gree.jp/blog/2014/12/12838/
[15]  Open-Source Presto to the Enterprise:  
http://blogs.teradata.com/data-points/bring-
ing-open-source-presto-enterprise/ 
[16]  Presto on Amazon EMR:  
https://aws.amazon.com/elasticmapreduce/details/presto/
[17]  RocksDB: https://github.com/facebook/rocksdb
[18]  Percona: https://www.percona.com/
[19]  React Native:  
https://github.com/facebook/react-native
Author 
Christine Abernathy is a developer advocate on the open 
source team at Facebook. She’s held previous developer ad-
vocacy roles on both Parse and Facebook Platform. Prior to 
working at Facebook, Christine lead engineering at MShift, 
a mobile banking software provider delivering iOS apps and 
mobile browser-based products.
In 2015, Teradata announced [15] plans to join the Pres-
to community, with a focus on enhancing enterprise features 
and providing support. This emphasizes the level of trust the 
community has in Presto’s ability to be an integral part of the 
data infrastructure stack. Additionally, Amazon Web Services 
(AWS) supports Presto as a first-class offering in its EMR ser-
vice [16], with many production users—including Nasdaq and 
leading business intelligence tool vendor MicroStrategy—sup-
porting Presto in its flagship MicroStrategy 10 product.
RocksDB
We open sourced RocksDB [17], an embeddable, persistent 
key-value  store  for  fast storage, in  November  2013. Aside 
from the impressive 52% increase in the number of commits 
and the 57% increase in the number of forks for this project in 
the past year, the reason this particular project has resonated 
so well in the open source community is that the embedded 
database helps provide a way to work around slow query re-
sponse time due to network latency, and it is flexible enough 
to be customized for various emerging hardware trends.
RocksDB powers critical services at companies such as 
LinkedIn and Yahoo, and a key focus for us in 2015 was to 
bring the RocksDB storage engine to general-purpose da-
tabases, starting with MongoDB. Similar to Teradata’s com-
mercial support for Presto, another milestone for RocksDB in 
2015 was the announcement of enterprise-level support by 
Percona’s [18] data performance experts.
React Native
React Native [19], one of our newest open source projects, 
was made available in March 2015. React Native lets engi-
neers use  the same React methodology and tools  to rap-
idly build native applications for mobile devices. In addition 
to developing these tools internally, Facebook collaborates 
with the open source community to improve the experience 
for developers worldwide. In its first year, React Native has 
become the second  most popular  Facebook  open  source 
project, with more than 23,000 followers in GitHub. It was 
used internally to build the Facebook Ads app for both iOS 
and Android, resulting in an 85% code reuse by developers 
whose core competency was JavaScript. The paradigm shift 
in mobile development that React Native brings to the table 
makes this one a key highlight of 2015.
Overall, we still have a lot of work to do, but we’re proud 
of what we’ve been able to accomplish as a community. We 
want to thank everyone who dedicated time to to these proj-
ects and helped us make 2015 a great year!
C# Create PDF Library SDK to convert PDF from other file formats
Load PDF from stream programmatically. Preview PDF documents without other plug-ins. Besides, using this PDF document metadata adding control, you can
pdf link; add links to pdf online
C# PowerPoint - How to Process PowerPoint
C# methods to add, insert or delete any specific PowerPoint slide, adding & burning & methods and sample codes of respective function, you may link the quick
accessible links in pdf; pdf link open in new window
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
13
W O R K I N G
..........
.........
..........
Looking back 
at  2015,  there  have been 
many  projects  created  by 
the Docker  community that have  advanced the developer 
experience. Although choosing among all the great contri-
butions is hard, here are 10 “cool tools” that you should be 
using if you are looking for ways to expand your knowledge 
and use of Docker.
1. Container Migration Tool (CMT)
CMT [1] was a winning entry [2] at the Docker Global Hack 
Day #3. The  Container Migration  team [3]  drew  inspiration 
from a DockerCon talk in which Michael Crosby (@crosby-
michael) and Arnaud Porterie (@icecrime) migrated a Quake 
3 container around the world, demonstrating container migra-
tion while maintaining a TCP connection. The CMT  project 
created an external command-line tool that can be either used 
with Docker or runC [4] to help “live migrate” containers be-
tween different hosts by performing pre-migration validations 
and allowing it to auto-discov-
er suitable target hosts.
2. Dockercraft
We  had  to  add  in  a  fun 
one—Dockercraft [5]! Lots of 
Docker users run custom Mi-
necraft [6] servers in contain-
ers. But Dockercraft is a Mi-
necraft client to visualize and 
manage  Docker  containers. 
With the flick of a  switch, a 
container turns on or off. And 
with the press of a button, you can destroy one. Dockercraft 
is a fun project—that is surprisingly addictive—from Docker 
engineers Adrien Duermael and Gaetan de Villele.
3. Docker Label Inspector
The Docker Label Inspector [7] tool helps ensure that devel-
opers are providing Docker images with the metadata con-
tainers required when distributed across the Internet. Specif-
ically, this tool enables developers to use Docker labels [8] to 
create metadata within the domain of container technology, 
to check labels against official label schema and to validate 
against provided JSON schema.
4. Dvol
Dvol  [9]  enables  version  control  for  your  development 
databases  in  Docker.  Dvol  lets  you  commit,  reset,  and 
branch the containerized databases running on your lap-
top, so you can easily save a particular state and come 
back to it later. Dvol can also integrate with Docker Com-
pose to spin up reproducible microservices environments 
on your laptop.
5. IPVS Daemon GORB
Presented at DockerCon EU, IP Virtual Server (IPVS) for 
Docker  containers  enables  production-level  load  balanc-
ing and request routing using 
open source IPVS, which has 
been  part  of  the  Linux  ker-
nel for more than a  decade. 
It  supports TCP, SCTP,  and 
UDP  and  can  achieve  fast 
speeds,  often  within  five 
percent  of  direct  connection 
speeds.  Other  features  in-
clude  NAT,  tunneling,  and 
direct routing. To make IPVS 
easier to use, the Go Routing 
and  Balancing (GORB)  dae-
mon [10] was created as a REST API inside a Docker con-
tainer to provide IPVS routing for Docker.
6. Libnetwork
Libnetwork [11] combines networking code from both libcon-
tainer and Docker Engine to create a multi-platform library 
for networking containers. The goal of libnetwork is to deliver 
10 cool tools 
from the Docker 
community
BY 
MANO MARKS
VB.NET PDF insert image library: insert images into PDF in vb.net
in preview without adobe PDF control installed. Access to freeware download and online VB.NET class source code. This smart and mature PDF image adding component
add links pdf document; add hyperlink to pdf in preview
VB.NET PDF copy, paste image library: copy, paste, cut PDF images
paste and cut PDF image while preview without adobe Free Visual Studio .NET PDF library, easy to Besides image extracting, adding, and removing, RasterEdge XDoc
add links to pdf document; convert a word document to pdf with hyperlinks
14 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
W O R K I N G
......... .
... .. ... .
.. .. .. ....
10. Wagl, DNS service discovery for Swarm
Wagl [20] is a DNS server that allows microservices running 
as containers on a distributed Docker Swarm [16] cluster to 
find and talk to each other. Wagl is minimalist and works as a 
drop-in container in your cluster to provide DNS-based ser-
vice discovery and simple load balancing by rotating a list of 
IP addresses in DNS records.
Links
[1]   Container migration tool:  
https://github.com/marcosnils/cmt
[2]   Container migration tool (CMT) (YouTube video):  
https://youtu.be/pwf0-_cs6U4
[3]   Participating in Docker global hackday #3 (blog post): 
http://blog.mantika.io/GHD/
[4]   runC: https://runc.io/
[5]   Dockercraft: https://github.com/docker/dockercraft
[6]   Minecraft: https://minecraft.net/
[7]   Docker Label Inspector:  
https://github.com/garethr/docker-label-inspector
[8]   Docker labels:  
https://docs.docker.com/engine/userguide/labels-cus-
tom-metadata/
[9]   dvol: https://github.com/ClusterHQ/dvol 
[10]  Go Routing and Balancing (GORB):  
https://github.com/kobolog/gorb
[11]   libnetwork: https://github.com/docker/libnetwork
[12]  DockerCon 2015 Videos: Day 2 Closing Keynote – What’s 
Next for Docker?: http://blog.docker.com/2015/07/docker-
con-2015-videos-day-2-closing-keynote/
[13]  Raspberry Pi Challenge:  
https://github.com/hypriot/rpi-kernel
[14]  Zoe: https://github.com/DistributedSystemsGroup/
zoe-docker-images
[15]  Apache Spark: http://spark.apache.org/
[16]  Docker Swarm: https://docs.docker.com/swarm/
[17]  Unikernels, meet Docker!:  
http://unikernel.org/blog/2015/unikernels-meet-docker/
[18]  Contain Your Unikernels!:  
http://unikernel.org/blog/2015/contain-your-unikernels/
[19]  Rump Kernels: http://rumpkernel.org/
[20]  wagl: https://github.com/ahmetalpbalkan/wagl
Author
Mano Marks is Director of Developer Relations at Docker, Inc.
a robust Container Network Model that provides a consistent 
programming  interface and  the  required  network  abstrac-
tions for applications. There are many networking solutions 
available to suit a broad range of use-cases. Libnetwork uses 
a driver/plugin model to support all of these solutions, while 
abstracting the complexity of the driver implementations by 
exposing a simple and consistent Network Model to users.
7. The Raspberry Pi Challenge
In the DockerCon closing keynote [12], Dieter Reuter from 
Hypriot presented a  demo running 500 Docker  containers 
on a Raspberry Pi 2 device. Convinced that this number of 
containers could be at least doubled, Dieter then challenged 
[13] the Docker community to beat his personal record. As 
part of his project, Dieter Reuter demonstrated how to get 
started with Docker on Raspberry Pi and how to scale the 
number number  of web servers running in  containers that 
could reside on a single Raspberry Pi 2. The current record 
is more than 2,500 web servers running in containers on a 
single Raspberry Pi 2.
8. Scaling Spark with Zoe analytics
The  Zoe  open  source  user-facing  tool  [14]  ties  together 
Spark [15], a data-intensive framework for big data computa-
tion, and Docker Swarm [16]. Zoe can execute long-running 
Spark jobs, but also Scala or iPython interactive notebooks 
and streaming applications, covering the full Spark develop-
ment cycle. When a computation is finished, resources are 
automatically freed and available for other uses, because all 
processes are run in Docker containers. This tooling can en-
able application scheduling on top of Swarm and optimized 
container placement.
9. Unikernel demo source code
First unveiled as a cool hack at DockerCon EU (Unikernels, 
meet Docker! [17]), this demo [18] showed how unikernels can 
be treated as any other container. In this demo, Docker was 
used to build a unikernel microservice and then followed up 
by deploying a real web application with database, webserver, 
and PHP code, all running as distinct unikernel microservices 
built using Rump Kernels [19]. Docker managed the uniker-
nels just like Linux containers, but without needing to deploy a 
traditional operating system. Apart from the MySQL, NGINX, 
and PHP with Nibbleblog unikernels shown in the demo, this 
repository also contains some examples of how to get started.
C# Word - Process Word Document in C#
Capable of adding and burning image on specific Word document page in C# class. You may click the link to go to each Word document processing tutorial page to
change link in pdf file; add link to pdf acrobat
C# Excel - Excel Page Processing Overview
Support adding image of various formats (such as BMP, PNG & TIFF) to an Excel Click the link to specific C#.NET guide page and you will find detailed API(s
adding hyperlinks to pdf files; clickable links in pdf from word
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
15
W O R K I N G
..........
.........
..........
Drupal 
[1], one of the 
largest  open 
source projects in the  world, 
is a content management sys-
tem  and  application  frame-
work  that  powers  millions  of 
websites,  web  services,  and 
mobile applications. Individu-
als and organizations in every 
sector use Drupal  for every-
thing from simple blogs and micro-sites, to complex intranets 
and private internal applications, to some of the largest sites 
on the web, including several top 100 properties.
More  than  3,000  people  contribute  to  the  core  Drupal 
codebase that provides a base level of functionality with a 
modular architecture. Over 10,000 developers contribute and 
maintain more than 25,000 contributed open  source mod-
ules that modify and extend the core capabilities, changing 
behavior, adding new features, and integrating Drupal with 
other systems. Users can add their own modules, as well as 
third-party PHP libraries, and leverage a lot of existing func-
tionality, so they can focus on their unique needs, branding 
and design, and business logic to get up and running quickly.
In addition to its highly extensible codebase, Drupal lets us-
ers who are not programmers manage and control a lot of 
how the platform and their site(s) run and operate through 
point and click end-user interfaces. This enables more peo-
ple to contribute to an organization’s online presence, and 
site updates happen significantly faster because Drupal us-
ers aren’t reliant on expensive and limited development re-
sources, or updating code.
The  newest major version of Drupal,  version 8, came 
out  in  November 2015,  so let’s  look  at a  few of my  fa-
vorite contributed modules. Whether you’re running one 
Drupal website, or thousands, here are five modules that 
will empower your entire team and drive the success of 
your application:
Views
Views  [2],  one  of  the  most 
popular  contributed  Drupal 
modules,  enables site  build-
ers, content editors, and oth-
er non technical users to sur-
face  information  from  within 
Drupal—or  other  systems 
through Drupal—and display 
and visualize that information 
through a point and click interface. With Views you can cre-
ate a new page that lists all recent updates to your site, a 
sidebar block that shows the five most recent comments 
on your website, a slideshow of your most popular images 
of the week, and much more. Views can be dynamic, end 
users can have access to control resorting or filtering the 
information (by date or other parameters), and  privileged 
users can be granted the ability to perform bulk actions on 
Views. For example, on a site with moderated comments, 
admins can create a page where users can quickly select 
all the comments they want to approve or reject, and do so 
in bulk to save a lot of time. As of Drupal 8, Views is now a 
part of Drupal Core and has expanded capabilities so users 
can build custom admin pages, export any View as JSON 
or XML, and build most of a site—or the back-end for a mo-
bile application—without writing a line of code.
BigPipe
Site speed is a critical goal for all websites and companies. 
The BigPipe [3] concept was created by Facebook and was 
a key component in doubling the speed of their site page 
load times. BigPipe  is  a  contributed module  for Drupal 8 
that leverages Facebook’s methodology and delivers web 
pages from servers to clients in a way that allows dramat-
ically improved perceived load time as well as the actual 
page load time of sites. With BigPipe the server will send 
an initial response or page with the cacheable components 
5 handy 
Drupal modules
BY 
MICHAEL E. MEYERS
16 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
W O R K I N G
......... .
... .. ... .
.. .. .. ....
Lightning
Lightning [6] isn’t actually a module; it’s a collection of Drupal 
modules provided as a distribution. Drupal distributions are 
a way to package up and distribute a Drupal site (modules, 
themes, configurations, automated QA tests, content, etc.). 
Launching a new website can be done quickly by deploying 
a distribution for a specific use case, and then adding any 
customizations required. The Lightning distribution is meant 
to be a framework that you build on top of—it provides you 
with pre-configured popular modules that work well togeth-
er for common use  cases, with the  ability to  disable what 
you don’t need, and launch a new site on Drupal using best 
practices for the most common needs. Lightning helps new 
users advance through the learning curve much faster, and 
enables all users to rapidly deploy new sites.
What  are your favorite Drupal  modules? From  the ob-
scure problem  solvers, to the ones you simply can’t  live 
without, share your story and send Drupal article proposals 
to open@opensource.com .
Disclosure: In partnership with Acquia, OpenSource.com 
and Red Hat are Drupal users and open source contributors 
to the Drupal project.
Links
[1]  Drupal: https://www.drupal.org/
[2]  Views: https://www.drupal.org/project/views
[3]  BigPipe: https://www.drupal.org/project/big_pipe
[4]  Rules: https://www.drupal.org/project/rules
[5]  Features: https://www.drupal.org/project/features
[6]  Lightning: https://www.drupal.org/project/lightning
Author
Michael E. Meyers is the VP of Developer Relations at Acquia. 
He’s been driving innovation in the Drupal community for more 
than a decade. Prior to joining Acquia, Michael was the CTO 
of Examiner.com, a top 50 site, and the leading contributor to 
Drupal 7. Follow Michael on Twitter @MichaelEMeyers.
and place holders for any dynamic or uncacheable parts, 
and then stream in the dynamic/personalized pieces to re-
place the placeholders.
Rules
Rules [4] is a contributed module that enables site users to 
create Event, Condition, Action (ECA) rules. Site builders 
can create and modify fairly complex business logic without 
writing any code, and developers have tremendous flexibil-
ity to create complex rules, and to extend and modify the 
behavior of the Rules module itself. For example, when a 
new comment is posted to a page (an event), a site builder 
could create a rule that sends an email notifying the author 
of the page (the action) of the new comment so they can re-
view and respond quickly. Optionally, users can add a con-
dition to send the email only if the comment author is not 
the author of the page (so the page author doesn’t get an 
email every time they reply to a comment). Many rules can 
also be triggered manually via the click of a button (e.g., by 
a site admin) or, via the Rules API, actions can be set to run 
immediately or scheduled.
Features
Most organizations write code and make changes to  their 
web sites in one or more development environments, then 
integrate and test these changes in QA or staging environ-
ments, and finally release approved changes to their  pro-
duction or live environment. Furthermore, few organizations 
have a single website; nowadays even individuals run many 
websites,  and  large  organizations  can  have  more  than 
10,000 sites. Features [5] is a contributed module that en-
ables you to import and export configuration and or code as 
a package or collection that  you can  move across  Drupal 
sites. For example, site builders  could create a rule using 
the Rules module and then using Features, export the rule 
so that it can be imported into the many other environments 
and web sites you have.
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
17
W O R K I N G
..........
.........
..........
Software 
has been eating the world for far lon-
ger than four years [1]. But develop-
ers think of software a little differently. Insofar as we’re solv-
ing real-world problems [2], we’re not thinking mainly of the 
metal [3]. And as the problems get bigger and the solutions 
more  complex,  pragmatic  (and not-too-leaky) abstractions 
become more important than ever.
The upshot: From a productivity-oriented developer’s point 
of view, frameworks are eating the world. But which ones are 
eating how much of which parts of the world?
Given  the  insane  variety of  superb  open  source frame-
works available, I picked our top 5 open source frameworks 
of 2015 not from a single ranked order, but from all levels 
of the stack. (For front-ends, I focused on the web and, still 
more narrowly, true client-side frameworks—simply because 
browsers and mobile devices are growing increasingly ca-
pable, and because SPAs [single page applications] and the 
like avoid sending data over the wire unnecessarily.)
1. Presentation: Bootstrap
Let’s  start  at the  top of  the stack: the  presentation layer, 
the stuff developers and us folks both touch. Here the clear 
winner remains Bootstrap [4]. The forecast looks outstand-
ing,  leaving  old alternatives,  such  as  Foundation  [5],  and 
new kids, such as Material Design Lite [6], in the dust [7]. 
Bootstrap dominates usage trends on BuiltWith [8], and on 
GitHub  remains  easily  the  most  starred  and  most  forked 
framework of all time.
And Bootstrap is still under active development. In Au-
gust 2015, Bootstrap celebrated its  fourth  birthday  with 
version 4 alpha release [9], a major simplification and ex-
pansion of  an  already  powerful  feature  set. The gist  of 
the update: Everything got more programmatic. Bootstrap 
moved from Less to Sass, centralized all HTML resets in a 
single module, tossed a load of style customizations direct-
ly into Sass variables, and ES6-ified all JavaScript plugins. 
The team even launched an official Bootrap Themes mar-
ketplace [10], complementing an already massive theme 
ecosystem.
2. Web MVC: AngularJS
As the web platform continues to mature, developers en-
joy increasingly well-crafted abstraction-distance from the 
still-markup-colored DOM. The work begun by XMLHttpRe-
quest reaches its zenith in modern Single-Page Applica-
tions (SPAs), and the most popular SPA framework by far 
is AngularJS [11].
What’s so special about AngularJS? In a word: direc-
tives [12]. Just a little ng- can bring a (static, markup) tag 
to (dynamic, JavaScript-executing) life. (Dependency in-
jection is pretty neat, too, and like many of Angular’s fea-
tures aims to simplify maintenance and abstract more fully 
from the DOM.)
The basic principle is just the perfectly reasonable sepa-
ration of declarative view from imperative domain logic, fa-
miliar to anyone who has scanned a POM file or wrestled 
with an ORM (and hey, some of us used to enjoy XAML, too). 
This is thrilling, liberating, and a little weird all at once—giving 
HTML power it kinda really shouldn’t have.
Top 5 open source 
frameworks every 
application developer 
should know
BY 
JOHN ESPOSITO
18 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
W O R K I N G
......... .
... .. ... .
.. .. .. ....
Perhaps a bit sadly, the most aggressive concept behind 
AngularJS—two-way data binding, which effortlessly keeps 
views and models synced—is going away in Angular2 [13], 
which is “very close” to beta release  [14]. So a bit of the 
magic will disappear, but so will some massive performance 
headaches at scale  and some  hair-pullingly tough  debug-
ging (just think about two-way for a moment and feel the cliff 
drop out from under your feet)—a trade off that grows more 
valuable as page size and SPA complexity balloon.
3. Enterprise Java: Spring Boot
What’s so great about Java? Fast, mature, comprehensive 
class  library,  gigantic  ecosystem,  write-once-run-every-
where, active community—but not painless bootstrapping. 
Even hard-core Java developers resort to Ruby or Python 
to write quick one-off programs (admit it). And yet Java con-
tinues to dominate the enterprise for those other reasons 
listed above.
Enter Spring Boot, the boilerplate evaporator—a framework 
that lets you fit a working Spring application in a single tweet:
No  unpleasant  XML  config,  no  sloppy  generated  code. 
How is this possible? Simple: Spring Boot has some pretty 
strong opinions. Read that tweet above and suddenly it all 
makes sense! When you realize that  the framework  auto-
matically spins up an embedded servlet container to han-
dle incoming requests on port 8080—a decision you didn’t 
explicitly configure it to make, but a conventional (and fire-
wall-friendly) call.
How hot is Spring Boot? It’s by far the most forked [15] and 
most downloaded Spring project (not counting the master 
framework itself). And in 2015, for the first  time,  Google 
logged  more  searches  for  spring  boot  than  for  spring 
framework [16].
4. Data processing: Apache Spark
Once  upon  a  time  (in  2004),  Google  developed  a  pro-
gramming model (MapReduce [17]) that generalized many 
distributed batch processing job  structures,  then wrote a 
famous paper [18] about it; then some Yahoo folks wrote 
a Java framework  (Hadoop [19]) that implemented Map-
Reduce and a distributed file system [20] to simplify data 
access for MapReduce tasks.
For nearly  a  decade  Hadoop dominated  the  “Big  Data” 
framework ecosystem, despite the limited problem space ad-
dressed (optimally) batch processing—partly because busi-
ness and scientific users were accustomed to batch analysis 
of large datasets anyway. But not all large datasets are op-
timally processed  in batches.  In particular, streaming data 
(such as sensor inputs) and data analyzed iteratively (like 
machine learning algorithms love to do) don’t like batch pro-
cessing. So dozens of new Big Data frameworks were born, 
new  programming  models,  application  architectures  [21], 
and data stores [22] gained traction (including a new cluster 
management system [23], decoupled from MapReduce, for 
Hadoop itself).
But of all these new frameworks, Apache Spark [24] (de-
veloped  at  Berkeley’s  AMPLab)  is  the  easy-choice  2015 
standout. Surveys (DZone report [25]; Databricks infograph-
ic [26]; Typesafe report [27])  show  huge  growth  in  Spark 
adoption. GitHub commits have been growing linearly since 
2013, and Google Trends showsexponential (yes, literally) 
growth in searches over 2015 [28].
So Spark is popular. But what does it do? Well, very fast 
batch processing; but this depends on one killer feature that 
allows for vastly more programming models than Hadoop. 
Spark makes data available in Resilient Distributed Datasets 
(RDDs) that remain in memory on multiple nodes after pro-
cessing, but without replication (by storing  info on  how to 
recreate; compare to CQRS [29],pragmaticism [30], Kolm-
ogorov complexity [31]). This (obviously) lets algorithms to 
iterate without reloading from a (s)lower rung in the distrib-
uted memory hierarchy. And this means that batch process-
ing need no longer suffer the indignity of the “long stroke” 
of  Nathan  Marz’s  lambda  architecture.  RDDs  even  allow 
Spark to simulate true (push) stream processing by running 
small batch jobs fast enough to keep latency within “effective 
streaming” bounds for many applications.
5. Delivery: Docker
Okay,  so Docker  [33]  isn’t  a “framework”  in  the sense  of 
“code library, generously defined, that imposes a specific set 
of conventions to solve large and recurrent problem sets”. 
But if frameworks are just things that let you write code at a 
more suitable level of abstraction, then Docker is a frame-
work extraordinaire. (Let’s call it an exoskeletal framework, 
just to mix metaphors confusingly.) And it would feel funny to 
name “top 2015 anythings for developers” without including 
Docker on the list.
Why is Docker great? First, why are containers (earlier: 
FreeBSD  Jail,  Solaris Zones,  OpenVZ,  LXC)  great? Sim-
ple: isolation without a full operating system; or, safety and 
convenience of a VM with far less overhead. But isolation 
Documents you may be interested
Documents you may be interested