Business Addresses In Excel Compiled From Website ( 3

I need business addresses, names and phone number to be compiled in excel format for import into directory. I want all the information to be gathered from www.pinellaslife.com Information must be in different columns so that they can be labeled and mass imported.

All the information must be gathered by category as it is setup on pinellas-life

Work must be done in next 2 days.

More work to follow if you are quick and good.

I Need Traffic

My website www.IpromoteYOURproduct.com needs hits and fast.

We are getting ready to launch this business and we need to be able to show potential advertisers out unique hits.

I have not done any SEO or submitted any information to any sites.

I need someone who will explain what they are doing and will get results.

So, in your PM please explain step by step what you will do and how fast I will see results.

Creating the ‘Art Machine’ Ident in C4D – Part 2

In the second part of his brand-new two-part tutorial, Mitchell Hart finishes taking us through his work on the awesome ‘Art Machine’ ident. After modeling it from scratch in this first part, today Mitchell jumps right in to explain the animating, texturing and rendering processes. Let’s get started!


Video 1

Download

Note: click the ‘Monitor’ icon to view tutorial in full-screen HD.


Don’t miss more CG tutorials and guides, published daily – subscribe to Cgtuts+ by RSS.


Create an Amazing Pulverize Effect with Houdini – Finishing the Asset

In this, the final part of his second amazing Houdini tutorial, Alvaro Castaneda walks us through the final stages of how to completely pulverize characters and objects using Side Effect’s Houdini 11. After setting up the basic node-network in part 1, today we look at how to finish the effect and art-direct the dynamics to ensure we get the look we want. Look no further if you want to see just how creative Houdini allows you to be…


Video 1

Download

Note: click the ‘Monitor’ icon to view tutorial in full-screen HD.


Video 2

Download

Note: click the ‘Monitor’ icon to view tutorial in full-screen HD.


Don’t miss more CG tutorials and guides, published daily – subscribe to Cgtuts+ by RSS.


Six Ways to Create Condensation in 3DsMax Pt2 – BAD 2010

This year Cgtuts+ is taking part in Blog Action Day to raise awareness about clean water and water conservation, we have s econd fantastic water-themed post for you! In the second part of this 2-day tutorial, Cristian Pop walks us through 3 more methods of creating condensation effects in 3DsMax. Today, Cristian will be taking a look at thinkingParticles, 3Ds Max 2011′s new Object Paint and the incredibly useful fr Wet shader. Let’s get started!


Access to clean-water is something that’s all too easy to take for granted. Chances are that if you wanted a drink right now, you could walk to a room nearby, turn on the tap and get one. It would work first time, be relatively free, and it certainly wouldn’t make you ill. And you can do this whenever you want, for whatever purpose. In fact, from the moment the average person wakes up to the moment they fall asleep they use over 465 litres of water. Per day.

There are however, currently one billion people worldwide that have no access to clean water. Just a single $20 donation is enough to supply one person with clean water for 20 years. Please take the time to read some of the details at the following link, maybe add your name to the petition in support of this movement that we’ve embedded below, and perhaps even consider donating if you can afford it.

Why Water?

Thank you, and now onto the second part of today’s content!


This tutorial is Day 2 in a series – Go to Day 1 when you’re done to see the other 3 methods!


4. Using thinkingParticles

ThinkingParticles is an advanced rule-based particle system for 3dsmax. In this section, we’ll take a look at the tP nodes and how to link them together to create rules, to control the particles. tP has an advanced saving system, that allows you to save and re-used specific rules, whenever you want.

Step 1

Import “can.obj” into your scene.


Step 2

Select the “can_body” object and in the “Modify Panel”, add a “Poly Select” modifier to it. Select the faces where you want to distribute the condensation water drops.


Step 3

Now, create a small “Sphere” object, convert it to an “Editable Poly”, then delete the following faces. This object will be used as particle shape, to create the condensation water drops.


Step 4

Select the remaining element and scale it down on the ‘z’ axis, as shown.


Step 5

Go to the “Command panel > Create > Particle Systems > Thinking”, and create a “thinkingParticles” system in the viewport.


Step 6

Go to the “Modify” panel and click the “Properties” button in the “Thinking” rollout, to open the “tP” user interface. You can also use the hot keys of ‘Alt + Shift + P’ to open and ‘Alt + Shift + C’ to close it.


Step 7

In the “DynamicSet Tree” view, highlight “Master Dynamic”. Disable “Edit on the fly” to see the changes in real time and enable “Show Mesh” to see the particle shape.


Step 8

In the “Particle Group Tree” view, click the “Create” button, under “Master System”. Name the group “Condensation” by clicking on the name “Group” twice (slowly). In the “Condensation” group rollout, change the color to green. This group will contain the condensation particles.


Step 9

I always create a group, used for testing the particles. So, create a second group, and name it “Test”. Change its color to red.


Step 10

To dictate what the particles do, you need to create “Dynamic Sets” (rules). In the “DynamicSet Tree” view, click the “Create” button, under “Master Dynamic”, and name the new Dynamic Set “Condensation”.


Step 11

Under “Condensation”, create 3 other dynamic sets, and name them: “Generator”, “Shape” and “Avoid Overlapping”.


Step 12

Highlight the “Generator” dynamic set, and then go to the right-hand side of the dialog, where you will see a new set of “Create” rollouts.


Step 13

Go to “Create rollout > Operators > Generator”. Select the “MatterWaves” node to highlight it, and then click in the schematic portion of the “Wire Setup” view, to add this node to the “Generator” dynamic set. MatterWaves is an advanced particle system operator for tP that allow you to create amazing particle animations based on multiple materials and maps that let you control every aspect of each particle. Later we’ll use a “Noise” map to control the particle size.


Step 14

In the “MatterWaves” rollout, click the “Pick Object Based Emitter” button and select the “can_body” object. Then, add the particles to the “Condensation” group.


Step 15

Set the generation type to “Pistol Shot”, to generate all the particles on the very first frame. Set the particle amount to a higher value, increase the “Life Span” value and set the “Speed” value to ’0.0′.


Step 16

In the “Emitter” rollout, activate the “Selected Face” checkbox, because we want to create condensation only over the selected faces. Enable “UVW Clipping” and set the “U/V Emitter” values to ’100′. The “U/V Emitter” spinners allow you to define evenly spaced particle emitters based on the UV coordinates. Also, activate the “Random” checkbox, to create random particle positioning on the can’s surface.


Step 17

In the “Birth Alignment” rollout, select the “Face Normal” alignment, from the drop down list.


Step 18

It’s time to assign the “Water drop” shape to the particles. In the “Shape” dynamic set, add the “Condensation” group (Create rollout > Groups).


Step 19

Go to “Create rollout > Operators > Shape” and add a “Geom Instance” operator to this dynamic set. Click on the “Particle” output of the “Condensation” group, and drag a wire to the “Particle” input of the ?Geom Instance? operator. Now these parameters are connected.


Step 20

In the “Geom Instance” rollout click the “Pick Object” button and select the “Water drop” object. Under “Scaling” select the “Box Normalize” option, to be able to control the scale of the particles from “MatterWaves”, using a map.


Step 21

Once we can see the particle shape, we can work on scaling. Go back to the “MaterWaves” operator, and under “Scale”, add a “Noise” map to the “Var. Mask” slot.


Step 22

Drag the “Noise” map from “MaterWaves” to a material slot in the “Material Editor” (as instance), to be able to change its parameters.


Step 23

Now, we’ll assign a material to the particles. In the “Shape” dynamic set, go to “Create rollout > Operators > Material” and add a “Shape Material” operator.


Step 24

Connect the “Shape Material” operator to the “Condensation” group. In the “Shape Material” rollout, add the water material to the slot.


Step 25

As you can see, some of the particles are overlapping, and can cause some problems when rendering.


Step 26

Go to “Create rollout > Operators > Initiator” and add a “PPassAB” operator to the “Avoid Overlapping” dynamic set. “PPasAB” is used to create highly optimized inter-particle interactions. Measuring the distances between particles, we are able to delete those particles that are too close to each other.


Step 27

To test the particles, we’ll send them to the “Test” group (colored in red). Go to “Create rollout > Operators > Standard” and create a “Group” operator. In the “Group” rollout select the “Test” group, then connect the “*A Particle” output of the “PPassAB” operator to the “Particle” input of the “Group” operator.


Step 28

In the”PPass AB” rollout, select as “GroupA” and “GroupB” the “Condensation” group (because we are testing the particles from the same group). Select the “Distance” option. As you can see, if the distance between the particles is less than the “Distance” value, then those particles will be sent to the “Test” group.


Step 29

Once we have tested what distance value is working better, we can delete those particles that are overlapping. First of all, disable the “Test” group (right click on the node > Disable). Then, go to “Create rollout > Operators > Standard” and add a “Particle Die” operator. Connect the “*A Particle” output of the “PPassAB” operator to the “Particle” input of the “Particle Die” operator, and the particles are deleted.


Step 30

When using tP, you can apply all kind of modifiers to the groups. First, you need to activate the “Groups as Objects” checkbox, in the “Master Dynamic” rollout. In this exemple, I’ve added a “Noise” modifier to the “Condensation” object.


Step 31

Instead of using the hemisphere shape for the particles, you can use the built-in “Meta Shape”, used for liquid effects. Go to “Create rollout > Operators > Shape” and create a “Meta Shape” operator in the “Shape” dynamic set. Disable the “Geom Instance” operator, and then connect the “Condensation” group to the “Meta Shape” operator. Feel free to experiment with the “Meta Shape” parameters.


Step 32

Once finished, we can save the rules that create the condensation effect, as a “Black Box”. The “Black Box” is actually a dynamic set (or more, or just a part of a dynamic set), saved to your hard disk, that can be re-used. First of all, find the “3rdpartyBlackBox” folder on your hard disk, and create a new folder called “Test”. Highlight the “Condensation” dynamic set. Select the 3 dynamic sets, then right-click anywhere in the “Wire Setup” view and save the dynamic sets (name the file “Condensation.thi”) to the “Test” folder.


Step 33

Once clicked the “Save” button, the “Thinking Particles Save Settings” dialogue box will appear. Click the “Request” button.


Step 34

Remove the 3 dynamic sets and the particle groups. Highlight the “Condensation” dynamic set, then go to “Create rollout > Black Box > Test”. As you can see the “Condensation” node is there. Add the node to the dynamic set. In the dialogue box that appear, tP is asking you, how to handle with the particle groups after loading. Because we delete them before, we’ll choose to “Create new” particle groups.


Step 35

You only need to re-pick the “Can_body” and the “Water drop” objects, and you are ready to render the scene, because even the materials and the maps are saved in the black box node.


Final Image

Below you can see my result created with tP.


5. Using 3dsMax 2011′s Object Paint

The Object Paint tool allows you to paint specific objects onto the scene or over the surface of a selected object. This method can be used easily to create “special” condensation effects.

Step 1

Import the can object into your scene.


Step 2

Again, create a “Water drop” object, as you did in the first section.


Step 3

Open the “Graphite Modeling Tools” and go to “Object Paint” > “Paint Objects” section.


Step 4

Here, click on the “Edit Object List” icon, and in the “Paint Objects” dialogue box, add the “Water drop” object. Then, choose to “Paint on Selected Objects”.


Step 5

Select the “Can_body” object, and then click on the “Paint” icon and start painting.


Step 6

Once you have painted the “Water drop” objects, go to the “Brush Settings” section. You can change the distance between the objects, using the “Spacing” spinner. In the “Scatter” group, you can apply a random offset from the painted stroke for each painted object.


Step 7

In the “Scaling” group, choose “Random Scaling” from the dropdown menu. Set a minimum and maximum value for object scaling.


Step 8

Once finished, click on the “Commit” button, then select all the newly created “Water drops” and group them.


Step 9

The painted objects are created as instances, so when you change the shape of the original object, all the painted objects will be affected.


Final Image

Below you can see my result.


6. Using the fR Wet shader

The fR Wet shader is designed to add a liquid layer on top of any object. It’s the easiest and fastest method to create condensation, but it can be used just for non-transparent objects.

Step 1

Import the can object into your scene.


Step 2

The “fR Wet” shader works only with the “finalRender” renderer.


Step 3

Create a “fR Wet” material and assign it to the “Can_body” object.


Step 4

To create the condensation effect, just add the “Wet map.jpg” image to the “Wetness” slot.


Final Image

That’s all. You can click the render button and fR creates the condensation effect in no time.

I hope you enjoyed this tutorial.



Don’t miss more CG tutorials and guides, published daily – subscribe to Cgtuts+ by RSS.


5 Ways to Motivate Your Boss


Everybody knows as a matter of reference, that worker bees need to be motivated. Since days of old, psychologists and behaviorists have theorized, hypothesized, and studied the effects of workplace productivity and why we do what we do. Not to mention, there must be hundreds of books devoted to this timely topic.

Of course it doesn’t take “rocket science” to realize that most folks respond well to rewards, positive feedback and perks. That’s a given.

But what many fail to recognize is that leaders need to be motivated too! That’s right: those that pat others on the back occasionally need a little “stroking” too.

I can say this with confidence as someone who has “managed,” led, directed, and served as an overseer on everything from a home, to a business, to work projects, to a successful creative organization for artists.

After doing more than my share of “rah, rah, rah go team go” I’m running out of steam!
And I imagine that other folks that share my life’s walk also share my point of view.

Think about it.

When was the last time you shared a word of encouragement or appreciation with your boss, pastor, Girl Scout Troop Leader, Block Club President, Editor, or the Captain of your car pool?

Heck, even God loves praise!

And in the world of work it’s even more crucial. The reason? The better your boss feels, the more likely he is to be energized, empowered, engaged and inclined to top performance and bottom line objectives.
And from where I’m sitting that’s a win-win situation all the way around.

With this being said, here are five ways to motivate and “incentivize” your boss.

1. Show appreciation. Let’s face it. Unless your boss is a real schmuck, it takes a lot of effort, time, and business savvy to lead. Every now and then say thank you with a card, gift, smile, or quick Email. Treat folks how you would like to be treated. Possessions and position only go so far in the way of perks.

2. Value our time. One thing that really frosts my “cupcakes” is having someone to waste my time. You know the culprits…people who are chronically late without regard or apology. Folks who are no-shows for meetings, people who don’t R.S.V.P., and those who don’t return phone calls or messages. Get a clue! My time is valuable too. Hello? Here’s a case in point. A few weeks ago, I called a meeting for one of my organizations to discuss important matters that required input to move forward and make related decisions. I broke my neck to get there, didn’t eat, and found that I was the only one there on time. Later, three folks straggled in anywhere from 30 minutes to almost two hours late. One person was M.I.A. after sending an Email to say she would come. Don’t get me wrong, no matter how well we plan our days, Murphy’s Law can throw a curve ball in things. I get that. But to not call, to blow things off, and to tie up other folks is really rude. Really.

3. Don’t be a part of the problem, be a part of the solution. These days everybody’s a critic. Why not bring something else to the table? Perhaps you can detect a flaw in your system that the big guy can’t see. Or you have an idea on how to boost declining sales, or you know how to fix the whatchamacallit at work. You’ll save the company time, money, and be the hero for the day!

4.“R-E-S-P-E-C-T” find out what it means to me. When soul singer Aretha Franklin released this hit song many moons ago, it became the mantra for women everywhere. But, it also applies to professional relationships as well. Nobody is saying that you have to bow down or brown nose, or even like your boss. Just make sure to show that you recognize his role of authority and adhere to his requests when possible. Trust me; it won’t kill you.

5. Realize we’re human too. Don’t hold us to ridiculous standards, undue scrutiny, and unrealistic expectations. Please note that we bleed, cry, suffer, get ill, have doubts, family issues, financial woes, crazy relatives, clueless mates, challenges, pet peeves, obligations and problems of our own.

To put it mildly, we don’t need for you to add to our “real life soap opera”. Consider this a public service message, or the simple rantings of a leader who is long overdue for a little T.L.C. or a vacation to the Bahamas.

(Image courtesy of Amy Loves Yah under a Creative Commons 2.0 Attribution Generic License.)

Using Unobtrusive JavaScript and AJAX with Rails 3


As I mentioned in my previous Ruby on Rails tutorial, Unobtrusive JavaScript (UJS) is one of the coolest new features in Rails 3. UJS allows Rails-generated code to be much cleaner, helps separate your JavaScript logic from your HTML layouts, and uncouples Rails from the Prototype JavaScript library. In this tutorial, we’re going to look at these features and learn how to use them in a simple Rails 3 application.


Background: What is Unobtrusive JavaScript?

To start off, what exactly is UJS? Simply, UJS is JavaScript that is separated from your HTML markup. The easiest way to describe UJS is with an example. Take an onclick event handler; we could add it obtrusively:

<a href='#' onclick='alert("Inline Javscript")'>Link</a>

Or we could add it unobtrusively by attaching the event to the link (using jQuery in this example):

<a href='#'>Link</a>
<script>
$('a').bind('click', function() {
    alert('Unobtrusive!');
}
</script>

As mentioned in my introduction, this second method has a variety of benefits, including easier debugging and cleaner code.

“Rails 3, on the other hand, is JavaScript framework agnostic. In other words, you can use your JavaScript framework of choice, provided a Rails UJS implementation exists for that framework.”

Up until version 3, Ruby on Rails generated obtrusive JavaScript. The resulting code wasn’t clean, but even worse, it was tightly coupled to the Prototype JavaScript framework. This meant that unless you created a plugin or hacked Rails, you had to use the Prototype library with Rail’s JavaScript helper methods.

Rails 3, on the other hand, is JavaScript framework agnostic. In other words, you can use your JavaScript framework of choice, provided a Rails UJS implementation exists for that framework. The current UJS implementations include the following:

Rails 3 now implements all of its JavaScript Helper functionality (AJAX submits, confirmation prompts, etc) unobtrusively by adding the following HTML 5 custom attributes to HTML elements.

  • data-method – the REST method to use in form submissions.
  • data-confirm – the confirmation message to use before performing some action.
  • data-remote – if true, submit via AJAX.
  • data-disable-with – disables form elements during a form submission

For example, this link tag

<td><a href="/posts/2" class="delete_post" data-confirm="Are you sure?" data-method="delete" data-remote="true" rel="nofollow">Destroy</a></td>

would send an AJAX delete request after asking the user “Are you sure?.”

You can imagine how much harder to read that would be if all that JavaScript was inline.

Now that we’ve reviewed UJS and how Rails implements UJS, let’s set up a project and look at some specific applications. We’ll be using the jQuery library and UJS implementation in this tutorial.


Step 1: Setting up the Project

Since we’re creating a new project from scratch, the first thing we need to do is create the project by typing the following:

	rails new blog --skip-prototype

Notice that I’m instructing Rails to skip the prototype JavaScript file, since I’m going to be using the jQuery library.

Let’s start the server just to make sure everything appears to be working.

And, voila!

Now that we’ve set up our project, we need to add jQuery and the jQuery UJS to our project. You are free to organize your JavaScript however you want, but the Rails convention for structuring your JavaScript files is as follows (all these files go in public/javascripts):

  • framework JavaScript file (jquery.js, prototype.js, or mootools.js)
  • rails.js – the code implementing rails UJS (for whatever framework you’ve chosen)
  • application.js – your application JavaScript

If you haven’t already, download jquery.js (or refer to a CDN) and rails.js and include them in your public/javascripts directory.

The last thing we need to do to get up and running is to actually tell Rails to include these js files on each of our pages. To do this, open application.rb in your config directory and add the following line

config.action_view.JavaScript_expansions[:defaults] = %w(jquery rails application)

This configuration item tells Rails to include the three JavaScript files mentioned above by default.

Alternatively, you could grab jQuery from a CDN (i.e. http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js) by manually included a script tag pointing to the correct location. If you do this, be sure to remove ‘jquery’ from the JavaScript_expansions configuration item.


Step 2: Generating Some Code

To demonstrate the rails UJS functionality, we’re first going to have to have some code to work with. For this demo we’re just going to have a simple Post object. Let’s generate that now

	rails generate scaffold Post name:string title:string content:text

And then let’s migrate our database to create the posts table.

	rake db:migrate

Ok, we’re good to go! If we navigate to http://localhost:3000/posts/new, we should see a form to create a new Post.

Ok, it’s all working! Now let’s dig in and see how to use the UJS and AJAX functionality baked into Rails.


Step 3: Adding AJAX

Now that all the required JavaScript files are being included, we can actually start using Rails 3 to implement some AJAX functionality. Although you can write all of the custom JavaScript that you want, Rails provides some nice built-in methods that you can use to easily perform AJAX calls and other JavaScript actions.

Let’s look at a couple of commonly used rails helpers and the JavaScript they generate

AJAX Form Submission and Javascript ERB Files

If we look at our Posts form, we can see that whenever we create or edit a Post, the form is manually submitted and then we’re redirected to a read-only view of that Post. What if we wanted to submit that form via AJAX instead of using a manual submission?

Rails 3 makes it easy to convert any form to AJAX. First, open your _form.html.erb partial in app/views/posts, and change the first line from:

<%= form_for(@post) do |f| %>

to

<%= form_for(@post, :remote => true) do |f| %>

Prior to Rails 3, adding :remote => true would have generated a bunch of inline JavaScript inside the form tag, but with Rails 3 UJS, the only change is the addition of an HTML 5 custom attribute. Can you spot it?

<form accept-charset="UTF-8" action="/posts" class="new_post" data-remote="true" id="new_post" method="post">

The attribute is data-remote="true", and the Rails UJS JavaScript binds to any forms with that attribute and submits them via AJAX instead of a traditional POST.

That’s all that’s needed to do the AJAX submit, but how do we perform a callback after the AJAX call returns?

The most common way of handling a return from an AJAX call is through the use of JavaScript ERB files. These work exactly like your normal ERB files, but contain JavaScript code instead of HTML. Let’s try it out.

The first thing we need to do is to tell our controller how to respond to AJAX requests. In posts_controller.rb (app/controllers) we can tell our controller to respond to an AJAX request by adding

format.js

in each respond_to block that we are going to call via AJAX. For example, we could update the create action to look like this:

def create
    @post = Post.new(params[:post])

    respond_to do |format|
      if @post.save
        format.html { redirect_to(@post, :notice => 'Post created.') }
        format.js
      else
        format.html { render :action => "new" }
        format.js
      end
    end
end

Because we didn’t specify any options in the respond_to block, Rails will respond to JavaScript requests by loading a .js ERB with the same name as the controller action (create.js.erb, in this case).

Now that our controller knows how to handle AJAX calls, we need to create our views. For the current example, add create.js.erb in your app/views/posts directory. This file will be rendered and the JavaScript inside will be executed when the call finishes. For now, we’ll simply overwrite the form tag with the title and contents of the blog post:

	$('body').html("<h1><%= escape_JavaScript(@post.title) %></h1>").append("<%= escape_JavaScript(@post.content) %>");

Now if we create a new Post we get the following on the screen. Success!

The advantage of this method is that you can intersperse ruby code that you set up in your controller with your JavaScript, making it really easy to manipulate your view with the results of a request.

AJAX Callbacks Using Custom JavaScript Events

Each Rails UJS implementation also provides another way to add callbacks to our AJAX calls – custom JavaScript events. Let’s look at another example. On our Posts index view (http://localhost:3000/posts/), we can see that each post can be deleted via a delete link.

Let’s AJAXify our link by adding :remote=>true and additionally giving it a CSS class so we can easily find this POST using a CSS selector.

<td><%= link_to 'Destroy', post, :confirm => 'Are you sure?', :method => :delete, :remote=>true, :class=>'delete_post' %></td>

Which produces the following output:

<td><a href="/posts/2" class="delete_post" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a></td>

Each rails UJS AJAX call provides six custom events that can be attached to:

  • ajax:before – right before ajax call
  • ajax:loading – before ajax call, but after XmlHttpRequest object is created)
  • ajax:success – successful ajax call
  • ajax:failure – failed ajax call
  • ajax:complete – completion of ajax call (after ajax:success and ajax:failure)
  • ajax:after – after ajax call is sent (note: not after it returns)

In our case we’ll add an event listener to the ajax:success event on our delete links, and make the deleted post fade out rather than reloading the page. We’ll add the following JavaScript to our application.js file.

	$('.deletePost').bind('ajax:success', function() {
		$(this).closest('tr').fadeOut();
	});

We’ll also need to tell our posts_controller not to try to render a view after it finishes deleting the post.

  def destroy
    @post = Post.find(params[:id])
    @post.destroy

    respond_to do |format|
      format.html { redirect_to(posts_url) }
      format.js   { render :nothing => true }
    end

Now when we delete a Post it will gradually fade out.


Conclusion

Well, there you have it. Now you know how to make AJAX calls using Rails 3 UJS. While the examples explained were simple, you can use these same techniques to add all kinds of interactivity to your project. I hope you’ll agree that it’s a big improvement over previous versions, and that you’ll try it out on your next Rails project.

What techniques do you use when implementing AJAX in Rails?

Core Graphics 101: Lines, Rectangles, and Gradients

Core Graphics is a cool API on iOS. Developers can use it to customize their  UI with some neat effects. Most of this can be done without getting an artist involved… just tweak the code and see results instantly!

However, to many iOS developers – Core Graphics can be quite intimidating to begin with. Because it’s a fairly large API and it has plenty of snags to get caught in along the way – mastering its concepts can be quite a challenge.

Ray Wenderlich, founder of Razeware – a small iPhone development studio, has recently posted a very informative tutorial that takes the mystery out of Core Graphics. He has presented things in a step by step series of practical exercises.

His first article of the series, shows how to make a beautiful table view cell with Core Graphics. It covers how one can get started with Core Graphics, how to fill and stroke rectangles, how to draw gradients, and how to deal with 1 pixel-wide line issues.

In future articles in the series, he says that he will talk about how you can work on beautifying the rest of the app – the table view header, footer, and finishing touches.

Visit his blog post to see how you can get started and have some fun with Core Graphics on iOS!

VTM Conference was GREAT

Well, I’m back from the conference. Back to normality and the everyday tasks we all need to do, but oh boy am I excited. The conference was just fantastic. There were some amazing speakers sharing detailed, useful and highly specific information with the audience. Both Arron Hillegass and Mike Lee did great key notes setting […]

Greenpois0n jailbreaks the Apple TV

A tweet from developer p0sixninja would seem to show a neatly jailbroken Apple TV, which is good news for those looking forward to hacking and tweaking Apple’s $99 hobby. No word yet on when the jailbreak will be publicly available.

Among our speculations looking forward to Wednesday’s Apple event, despite its ‘Back to the Mac’ focus, is the announcement or pre-announcement of an App Store and SDK for the iOS-based Apple TV.

[via 9to5 Mac and Engadget]

Greenpois0n jailbreaks the Apple TV originally appeared on TUAW on Wed, 20 Oct 2010 00:45:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Report: Android ad revenue beats iPhone, iOS and smartphone market still growing

Millenial Media has released its latest report on cross-platform mobile advertising, and the iPhone has lost another step on the Android platform. According to Millenial’s reporting, revenue for advertising from the Android platform has exceeded iPhone-only revenue. That’s not quite as bad as it sounds — the Android platform, as we already know, has outstripped the iPhone in terms of user numbers, just because there are so many more available handsets and carriers for those devices. Android ad requests, according to the company, are up a crazy 1283% since January of this year, and have gone up 26% month over month.

That’s not to say that iOS is slouching — its revenue growth increased 316% in the last quarter, and impression growth increased by 156%. Apple is still the leading device manufacturer on the network, with a 30% market share, and the company makes two of the top four “connected devices” in the iPad and the iPod touch, with the Sony PSP and PS3 rounding out that list.

It’s also interesting to note that smartphone impressions overall are still growing — this isn’t a down and dirty fight between the manufacturers yet, as there are still new customers to grab out there. Smartphone impression share went up 7% month-over-month, so this is still a growing market.

Report: Android ad revenue beats iPhone, iOS and smartphone market still growing originally appeared on TUAW on Tue, 19 Oct 2010 22:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments