<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Tools</title>
	<atom:link href="http://www.softwaretools.in/feed" rel="self" type="application/rss+xml" />
	<link>http://www.softwaretools.in</link>
	<description></description>
	<lastBuildDate>Mon, 14 May 2012 06:20:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Digital Logic Simulation with the Intel® TBB Flow Graph, Part 2: Building bigger components</title>
		<link>http://www.softwaretools.in/digital-logic-simulation-with-the-intel-tbb-flow-graph-part-2-building-bigger-components</link>
		<comments>http://www.softwaretools.in/digital-logic-simulation-with-the-intel-tbb-flow-graph-part-2-building-bigger-components#comments</comments>
		<pubDate>Mon, 14 May 2012 06:20:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[black]]></category>
		<category><![CDATA[Carry]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[constructor]]></category>
		<category><![CDATA[flow-graph]]></category>
		<category><![CDATA[implementation]]></category>
		<category><![CDATA[logic]]></category>
		<category><![CDATA[parallel programming]]></category>
		<category><![CDATA[return-four]]></category>
		<category><![CDATA[using-the-intel]]></category>

		<guid isPermaLink="false">http://www.softwaretools.in/digital-logic-simulation-with-the-intel-tbb-flow-graph-part-2-building-bigger-components</guid>
		<description><![CDATA[ In Part 1 , I described how to put together a basic logic gate using the Intel® Threading Building Blocks flow graph nodes or_node and multifunction_node . In this blog, I will assume the basic logic gates and_gate , or_gate and xor_gate exist, and use them to construct a four-bit adder. To begin with, I’ll first construct a one-bit full adder as in Figure 2 below: Figure 2 The inputs are A and B, and a Carry-in bit, and the output is the sum S, and a Carry-out bit. Here is the code for the one_bit_adder class: class one_bit_adder { broadcast_node < signal_t > A_port; broadcast_node < signal_t > B_port; broadcast_node < signal_t > CI_port; xor_gate < two_input > FirstXOR; xor_gate < two_input > SecondXOR; and_gate < two_input > FirstAND; and_gate < two_input > SecondAND; or_gate < two_input > FirstOR; graph&#038; my_graph; void make_connections() { make_edge(A_port, FirstXOR.get_in(0)); make_edge(A_port, FirstAND.get_in(0)); make_edge(B_port, FirstXOR.get_in(1)); make_edge(B_port, FirstAND.get_in(1)); make_edge(CI_port, SecondXOR.get_in(1)); make_edge(CI_port, SecondAND.get_in(1)); make_edge(FirstXOR.get_out(), SecondXOR.get_in(0)); make_edge(FirstXOR.get_out(), SecondAND.get_in(0)); make_edge(SecondAND.get_out(), FirstOR.get_in(0)); make_edge(FirstAND.get_out(), FirstOR.get_in(1)); } public: one_bit_adder(graph&#038; g) : my_graph(g), A_port(g), B_port(g), CI_port(g), FirstXOR(g), SecondXOR(g), FirstAND(g), SecondAND(g), FirstOR(g) { make_connections(); } one_bit_adder(const one_bit_adder&#038; src) : my_graph(src.my_graph), A_port(src.my_graph), B_port(src.my_graph), CI_port(src.my_graph), FirstXOR(src.my_graph), SecondXOR(src.my_graph), FirstAND(src.my_graph), SecondAND(src.my_graph), FirstOR(src.my_graph) { make_connections(); } ~one_bit_adder() {} receiver < signal_t > &#038; get_A() { return A_port; } receiver < signal_t > &#038; get_B() { return B_port; } receiver < signal_t > &#038; get_CI() { return CI_port; } sender < signal_t > &#038; get_out() { return SecondXOR.get_out(); } sender < signal_t > &#038; get_CO() { return FirstOR.get_out(); } }; This implementation is almost a straightforward translation of the gates and their connections into the flow graph format. The one complication is the addition of the broadcast_node s for each of the input ports. The reason for this is simply to enable connection to a single port from outside of the adder. Since each of the inputs is connected to two gates inside of the one_bit_adder object, there is no single port associated with them automatically. Adding the broadcast_node s enables us to provide the methods get_A , get_B and get_CI that each return a single port capable of receiving data. So, in looking at the diagram above, you can think of the three broadcast_node s as standing in for the black junction circles that the three inputs are connected to directly. To make the four_bit_adder class, simply chain together a set of four one_bit_adder s and connect the Carry-out port of each adder to the Carry-in port of the next adder, as shown in Figure 3 below: Figure 3 This time, the class is even more straightforward to implement, because no broadcast_node s are needed; every input already has exactly one internal connection. class four_bit_adder { graph&#038; my_graph; std::vector < one_bit_adder > four_adders; void make_connections() { make_edge(four_adders[0].get_CO(), four_adders[1].get_CI()); make_edge(four_adders[1].get_CO(), four_adders[2].get_CI()); make_edge(four_adders[2].get_CO(), four_adders[3].get_CI()); } public: four_bit_adder(graph&#038; g) : my_graph(g), four_adders(4, one_bit_adder(g)) { make_connections(); } four_bit_adder(const four_bit_adder&#038; src) : my_graph(src.my_graph), four_adders(4, one_bit_adder(src.my_graph)) { make_connections(); } ~four_bit_adder() {} receiver < signal_t > &#038; get_A(size_t bit) { return four_adders[bit].get_A(); } receiver < signal_t > &#038; get_B(size_t bit) { return four_adders[bit].get_B(); } receiver < signal_t > &#038; get_CI() { return four_adders[0].get_CI(); } sender < signal_t > &#038; get_out(size_t bit) { return four_adders[bit].get_out(); } sender < signal_t > &#038; get_CO() { return four_adders[3].get_CO(); } }; Here, the constructor makes a vector of exactly four adders, and connects the Carry-out ports to the Carry-in ports as appropriate. The multi-bit inputs and outputs have port access methods that take a bit as a parameter. So for example, to get the input port for bit 2 of input B, you would use get_B(2) . In Part 3 , I will present some interesting input and output devices to add to the logic simulation library, and with those, I’ll put together a small simulation that shows the four_bit_adder in action. ]]></description>
		<wfw:commentRss>http://www.softwaretools.in/digital-logic-simulation-with-the-intel-tbb-flow-graph-part-2-building-bigger-components/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel Software at AnDevCon</title>
		<link>http://www.softwaretools.in/intel-software-at-andevcon</link>
		<comments>http://www.softwaretools.in/intel-software-at-andevcon#comments</comments>
		<pubDate>Mon, 14 May 2012 06:20:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[ashok-emani]]></category>
		<category><![CDATA[based-platforms]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[intel-atom]]></category>
		<category><![CDATA[intel-graphics]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.softwaretools.in/intel-software-at-andevcon</guid>
		<description><![CDATA[ This is our agenda! If you're attending the third edition of the Android Developer Conference don't miss the opportunity to learn about Android on the Intel Architecture. We're offering great technical sessions for Android developers: Developing and Optimizing for Atom Processor-Based Platforms Presenters: Ashok Emani, Rekha Raghu and Dave Valdovinos Date: May 15, 4:00-5:15pm In this session, you will learn about developing Android applications for Intel Atom processor-based tablets and smartphones. This session will address porting native libraries using x86 NDK, tips and tricks for identifying and removing performance bottlenecks, and identifying optimization opportunities to make your apps run best on Intel Atom-based tablets and smartphones. In addition, attendees will learn how to develop multi-platform apps with techniques that has been applied to a real life application. Attendees will also learn about valuable technical resources available to developers through the Android Developer Community at www.intel.com/software/android. Attendees should have a basic understanding of Android app development. Tips, Tools and Technology for Android on Intel Architecture Presenters: Josh Doss, Ashok Emani, Margaret LaBrecque and Dave Valdovinos Date: May 17, 11:45am-12:15pm Get on the ground floor of creating amazing apps for the mobile technology of tomorrow. When you optimize your app for Android on the Intel Architecture platform, you are opening the door to a new world of opportunities. In this session, you will learn about the Android Gingerbread and ICS x86 emulator image add-ons and how to use them in conjunction with the Intel Hardware Accelerated Execution Manager, allowing the emulator to run at near native speed. In addition, learn how the Intel Graphics Performance Analyzer for Android can help optimize games, media, and other graphics-intensive applications. Finally, get tips on how to create NDK-based Android apps for Intel Atom processor-based devices. And also many other activities such as: Some amazing demonstrations on our booth (#700) and also a short presentation as part of the "Lightning Talks". Demos: 1. Android Developer Community program The team from the Intel® Developer Community for Android* will be on-hand to present, demonstrate and answer questions about the valuable resources available on this site. 2. Key apps on a smartphone or tablet A demonstration of Android apps that have been enabled for Intel® Atom™ processor based devices including smartphones and tablets. 3. Intel® GPA for Android A demonstration of the Intel® Graphics Performance Analyzer (GPA) for Android. GPA is an easy-to-use suite of optimization tools for analyzing and optimizing games, media, and other graphics intensive applications. 4. X86 emulator and HW acceleration manager A demonstration of the performance of an app on Android ICS using the Intel® Hardware Accelerated Execution Manager (Intel® HAXM). Intel® HAXM allows for faster Android emulation on Intel VT enabled systems. Lightning Talk: Device compatibility and App launch anxiety on Intel Atom processor based smartphones Presenter: Hemanth Kumar Date: Tuesday, May 15, 5:30 pm (As part of the Android Lightning Talks.) ]]></description>
		<wfw:commentRss>http://www.softwaretools.in/intel-software-at-andevcon/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Digital Logic Simulation with the Intel® TBB Flow Graph, Part 3: Putting together a simulation</title>
		<link>http://www.softwaretools.in/digital-logic-simulation-with-the-intel-tbb-flow-graph-part-3-putting-together-a-simulation</link>
		<comments>http://www.softwaretools.in/digital-logic-simulation-with-the-intel-tbb-flow-graph-part-3-putting-together-a-simulation#comments</comments>
		<pubDate>Mon, 14 May 2012 06:19:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[alternation]]></category>
		<category><![CDATA[between-the-two]]></category>
		<category><![CDATA[Carry]]></category>
		<category><![CDATA[circuit]]></category>
		<category><![CDATA[create-the-four]]></category>
		<category><![CDATA[flow-graph]]></category>
		<category><![CDATA[four-bit-adder]]></category>
		<category><![CDATA[interesting]]></category>
		<category><![CDATA[signal]]></category>
		<category><![CDATA[tbb]]></category>
		<category><![CDATA[unsigned-int]]></category>

		<guid isPermaLink="false">http://www.softwaretools.in/digital-logic-simulation-with-the-intel-tbb-flow-graph-part-3-putting-together-a-simulation</guid>
		<description><![CDATA[ In Part 2 of this blog, I described a four-bit adder circuit built from components discussed in Part 1 . In this last installment, I’ll continue using Intel®TBB’s flow graph to put together some signal input and output devices, and then use those to make a small simulation featuring the four-bit adder from Part 2. Let’s look at two input devices here, the toggle and the pulse (or as I would have liked to have called them, the switch and the clock ). A toggle sends a signal of high or low, toggling between the two states, every time it is “toggled” or flipped. A pulse continually alternates between the high and low states at a given duration. The toggle class is implemented as follows: class toggle { graph&#038; my_graph; signal_t state; overwrite_node < signal_t > toggle_node; public: toggle(graph&#038; g) : my_graph(g), state(undefined), toggle_node(g) {} toggle(const toggle&#038; src) : my_graph(src.my_graph), state(undefined), toggle_node(src.my_graph) {} ~toggle() {} // Assignment ignored toggle&#038; operator=(const toggle&#038; src) { return *this; } sender < signal_t > &#038; get_out() { return toggle_node; } void flip() { if (state==high) state = low; else state = high; toggle_node.try_put(state); } void activate() { state = low; toggle_node.try_put(state); } }; The toggle is represented internally by an overwrite_node , because it simply needs to keep track of one most-recent state. As an input device, it doesn’t receive output from any other items, so it has no explicit input ports, only actions (flip, activate) which can alter the output state. The output port can of course be acquired via get_out , so that the toggle can be used to send signals into a circuit. The pulse class is a little more interesting: class pulse { class clock_body { size_t& ms; int& reps; signal_t val; public: clock_body(size_t&#038; _ms, int&#038; _reps) : ms(_ms), reps(_reps), val(low) {} bool operator()(signal_t&#038; out) { rt_sleep(ms); // our own portable sleep function if (reps> 0) --reps; if (val==low) val = high; else val = low; out = val; return reps> 0 &#124;&#124; reps == -1; } }; graph&#038; my_graph; size_t ms, init_ms; int reps, init_reps; source_node < signal_t > clock_node; public: pulse(graph&#038; g, size_t _ms=1000, int _reps=-1) : my_graph(g), ms(_ms), init_ms(_ms), reps(_reps), init_reps(_reps), clock_node(g, clock_body(ms, reps), false) {} pulse(const pulse&#038; src) : my_graph(src.my_graph), ms(src.init_ms), init_ms(src.init_ms), reps(src.init_reps), init_reps(src.init_reps), clock_node(src.my_graph, clock_body(ms, reps), false) {} ~pulse() {} pulse&#038; operator=(const pulse&#038; src) { ms = src.ms; init_ms = src.init_ms; reps = src.reps; init_reps = src.init_reps; return *this; } sender < signal_t > &#038; get_out() { return clock_node; } void activate() { clock_node.activate(); } void reset() { reps = init_reps; } }; This class is based on the source_node . It generates a signal, alternating between low and high, every ms milliseconds. There is also an option to repeat the alternation a certain number of times and then stop, which is useful for designing simulations that use a clock but also terminate. The source_node body sleeps for a duration before flipping the signal and sending it. It doesn’t begin sending signals immediately, but requires activation. In the case of a non-infinite clock ( reps is set), once the pulse object has run for the given number of repetitions, it can be reset and reactivated to use it again. Next, we discuss two output devices, the LED and the digit . The LED is simply a tiny light that is on while the signal it is receiving is high, and off when the signal is low. For simple text display, the LED looks like this: (*) when it is on and ( ) when it is off. The digit device receives a four-bit input and displays a single hexadecimal digit. For simulations, both devices have the option of continuously displaying their state as it changes, or a silent mode, which displays only when a display method is called. class led { class led_body { signal_t &state; string &label; bool report_changes; bool touched; public: led_body(signal_t &#038;s, string &#038;l, bool r) : state(s), label(l), report_changes(r), touched(false) {} continue_msg operator()(signal_t b) { if (!touched &#124;&#124; b!=state) { state = b; if (state != undefined &#038;& report_changes) { if (state) printf("%s: (*)n", label.c_str()); else printf("%s: ( )n", label.c_str()); } touched = false; } return continue_msg(); } }; graph&#038; my_graph; string label; signal_t state; bool report_changes; function_node < signal_t, continue_msg > led_node; public: led(graph&#038; g, string l, bool rc=false) : my_graph(g), label(l), state(undefined), report_changes(rc), led_node(g, 1, led_body(state, label, report_changes)) {} led(const led&#038; src) : my_graph(src.my_graph), label(src.label), state(undefined), report_changes(src.report_changes), led_node(src.my_graph, 1, led_body(state, label, report_changes)) {} ~led() {} led&#038; operator=(const led&#038; src) { label = src.label; state = undefined; report_changes = src.report_changes; return *this; } receiver < signal_t > &#038; get_in() { return led_node; } void display() { if (state == high) printf("%s: (*)n", label.c_str()); else if (state == low) printf("%s: ( )n", label.c_str()); else printf("%s: (u)n", label.c_str()); } }; The led class contains a simple function_node that has no meaningful output (we use a continue_msg to indicate this) and thus no successors. Another way to implement this would be with an overwrite_node , but we would lose the report_changes functionality. Similarly, the digit class also cannot have successors, but we reused the gate base class to implement it, since it has multiple bits of input and needs to update its state whenever one of the inputs changes. class digit : public gate < four_input > { using gate < four_input > ::my_graph; typedef gate < four_input > ::ports_type ports_type; typedef gate < four_input > ::input_port_t input_port_t; class digit_body { signal_t ports[4]; unsigned int &state; string &label; bool&#038; report_changes; public: digit_body(unsigned int &#038;s, string &#038;l, bool&#038; r) : state(s), label(l), report_changes(r) { for (int i=0; i < N; ++i) ports[i] = undefined; } void operator()(const input_port_t::output_type&#038; v, ports_type&#038; p) { unsigned int new_state = 0; if (v.indx == 0) ports[0] = std::get < 0 > (v.result); else if (v.indx == 1) ports[1] = std::get < 1 > (v.result); else if (v.indx == 2) ports[2] = std::get < 2 > (v.result); else if (v.indx == 3) ports[3] = std::get < 3 > (v.result); if (ports[0] == high) ++new_state; if (ports[1] == high) new_state += 2; if (ports[2] == high) new_state += 4; if (ports[3] == high) new_state += 8; if (state != new_state) { state = new_state; if (report_changes) { printf("%s: %xn", label.c_str(), state); } } } }; string label; unsigned int state; bool report_changes; public: digit(graph&#038; g, string l, bool rc=false) : gate < four_input > (g, digit_body(state, label, report_changes)), label(l), state(0), report_changes(rc) {} digit(const digit&#038; src) : gate < four_input > (src.my_graph, digit_body(state, label, report_changes)), label(src.label), state(0), report_changes(src.report_changes) {} ~digit() {} digit&#038; operator=(const digit&#038; src) { label = src.label; state = 0; report_changes = src.report_changes; return *this; } void display() { printf("%s: %xn", label.c_str(), state); } }; Because digit inherits from gate , it reuses gate ’s get_in methods to connect to the ports of a digit object. Here’s an example code to test out the four-bit adder. First, create a graph: graph g; Then, create the four-bit adder, some toggles with which to set the inputs to the adder, and a digit and an LED to display the output: four_bit_adder four_adder(g); std::vector < toggle > A(4, toggle(g)); std::vector < toggle > B(4, toggle(g)); toggle CarryIN(g); digit Sum(g, "SUM"); led CarryOUT(g, "CarryOUT"); Next, connect our toggles to the input ports of the adder, and connect the adder’s output ports to the display devices: for (int i=0; i g.wait_for_all(); Now display the results: Sum.display(); CarryOUT.display(); And here they are: SUM: d CarryOUT: ( ) And with that, I’ll wrap up this blog by saying that the logic simulation example code is available as an example in Intel® TBB 4.0 Update 4, and that it has several other interesting features, like push button and constant signal input devices, NAND and NOR gates, and a D-latch circuit example. Please let us know of other interesting use cases for the or_node and any other feedback you’d be willing to give. ]]></description>
		<wfw:commentRss>http://www.softwaretools.in/digital-logic-simulation-with-the-intel-tbb-flow-graph-part-3-putting-together-a-simulation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preparing for Augmented Reality Event 2012</title>
		<link>http://www.softwaretools.in/preparing-for-augmented-reality-event-2012</link>
		<comments>http://www.softwaretools.in/preparing-for-augmented-reality-event-2012#comments</comments>
		<pubDate>Mon, 14 May 2012 06:19:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[business and marketing]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[make-sure]]></category>
		<category><![CDATA[software-business]]></category>
		<category><![CDATA[some-homework]]></category>
		<category><![CDATA[total-immersion]]></category>
		<category><![CDATA[wednesday]]></category>

		<guid isPermaLink="false">http://www.softwaretools.in/preparing-for-augmented-reality-event-2012</guid>
		<description><![CDATA[ I'm excited to see some truly amazing technology showcases tomorrow and Wednesday Augmented Reality Event 2012 . Intel will be co-hosting a booth with Total Immersion , where we’ll challenge attendees to compete on a multi-player augmented reality racing track using an Ultrabook™ ! If you’re going to be at the conference, drop us a comment below and let us know. If not, give us some homework – what do you want to know about augmented reality? We’ll make sure to report back to you after the conference! ]]></description>
		<wfw:commentRss>http://www.softwaretools.in/preparing-for-augmented-reality-event-2012/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Show 23 &#8211; AppUp Show at SXSW Part 3: Featuring Intel LANFest – Gaming for a Cause!</title>
		<link>http://www.softwaretools.in/show-23-appup-show-at-sxsw-part-3-featuring-intel-lanfest-gaming-for-a-cause</link>
		<comments>http://www.softwaretools.in/show-23-appup-show-at-sxsw-part-3-featuring-intel-lanfest-gaming-for-a-cause#comments</comments>
		<pubDate>Mon, 14 May 2012 06:19:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[attendees-had]]></category>
		<category><![CDATA[episode]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[held-during]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[intel-atom]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[opportunity]]></category>
		<category><![CDATA[rhonda]]></category>
		<category><![CDATA[the-opportunity]]></category>
		<category><![CDATA[the-second]]></category>
		<category><![CDATA[the-show]]></category>
		<category><![CDATA[ultrabook]]></category>
		<category><![CDATA[zitterkopf]]></category>

		<guid isPermaLink="false">http://www.softwaretools.in/show-23-appup-show-at-sxsw-part-3-featuring-intel-lanfest-gaming-for-a-cause</guid>
		<description><![CDATA[ The Intel AppUp show for developers "Show 23": this episode ends Bob and Rhonda’s adventure at SXSW Interactive Screenburn 2012. In this episode they feature Intel LANFest, which was held during Screenburn. In the first half of the show, Rhonda talks with Intel engineer, John Zitterkopf, about LANFest. For this event, attendees had the opportunity to win a brand new custom Ultrabook™ device. Watch the second half of the show to see who won! read more ]]></description>
		<wfw:commentRss>http://www.softwaretools.in/show-23-appup-show-at-sxsw-part-3-featuring-intel-lanfest-gaming-for-a-cause/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meetup HTML5, CSS3 &amp; Pizzas le 16 Mai</title>
		<link>http://www.softwaretools.in/meetup-html5-css3-pizzas-le-16-mai</link>
		<comments>http://www.softwaretools.in/meetup-html5-css3-pizzas-le-16-mai#comments</comments>
		<pubDate>Mon, 14 May 2012 06:19:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[cross-platform]]></category>
		<category><![CDATA[dition-haute]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[meetup]]></category>
		<category><![CDATA[multim]]></category>
		<category><![CDATA[pour-une]]></category>
		<category><![CDATA[une-fois]]></category>
		<category><![CDATA[vous-annoncer]]></category>

		<guid isPermaLink="false">http://www.softwaretools.in/meetup-html5-css3-pizzas-le-16-mai</guid>
		<description><![CDATA[ Je suis heureux de vous annoncer que le Meetup HTML5 est de retour à]]></description>
		<wfw:commentRss>http://www.softwaretools.in/meetup-html5-css3-pizzas-le-16-mai/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meshcentral.com &#8211; High DPI support</title>
		<link>http://www.softwaretools.in/meshcentral-com-high-dpi-support</link>
		<comments>http://www.softwaretools.in/meshcentral-com-high-dpi-support#comments</comments>
		<pubDate>Mon, 14 May 2012 06:19:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[dpi]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[homescreen]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[meshcentral]]></category>
		<category><![CDATA[meshcentral.com]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[mobility]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[peer-to-peer]]></category>
		<category><![CDATA[retina]]></category>
		<category><![CDATA[retina-displays]]></category>
		<category><![CDATA[support-now]]></category>

		<guid isPermaLink="false">http://www.softwaretools.in/meshcentral-com-high-dpi-support</guid>
		<description><![CDATA[ In my last blog I talked about adding iPad Retina display to Meshcentral.com. Well, I made two more improvements on that same topic. First, the new high DPI support now includes Internet Explorer. If you set the zoom factor on IE to 150% or more and go to Meshcentral.com , you will see the high resolution graphics. Seconds, I expended support for high DPI displays and iPad retina displays to the Meshcentral.com mobile application. It's accessible at: https://meshcentral.com/m . On iPhones and iPad's, you can go to that URL and "Add to Homescreen". You will get a high resolution iOS icon, a splash screen and a really nice web application to monitor your devices. The application looks just wonderful on the new iPad's display. Ylian meshcentral.com ]]></description>
		<wfw:commentRss>http://www.softwaretools.in/meshcentral-com-high-dpi-support/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO Fundamentals:  Where to Begin When Optimizing for Search Engines</title>
		<link>http://www.softwaretools.in/seo-fundamentals-where-to-begin-when-optimizing-for-search-engines</link>
		<comments>http://www.softwaretools.in/seo-fundamentals-where-to-begin-when-optimizing-for-search-engines#comments</comments>
		<pubDate>Mon, 14 May 2012 06:19:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[attention]]></category>
		<category><![CDATA[audience]]></category>
		<category><![CDATA[business and marketing]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[Practice]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[target]]></category>
		<category><![CDATA[your-website]]></category>

		<guid isPermaLink="false">http://www.softwaretools.in/seo-fundamentals-where-to-begin-when-optimizing-for-search-engines</guid>
		<description><![CDATA[ This is a guest post by Michael Fleischner. Michael Fleischner is an Internet marketing expert with more than 14 years of marketing experience. He has appeared on the TODAY Show, ABC World News, and Bloomberg Radio. Michael is the author of today's top-selling SEO book on Amazon.com, "SEO Made Simple." Michael's marketing blog is one of the most visited marketing blogs on the Web at marketing-expert.blogspot.com . To follow Michael, visit The Marketing Blog or connect via twitter @ mfleischner . Search engine optimization, commonly referred to as “SEO,” is the practice of making changes to your website, and improving your website’s authority, to influence your site’s ranking on major search engines like Google, Yahoo!, and Bing. When your website appears at the top of search engine result lists for a specific query, you generate targeted traffic to your website or blog. The concept of search engine optimization can sometimes appear to be nothing short of complex and overwhelming—but it doesn’t have to be. Fundamental best practices associated with search engine optimization (SEO) are easily understood and can be applied regardless of technical knowledge or direct experience with optimizing websites, blogs, or digital assets. Consider the following SEO fundamentals before starting any search engine optimization program: 1. Know your audience. Before you can optimize your website, you first need to have a good understanding of your target audience. Even though the concept of audience identification or segmentation may seem more akin to general marketing practices, it’s an essential step before starting any SEO campaign. This information is essential for planning your site architecture, URLs, and keyword selection. With a fundamental understanding of your audience, what they buy, and how they research products and services online, you have a much better opportunity to develop, organize, and position your site for relevant keywords and top search engine rankings. 2. Know yourself. What is your company’s unique selling proposition? When browsers see similar results after an initial search, organic listings related to your site should be unique and stand out from your list of competitors. By understanding how to position your company and products properly, you can develop a website to reflect these unique qualities. 3. Begin with the end in mind. Before building your site or updating it to meet the demands of today’s optimization standards, consider your audience, unique value proposition, and website goals. Some websites are designed to be informational, others serve as a place for customers to gain access to information, tools, and resources, and finally, some websites are designed for eCommerce. Regardless of how you choose to develop your site, think through the navigational process of website browsers, prospects, and future customers. The most important information should be easily accessible and organized to lead prospects down the path to purchase. After you’ve thought through the fundamental aspects of your search engine optimization program, the next step is to begin the journey of website optimization. Although SEO does have a large number of factors to consider, the plan of attack should always begin by focusing on on-page optimization followed by off-page optimization. On-page optimization is the process of organizing a website and developing it in a manner that allows search engines to easily access the site, find rich, original content that focuses around a particular subject (silos), and create a positive user experience that includes fast load times, ease of use, and social sharing. Once a site has been built and meets the standard of on-page best practices, it’s time to turn your attention to off-page optimization. Keep in mind, however, that on-page optimization is never truly complete. Updates should be made regularly to reflect changes to the Google algorithm, and new, unique content should also be generated on a regular basis. This includes published content and user-generated content. Off-page optimization is the practice of developing quality inbound links to your website, blog, and other digital assets. There are dozens of techniques for building quality inbound links, and you should always research and learn which techniques have the greatest impact on organic rankings. The goal of off-page optimization should be the long-term development of links that include keyword phrases you are trying to optimize for. Search engine optimization is an essential part of any online business or offline business seeking to attract new customers. Consider how your target market gathers information and makes purchases. Once you understand their motivations and preference, it’s time to get serious about SEO. ]]></description>
		<wfw:commentRss>http://www.softwaretools.in/seo-fundamentals-where-to-begin-when-optimizing-for-search-engines/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deterministic Reduction: a new Community Preview Feature in Intel® Threading Building Blocks</title>
		<link>http://www.softwaretools.in/deterministic-reduction-a-new-community-preview-feature-in-intel-threading-building-blocks</link>
		<comments>http://www.softwaretools.in/deterministic-reduction-a-new-community-preview-feature-in-intel-threading-building-blocks#comments</comments>
		<pubDate>Mon, 14 May 2012 06:19:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[body]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[computer arithmetic]]></category>
		<category><![CDATA[CONSIDERATIONS]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[parallel programming]]></category>
		<category><![CDATA[parallelism]]></category>
		<category><![CDATA[parallel_reduce]]></category>
		<category><![CDATA[reference]]></category>

		<guid isPermaLink="false">http://www.softwaretools.in/deterministic-reduction-a-new-community-preview-feature-in-intel-threading-building-blocks</guid>
		<description><![CDATA[ Computer Arithmetic has a lot of peculiarities [1] . One of these pitfalls is associativity failure in floating point arithmetic. For example, the two sums of fractions calculations below will not produce the same result when using float s: In a sequential program, it is not a big problem since the calculation order is exactly specified so the result is predictable and repeatable. The situation is not so clear in parallel programming. To make the example parallel, I used the parallel_reduce template function from Intel® Threading Building Blocks (Intel® TBB): std::vector arr( N, 1.0f/(float)N ); float sum = tbb::parallel_reduce( tbb::blocked_range( arr.begin(), arr.end() ), 0.0f, []( const tbb::blocked_range&#038; r, float sum ) { return std::accumulate( r.begin(), r.end(), sum ); }, std::plus () ); std::cout ]]></description>
		<wfw:commentRss>http://www.softwaretools.in/deterministic-reduction-a-new-community-preview-feature-in-intel-threading-building-blocks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Pinterest Useful to Software Businesses?</title>
		<link>http://www.softwaretools.in/is-pinterest-useful-to-software-businesses</link>
		<comments>http://www.softwaretools.in/is-pinterest-useful-to-software-businesses#comments</comments>
		<pubDate>Mon, 14 May 2012 06:19:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[business and marketing]]></category>
		<category><![CDATA[digital marketing]]></category>
		<category><![CDATA[Field]]></category>
		<category><![CDATA[Images]]></category>
		<category><![CDATA[intel sw partner program]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[social-media]]></category>

		<guid isPermaLink="false">http://www.softwaretools.in/is-pinterest-useful-to-software-businesses</guid>
		<description><![CDATA[ By now, you've probably heard about Pinterest . It's an online “image” grabbing site that allows users to group images captured (pinned) from websites onto pages which can then be shared with others who have a similar interest. Think of it as online scrapbooking except that, this being the internet, you're able to follow the graphic image back to the original website. Let's say that someone I follow has a page of “Hardware, You Gotta Have.” If I see a photo of a new Ultrabook™ , I might be inclined to click on that photo to get more information from the original website. It is in those traffic clicks where lies the possible advantage of Pinterest to your company. Pinterest is yet another possible way to drive consumers to your website. Source: intel.com via Intel on Pinterest Quite frankly, the platform is so new that the jury is still out on whether or not Pinterest is helpful for generating leads. But this is what we know so far: people are flocking to Pinterest and creating all sorts of groups which are then attracting the attention of lots of other people. And when people are interested in something on the internet, that means there is an opportunity to get involved and to get your marketing message heard. As an example of how a software company effectively uses Pinterest to engage its audience, take a look at Microsoft’s Pinterest page . Not only does this page highlight new apps, software, and some of the latest products and services, but if you look through the “pins,” you’ll also see links to things like “Foods that boost you immune system” and pictures of the Microsoft main campus. This diverse visual combination results in a page that both sells product and gives value to its audience by presenting “nice to know” information right alongside the important marketing information. It all works together in grabbing the potential customer’s attention. For now, what should your company do about Pinterest? Set up a page and let your presence be known When you set up your Pinterest page, you'll be asked to invite others to follow you (usually from your email list) go ahead and invite everyone you think would be interested. Just the fact that you are willing to give Pinterest a try might be enough to get someone interested in your company. Click here to sign up for Pinterest. http://pinterest.com/landing/ Don't spend a lot of time on it I know, I know, it sounds a little counter-intuitive but Pinterest is new and still has some problems, most notably regarding image copyright. For now, set up your account. Do searches and follow those who have similar likes and interests, but resist the urge to spend huge amounts of time creating lots of groups. Like some other Social Media platforms, this could fizzle out fairly quickly. Have everything in place, though, in case it doesn't. Have outstanding graphics on your site that someone might be inclined to pin People can't pin your image if there is no image to pin. Not only should you have an outstanding graphic on your landing page but you should put a little “Pin this” tag near the graphic to remind people to pin it. The more people who grab the image, the more people are going to see it and possibly click back to your website. Use Pinterest to check out who is pinning your site Pinterest can be used for customer demographics. Do a few searches on your name and your images to see the types of people who may be pinning your company to their pages. Are they who you had hoped would grab the images? If not, do you need to rethink your image and perhaps use another one that might be more attractive to your desired demographic? A quick way to search on Pinterest is to go to: www.pinterest.com/source/YOURWEBSITE Find the people on Pinterest who are interested in your field and start following them Like people share like things, and eventually learn to trust each other. If you follow the people who have an interest in your field, you will establish yourself as a member of that community and soon others in that community will start to follow you. What have you heard about Pinterest? Do you see the use of collected images drawing traffic to your site? Have you seen good examples of Pinterest accounts highlighting software? ]]></description>
		<wfw:commentRss>http://www.softwaretools.in/is-pinterest-useful-to-software-businesses/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

