Using small business VoIP

Companies are looking for ways to reach customers on the web and then  be able to stay connected via the web and other means of marketing.  Today those words are more true than ever as companies are seeing the  success of MySpace, Facebook,  Youtube , and more recently Twitter. They  know that in order to appeal to the younger crowds they need to play  where they play. Many are not turning to TV to get their information,  but rather online blogs and social communities. Many small to medium businesses may look at some of these new expanding digital channels as a barrier because of the the technology. The great thing is that they are basically free tools that allow you to stay in touch and grow your business while keeping a tight control on your overall budget.

You will see major organizations,news channels, and popular brands now setting up spaces on these high profiles social media sites. Smaller companies are turning to hosted voip services in order to stay connected with their customers. By simply upgrading their current phone system to a small business VoIP system you can roll out a touch point for your customers in a matter of days instead of months and the overall cost is about 50%-80% less that what you may be paying now. With many great features like unlimited calling, virtual receptionist, and voicemail small businesses are now able to look big while not spending thousands on a larger PBX system. This will allow them to focus on more important factors to drive business like customer support and marketing.

The technology behind VoIP has gotten better each year with the availability of more robust broadband connections. VoIP allows you to take your phone anywhere you want and by simply plugging into a computer with a broadband connection you can have your office phone with you wherever you go. This is great for companies that have outside sales people that travel in various parts of the county. Their customers can call a central number and be directed to their customer support or sale representative no matter where that person may be in the country. For small businesses the ability to stay in touch with their customers is critical in their success and while they may not have the budget to staff a call center 24/7 small business VoIP gives them that feel through services like call flipping and virtual receptionist that companies like Vocalocity offer to their customers. Plus the phones and systems are scalable with just a simple phone call so that as your business grows you simply call and add on additional users and no hardware or software upgrades because Vocalocity handles all that for you. The world we live is definitely getting smaller so being able to use the technology we have to make us look bigger can help you compete in today’s fast paced world.


Take your broadband connection with you

As the access to broadband grows and providers continually add more capacity to their systems you  will see more and more broadband deals. Companies will be competing for your business and are even offering free laptops to obtain your connection. Sites like FaceBook, MySpace, and  LinkedIn are helping to expand wireless broadband as people are wanting to stay connected no matter where they and want the ability to chat and check up on their friends anywhere they are. As more and more companies increase their cheap broadband offers the customer will ultimately win. This is similar to what we saw with the phone companies back in the early 90’s when they started offering unlimited local and long distance calling. They saw that customers had more choices and with the internet and high speed access was growing they had to retain their customers.

Now broadband companies are offering free equipment and the actual connections devices called dongles to lure more and more customers to their offers. Along with pay as you go mobile broadband plans you can now take your broadband connection with you. Many people are confused about the actual use of a dongle. Dongles are a piece of computer hardware that connects to a desktop or a laptop most often at the back of a computer to the parallel port. This little piece of hardware can work as a device to extend a connection from one piece of hardware to another or it can also work as a security measure that will have a separate code in order to allow the user to have access to certain applications. It allows devices to connect to the mobile internet without the need to be a near a Wi-Fi hotspot. I wouldn’t get hung up on how you are connecting because these devices are just a simple way to help get your broadband signal. You can check out Broad Band Genie to help you shop, compare, and find the best overall deal and provider for your needs.

 


Recording Animation

In recorded animation, model variables are set from stored values. A few uses are recording human motion (mouse movement) and recording incremental animation. Recording incremental animation would then let you play it back with the kind of control parametric animation gives. You could also get ahold of some motion-capture data and massage it into a form that can be used for playback within Director.

The recording of the animation may be done as part of the program, or done beforehand. If it is done beforehand, the data needs to be saved, most conveniently in a field or text cast member, and then retrieved at run-time. For saving lists in text form, see the Lingo functions string() and value().

Playback of recorded motion is essentially a parametric animation, with the parameter driving an index into the list of recorded values.

This demo allows the user to record a piece of incremental animation, and then play it back with a slider driver. The animation is a combination of collision and general gravity.

on startRecording()
recordList = [:]
repeat with sp in instanceList
recordList[sp] = []
end repeat
state = #recording
end

