text:
Kamil Wojciech Szarek
BĂĐŚĞůŽƌ͛Ɛ TŚĞƐŝƐ
May 2011
Degree Programme in Information Technology
Software Engineering
SZAREK Kamil Wojciech
Type of publication
BĂĐŚĞůŽƌDzƐ TŚĞƐŝƐ
( ) Until
Permission for web
Degree Programme
Information Technology
SALMIKANGAS, Esa
Assigned by
Upload Image Processing Oy
Today it is very important that the applications are platform independent and
sufficient. It was and still is very common that whenever some operations take part on
server side they are created by a script language, like PHP, bash, or Ruby. This is a very
convenient approach because a code can be easy modified, and the whole application
does not require recompilation after that. What is more the results are immediately
visible. Sometimes, however, when such an application has to perform heavy
operations, those languages are not sufficient. At some point it might be very wise to
consider the ĐŽĚĞ͛Ɛ ŵŝŐƌĂƚŝŽŶ ƚŽ ƐŽŵe other environment or language that can be run
efficiently on almost every platform.
This BĂĐŚĞůŽƌ͛Ɛ ƚhesis shows the whole process of such a migration. The legacy PHP
script is refactored from Linux environment to C# language and cross-platform Mono
environment. The author presents all most important modifications and improvements,
and also focuses on the encountered problems and further changes that can be done in
the future.
PHP, C#, .NET, mono project, image processing, FTP client, mail client
2.1 Overview of the technologies related to the script .......................................... 8
2.2 .NET and Mono ............................................................................................. 10
2.3 MySQL and its .NET binding........................................................................ 12
2.4 Logger ............................................................................................................ 14
2.5 FTP client ...................................................................................................... 15
2.6 XML handling ............................................................................................... 16
2.7 Control version system .................................................................................. 17
3.1 Overview ....................................................................................................... 18
3.2 Implementation .............................................................................................. 20
3.4 MySQL .......................................................................................................... 24
3.5 File management............................................................................................ 25
3.6 XML handling ............................................................................................... 26
3.7 Image processing ........................................................................................... 28
3.8 Mail client ...................................................................................................... 32
3.9 Logger ............................................................................................................ 34
3.10 FTP client ...................................................................................................... 36
3.11 Diacritic characters ........................................................................................ 38
3.12 iSync Runner ................................................................................................. 40
4.1 Challenges ..................................................................................................... 42
4.2 Improvements ................................................................................................ 44
4.3 Summary ........................................................................................................ 45
FIGURE 1. Technologies and techniques related to the script ...................................... 8
FIGURE 2. Overview routine of the application ........................................................... 9
FIGURE 3. .NET Framework evolution (Nash, Accelerated C# 2010, 2010) ............ 11
FIGURE 4. Logical model of a singleton pattern ........................................................ 15
FIGURE 5. Singleton pattern physical model from design patterns (Gamma, Helm,
Johnson, & Vlissides, 1994) ......................................................................................... 15
FIGURE 6. Data flow in the script ............................................................................... 18
FIGURE 7. Data flow in main routine ......................................................................... 19
FIGURE 8. View of XML configuration file fields ..................................................... 21
FIGURE 9. Manager class ........................................................................................... 22
FIGURE 10. Item class which represents fetched data from database. ....................... 23
FIGURE 11. Data base handler class ........................................................................... 24
FIGURE 12. File manager class ................................................................................... 25
FIGURE 13. UI of test application using FileManager class ...................................... 26
FIGURE 14. XML file structure .................................................................................. 27
FIGURE 15. UI of the test application which presents and process an XML file. It
wraps XMLCoordinatesReader class ........................................................................... 27
FIGURE 16. XML handler class. ................................................................................. 28
FIGURE 17. Image handler class ................................................................................. 29
FIGURE 18. UI of the test application using the ImageHandler class ........................ 30
FIGURE 19. Console testing application run under Windows OS .............................. 31
FIGURE 20. Console testing application run under Linux OS .................................... 32
FIGURE 21. Mailer class ............................................................................................. 33
FIGURE 22. Simple UI of testing application which sends an email .......................... 34
FIGURE 23. Logger class ............................................................................................ 35
FIGURE 24. FTP client class ....................................................................................... 37
FIGURE 25. UI of test application using FTPClient class .......................................... 38
FIGURE 26. Example of changing diacritics characters ............................................. 39
FIGURE 27. Application to manage iSync app ........................................................... 41
FIGURE 28. iSync Runner options in the notification area ......................................... 41
API Application Programming Interface
APS Active Server Pages
ASCII American Standard Code for Information Interchange
CLI Common Intermediate Language
CLR Common Language Runtime
COM+ Component Object Model
CPU Central Processing Unit
FTP File Transfer Protocol
GPL GNU General Public License
GUI Graphical User Interface
JIT Just In Time
LGLP GNU Lesser General Public License
MSIL Microsoft Intermediate Language
OS Operating System
PID Process Identifier
SDK Software Development Kit
SMS Short Message Service
SOAP Simple Object Access Protocol
UDDI Universal Description, Discovery and Integration
UI User Interface
WSDL Web Services Description Language
XML Extensible Markup Language
iSync – name of the PHP legacy script which is the main subject in the thesis.
Application with the same name is created in .NET environment.
For many years new businesses and companies have grown and the infrastructure has
grown according to the available supplies and existing demands on the market. Within
all these years with the very fast electronics development, the same has happened with
the software used by different companies. Nowadays it is very important to follow up
new technologies in the IT sector. Buying and using the latest hardware, however, is
very often not enough. What makes work easier is also the software, which within the
years may become inefficient or just too old and that is why it can be incompatible
with the modern hardware. In that case there are few solutions:
1. buying new software if there is an available one which meets all expectations
and needs of potential user
2. creating a completely new software
3. recreating an existing software, for example by implementing it in a new
Many companies, which own their own software do not want to buy or create a new
one because it can result in using the other's company's licenses, which they do not
want to do. In this case, the best solution is to adapt the old program to the current
needs and this is what Upload Image Processing company decided to do.
The author's main task during a practical training was convert PHP script running on
the Linux environment to the C# cross-platform Mono environment. The heart of the
original script was a very long procedure that had to be split and re implemented in the
new environment. The base routine used many technologies like: file managing, file
transfer protocol, MySQL database connection, email client for sending notifications,
and image processing. The large variety of technologies described above caused that
the whole project work was divided into several stages according to the used
technologies to keep the code clear and to easily manage the process of
At the beginning the author had to familiarize himself with the whole old code, which
was kept in four files to separate at least some parts of the code from each other.
When the first stage was finished and the author was briefly introduced into the whole
script, integration had to be started. However, it was impossible and unwise just to
rewrite the whole PHP code to C# line by line; that is why that solution was not even
taken into consideration. Instead of that everything had to be done precisely, carefully
and almost from scratch based only on the functionality which PHP legacy code
provided. First of all the knowledge about certain issue related to the project had to be
collected. A very important phase was also creating documentation of the whole code
because the original source code was not very well commented. The aim was to create
software that would be compatible with the current hardware and would meet the
client's expectations. What is equally important in the future is that then code would
be much easier to maintain and change by someone else. To reach this goal detailed
documentation was needed as well as many descriptions and explanations how and
why thing was done in that particular way.
This Bachelor's Thesis shows the whole process of software migration between two
different IT environments. Its main goal is to show how the functionalities should be
properly separated and encapsulated into the components. The other very important
subject taken up into this document is very clear explanation of how all needed
information was gathered and how it was implemented.
The first part of this thesis is theoretical and is contains a short description of a routine
which was used to perform the script. It also introduces briefly some technologies that
are used by the original script, which are described more detailed later in each of the
separate subsections. It aims at familiarizing the reader with the basic technologies,
which allows further understanding of how the script works and how it is modified.
In the third chapter, the author discusses the whole process of implementation with
usage of the new application's structures of classes for better illustration of the task he
has accomplished. Some of the classes were used in the simple test applications with
graphical interface, which is also presented in this part of the thesis.
The task of re-implementation can seem line straight forward, only it requires a great
deal of time and a workload, and most often there are many difficulties that each
developer needs to face in order to create a fully working application. That is why
chapter 4 presents exemplary problems that the author experienced when a script was
re-implemented and the ways he resolved them.
2.1 Overview of the technologies related to the script
The figure below shows most of the technologies, techniques and a system related to
the iSync script and they are described more detailed in the further chapters. What can
be noticed here is that iSync relies mostly on the open source free solutions.
FIGURE 1. Technologies and techniques related to the script
The script is run under Linux operating system which is at the same time a web server.
The FIGURE 2 below illustrates a routine of the script.
FTP client
Mail client
XML reader
FIGURE 2. Overview routine of the application
At the beginning MySQL database is used as a source of the information and a data
needed to further process. Whenever there are ready entries to work with them in the
database, the script fetches data from the FTP server or from a locally mounted
storage and then processes them. In most cases the script has to work with the images;
usually at least two of them, from which the first one is used as a background image
and the second one as a tagging image, which is placed on the background image
according to the coordinates stored in the XML file. After that the script creates a PHP
file containing proper data and later it is used by a web server. When the whole
procedure is finished, all required files are uploaded to the location specified in a
configuration file. Afterwards iSync sends an email with a notification to the email
address fetched from a database. At that point if there are no problems one taken job is
finished and the proper field in a database is changed.
Within all these activities the script writes previously defined information and errors'
descriptions to a log file. In case of any failure or obstacle this information helps the
developer or administrator of the server to solve a problem much quicker instead of
starting investigating what has gone wrong and when it has happened.
2.2 .NET and Mono
.NET initiative was announced by Microsoft in July 2000. .NET platform was a new
development framework with a new programming interface to the Windows services
and APIs, integrating a number of technologies that emerged from Microsoft during
late 90s. .NET, however, was not distributed alone but there were following elements
incorporated with it:
- COM+ component service
- ASP web development framework
- commitment to XML
- object – oriented design
- support for new web services protocol as SOAP, WSDL and UDDI.
The most important component of the .NET framework is CLR. At a high level CLR
activates objects, performs security, checks on the objects, lays them out in a memory,
executes them and garbage-collects them. Conceptually, the CLR is a runtime
infrastructure that abstracts underlying platform differences. CLR supports all
languages that can be represented in the Common Intermediate Language. (Thai &
Lam, 2002; Albabari & Albabari, 2010)
.NET, however, is also a collection of tools, utilities and components that aid
developers in building a console, GUI, and web applications, abstracting much of the
lower level detail involved in building high-performance software. In the sense of
environment the most important components of .NET are:
The Microsoft .NET Framework, a collection of core classes and libraries to
perform common tasks
The C# programming language, an object-oriented compiled language
The Common Language Runtime (CLR), an MSIL interpreter and just-in-time
runtime that converts MSIL to native machine code
ADO.NET, a data access library.
(Liberty & Xie, 2008)
FIGURE 3 shows the evolution of the .NET Framework from version 2.0 to version
FIGURE 3. .NET Framework evolution (Nash, Accelerated C# 2010, 2010)
The application refactoring to a .NET environment, in case of this thesis, is strongly
related to a Linux environment. C# as a language does not have any support on the
4.0 (2010)
Parallel LINQ
Task Parallel
3.5 (2007)
Entity Framework
3.0 (2006)
Card Space
Base Class Library
Common Language
other operating systems than Windows. This is a very crucial issue, although there is
a way to use C# compiled code on the Linux OS. This is provided by Mono, which is
an open-source initiative that brings .NET technologies to operating systems other
than Microsoft Windows. (Mamone, 2006)
Mono provides the necessary software to develop and run .NET client and server
applications on Linux, Solaris, Mac OS X, Windows, and UNIX. The project's
objective is to completely port the Microsoft .NET development platform to UNIX,
thereby allowing UNIX developers to build and deploy truly cross-platform .NET
applications regardless of the operating system and machine architecture. The project,
although sponsored by Novell, is open-source. The current version of Mono available
during application refactoring - Mono 2.4 - supports most of the common
functionality offered within the .NET environment. Mono contains the core
development libraries, as well as the development and deployment tools. At the time
of writing, Mono API coverage is limited to the. NET 3.0 API, with spotty support for
the version 3.5.
Mono contains the following components:
A Common Language Infrastructure (CLI) virtual machine that contains a
class loader, a just-in-time compiler, and a garbage collector
A class library that can work with any language which works on the CLR.
Both .NET compatible class libraries as well as Mono provided class libraries
are included
A compiler for the C# language. Future work on other compilers that target the
Common Language Runtime is planned.
(Swaminathan, 2007; Schonig & Geschwinde, 2004)
2.3 MySQL and its .NET binding
MySQL is a relational database management system which acts as a server providing
multi user access to a number of databases. It is available as either a binary or a
source-code download. MySQL is covered under GPL and LGPL licenses.
MySQL is available on many different operating systems on variety of computer
architectures. Currently it has versions for Linux, Windows, Solaris, FreeBSD,
MacOS X, HP – UX, AIX, SCO, SCI, Irix, Dec OSF and BSDi. The Linux version of
MtSQL runs on a range of architectures. The availability of a cross – platform
versions has enhanced the popularity of MySQL. (Suehring, 2002)
Anyhow, .NET environment does not natively support MySQL database. Hence there
was a need to use external components to provide the missing functionality. Such a
library is available and provided by Sun Microsystem on MySQL webpage – it is
Connector/NET enables developers to easily create .NET applications that require
secure, high-performance data connectivity with MySQL. It implements the required
ADO.NET interfaces and integrates them into ADO.NET aware tools. Developers can
build applications using their choice of .NET languages. Connector/NET is a fully
managed ADO.NET driver written in 100% pure C#.
Connector/NET includes full support for:
Features provided by MySQL Server up to and including MySQL Server
version 5.5
Large-packet support for sending and receiving rows and BLOBs up to 2
gigabytes in size
Protocol compression which enables compressing the data stream between the
client and server
Support for connecting using TCP/IP sockets, named pipes, or shared memory
on Windows
Support for connecting using TCP/IP sockets or Unix sockets on Unix
Support for the Open Source Mono framework developed by Novell
It is fully managed, and does not utilize the MySQL client library.
(MySQL :: MySQL 5.1 Reference Manula :: 20.2 MySQL Connector/NET, 2010)
2.4 Logger
Logging is a commonly used technique in software development, which allows to
check if expected behavior happened in proper moments while the program was
running. The most important benefit of this technique, however, is to track down a
problem using logged data. When some problem occurs during runtime it is written to
a log file with all associated descriptions.
The original iSync has written only the information about the progress. In practice it
means that whenever some error occurred it showed only the last valid entry in a log
file. There were no data saying what problem had occurred. This approach was very
problematic and caused extra work for the attendant and that is why it had to be
In the new implementation, the application writes three types of data to a log file:
- information
- warnings
- errors.
Information tells about normal operations done during a runtime. Warnings point that
part of necessary verifications in a code which fail whereas the errors indicate
unexpected behavior or exceptions.
With the help of superior of the project it was decided that logging class would be
reconstructed as a similar standalone class and it would implement the singleton
The intent of a singleton pattern is to ensure that a class has only one instance and to
provide a global point to it. The model for a singleton is very straightforward. Usually
there is only one singleton instance and clients access a singleton through one well-
known access point. The client in this case is an object that needs access to an instance
of a singleton. The previously described relationship is showed in the FIGURE 4
FIGURE 4. Logical model of a singleton pattern
(Exploring the Singleton Design Pattern, 2010)
-static uniqueinstance : Singleton
+ static Instance() : Singleton
+ SingletonOperation()
+ GetSingletonData()
FIGURE 5. Singleton pattern physical model from design patterns (Gamma,
Helm, Johnson, & Vlissides, 1994)
The physical model for the Singleton pattern is also very simple. The FIGURE 5
above shows a simple class diagram. There is a private static property of a singleton
object as well as a public method Instance() that returns this private property.
2.5 FTP client
The File Transfer Protocol is one of the oldest and most often used protocols in the
internet. FTP specifications state that by default, all data transfers should be done over
a single connection. An active open is done by the server, from its port 20 to the same
port on the client machine as was used for the control connection. The client does a
passive open. For better or worse, most current FTP clients do not behave this way. A
new connection is used for each transfer, to avoid exceeding TCP's TIMEWAIT state,
each time a client picks a new port number and sends a PORT command announcing
that to the server. Nowadays FTP client uses two parallel connections. One connected
to the server's port 21 which is called control connection and it stays open for the
duration of the session, and the second one is a data connection opened by the server
from its port 20. (Bellovin & Laboratories, 1994)
The objectives of the FTP are:
To promote files' sharing (computer programs and/or data)
To encourage indirect or implicit (via programs) usage of the remote
To shield a user from variations in the file storage systems among the hosts
To transfer data reliably and efficiently.
(Postel & Reynolds, 1985)
2.6 XML handling
Extensive Markup Language, abbreviated XML, describes a class of the data objects
called XML documents and partially describes a behavior of the computer programs
which process them. XML is an application profile or a restricted form of SGML, the
Standard Deserialized Markup Language. By construction, XML documents are
conforming to SGML documents. XML documents are made up of storage units
called entries, which contain either parsed or unparsed data. XML provides a
mechanism to impose constraints on the storage layout and a logical structure.
The design goals for XML are:
XML shall be straightforwardly usable over the Internet
XML shall support a wide variety of applications
XML shall be compatible with SGML
It shall be easy to write programs which process XML documents
The number of optional features in XML is to be kept to the absolute
minimum, ideally zero
XML documents should be human-legible and reasonably clear
The XML design should be prepared quickly
The Design of XML shall be formal and concise
XML documents shall be easy to create
Terseness in XML markup is of minimal importance
(Extensive Markup Language (XML) 1.0 (Fifth Edition), 2008)
2.7 Control version system
System version control is used in the most of the software development projects to
maintain a source code and to easily follow all the changes that ha ve been done during
the development process. Refactorization of the iSync PHP script was also kept in the
SVN to easily track all improvements. TortoiseSVN application, which is built against
Subversion was used for that purpose. This source control software enables easy
access to the project from Windows operating system. It integrates itself with
Windows shell, which allows to use it conveniently and intuitively.
(tortoisesvn.tigris.org, 2010)
The repository was created locally – there was no need to create a remote one. The
structure of its folders was as follows:
- testApps
- iSunc
o trunk
o branches
o tags
In the testApps location a small application was created, which used the developed
classes and tested them. After the class was well tested, it was enclosed to the final
project, which was placed in the iSync/trunk. The experimentally developed
alternatives were kept in the branched location, while fully working copies of trunk
branch containing certain functionality were stored in the tags.
3.1 Overview
The main functionality of the original application is in operating with the images and
copying them to the FTP server when their processing is finished. The author tries to
explain all necessary information needed for understanding what happens in the heart
of the PHP script.
Starting from the beginning, the script is
run every second minute. It requests data
from MySQL database and if it receives
any data, it proceeds with them. The first
data are copied to the local temporary
folder from a mounted network space.
Afterwards a necessary checking part is
executed and if everything is valid a script
starts working with the images. When the
images' processing is ready, the results
have to be copied to the FTP server and the
email notification is sent to a proper person.
FIGURE 6. Data flow in the script
FIGURE 7. Data flow in main routine
Before anything was coded it had to be checked if everything involved in script could
be easily moved to .NET environment and could be run fully compatible with the
Mono. The project was started by reading a documentation on the Mono webpage and
checking actual supported frameworks. It turned out that Mono have already
implemented .NET 3.0 and also with some part from version 3.5. It was enough to
handle all functionality in a new code. (Mono, 2004)
Afterwards the most important matter was to check the source code of a script.
Neither clear convention was used in a PHP code nor division between different parts
Data base
For each row
For each image
image processing
Copy to FTP
Send mail
of a code. The comments had to be made everywhere and the order in a code was
familiarized with by the author. One of the files containing logging functionality had a
suggestion that this should be done as a singleton pattern. At that point it was
understandable what the reason to do so is. When creating a log file it should be
opened and handled only by one instance of a class. That is not only safe from the
operation on files point of view but also it provides correct timestamps in a log file. It
was decided that this pattern would be applied to a new application.
When it was known how the script worked it had to be decided how to start converting
it. The approach that was taken based on creating classes providing proper
functionality related only to the one picked part of the program, for example: FTP
database, email client, XML handling, image processing. That approach also allowed
easier application testing part by part or segment by segment.
3.2 Implementation
As presented in the previous chapters iSync consists of pieces from different
technologies. To make the application flexible and easier to be modified, a
configuration file was created to keep all data that might be changed in the future
outside of the source code. A bad approach would be to use hard coded settings of
FTP client or mail sender. That would prevent developers from changes of those
properties without compilation, whereas PHP script allowed to do that freely and
verify them almost immediately. The configuration file has given the same quality to
binary, compiled application. The FIGURE 8 below illustrates the configuration
fields. The screenshot was made from Visual Studio 2008. The first four options and
options 9 and 10 are related to the FTP client object configuration while fields from 5
to 7 are for email sender object settings. Others, e.g. selected on blue
MySQLconnectionString is for DBHandler object, which contains all required data
like address of the server, database name and credentials. Fields 10, 11and 18 point to
the related folders' destinations. The log mode field and the log file name can be seen
respectively in the fields 13 and 14. The 15
row contains the administrator's mail
address used in case of some unexpected actions. The next fields 16 and 17 contain
the mail's body schemas and the last 19
. field specifies whether the results should be
copied into the path from row 18.
The p
has. Mor
code and
The obje
it c
showed i
esented confi
piling sources
it cle
nd program it
ject of this cl
ce of this clas
it can be easil
d in the previ
nfiguration en
es. This bring
clearly splits
elow shows a
class is respo
ass is created
sily noticed th
vious chapter
enables custo
ings to
ts and shows
View of
all fields and
ponsible for a
ed i
n the
that some of
ter. Indeed the
tomization of
new applicatio
s these
nd methods o
r and triggers
al application
of the
m match
these fields ar
tomized varia
uration file f
s of
main c
rs all activitie
ion. While rev
fields fr
are filled wit
me quality as
riables from t
e fields
n class called
ities in iSync.
reviewing fiel
ith conf
the source
Only one
ields of this
ration data
provided in configuration file. The core method of the application is called Process. It
contains refactored routine from PHP script and within this function all important
operations occur.
FIGURE 9. Manager class
The Manager class contains also a function called CheckPIDfile. The application has
to mark somehow which item in a database is currently processed to avoid processing
the same item twice. iSync creates a PID file, which is in that case nothing more than
an empty file with a proper item's name. The application uses CheckPIDfile function
to check whether an item, which it is interested in, is actually in a progress. If not it
proceeds with it, otherwise it simply skips this item.
FIGURE 10. Item class which represents fetched data from database.
One of the most important classes in the application is shown in FIGURE 10. It
encapsulates all needed data and provides a convenient way to access all class's fields.
It also allows printing out information about an item by overloading a ToString
function. In the original PHP class the data received from a database were kept in the
separate variables without obvious connections. The object representation with proper
fields allows keeping related data in the one place and provides an easy access to
them. It is also very easy to store more items in any container.
3.4 MySQL
The FIGURE 11 below shows class responsible for connection, fetching data,
modification and updating fields in a database. Its function called FetchData acts as a
data input for an application. It fetches entries from a database and next parses them to
an object of Item class showed in the previous chapter. All valid entries from a
database are stored in the following container
> _itemsList.
Nevertheless FetchData is not the only function which uses connection with a
database. The others are CheckIfWholePathExist, SetPath and SetStatusDownloaded.
The first function is responsible for checking if there is at least one cell containing
certain string value in a database, the second function takes care of setting a path to an
item with a specific id and the last itemized procedure sets fields of an item with a
specific id as downloaded and done.
The other functions in DBHandler class are also related to a database and they check
whether a connection to a database is active or if it was already closed.
FIGURE 11. Data base handler class
3.5 File management
The application operates with different types of data. Some of them are received from
a database and represent processes' ids which iSync handles, the other are XML file
containing points' coordinates or picture files. Software, however, not only processes
the content of all received files but it also manages the files themselves, for example it
moves or copies them between different locations. For that purpose a file manager is
used. At the beginning and the end of the application's routine, the files are moved
here and back. Firstly, they are copied from a mounted network location to the
temporary folder and when the most of the processes are done, the results have to be
placed in a specified location as well.
FIGURE 12. File manager class
The FileManager class contains also the method responsible for creating and
removing folders. This is required for iSync since it processes data copied locally into
a temporary folder. After all processes are finished, it copies data to a destination
place. In case a destination path does not exist, it creates one and then processes with
data copying. iSync also deletes the content of a temporary folder which is created
whenever it is needed.
FIGURE 13. UI of test application using FileManager class
The figure above shows the graphical user interface of a test application. The
application wraps all functionality provided by FileManager class and provides an
easy way of testing it.
3.6 XML handling
FIGURE 14 below shows an exemplary XML file which is processed by the
application. The file always includes only one stage element which may contain from
zero to few level elements, whereas each level element contains at least one point
entry. This structure is very clearly visible in FIGURE 15.
FIGURE 14. XML file structure
FIGURE 15. UI of the test application which presents and process an XML file.
It wraps XMLCoordinatesReader class
FIGURE 16 below shows a structure of XMLCoordinatesReader class. The object of
this class is responsible for parsing the XML file showed in FIGURE 14. From the
mentioned FIGURE 14 can also be seen that the levels' ids are not consecutive
numbers – there are levels with following ids: 0, 1, 4. That is why
XMLCoordinateReader class has a function CheckIsFloorExists, which checks if a
parsed XML file contains the floor id, which the application requests. The function
GetPointsOnSpecificFloor takes as an argument floor number and returns an array of
points corresponded to this number.
FIGURE 16. XML handler class.
When an application calls a ReadXMLFile function with a path to an XML file as a
parameter, an object reads this file and stores data in a dictionary
>>. It provides a convenient way of getting points from a specific level.
3.7 Image processing
The image processing is a very important part of the original PHP script. The
processed images with an associated PHP file, which is also created by an iSync, bring
required functionality to the web server which uses them. The operations that are
performed on each image are as following:
1. Reading points' coordinates from XML file – presented in the chapter 3.6
2. Loading a background image and resizing it in the way that larger dimension
from height and width is 360 pixels and the second dimension is scaled
3. Calculating ratios for height and width of a background image
4. Applying the scales to the read coordinates from the 1. point
5. Creating a PHP file called id_level.php which contains predefined data
6. Placing the center of a tagging image on each read point on a loaded
background image
7. Saving a tagged image (background image combined with tagging images) by
overriding the old one.
FIGURE 17 shows a diagram of the ImageHandler class which provides all
functionality related to a data flow presented in the points above. The actions listed
previously can be easily linked to the function enclosed in the ImgeHandler class.
FIGURE 17. Image handler class
All fields of the above presented class are private ones. One of them – ImagePaths
provides get and set property, the other – XMLExists provides only a get property.
This is done in this way due to the fact that object of ImageHandler class may receive
and use information about the paths to the images, however, the existence of an XML
file is being determined by this object itself.
Most of the methods of the ImageHandler class are public, only the loading and
tagging images can be called internally by an object of this class.
FIGURE 18 shows the graphical user interface created for the testing purposes of the
ImageHandler class functionality. The functionality of this testing application can be
split into two parts.
The first one – mainly left part of the UI – tests tagging a predefined image, which is
presented as a white rectangle containing blue dots and red crosses. Whenever the left
mouse button is clicked within a rectangle the tagging operation is called and the
coordinates of a clicked point are showed below the border line. In addition, it allows
saving the showed figure to a file representation.
FIGURE 18. UI of the test application using the ImageHandler class
The second part of this testing application is a semi-automated process split into four
following steps:
1. Loading the images from a hardcoded path
2. Resizing the previously loaded images to a proper size
3. Tagging the images
4. Saving the images by overriding the old ones
The listing below buttons in FIGURE 18 contains the paths to the loaded images and
their sizes.
FIGURE 19 and FIGURE 20 show another testing application of the ImageHandler
class. This time it does not contain any graphical interface, it is a pure console
application. It was created in order to check the implemented different functionality of
images resizing in the different operating systems. In the first FIGURE 19 the output
comes from the Microsoft Windows operating system, the second printout comes from
the Linux operating system. The testing application was compiled on the Windows
that is why it can be run directly on this system, nevertheless to run it on the Linux
OS, it requires to use Mono. (Mono, 2004)
FIGURE 19. Console testing application run under Windows OS
FIGURE 20. Console testing application run under Linux OS
There is also one more very visible difference between running the application on
Windows and Linux OS. Due to the problem with interpolation while image resizing,
which occurred on the Linux OS, iSync has to use external application which in this
case is ImageMagic. (ImageMagick: Convert, Edit and Compose Images, 2009)
3.8 Mail client
As presented in chapter 2.4 iSync is intended for logging its activities to the log file.
This is enough, however only as long as everything goes without any unexpected
issues. When any exception occurs, the administrator of the application should be
notified about the issue, the legacy PHP script used to send a mail notification, which
was further connected with a text message notification. When an email server receives
a message from a particular sender – in that case an email sent by the script – it
forwards an SMS to the administrator via messaging service. This is a very convenient
and fast way to inform the responsible person to look into a script or / and a database
in case of any serious problem.
It was decided that a new C# iSync will also use an email notification. For that
purpose the Mailer class was created. It provides simple functionality and acts as an
email client only with sending messages option.
FIGURE 21. Mailer class
The object of Mailer, however, is used not only to notify an administrator that some
problem occurred, it is also used to send an email notification to the clients whose
email address was delivered from a database. The information about an email address
is kept in the Item object in one of its fields called _emailAddress. These kinds of
Sealed Class
Mailer (+ 5 overloads)
emails ar
are sent whe
the clie
class works
class w
ible from eve
create an ins
sealed synta
it contains p
hen an
tem h
simple tes
s as expected
Simple U
was created a
o other classe
very part of th
g its
instance of
tax word used
contains st
has been alre
routine is sho
testing applic
e UI of test
d as a sealed c
sses can deriv
the code.
which in
sed in order to
class wh
static variabl
lready copied
howed in
lication which
ing ap
d class implem
ive from it
is very a
has few chara
in consequen
r to
help JIT o
hich has acce
ble which hol
ed to the FTP
ich was used t
lementing Sin
and it can hav
aracteristic att
not a
optimizes th
ccess to
holds a referen
P server and
d to check wh
an e
ingleton desi
ave only one
nt way of des
t allow other
things more
rence to a sin
nd it is now
sign pattern.
ne instance
er cla
sses to
ingle created
• Instantiation is triggered by the first reference to the static member of the
nested class, which only occurs when the Instance property is called and this
means that implementation is fully lazy.
(Implementing the Singleton Pattern in C#, 2006)
FIGURE 23 shows the diagram of the Logger class. It presents that the main Logger
class has two constructors, although both are used only internally and are private.
FIGURE 23. Logger class
3.10 FTP client
The class presented in FIGURE 24 is the richest one. It contains the whole needed
functionality to become a base for a FTP client application. It was decided to do it in
that way as it was mostly beneficial for the company. In the future that class may be
easily contributed to other projects with the functionality it contains. The class has a
very similar purpose as the FileManager class presented in the chapter 3.5 with the
difference that the FTPClient class instance takes care of managing files and / or
folders in the network. Hence, it contains the necessary fields and properties which
allow software developers to configure it in the way they want.
FIGURE 24. FTP client class
Despite that it was created in the way to allow customization, some of the settings are
hardcoded. The main mechanism used in this class -
- has two fields
set to predefined values. These fields are
.sePassive which is set to
false and
.KeepAlive which is also set to false. The first option says
that an application uses active data transfer process and the second option specifies
that after the request is completed the control connection to the FTP server is closed.
The figure below shows the graphical user interface for the test purposes of the
FTPClient class. It uses all functionality provided by a presented class and it is a very
simple FTP client application.
FIGURE 25. UI of test application using FTPClient class
3.11 Diacritic characters
In the Finnish and Scandinavian languages there are some special letters which are
diacritic characters. The data which is stored in a database is used for generating
URLs, therefore such characters cannot be used in any part of the URL. To avoid
keeping such letters in any string a special function was introduced to convert
diacritics characters to US-ASCII encoding. This function also takes care of two other
characters which are dangerous to put to an URL, namely: ' '(the space) and '/' (the
slash). The pace separates words in one a sentence but in the URL it is replaced by
'%20'. On the other hand the slash separates different parts of the URL. If an
application adds an entry from a database which contains the slash to an address it
separates the URL in the place where it stands, which is not desired. It was decided
that these two characters are replaced by underscore which is represented in the URL
by itself - '_' meaning underscore.
FIGURE 26 illustrates an example of how the function described in this chapter
works. (Uniform Resource Locators (URL), 1994; Universal Resource Identifiers in
WWW, 1994; Uniform Resource Identifiers (URI): Generic Syntax, 1998)
FIGURE 26. Example of changing diacritics characters
3.12 iSync Runner
All the legacy code was changed and tested in the new .NET environment. It provides
the same functionality as the previous PHP script but in a new systematized form.
The old script was run by another shell script from a command line. It caused that
iSync was run every two minutes regardless if there were or were not any ready to
proceed items in a database. That behavior was changed in a new application. For the
purpose of managing iSync and running it, the application iSync Runner was
introduced. It contains several advantages comparing to the previous solution:
- Checking database before running iSync – if there are no valid entries in a
database iSync is not run
- Opening iSync log files
- Allowing to run iSync manually at any time
- Showing balloon tips when any actions is taken
- Allowing to create schedules – a frequency of a database checking varies and
hence running iSync may differ on each day.
iSync Runner also contains the previously utilized functionality, namely automated
periodic execution of iSync. This option, however, may be disabled. FIGURE 27
shows the main graphical user interface available to manage the script and monitor
FIGURE 27. Application to manage iSync app
iSync Runner comprises an additional feature which is icons in the notification area.
This allows minimizing it to a notification area and even from there controls iSync.
FIGURE 28 shows the menus of iSync Runner available to the user from the
notification area.
FIGURE 28. iSync Runner options in the notification area
4.1 Challenges
After familiarizing with the legacy PHP script and planning all stages of the code
reimplementation, the process of transforming old code to the new environment has
looked really promising. The work was planned for the whole practical training
period, that is three months, and it included heavy application testing.
Code division
The old code was divided into three files, however, they did not group any certain
functionalities. Because of that the code was not easily readable, flexible and easy to
be modified. To avoid similar problems in the new code it was decided to group
specific functionalities to certain classes and the Main function included only the
following lines of code:
_iSyncManager =
The other advantage of a new code is that it is self-explanatory as can be noticed from
the fragment above.
Database connection
Building the new application has started from creating the necessary classes, which
are used as tools while the application is run. These classes include: DBHandler,
FileManager and FTPClient. The first of them is a data entry point of the application
and it manages a connection with a MySQL database. This fetched data from database
determines what type of activities will be executed by iSync. In the .NET
documentation there is no information about its cooperation with MySQL databases.
Lack of compatibility with MySQL databases caused that additional research in
finding a proper solution was needed. It turned out that MySQL's owner provides the
necessary library connecting .NET framework with MySQL database. After applying
MySQLConnector library no other major problems were encountered during further
database handing implementation process. (MySQL::Download Connector/Net, 2010)
File management
Developing of the classes managing files and folders both locally by FileManager
class and remotely in the network by FTPClient class was not problematic; it was
rather time consuming. These both classes are versatile because they provide a full
functionality and thus they can be used by a company also in the other projects. It
required, however, creating full documentation containing all information about
FileManager and FTPClient classes.
Images processing
One of the next stages was image processing, which also caused some problems.
Image processing in iSync starts from image's resizing, more concretely downscaling.
The application uses the following interpolation method:
.HighQualityBilinear, which
provides one of the most accurate functionalities thanks to which the images lose
neither on their quality nor their granularity. Everything worked correctly on
Windows operating system, however, when the testing application presented in
FIGURE 20 was run using Mono on Linux OS some problems with the quality of the
images were noticed. Further investigation showed that using such a good
interpolation method did not bring the expected results. What is more the images'
quality from Linux OS did not change when changing interpolation mode and it was
comparable with the images' quality from Windows OS only when using
.Low interpolation mode on
Windows side. It was a major issue considering the images' role which was using
them on the web pages as a part of the presentation. To solve this problem an external
console tool – ImageMagic - was used. This is one of the dependencies and a
requirement that has to be fulfilled if the application is to be used on Linux OS.
4.2 Improvements
In the practical part of the thesis the testing applications were presented. This
approach of testing allowed an easy and convenient but a manual way of checking the
functionality of the classes. Nevertheless, it would be much better to create separate
solution in Visual Studio containing unit tests. It has a lot of benefits, most of all the
whole functionality would be tested automatically at once. It would require much
more effort; however, the final balance would have much more profits than losses, for
example, any changes in the function's body would be immediately verified.
When telling about the other things that could be modified or improved the following
issues cannot be omitted:
• FileManager class
• Manager class
• the other classes using configuration file.
The FileManager class does not contain any fields but only methods. It operates only
on files and folders without loading or modifying their content. Hence this class could
be a static one since then no objects of this class would have to be created in order to
operate on filed or folders.
The Manager class is created only once in the Main function and it manages all
operations done by iSync. Due to the fact that only one instance of this class has to be
created it could also implement singleton design pattern as Logger class presented in
the chapters 2.4 and 3.9 does.
Loading setting from the configuration file is another thing that could be modified.
The classes like DBHandler or Logger should be the ones that could be enclosed by
the other projects using their functionalities. The way of initializing some of their
fields, however, prevents from using them by the other projects without former
modifications. For example a field _SelectCommand in DBHandler class contains a
hardcoded query to the MySQL database, which has read-only and private attributes,
hence they are not supposed to be changed. It could be better, however, if MySQL
query was customized by constructor's parameter or property.
The Logger class depends even more on iSync application itself. It contains static
fields, two of which, namely _FILENAME and _logMode, are filled based on data
from the configuration file. It should be definitely changed to allow integration into
the other projects.
4.3 Summary
The refactorization of the legacy PHP script did not rely only on rewriting it into the
new environment - .NET, but also introducing new order into the previously very
chaotic code. Currently the functionalities related to the common areas are divided
into separate classes, they were all tested using testing applications and the whole
documentation is also created. The code of the present iSync is much more readable
and it can be easily modified in the future if needed. Retrospectively it can be clearly
visible that there could be some changes done already at the last stage of the
application just to improve its functionality in the current project. Unfortunately the
short period of the practical training and the complexity of the iSync did not allow the
author to introduce any additional improvements. The main goal of the development,
however, was achieved. The application uses many technologies and hence the author
was able to broaden his knowledge from different areas. What is more he has created
the new application, which has the same functionality as a legacy code and can be
easily extended or enriched by the other developers.
.NET Design Pattern and Architectural in C# and VB. (2010). Retrieved from
Albabari, J., & Albabari, B. (2010). C# 4.0 in a Nutshell. O`Reilly Media.
Bellovin, S., & Laboratories, A. B. (1994, February). RFC 1579 - Firewall - Friendly
FTP. Retrieved January 19, 2010, from IETF Documents:
Exploring the Singleton Design Pattern. (2010). Retrieved Septemer 16, 2009, from
MSDN Library: http://msdn.microsoft.com/en-us/library/ee817670.aspx
Extensive Markup Language (XML) 1.0 (Fifth Edition). (2008, November 26).
Retrieved January 23, 2010, from All Standarfs and Drafts:
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: Elements
of Reusable Object-Oriented Software. Boston: Addison-Wesley.
Gilmore, J. W. (2008). Begininning PHP and MySQL. New York: Springer-Verlag
New York.
ImageMagick: Convert, Edit and Compose Images. (2009). Retrieved from
ImageMagick: http://www.imagemagick.org/script/index.php
Implementing the Singleton Pattern in C#. (2006, January 7). Retrieved from
Krishna Rao, R. B. (2007). Programming with C#: Concepts and Practice. Delhi:
Asoke K. Ghost.
Liberty, J., & Xie, D. (2008). Programming C# 3.0 (Fifth Edition ed.). O`Reily
Mamone, M. (2006). Practical Mono. New York: Springer-Verlag.
Mono. (2004, June). Retrieved Fabruary 18, 2011, from http://www.mono-
MySQL :: MySQL 5.1 Reference Manula :: 20.2 MySQL Connector/NET. (2010).
Retrieved December 09, 2010, from MySQL :: Developer Zone:
MySQL::Download Connector/Net. (2010). Retrieved from
Nash, T. (2007). Accelerated C# 2008. New York: Springer-Verlag.
Nash, T. (2010). Accelerated C# 2010. New York: Springer-Verlag.
Postel, J., & Reynolds, J. (1985, October). RFC 959 File Transfer Protocol. Retrieved
January 21, 2010, from IETF Documents: http://tools.ietf.org/html/rfc959#appendix-I
Schonig, H. J., & Geschwinde, E. (2004). Mono Kick Start. Sams Publishing.
Singleton Design Pattern in C# and VB.NET. (2010). Retrieved September 16, 2009,
from .NET Design Patterns and Architectures in C# and VB, .NET training,
DoFactory: http://www.dofactory.com/Patterns/PatternSingleton.aspx
Suehring, S. (2002). MySQL Bible. New York: Wiley Publishing, Inc.
Swaminathan, R. K. (2007). Cross-Platform Application Development using .NET and
Mono. Waterloo: University of Waterloo.
Thai, T., & Lam, H. (2002). .NET Framework Essentials (2nd ed.). Gravenstein
Highway North: O'Reilly.
tortoisesvn.tigris.org. (2010). Retrieved February 20, 2010, from
Uniform Resource Identifiers (URI): Generic Syntax. (1998, August). Retrieved 11 20,
2010, from Web Naming and Addressing Overview:
Uniform Resource Locators (URL). (1994, December). Retrieved September 20, 2010,
from RFC-Editor Webpage: http://www.rfc-editor.org/rfc/rfc1738.txt
Universal Resource Identifiers in WWW. (1994, June). Retrieved 11 20, 2010, from
Web Naming and Addressing Overview: http://www.w3.org/Addressing/rfc1630.txt
Enter the password to open this PDF file:
File name:
File size:
Creation Date:
Modification Date:
PDF Producer:
PDF Version:
Page Count:
Preparing document for printing…


text:
John Niyo of the Detroit News reports that the Lions have claimed kicker Justin Medlock off waivers from the Redskins.
In Washington, Medlock was out-kicked by Graham Gano at offseason workouts. Gano connected on all four of his field goal tries late last season with the Redskins, allegedly with a broken foot.
Medlock, a former fifth-round pick of the Chiefs during the final days of the Carl Peterson/Herm Edwards era, will probably serve as a "camp leg" behind starter Jason Hanson in training camp.

subset: commoncrawl


text:
Lost, destroyed, misplaced. These are not the words we want associated with the photos of our lives. A couple of weeks ago I received an email from my have camera, will photograph uncle with these blast from the past photos attached. Tears rolled down my cheeks for the memories and thankfulness to have these back in my life as we know it photo file once again, grainy finish and all. I have titled this blog post the decorating way, way back. For the hip and happening hashtag crowd, let's go with #WaybackWednesday on this #ThrowbackThursday eve.
These photos were taken at our old house. Originally we purchased this house as an investment property, but it made financial and logistical sense (and cents) to just move into the property while we were in all out renovation mode with our present home. On this particular afternoon in early 2000 when these photos were taken, family and close friends gathered back at our home after the funeral of my maternal grandmother. My grandmother, a self-made woman and antiques dealer extraordinaire, taught me the world of antiques. I see her everyday when I glance at the many items given to us by her and proudly displayed throughout our home. Dave the Builder and I have always been big on including family mementos into our decor. Decorating with what you love makes a house your home.
The decorative anchors of the fireplace mantel consist of two of my most treasured treasures.
The vintage rose bowl was an anniversary gift from Dave the Builder. I spotted it in a friend's antiques store and commented to Dave how I wished I could find one similar to it in our treasure hunting rounds. As soon as I opened the anniversary gift and saw the rose bowl I knew its new home would be on the fireplace mantel. Of course, this was before my graceful handling resulted in its chip and crack demise.
The Hull Magnolia ewer on the other end of the mantel was Dave the Builder's paternal grandmother's. When Dave and I first started dating he was using the ewer as a doorstop. A doorstop! Dave, this is an exquisite, mint condition piece of American pottery. Please visit your local home improvement store for all your doorstop needs. It is a sheer miracle the ewer did not end up like the rose bowl.
The design of the house was a natural fit for our American antique pieces .
The dining room was painted in Sherwin Williams Mint Condition.
The den was painted in Sherwin Williams Fired Brick. The photos cast an altogether different color.
This is the dining room in our present home painted in Fired Brick. Lighting is key to true color reads.
Addresses, hair colors, waistlines and fashions have changed over the last fifteen years. Trends have ushered us toward painted furniture, neutrals as color and new traditional modern. If I had to do the interior of this particular style home all over again, I don't believe I would change too much of the original interior selections. They say you can't go back, but you can remain true to your personal interior design and decor style without apology or comparison. It's called decorating with what you love.


text:
Please leave a comment if you might be interested in seeing these.
So, any excuse NOT to get back on with what I should be doing, which is finishing painting the walls white in the sitting room before the new loose covers arrive.
Soon the next distraction will be new curtains or roman blinds - at the moment, as I could not bear to put back the old curtains we inheirited when we bought the house once I'd started to paint the room (and which we have lived with as they "matched" the rather dark gold walls that I have now finally painted over), and not wanting to start the curtain/fabric search just yet, I have temporarily hung two mismatched pairs of old floral curtains.
My 17 year old daughter thinks we should keep it like this as they are "cute" and its different to have non-matching floral pairs - hmm, I don't think so!
Wishing you all a very Happy Weekend, and thanks for visiting.


text:
Bonnies Girls Onesie Set 3-6M Pink/Camo Trim
Click To See This
See Special Price
Click to See This
Girl`s jersey style one piece shot sleeve suit in pink with camo cotton piping around neck and leg holes. Snap front and bottom closure. Lace on sleeves with camo bows. Matching jersey hat with pink and camo trim. All pink jersey booties. 3-6 months. Mfg Item Number: NG350/3-6MColor: AP


text:
I decided to separate this post from others as to give u more info on the halal food around Manila. In Manila, there are plenty of Halal food around but it's difficult to find any outside Manila. Before we checked in into our hotel, we stopped by at Kabab Persian. This resto specialities are Persian / Mediterranean / Middle Eastern cuisines. Prices are affordable and the portions are large. Kalau x kuat makan, boleh share satu meal, 2 org. Lokasinya adalah di persimpangan E. Rodriquez Avenue dan Jln Tomas Morato. The taste? For me, tasty enough... Okla to survive...
|You can dine inside the air-cond room or dine outside
|The Menu: Too many selections, difficult to choose...rambang mata...
Let's check out some of the meals.
|Yg ni briyani set (150 peso = rm 12). Kalau u request Jasmine
Rice instead of Basmati rice, cheaper by 10 peso.
|Water melon juice ( 45 peso =
rm3.50) Semua jus
sama harga. Shake
mahal sikit.
|Thick Mango juice (45
peso = rm3.5
|Shawarma with rice (80 peso = rm6). Tea (25 peso = rm2)
|Yang ni dalam 160 peso rasanya...
If I'm not mistaken, it is opened 24 hours. Even though this is a halal eating outlet, but they serve alcohol in the premise.
This is the address: #1 E. Rodriguez Avenue (Corner Tomas Morato Avenue), Quezon City, Metro Manila
Phone Number: 497-6273
|Semua muka dah kenyang...:)
*Harga tu dah ingat2 lupa sebenarnya..So, lebih kurang halal ajala...x lari bnyk pon...


text:
All the hand wringing over the BCA (Budget Control Act of 2011) and the effect the cuts will have on the DoD have turned out to be over dramatized. Analysts such as Gordon Adams and Todd Harrison have examined the effects as reported at Bloomberg. Winslow Wheeler of the Straus Military Reform Project had this comment.
"the comments from many -- but not all-- Republicans, most defense manufacturers and the secretary of defense that they regard a budget well above Cold War averages to be a catastrophe is consciously constructed, misinforming hysteria"
While congressional republicans, military contractors and even the The Secretary of Defense continue their propaganda and fear mongering campaign most objective analysts agree, "it's not the end of the world".
For 2013, CBO's projection of the cost of DoD's plans is $14 billion higher than the funding that would be available under the BCA's limits on discretionary appropriations for national defense before the BCA's automatic reductions. Those costs would be $66 billion higher than the funding that would be available after the automatic reductions. Accommodating those reductions, in particular, could be difficult for the department to manage because it would have to be done over only nine months. Even with that cut, however, DoD's base budget in 2013 would still be larger than it was in 2006 (in 2013 dollars) and larger than the average base budget during the 1980s.
this is not low hanging fruit
It's like they are not even trying! (Do I have to insert snark tags or is my snarcasm obvious??) The US Navy has 11 carriers, one under construction and two more planned. Ok, stop the one under construction, forget about the two 'planned' and cut the 11 down to 8 or 7 or 6 or 5. Why do we have over 70 submarines? How many tanks do we need? In real estate terms the DOD is America's collectively owned money pit.


text:
Toronto Immigration Lawyers
Since 1964, our experienced Toronto Immigration lawyers have provided solid advice and immigration services in Toronto to those seeking to immigrate to Canada. Millions of people from all over the world are attempting to immigrate to Canada, but only a small percentage will be accepted. In 2010 Canada welcomed 280,636 new permanent residents, 182,322 temporary foreign workers and 96,147 foreign students. Immigration law is very complex and should not be attempted as a do-it-yourself project. At Devry Smith Frank LLP ("DSF") we provide immigration services in Toronto for individuals, families and businesses.
Our Areas of Expertise include but are not limited to:
- Skilled Workers and Professionals (in Canada, excluding Quebec): Must have a valid offer of arranged employment, or have one year of continuous full-time paid work experience in at least an occupation where there is a proven need in Canada for more workers or be an international student enrolled in a PhD program in Canada (or graduated from a Canadian PhD program within the past 12 months) and meet certain criteria.
- Quebec-selected Skilled Workers: Quebec establishes its own immigration requirements and selects its own immigrants.
- Canadian Experience Class: For people who have recent Canadian work experience or have graduated and recently worked in Canada.
- Investors, Entrepreneurs and Self-employed People: For experienced people who want to start a business in Canada and who can afford to make a sizable investment.
- Provincial Nominees: One of Canada's provinces or territories can nominate you to settle and work there.
- Family Sponsorship: Sponsorship of a family member(s) to join you in Canada if you are a permanent resident or a Canadian citizen.
Why hire DSF?
With millions of applicants and a limited number of immigrants accepted, an experienced immigration lawyer can make the difference between immigrating to Canada and remaining one of the hopefuls. The immigration lawyers at DSF can assist in selecting the immigration category that best meets your situation, handle the application process and ensure that your case is handled with the utmost care. Contact us today and take the first step towards Canadian immigration.
For further information or assistance with any legal matters regarding immigration services, contact one of the Toronto immigration lawyers listed on the right by clicking on their name or call our office at (416) 449-1400. We also encourage you to watch our Immigration videos as they cover wide range of topics.


text:
WiseWays Herbals Welcomes You
WiseWays Herbals' vision since 1988 has been to create quality herbal products from the vitality of the nourishing Earth to sustain physical, emotional and spiritual well-being.
All of our formulas were created by Mariam Massaro, herbalist with over 40 years of experience in herbology, women's health, Earth-based ceremonies, midwifery, and organic gardening. She also cofounded Blazing Star Herbal School with Gail Ulrich. She started WiseWays Herbals, a line of natural body care products, in her farmhouse kitchen in Western Massachusetts in 1988. Her vision was to create a successful herbal business dedicated to serving humanity by providing natural products for well-being. Using only wild-crafted or naturally grown herbs, our formulas help restore the connection between nature, body and soul.
We offer a variety of handmade products: Bath Crystals, Salves, Body & Lip Balms, Massage & Herbal Oils, Powders, Chakra Oils, Soaps, Pet & Home Care, all made with aromatherapy essential oils and naturally grown or wildcrafted herbs.
2018 is an exciting year for us here at WiseWays Herbals. After 30 years, we are still happy to say that all of our products are still made in small batches. This allows us to send a fresh, high quality product to our customers - something we've always been proud of.
Keeping our original company goals ever present in our minds... we continue to change and grow with the times. While this is an exciting time for us, it is also a time of transition. Over the past year there's been big changes here at WiseWays Herbals. We have undergone our third FDA inspection, which has resulted in numerous changes to our website, labeling, and even product names. At the same time, we've built a new larger shipping area that has made it possible for all other departments to operate more efficiently. Next on our list of things to do - expand our herb gardens!
In this ever changing industry, we strive to remain FDA compliant while staying committed to our loyal customers. We thank you for your understanding and loyalty!
With Harmony and Love,
Mariam Massaro - Herbalist


text:
The case against teaching the Bible in public schools
The case against teaching the Bible in public schools
March 23, 2007 <!–The de-Convert–>
In response to Time Magazine's new cover story "The Case for Teaching The Bible" by David Van Biema, I'd like to simply list a few of the stories and passages our children may be exposed to if the Bible is taught in Public Schools. In other words, let's let the Bible speak for itself.
Not only will our children learn the beatitudes attributed to Jesus in Matthew, they'll learn this one:
Psalms 137:8-9 O daughter of Babylon, who are to be destroyed,
Happy is the one who repays you as you have served us!
Happy is the one who takes and dashes
Your little ones against the rock!
Our daughters will learn they are subjected to the boys in their class:
1 Corinthians 11:3 Now I want you to realize that the head of every man is Christ, and the head of the woman is man, and the head of Christ is God.
Our daughters will learn that they next time they go to church, they should not speak:
1 Corinthians 14:34-35 Let women keep silent in the churches, for they are not permitted to speak; but they are to be submissive, as the law also says. And if they want to learn something, let them ask their own husbands at home; for it is shameful for women to speak in church.
Our children will learn that if parents do not obey God, he will send wild animals to kill their children:
Deuteronomy 26:21-22 " 'If you remain hostile toward me and refuse to listen to me, I will multiply your afflictions seven times over, as your sins deserve. I will send wild animals against you, and they will rob you of your children, destroy your cattle and make you so few in number that your roads will be deserted.
They will learn the if parents do not obey God, he will cause them to eat the flesh of their children:
Deuteronomy 26:27-29 " 'If in spite of this you still do not listen to me but continue to be hostile toward me, then in my anger I will be hostile toward you, and I myself will punish you for your sins seven times over. You will eat the flesh of your sons and the flesh of your daughters.
Our sons will learn that they should be stoned to death for rebellion:
Deuteronomy 21:18-21 If a man has a stubborn and rebellious son who will not obey the voice of his father or the voice of his mother, and who, when they have chastened him, will not heed them, then his father and his mother shall take hold of him and bring him out to the elders of his city, to the gate of his city. And they shall say to the elders of his city, 'This son of ours is stubborn and rebellious; he will not obey our voice; he is a glutton and a drunkard.' Then all the men of his city shall stone him to death with stones; so you shall put away the evil from among you, and all Israel shall hear and fear.
Our children will learn that if they mock their teachers, God may send bears to maul them:
2 Kings 2:23-24 Then [Elisha] went up from there to Bethel; and as he was going up the road, some youths came from the city and mocked him, and said to him, "Go up, you baldhead! Go up, you baldhead!" So he turned around and looked at them, and pronounced a curse on them in the name of the LORD. And two female bears came out of the woods and mauled forty-two of the youths.
Our children will learn about all the genocides in the Bible sanctioned or commited by God including this one:
Genesis 6:17-23 For forty days the flood kept coming on the earth, and as the waters increased they lifted the ark high above the earth. The waters rose and increased greatly on the earth, and the ark floated on the surface of the water. They rose greatly on the earth, and all the high mountains under the entire heavens were covered. The waters rose and covered the mountains to a depth of more than twenty feet. Every living thing that moved on the earth perished—birds, livestock, wild animals, all the creatures that swarm over the earth, and all mankind. Everything on dry land that had the breath of life in its nostrils died. Every living thing on the face of the earth was wiped out; men and animals and the creatures that move along the ground and the birds of the air were wiped from the earth. Only Noah was left, and those with him in the ark.
(quite a great image for our children to meditate on, isn't it?)
And finally, they'll learn that the next time their parents go to church, they may not return if they lie to their leaders:
Acts 5:1-11 Now a man named Ananias, together with his wife Sapphira, also sold a piece of property. With his wife's full knowledge he kept back part of the money for himself, but brought the rest and put it at the apostles' feet. Then Peter said, "Ananias, how is it that Satan has so filled your heart that you have lied to the Holy Spirit and have kept for yourself some of the money you received for the land? Didn't it belong to you before it was sold? And after it was sold, wasn't the money at your disposal? What made you think of doing such a thing? You have not lied to men but to God."
When Ananias heard this, he fell down and died. And great fear seized all who heard what had happened. Then the young men came forward, wrapped up his body, and carried him out and buried him.
About three hours later his wife came in, not knowing what had happened. Peter asked her, "Tell me, is this the price you and Ananias got for the land?" "Yes," she said, "that is the price." Peter said to her, "How could you agree to test the Spirit of the Lord? Look! The feet of the men who buried your husband are at the door, and they will carry you out also."
At that moment she fell down at his feet and died. Then the young men came in and, finding her dead, carried her out and buried her beside her husband. Great fear seized the whole church and all who heard about these events.
Please note that this is a very small sample of what I consider to be the multitude of atrocities in the Bible.
While somewhat acknowledging in the article that the "Bible's harmful as well as helpful uses must be addressed," in his closing statement, David Van Biema writes:
And, oh yes, there should be one faith test. Faith in our country. Sure, there will be bumps along the way. But in the end, what is required in teaching about the Bible in our public schools is patriotism: a belief that we live in a nation that understands the wisdom of its Constitution clearly enough to allow the most important book in its history to remain vibrantly accessible for everyone.
Patriotism? I'm not as optimistic as this author. The issue I have with teaching the Bible is that it will depend greatly on the teacher how it's portrayed. If the teacher is a religious conservative, these scriptures will be portrayed as the Word of God. If the children are of conservative Christian homes, they'll simply accept this as God's Word.
If this is a risk you're willing to take, please support teaching the Bible to children in the public schools. If not, let's start a blogging revolution against this concept.
– The de-Convert


text:
Geocouncil members represent the many facets of geotourism including community leadership, public lands management, food and hospitality sectors, historic preservation, natural resources conservation, indigenous peoples, traditional and local arts, agriculture, tourism promotion, and others.
Sierra Nevada Geotourism Councils
The role of the Sierra Nevada Wide Geocouncil is to guide the overall vision of the project, sustain the project into the future, and encourage long-term stewardship of the region's natural, historic and cultural assets.
During the product building phase between August 2009 and May 2012, there was an overarching Sierra Nevada Wide Geocouncil and four local Geocouncils for each of the four phase areas - Northern Sierra Cascade, Southern Sierra, Tahoe Emigrant Corridor, and Yosemite Gateway. The founding Geocouncils listed below encouraged community participation in the nomination process, worked to ensure nominations reflected the diversity of the entire region, and selected the nominations for final review by the National Geographic Society.
Founding Geocouncil Members:
- Sierra Nevada Wide Geocouncil
- Northern Sierra Cascade Geocouncil
- Southern Sierra Geocouncil
- Tahoe Emigrant Corridor Geocouncil
- Yosemite Gateways/Scenic Byways Geocouncil
To continue the legacy of the founding members to bring the Sierra Nevada Geotourism project to life and reach travelers, a new group of Sierra Nevada Wide Geouncil members have volunteered to work with local residents and program managers.
Meet the latest members of the Sierra Nevada Wide Geocouncil as of 2014.


text:
About the book:
Jennifer Graham--mother, student, and embalmers apprentice--could use a friend. She finds one in McLane Larson, a newcomer to Mt. Dora, and is delighted to learn that the young woman is expecting a baby. While McLane's soldier-husband serves overseas, Jen promises to support McLane and then learns that her tie to this woman goes far deeper than friendship. When a difference of opinion threatens their relationship, Jennifer discovers weaknesses in her own character . . . and a faith far stronger than she had imagined.
A sequel to Doesn't She Look Natural?, the story picks up several months later. Jennifer Graham is now taking courses to become a mortician. She seems to have settled into the Mt. Dora community and her boys are making friends. Gerald still works at the funeral home and surprise, surprise, Jennifer's unknown half-sister arrives, bringing her own drama.
For the coverage of such serious issues as racism and abortion, the story is still very light and trite, with little depth or character development. McLane seems to be a good addition, but her father is a stereotyped caricature rather than a developed character.
Predictably, the story wraps up neatly, although it's not a completely happy ending. Christian lessons are learned along the way.
My big complaint with this story is the same one I had with the first book: the narration. Jen's story is told in first-person, which I rarely like. The chapters then alternate between Jen and the other characters like her sister, Gerald, and her son. These supporting characters aren't written as first-person, but are an awkward present-tense third-person narrative. It was very annoying and quite distracting. The story would have been much stronger had the author maintained the same style throughout it.
Like the first one, I'd give it 2.5 stars if I could. Good, not great.
Thanks to my local library for having a copy I could borrow. You can purchase your own copy here.
Read 3/08
* *
2.5/5 Stars
Friday, March 20, 2009
She Always Wore Red...Review
1 comment:
Subscribe to: Post Comments (Atom)


text:
Lecturer/Senior Lecturer/Reader in Mathematics
- Recruiter
- Location
- Bristol , City of Bristol (GB)
- Salary
- £36,613 - £56,950
- Posted
- 05 Oct 2017
- End of advertisement period
- 27 Nov 2017
- Academic Discipline
- Physical Sciences, Mathematics & Statistics
- Job Type
- Academic Posts, Readers / Senior Research Fellows, Principal / Senior Lecturers / Associate Professors
- Contract Type
- Permanent
- Hours
- Full Time
Lecturer/Senior Lecturer/Reader in Mathematics
Job number ACAD102934
Division/School Academic Faculties
Contract type Open ended contract staff
Working pattern Full time
Salary £36,613 - £56,950
Closing date for applications 27-Nov-2017
The School of Mathematics, University of Bristol, is seeking to appoint a Lecturer/Senior Lecturer/Reader in Mathematics. A Lecturer holds an indefinite appointment roughly equivalent to an Assistant or Associate Professor in the US system (depending on career stage); a Senior Lecturer/Reader is equivalent to an Associate Professor.
The appointment is part of a major strategic expansion of the School of Mathematics, which in spring 2018 will move to a substantial Grade-II listed property, providing office space for over 100 academics, 100 post-graduate students and 80 post-docs. The building is currently being transformed into a state-of-the-art mathematics teaching and research facility at a cost of £33M. The University is a member of the prestigious Russell Group, is ranked among the top 50 universities in the world, and 9th in the UK in the latest QS World University Rankings. The Shanghai Ranking of Academic Subjects 2017 has ranked Bristol's School of Mathematics amongst the top 40 mathematics departments worldwide.
We are looking for world-class researchers in any areas of pure mathematics, including those currently not represented in the School. The successful candidate will be based at the Institute for Pure Mathematics or the Institute for Probability, Analysis and Dynamics. The post-holder will be responsible for her or his own research programme, carry out appropriate administrative tasks and deliver excellence in teaching at undergraduate and postgraduate level.
The School of Mathematics has currently further openings for Lectureships/Senior Lectureships/Readerships in Applied Mathematics, Mathematical Physics and Statistical Science. Candidates whose expertise intersects with one of these areas are encouraged to submit multiple applications as appropriate.
Informal enquires are welcome and can be directed to Prof. Jens Marklof FRS (Head of School, email@example.com) as well as the Institute Directors Prof. Tim Browning (Institute for Pure Mathematics firstname.lastname@example.com) or Prof. Balint Toth (Institute for Probability, Analysis and Dynamics firstname.lastname@example.com).
The School of Mathematics is a supporter of the LMS Good Practice Scheme aiming at advancing women's careers in mathematics and we therefore particularly welcome applications from women for this post. http://www.maths.bris.ac.uk/admin/life/women/
Please note that it is the applicant's responsibility to ensure their referees send a letter of reference by email to
firstname.lastname@example.com by the deadline of 27 November 2017.
The University is committed to creating and sustaining a fully inclusive culture. We welcome applicants from all backgrounds and communities.


text:
Château la Rose-Trimoulet
Saint-Emilion Grand CRu
Château "La Rose Trimoulet", an estate that has been in the family since 1836, is located almost a mile to the north of the medieval town of Saint-Emilion. It is a small estate of 5 hectares whose vineyard is split into three plots, with different characteristics. This diversity results in a high quality, well balanced wine, with consistency from vintage to vintage.
52 % Sandy soil over clay with iron
26 % Clay soil over layers of chalk
22 % Sandy-clay over chalky clay with iron dross
Appearance: Deep red,
Aroma: Intense fruit aromas, red and dark fruits, cooked red fruits along with truffles and toasted notes.
Taste: This wine represents the region very well. Round with elegance. Supple and feminine. Plenty of fruit, but strong body, full tannins.
Aging Potential: 10-15 years
Dish: Best suited with red meats: beef, lamb, veal. Game birds. Exciting with mushrooms.
Cheese: Cantal, Ossau-Iraty, Reblochon, Tomme de Savoie
Temperature: 18ºC.
Vintage: 2009
Varietal: 80% Merlot, Cabernet Franc, Cabernet Sauvignon
Alcohol: 13.5%
2009 is an excellent vintage. The Bordeaux region had gentle, gradual weather all through the summer and into the fall as well. The result is fully ripe, concentrated, intense wines with round tannins. It is truly one of the best vintages in a long time. The intensity of the wines makes them ideal for cellaring, while the round tannins allow the wines to be enjoyed young as well.
Fermentation: both stainless steel and concrete vats are used. Concrete vats, often used in the past, until replaced in many vineries with stainless steel are now making a big comeback - it has been show to be better for the wine, especially red wines that may be cellared for extended periods of time.
Aging: a gentle oak aging process, aged in a mix of new to 3 year old oak casks for a period of 12 months. The wine from various parcels with different characteristics are aged separately, each according to its unique characteristics. The final blend is created after the aging process.


text:
(JACKSON, Miss.) — A Mississippi man woke up in a body bag as funeral home workers prepared to embalm him, ABC News affiliate WAPT reported.
Walter Williams, 78, of Lexington, Miss., was declared dead at his home Wednesday night. The coroner came to the house and pronounced him dead at 9 p.m.
"I stood there and watched them put him in a body bag and zipped it up," Williams' nephew, Eddie Hester, told WAPT.
Williams was taken to Porter and Sons Funeral Home. They were getting ready to embalm him, and that's when he started kicking inside the body bag.
"He was not dead, long story short," funeral home manager Byron Porter told WAPT. He said this was the first time he'd ever seen anything like it.
"My cousin called me and said, 'Not yet,' and I said, 'What you mean not yet?' He said, 'Daddy still here,'" Hester said.
Williams was rushed to a nearby hospital. The coroner said Williams' pacemaker may have shut down and then started up again, WAPT reported.
"I don't know how long he's going to be here, but I know he's back right now," Hester told WAPT. "That's all that matters."
Copyright 2014 ABC News Radio
Recent posts in National News


text:
Bloodwork Analysis
Bloodwork Analysis for Nutrition and Health
Your blood can tell us a great deal about what's happening inside your body. When blood is drawn, the lab analyzes the quantities of specific substances in the blood and compares them to normal reference values. While bloodwork is an excellent tool to help diagnose problems, it is crucial to understand that: even if all of your results fall within the reference values, you can still have a problem.
Thyroid hormone is a great example of this; many people have normal thyroid hormone levels, but still experience thyroid symptoms.
Our state of the art software uses the latest research to look for problems with your bloodwork that other doctors might miss.
Do you still have questions? We have answers. Call us now. We'd be more than happy to answer any questions you may have at (630) 505-4040.


text: This time it will be crowded under fairing of Soyuz-2.1a. Roscosmos planned lifting to the orbit their new remote sensing satellite, Kanopus-V-1K N1. Designed by NPO VNIIEM as imaging satellite for real time monitoring disasters and general observations. Equipped with panchromatic cameras is able to take pictures with resolution at 2.1m and using multispectral camera with resolution at 10.5 m. Additional payload will be: Zond satellite for sun observations designed by NPP VNIIEM especially for Lonozond project), two Corvus-BC satellites by Aquila Space for Earth observation utilizing multispectral imaging camera with a resolution of 22 meters per pixel, and four SatByul satellites. SatByul are small imaging satellites operated by South Korean company SatByul Co, Ltd. Roscosmos planned to utilize Soyuz-2.1a combined with Fregat-M upper stage. This version of Soyuz is upgraded Soyuz-2 by replacing analog flight control with digital systems, upgrading boosters and injecting system in first stage of the rocket. Changes were performed for increasing capabilities of the rocket for launches with larger payload fairing. Fregat-M is upgraded Fregat module by NPO Lavochkin with bigger fuel tanks.


text:
At IGS, we are proud of our strong school spirit and sense of community.
In keeping with the School's value of connectedness, we will be hosting an Alumni Panel Breakfast on Thursday 22 February 2018. This event will give guests the opportunity to learn more about various paths Year 12 students follow after school.
We have an exciting panel of speakers, eager to share their own experiences post IGS and provide an engaging forum for our senior students and their parents to ask questions.
Ella Kucharova (2003)
Ella graduated from IGS in 2003 and is now a Human Rights Lawyer. After completing Law School at UNSW, she spent five years working at Canberra Community Law, a community legal centre for people who are homeless or at risk of homelessness in the Australian Capital Territory.
In 2012, she volunteered at the Louisiana Capital Assistance Centre in New Orleans assisting people facing the death penalty. In 2015, following a hike from Mexico to Canada on the Pacific Crest Trail, Ella completed a Master of Law at the University of Cambridge on a Cambridge Australia scholarship. She then spent six months living in an Inuit village in the Canadian arctic. After competing in a "Race to Alaska" rowing expedition, she returned to Sydney and now works at the Australian Human Rights Commission, and can also be found slinging ice-blocks at local farmers' markets on the weekends.
Katinka Day (2005)
Katinka Day is the Campaign and Policy Team Lead with Australia's leading consumer advocacy group, CHOICE. She is responsible for CHOICE's food and health policy areas and has achieved positive change for consumers on free range eggs, false health claims and country of origin food labels.
Her background is in digital campaigning and marketing, previously working in the animal welfare and food sustainability spaces. Prior to this she worked for both the public and private sectors in marketing roles. Katinka has a Bachelor of Commerce from the University of Sydney and is currently completing her MBA, specialising in Non-Profit Management and Social Enterprise at UTS.
Eryk Bagshaw (2007)
Eryk is a Political and Economics Correspondent for The Sydney Morning Herald and The Age based in the federal press gallery in Parliament House, Canberra. He is a former winner of the Walkley Young Journalist of the Year Award for print and the NSW Young Journalist of the Year Award.
In 2017, he won the Walkley Our Watch Award for an investigation that led to a Human Rights Commission inquiry into sexual assault at all Australian universities. He graduated from IGS in 2007 and has a first class honours degree from the University of Sydney.
If you are interested in learning more about the event, please contact IGS Director of Advancement Julia Glass.


text:
India's BSE Sensex gained over 350 points today and is trading over 27850
Sustain2Green is a unique platform to bring forth articles, thoughts, surveys, news, discussions about Politics, Economics, Environment, Climate change, carbon, resources, waste, sustainability, social issues, clean technologies, energy, CSR etc. Our aim is to bring people on this platform and make a sustainable impact . Indexed by The Huffington Post.Ranked in the Top 50. Contact us at "sustain2green(at)sustain2green(dot)com". It does not claim copyrights or originality of posts.
Friday, January 2, 2015
#India's #BSE #Sensex gained over 350 points today and is trading over 27850
Labels: Economics
Subscribe to: Post Comments (Atom)


text:
|From: Carl Eastlund (cce at ccs.neu.edu)
Date: Mon Jan 28 10:11:34 EST 2008
On Jan 28, 2008 10:03 AM, Grant Rettke <grettke at acm.org> wrote: > > On the fringes of the professional community (blogs posting and > articles), there has been a lot of hype about Haskell for the past > year or two. So much so that 'functional programming' and 'lazy' > seemingly go together like 'peanut butter and jelly'. Do you know any Europeans? You should ask them what they think of peanut butter and jelly. Lazy programming, like PB&J, is a regional taste not always shared by the rest of the world. > If I hear one more person tell me "Well you know Haskell is a *pure* > functional programming language unlike Scheme...", I guess I wouldn't > be surprised. Pure just means it's missing some stuff. ;) -- Carl Eastlund
|Posted on the users mailing list.


text:
Top youth stars clash this Thursday-Saturday at Star soccer Complex.
Red Bull Battle Del Toro is a spirited, fiercely competitive homage to the Battle of the Alamo – soccer style. Throughout this three-day tournament, four U16 teams from Texas featuring some of the state's biggest phenoms will clash cleats with four U16 teams from Mexico boasting some of the country's top emerging stars.
What's on the line? Tournament bragging rights. Personal triumph. National pride. Plus a trip to New York to face off against The U16 Academy Team of the NY Red Bulls in the new state-of-the-art Red Bull Arena.
All matches will be played at the STAR Soccer Complex, the premier soccer facility in South Texas.
One of the most notable Mexican footballers, goalkeeper Jorge Campos, will make an exclusive one-day-only appearance at the STAR Soccer Complex Saturday, July 17.
Teams Competing
* Club America – Mexico City
* Tigres UANL – Monterrey
* Atlas – Guadalajara
* Chivas de Guadalajara – Guadalajara
* Classics Elite – San Antonio
* Dallas Texans – Dallas
* FC Dallas – Dallas
* Albion Hurricanes – Houston
This is a three-day event, with qualifying games at 6:00 and 8:00 p.m. Thursday and Friday and final round games at 6:00 and 8:00 p.m. on Saturday. Admission each day is only $5.
Advance, pre-sale tickets can be purchased at STAR Monday-Wednesday 9:00-11:30 a.m. and 1-4 p.m.
Walk up, event-day tickets can be purchased starting at 4:00 p.m.
For more infomation, contact STAR at 210-495-8686


text:
WR Robert Woods continues to look like a big part of the Bills offense.
Rookie WR Jarvis Landry could earn early playing time with the Dolphins.
S Duron Harmon is on track for a starting job on the Patriots defense.
The Jets signed K Andrew Furney and P Jacob Schum while parting ways with TE Terrence Miller.
A new scheme and new faces make for a new look Ravens offensive line.
The Bengals are showing all the signs of a team that wants to run more often.
This summer's Browns intrasquad scrimmage will be played at the University of Akron.
The Steelers have shown plays with running backs Le'Veon Bell and LeGarrette Blount on the field at the same time.
G Ben Jones caught a wobbly punt to bring an end to Texans offseason workouts.
Said Colts WR Reggie Wayne, "I felt like I kind of left them hanging a little bit last year, so I want to be back out there with my teammates. As far as you guys, do I have to prove anything else? Got 13 years of a resume to provide you guys. I can email, mail it whatever you want me to get it to you."
The Jaguars feel they accomplished a lot over the last few weeks of workouts.
QB Charlie Whitehurst has a firm grasp on the backup job with the Titans.
DE Quanterus Smith hopes he can make an impact on the Broncos this season.
Marcus Cooper and Ron Prince are getting chances at cornerback for the Chiefs.
LB Khalil Mack is causing some excitement around the Raiders.
Chargers TE Lardarius Green got a lot of work this week with Antonio Gates dealing with a personal matter.
Swim goggles are part of the training program for the Cowboys tight ends.
The Giants are considering using WR Rueben Randle out of the slot.
The Eagles took a look at Vinny Curry as an edge pass rusher as offseason work wound down.
Redskins defensive coordinator Jim Haslett likes the potential of this year's defense.
It looks like QB Jimmy Clausen will go to camp with the Bears.
TE Eric Ebron is working his way up the ladder with the Lions.
Packers CB Tramon Williams is working to silence doubts about his game.
The Vikings aren't expected to meet with CB Brandon Flowers.
QB T.J. Yates was enjoying a burrito with his wife when he learned he was traded to the Falcons.
Said Panthers C Ryan Kalil, "Joe has been doing a really good job, and especially in our offense, which isn't an easy one for quarterbacks."
Forecasting the center competition with the Saints.
Are the Buccaneers a potential landing spot for DE Jason Babin?
Which Cardinals players are in line for new contracts?
G Davin Joseph is happy to be healthy with a fresh start from the Rams.
49ers players like what they've seen from WR Michael Crabtree.
The Seahawks kept scuffling on the final day of their offseason work.


text:
Cannabis Product Review – Show 64
In this episode of Cannabis Product Review, we discuss an upcoming cannabis strain that Ruby's dad is sure to love. It's coming to us from her dad's doppelganger, Tommy Chong. He recently announced he is developing a new strain called "Chong Star". Hilarious. And we can't wait to try it!!
Now that the era of cannabis prohibition is finally coming to a close, the famous stoners of bygone eras are stepping away from their bongs, wandering out of their man caves and looking to cash in. Bob Marley's descendants may be trying to brand a strain of weed named after the famed reggae singer, but L.A.'s own Tommy Chong is thinking a big more broadly. Yes, his own strain — "Chong Star" — is in the works. Read more….