on record()
repeat with sp in instanceList
recordList[sp].add([#x: sp.x, #y: sp.y])
end repeat
end

on playBack(p) — p:0->1
totalPos = recordList[1].count
index = integer(p * (totalPos – 1) + 1) –index:1->totalPos
repeat with sp in instanceList
pos = recordList[sp][index]
sp.x = pos.x
sp.y = pos.y
end repeat
end

Methods from script “modelManager”

In this demo the recording is done by a script adapted from the modelRate script in Independent Model Rate, and renamed modelManager. The three methods above show how it does recording and playback.

Notice that the variables recorded are the animation model variables, not the sprite properties. This is generally the best way to go, for several reasons:

  • less information to record. For example, in 3D the x, y, and z coordinates are used to set more than three sprite properties. Of course, this means that during playback a rendering algorithm will still be needed.
  • more importantly, at playback you still have control over rendering.

The variables are recorded once each movie frame in this demo, rather than once each model frame. In this demo the model rate is about 20 times the movie rate. If you wanted to do “super slo-mo” playback, you could record the variables based on model frames, and at slow playback you’ll get a smoother motion.

To record the movement of the mouse, use a script that keeps its x and y animation model variables at the mouse location, and pass the script instance to modelManager’s addInstance() method.

Miscellaneous Points
recordList
This is the property list used by modelManager to record the x and y variables of each recorded object. The unusual thing about it is that the keys in the list are object references. recordList associates each object reference with the linear list of recorded position settings for that object.

Usually in sample code the keys are symbols, but the property list can be used to associate values of any data type with each other. This is generally called a hash table, and most likely property lists are implemented in Director using a hash table of some sort.

If recordList is saved in a text cast member, retrieving the list using value() will not recreate object references. To save recordList, use something like sprite numbers for the keys instead of references.

Animation Anomalies
If you watch the animation long enough you’ll notice some interesting anomalies in the behavior of the objects. When I have time I’ll try to pinpoint what is happening. There may or may not be a perfect fix.

Things To Try
Make the playback “instant replay” style by using a time driver instead of a slider to control the playback. You might use a slider to control the speed of the replay.


find caskets los angeles

When you lose a loved one the last thing you want to do is start haggling over burial costs. From the type of funeral home to Caskets, to flowers the costs can quickly add up and most of the time unless you have a pre-arranged plan you end paying a lot more than you need to. Thanks to the FTC funeral rule you now have specific rights in requesting specific services and even price quotes in order to help in the planning process. It is common practice for funeral homes to offer package deals that just show one price so you are never sure of what you might be getting and how much you are actually paying for items like the caskets in los angeles. With the FTC funeral rule funeral homes must now provide you with itemized expenses in order for you to chose which items are best for you and which ones you can afford. This also means that a funeral cannot refuse to handle a casket or urn that you have purchased at another location. You can find Caskets for Sale that are available now and can be shipped to you quickly especially if you live in Los Angeles. You can search caskets los angeles where they have both same day delivery and free delivery on certain models.This is also a great resource for consumers to help you save hundreds of dollars. You can order the casket online and have it shipped to the funeral home of your choice usually withing 24 hours.

In a lot of cases you can save with comparing caskets los angeles  to local funeral home prices. You will find the ability to get same day service for Los Angeles customers in search of caskets and related services. The site is set up for simple price comparison and they also offer a great resource to help answer questions and offer live help with one simple call. You can avoid any high pressure sales situations and get the customer service and help you need in a time of loss. So if you are in the position of having to plan a funeral do not let the costs add more stress to what you and your family are already dealing with. You have rights to plan the funeral you want without breaking the bank in the process.


3D Resource Objects

3D Resource Objects

Related Topics:
3D World Hierarchy
Spring Forces

In this demo, resource geometry is separated from the 3D hierarchy so that the same resource can be used multiple times in the 3D world. One advantage to this is animating the resource will animate all appearances of it—the three discs in the demo below all use the same disc resource.

Drag off objects to rotate group
3D Resource Objects - source movie

The resources in this demo are programmed as trees, and consist of a root node with the faces as its children. To use a resource in the 3D world, the “resource” property of a 3Dnode is made a reference to the root of a resource tree:

With this arrangement rendering involves traversing the 3D world tree, and when a 3Dnode uses a resource, traversing the resource tree and rendering its nodes.

Use of Inheritance
The nodes in the two types of trees in this demo, 3D world tree and resource trees, both need tree-related properties and methods but also need properties and methods unique to each type of tree. For example, nodes in the 3D world tree need a resource property to point to a resource, while nodes in a resource tree need a list of vectors to store geometry. Programming this using inheritance is a good way to go.

To do that, a script called “treeNode” is programmed as a generic tree node, with parent and child properties and methods for managing a tree. This script serves as the ancestor for 3Dnode and resNode, the two types of nodes that make up the 3D world tree and resource trees, respectively. The 3Dnode and resNode scripts contain the properties and methods unique to their respective tree types.

Inheritance is used again for the scripts that automate creation of different resources geometries such as cylinders, planes, cubes, etc. These scripts inherit the resNode script and function as the root of the resource trees. (They also inherit treeNode via resNode).

Animating the Resource
This animation uses a “spring system” which is a bunch of objects that act on each other with spring forces (as if they were connected by springs). The objects in this case are the vectors that specify the outer edge of the disc resource. These vectors are stored in the edgeVerts list of the resDisc object.

Using forces means using the physics model (position, velocity, acceleration):

– spring force
spring1 = (zInit[i] – verts[i].z) * .04
spring2 = (verts[prevI].z – verts[i].z) * .08
spring3 = (verts[nextI].z – verts[i].z) * .08

– acceleration, velocity, position
zAccel = spring1 + spring2 + spring3
zVelo[i] = zVelo[i] + zAccel
verts[i].z = verts[i].z + zVelo[i]

– dampen velocity
zVelo[i] = zVelo[i] * .9

modelFrame() method in script “discWave”

The disc resource lies in the x-y plane so the wave is created by animating the z coordinates of the edge vectors.

Three spring forces act on each vector, all given by the spring formula (restPosition – position). The first pulls the vector back to its initial position. The second two cause the vectors on either side to pull the vector in their direction, which creates the wave.

The velocity is dampened so the wave eventually dies out.

The wave is started by setting the velocity of a vector (zVelo[i]) to a non-zero number.

•What would happen if only the first spring force was used? What if only the last two were used?

This animation can be done in Shockwave 3D by animating a mesh vertexList.


Seniors looking for love in all the right places

Over the last decade internet dating sites have become one of the most popular methods of matchmaking for the over 50s. Sites that cater for those looking for friendship, romance, companionship and even the modern equivalent of a pen pal have cropped up across the net and cyberspace has become a safe place for anyone who wants to vet potential partners before meeting up in real life.

The revolution of dating

For the older generation, dating used to be a very formal affair with strict rules and etiquette. These days the dating scene is far more casual and for those who have not been exposed to it, it may come as a bit of a shock. Internet dating is an excellent middle ground for those looking to get back into dating and it can be kept as formal or casual as the individual desires. Many over 50’s are widowed or divorced and have not dated since the days of university, so the internet offers the ideal platform to reconnect without the pressure of a face-to-face meeting.

The internet has revolutionised dating completely and profiles can be created to attract people with similar interests and lifestyles. Getting into internet dating is easy and there is a wealth of advice online that is designed to help seniors navigate new waters. Online dating sites have changed the way people of all ages meet and senior dating is now so commonplace it has even acquired the nickname of “grey dating”!

Meeting new people online
Many newly single seniors dread the thought of having to start from scratch and the idea of meeting new people can be daunting. The internet helps alleviate this as it offers a barrier and the user can choose how much information they wish to share and how anonymous they wish to remain. Many dating sites have stringent sign-up criteria and are designed to ensure the confidentiality and safety of users and no personal information is ever revealed unless the owner gives permission. This allows for a neutral ground and affords the option of declining a date without disclosing too much about yourself or having to endure an awkward coffee or dinner meeting. If you have been too scared or shy to try internet dating up until now but have decided that it is definitely worth a try follow link to find your perfect match and join millions of other seniors who have found love online.

With one in three marriages ending in divorce and the internet becoming more accessible with every passing moment it’s not surprising that online dating has become an easy and acceptable way to meet new friends and potential partners. Social media has played a big role in encouraging people to interact and this has led to many seniors becoming more familiar with the web and exploring other areas of interest.

Online dating is not only for those looking for romance, it’s also an easy way for people to meet others seeking friendship, companionship or support. Finding love in cyberspace is now a reality; regardless of your age!


We Can Find Our Future in Our past

You can be excused if you are beginning to feel a little numb from all of the technological progress which engulfs you in your daily life. It was only a few years ago that flat screen televisions were a new sensation. Now, they’re talking about making them work in 3D, using special glasses. A decade ago, we didn’t have any smartphones (unless you count the original BlackBerry devices) and no one was even thinking about what a tablet could do, until Apple surprised us five years ago with the first iPad. Things seem to be moving so fast, that you can be excused for thinking you could not possibly keep up with it all. But it wasn’t always so. It wasn’t that long ago that progress moved along at what we would consider today a snail’s pace. It is hard to believe that it was just over 200 years ago that our modes of transportation were revolutionized, when the steam locomotive was introduced.

The Romance of a Bygone Era

While today’s trains are fast, silent and efficient, the earliest steam locomotives and the carriages that they took with them were noisy, dirty and made a terrible clatter. But for many of that period, all the commotion was part of the romance of traveling by train. The UK was in many ways the birthplace of the modern railroad. Before the steam engine had been invented and improved by various enterprising fellows, such as Thomas Newcomen and James Watt, right in the middle of the 18th century, there were some crude railways, which used horses to draw a few carriages along. Actually, they were painfully slow, at least when compared to today’s standards. But by the early part of the 19th century, a steam engine which could be successfully used with a steam locomotive was introduced. In short order, rails were laid out across the UK and also in the US, which basically imported British locomotives until they developed their own.

An Imposing Presence

While today’s latest generation of electric or diesel powered engines move trains along at speeds that would have been unimaginable 100 years ago, they are also quite sleek and aerodynamically shaped so as to create as little resistance to the wind as possible. But the original steam locomotives were anything but graceful. They were big, powerful beasts which snorted and grumbled any chance they got. When pressure was released from the boiler, they gave off a loud hiss which would scare any child, as well as most adults that stood near. The collective impression that they have left on our national conscience is evidenced by the celebrations surrounding this year’s 150th anniversary of the Highland Main Line. However, while these old locomotives have a fascination all of their own, rail transportation today is arguably a lot simpler, faster and more efficient way to travel. Going to places such as Hull from London using the services of www.hulltrains.co.uk/, are a delight, as they can provide you with extremely comfortable and fast transportation.

Are We in Love with Our past?

Somehow, those big snarling steam locomotives remind us in many ways of a time when life moved at a far more tranquil pace, when we weren’t bombarded with information every second of our lives and when, some would argue, the quality of life was better. But, like every civilization that has come before us, we’re moving resolutely forward. It is hard to imagine exactly what the future will bring.


Would you become a logger

I have lived in the Pacific Northwest for almost 20 years and had never really appreciated the role the forests play in overall economy of our state. I had started to watch a show on The History Channel called “Ax Men” that follows a group of loggers and details the daily challenges they have in getting logs to mills. In the early years many of the logging companies harvested the trees near bodies of water that enabled them to transport them to nearby mills. As they moved more inland they needed to develop tools and techniques that would enable them to cut down the trees and then move them to a road where they would be loaded and transported.

I have always loved to climb trees when I was a young kid and still have the idea that one day I will build a cool tree fort for my kids. Right now I am relegated to just pruning and maintaining our trees so that they do not grow into the house.You can find tree pruning tools at  Sherrill Tree that can help you in maintaining  the health and look of your trees. There is something to be said about well groomed trees and the look can actually help add more value to your home. One thing I found out from a tree expert that you can actually control the height and spread of your trees if you just do a little maintenance every year.


Five Reasons to Hire a Professional Web Design Team

Five Reasons to Hire a Professional Web Design Team 

The bustling town centre of Caerphilly has a plethora of business parks where you can find the key to your company’s successful web design a method for outperforming your competition.  You have a vision and objectives for your company but you may not have the creative skills and talents to bring all of the elements of effective web design together to strengthen your internet presence.  By hiring a professional design team, you can present your ideas and leave the creative endeavours to the craftsmen who are passionate about their work enjoy accepting the challenge of making your company a success with their work.  Jacqueline Sinex in her article, “5 Reasons to Hire a Professional Web Designer,” states that a professional team can, “help you execute your vision.”  Let’s explore the reasons a professional team will benefit your company.

Reason #1-Deliver the right message.  An experienced design team will know how to inform your visitors about who you are, what you have to offer, and how you can improve the quality of life of your clients.  The proper message delivered in a powerful manner to a targeted audience is an effective way to establish your brand.

Reason #2-Making SEO strategies work for you.  A professional web design team knows the importance of SEO in the marketplace today and how to formulate codes that increases your Google rankings.  They’ll know how and where to place words in your message that drive great volumes of traffic to your cyber storefront.

pastedGraphic.pdf

A professional web design Caerphilly team will make your internet presence stronger and help you to outperform your competitors with an attractive and functional website.

Reason #3-The Caerphilly team can take care of your web design whilst you run your company.  As you know, in business time is money and if you leave the marketing and design strategies of your website to the professionals, you’ll have time to focus on improving your business and introducing new products.  Let the expertise of a design team save you time while you make money.

Reason #4-Your design team can help you out-perform the competition.  There are a plethora of websites on the Internet clamouring for business and a professional team can design your website to stand out above all of the rest.  Your website must be unique, attractive, deliver a credible message, and function properly to convert visitors to sales, which is the bottom line of a website.

Reason #5-Give yourself a break from stress.  When you decide to hire a team of web design Caerphilly professionals to create your website, you’ll be removing some stress from your daily routine and experiencing peace of mind.  It’s important to choose a reliable team that you trust and that has a proven track record of success when contracting with a team to do work on behalf of your company.

In the centre of Caerphilly, you’ll find a bevy of businesses with one holding the key to your website success.  Partner with professionals for success that places you head and shoulders above your competitors.

 


The Quad Property

The sprite.quad property is a list of four points that specify the screen coordinates of the corners of a sprite. If the quad property is set in Lingo, Director will distort the sprite accordingly. This allows the rendering of 3D rotation of a sprite.

Drag on the screen to spin the object
Quad propertysource movie

property sp
property verts
property trans
property rotVelo

on beginsprite(me)
sp = sprite(me.spritenum)
verts = []
verts[1] = vector(-1,1,0)
verts[2] = vector(1,1,0)
verts[3] = vector(1,-1,0)
verts[4] = vector(-1,-1,0)
trans = transform()
trans.scale = vector(150,150,1)
rotVelo = vector(.3,.2,0)
end

on exitframe()
modelFrame()
render()
end

on modelFrame()
trans.rotate(rotVelo)
end

on render()
eyez = 500
ptList = []
repeat with v = 1 to 4
vec = trans * verts[v]
persp = eyez / (vec.z + eyez)
pt = point(vec.x * persp, vec.y * persp) + stageCenter
ptList.add(pt)
end repeat
sp.quad = ptList
end

The Model
The animation model in this demo consists of four vectors, a transform, and a rotational velocity. The four vectors specify the corners of the object, and are analogous to a “model resource”. The transform is used to specify the scale, translation, and rotation of the object. Each model frame, the transform is rotated by a vector that specifies rotational velocity.

The model could have been stored in four vectors that specify 3D world coordinates, without using a transform. But keeping the resource information and transform separate makes transforming easier, and makes it easier to animate the corners with respect to each other.

•How would you change the “registration point” of the plane?

Rendering
Multiplying each resource vector by the transform gives the 3D world coordinates of the corners. The perspective equation is then used to map the 3D points to 2D. The 2D points are put in a list which is used to set the sprite’s quad property. The order of the points is clockwise from upper-left for right side up facing the viewer, which is the reason for the order of the resource vectors.

The next section shows how to combine quads to make 3D objects.


The Ongoing Warfare Amongst Search Engines

The Ongoing Warfare Amongst Search Engines

 

We all use them, sometimes with trepidation, sometimes with a high degree of confidence. Search engines are truly the motor that drives the Internet. Being highly ranked on some of the most popular search engines can mean almost guaranteed success for any website that has a for-profit business, either selling products or services. The search engine business is big business these days, with millions of new visitors coming to the Internet every month. The fact that everyone, from search engines to popular social networks such as Facebook and Twitter, is competing for advertising dollars to increase their revenue makes for a heated battle. One of the countries that many feel has the most unlimited potential is China.

 

Guest Posting

Guest posting is a very popular trend

 

Over 1 Billion People Can’t Be Wrong

When one thinks that China was mired in the Cultural Revolution, which was created and fomented by Mao Tse-Tung back in the 60s, a period when China was virtually shut off from the world, it is amazing how far they have come in such a short amount of time. With both eyes open to the West, China has become one of the great low-cost manufacturing hubs of the world. As a result, they have an emerging middle class, which obviously wants to be able to buy many of the latest trendy things that are available to them. For this, they use search engines, just as we do, to find what they’re looking for. With a potential consumer base which is arguably the largest on earth, it is only natural that any search engine company would want to establish its dominance there.

 

When in Doubt, Merge

Although Google is universally recognised in the West as possibly the most popular search engine of them all, it doesn’t have the same luck in China. Some recent surveys indicate that, in fact, Google only has about 2.1% of the search engine market in China. Local providers are far stronger, possibly because the Chinese have more of an affinity for their own companies, or perhaps because the local search engine companies have done a better job of promoting themselves. The fact is, competition sometimes makes for strange bedfellows. Therefore, many in the industry are not surprised that the third- and fourth-largest (by market share) search engine companies in China are going to merge. They are known as Sogou and Soso (truly, Chinese to us!), but together they command just 12.5% of the Chinese search engine market. However, they’re expecting to be able to make inroads with this new alliance. Their target: Baidu, the most dominant search engine in that market, commanding an impressive 69% of all search engine traffic.

 

Getting Visibility

One way to be highly visible on search engines, no matter where you are in the world, is by having high-quality articles posted on your website – or potentially on other websites that link back to yours. Writing for an Internet audience is not always easy, however, and is best left to the experts. The practice of guest posting is one that is continually gaining momentum as companies look for cost-effective and dependable ways to increase their visibility on whatever search engine their potential customers use, whether it be Google, Bing, or Baidu.

 

 

Image attributed to: http://www.flickr.com/photos/renaissancechambara/3959871344/

 


SEO reseller – top 5 benefits for your business

SEO reseller – top 5 benefits for your business The benefits to any business which becomes an SEO or content marketing reseller are many. However, to save on space yet still offer an indication of how selling SEO services as a bolt on element to your business, I am going to mention only the top five. They are listed below in no specific order, and all will deliver tangible results to both your business and to your clients’ businesses too.
Add a new dimension to your digital business as an SEO and content marketing reseller

Benefit number one Any business which has a website – and that means virtually any and every business nowadays – has to achieve as high a ranking as possible within Google and other search returns. Your business may be a design agency, technology company, PR agency or other consultancy firm. The benefit here is that you can offer a full SEO and content marketing service which is seamlessly integrated with your current business model without the expense of hiring staff, leasing new hardware or expanding business premises.

Benefit number two As an SEO and content marketing reseller, you do not have to worry about researching the elements of a successful content marketing strategy. Keyword usage, popularity and placement, off site blogging, content generation, back linking and other relevant elements are all taken care of by the SEO agency for which your business is a reseller. It is tedious, time consuming and costly if you do not have the resources or experience of long term successful SEO.

Benefit number three By offering such a service as a reseller, your business will derive revenue streams from clients without the hassle of doing the work. In real return terms, anything from fifty to eighty percent of the revenue generated from clients as a result of reselling to them SEO services will be profit.

Benefit number four There are no physical parameters to SEO reselling. You can scale the service you offer to clients to within their budget parameters. It may be Pay per Click, generating content, creating a digital marketing strategy…in fact, you can offer as much or as little as the client demands, safe in the knowledge your SEO provider will deliver.

Benefit number five As a reseller your business will thrive as your reputation grows within the local business community. Positive referrals will be made and increase your potential for revenue and profits from new, unique channels which were not previously open. It is not unusual for a reseller to resell services to other SEO agencies.

The information is taken from the SEO reseller in ocere.com webpage. As a marketing reseller for an agency such as this you will be able to free up more of your valuable time to focus on generating more sales for your business. Depending upon the relationship you choose with such an agency, you can refer clients direct and earn commission, or indeed offer branded SEO to clients. Whichever method you choose you’ll benefit from the provider’s experience, while your clients will benefit from improved ranking, traffic numbers, conversions rates and revenues.


A conversation with my daughter

It seems like today’s kids are growing up so quickly and their dress and appearance is making them look older . I am talking about the various piercings and tattoos that seem to be appearing on younger and younger kids. My 12 year old daughter has been asking my wife and I for a second ear piercing and so far we have not given in. She comes home from a friends house where she sees a pic of one of her friends on Instagram showing a pierced naval. The conversation turns to why she can’t get a second piercing for her ears. I tried to explain to her that permanent things like piercings and tattoos are something that she will live with for the rest of her life and there may come a time when they are not that cool and you could be stuck with it.

hair_featherI asked her why she wanted to do the same thing her friends were doing and she said that she was not necessarily wanting what her friends had, but wanted to be able to have her own style. So we looked at pics online of Fine Featherheads colorful hair pieces that come in a lot of different shades and styles that can easily be added or removed from her hair. This gives girls of all ages to create their own look while not permanently altering their bodies. She had seen these hair extensions at a craft show and was actually very interested at the time. Now I think I have her refocused on doing something simple to her hair that she can take out at anytime and create her own style and look.


Space Viewport 2.0

Case Study: Space Viewport 2.0

Related Topics:
Space Viewport
Perspective & Other Depth Cues
Data Structures and Recursion

View controls:
Drag in viewport to pan
Drag on ‘radar’ to pan
Alt-drag in viewport to zoom
Click ‘follow’ to follow ship
Ship controls:
left/right arrows to turn
ctrl to thrust

Space Viewport 2.0source movie

This demo builds on the first version by giving universe elements a depth and rendering with some depth cues, and also storing the universe model in a tree rather than a list.

Depth & Perspective
The field of action is still two dimensional, but adding depth makes the visuals more interesting. It’s pretty simple to do. Each element is given a z coordinate which is used for perspective and for blendlevel (haze) and locz (z-axis blocking).

Notice how the method uniToView() which maps universe to screen coordinates now makes use of the perspective value. First the offset from the camera is found (vec – camVec), then perspective is applied, then zoom and shifting:

on uniToView(vec)
vec = (vec – camVec) * persp
loch = vec.x * zoomLevel + viewRect.left + viewRect.width/2
locv = vec.y * zoomLevel + viewRect.top + viewRect.height/2
return point(loch, locv)
end

Tree Structure for the Model
Instead of being stored in a list, the objects of the universe are now stored as a tree. The universe object is the tree root, and each object’s position is relative to its parent. The circling planets show how the tree structure simplifies the programming—the planet script doesn’t need to take into account how the sun fits into the rest of the scene. For more on using a tree and transforms in animation see 3D World and the other 3D quad demos.

Migrating to a tree structure was made much easier by inheritance. Simply making the treeNode script the ancestor of universeElement gave all the model objects the properties and methods of a tree node.

This demo is a relatively rare example of the use in Lingo of a series of inheritance, where a script’s ancestor itself has an ancestor. For example, ship inherits universeElement which inherits treeNode. Does it make a difference if universeElement and treeNode are reversed in the order? It wouldn’t to the ship script, but there are reasons to arrange it the way it is. Abstractly, according to the “is a” relationship of inheritance, universeElement is a treeNode but treeNode is not a universeElement. Practically, if you wanted a node just for grouping in the model you can now just use a universeElement object (because it inherits from treeNode).


Functions

Functions

A function accepts zero or more values, performs some set of operations on them, and returns one value as the result. The values accepted by the function are called the parameters, or arguments of the function. Almost all functions have at least one parameter (pi() is one exception).

Lingo provides many functions, such as power(), sin()log(), and abs(). If you write a handler that returns a value, it operates as a function. Also, in this tutorial any set of operations that you perform with a variable will be called a function of that variable. For example, “x + 2″ is a function of x. In math you would write “f(x) = x + 2″.

When a function f(x) is graphed, the line or curve that is drawn is the set of points (x, y), where y = f(x).

Types of Functions
The common types of functions in this tutorial are linear, polynomial, trigonometric, and parametric.

linear function can be simplified to the form ax + b, where a and b are constants. When a linear function is graphed, it is a straight line. This is the most common type of function used and the most important to understand. Finding the right linear function for a particular need is described in Shifting & Scaling Numbers.

In a polynomial function, the variable is raised to some power. An example isx2 + 5. There may be many terms of x raised to different powers in the function. The graph of a polynomial function is a curve.

The trigonometric functions used in this tutorial are sin()cos(), and atan(), which are described in Sine & Cosine Definitions. They are useful in parametric animation for creating circular paths and oscillating motion in general. In incremental animation they are used to find the x and y components of a direction (angle).

Parametric functions are a special type of function. In the first three types, the graphs consist of points (x, f(x)). But in parametric functions, the graph consists of points (f(p), g(p)), where f and g are other functions (non-parametric) and p is a parameter with a defined range. p is often associated with time. So a parametric function consists of several parts.

This parametric function consists of three partsf(p)g(p), and p:0->1. f(p) is a combination of linear and trigonometric functions, and g(p) is a linear function.

Parametric functions are the idea behind parametric animation. Not only location, but all properties being animated are each a function of the parameter.