Erector Spykee - The Spy Robot

There is a new hot toy out today. It looks like Spykee from Erector has become a hot seller. Only a few stores decided to offer these amazing robots and already they have sold out.  This Robot is a Webcam, a internet phone, a Digital music player and an interactive robot that has never been offered before.
This robot can be controlled from any computer around the world and will allow you to talk and see your friends and family. Imagine yourself in Paris and you logon and drive Spykee the Spy Robot over to your Son’s room and wake him up in the morning.
These will be sold out by December 15th. Take our word for it.


Videos

Loading...
Loading...

Pictures

News

No related items were found.

More

  • No, seriously. Why wouldn't you use Erector? Cause I think it's a pretty awesome view framework, but for some reason it hasn't caught fire yet. So if you think writing actual Ruby to emit HTML, with a clean, nestable syntax with full support for Ruby features like inheritance, delegation, and yield is neat, but there's something holding you back, then please let us know what it is. At best we can fix it, and at worst, at least we'll know why.

    Here are some reasons I think you might not use Erector:

    You love angle brackets. If this is the case then I can't help you. I don't think anybody can.

    You like typing every tag name twice. Since Erector elements are Ruby statements, every open tag gets automatically closed.

    You like invalid HTML. Since Erector elements are Ruby statements, every open tag gets automatically closed. (See how that works?)

    You always remember to call 'h'. Rails 3.0 is going to HTML-escape all output by default. Erector's been doing this the whole time. Cause, you know, why wouldn't you?

    You like having to rewrite your code when you extract a partial, and then again when you extract a helper method. In ERB, templates, partials, and helpers all have slightly (and annoyingly) different syntax for things like referring to variables and calling other code. Erector is all Ruby, so you can use your favorite refactoring browser, or just cut and paste, to move your code around. Check out this excerpt from Jeff Dean's RailsConf talk to see this in action, or read the slides from the whole talk on SlideShare.

    You hate encapsulation. You think that your views should have direct access to all the instance variables of your controller. Unless they're partials, in which case you shouldn't, even though you can, although the names might be different. Confused yet? So am I.

    You like putting code for one component in three separate files. Erector's new "externals" feature allows you to put all the code -- HTML, CSS, and JavaScript -- inside a single Ruby class. The CSS and JavaScript then get output inside the HEAD, once per HTML page, while the HTML gets rendered in the BODY as usual, as many times as necessary. This follows the OO paradigm of cohesion, otherwise known as "put similar stuff together," which is the complement of loose coupling, which means, "keep different stuff apart."

    Okay, so those were sarcastic reasons. Here are some more possible reasons why you wouldn't use Erector. I suspect that these next ones hit closer to the mark. But I believe that they're all specious, if not downright false.

    Your site contains a whole lot of complex HTML and a few inserted Ruby variables. OK, this makes sense. Erector's not great for static sites. But I've never personally worked on a web application where the code inside the views didn't quickly get complex enough to require codey things like loops and functions. And if you're writing code, then why not do it in a programming language?

    Your designers don't know Ruby. I've heard this complaint a lot, but I have yet to meet this mythical designer who's smart enough to understand modern HTML, CSS, JavaScript, ERB, and partials, but is not smart enough to learn that "div 'foo', :class=>'bar'" outputs "<div class='bar'>foo</div>". On the contrary, I've worked with several designers who, after a few tutorial pairing sessions, were comfortable checking code in and out and editing Erector view code at will. Like any junior coder, they need to stay away from the tough stuff, but they're pretty good at knowing what they don't know and asking for help when they need it. (Which they would also do if working inside ERB.)

    View code needs to look as similar to HTML as possible. Well, I hear this, but have you looked at HAML? That language is hella popular, and it doesn't look anything like HTML. Its structure is similar, in the abstract, but so's Erector's, and at least in Erector the method for emitting a div is called, you know, "div". And it's a method. And I don't want to turn this into a war between HAML and Erector -- I think HAML is gorgeous -- but HAML suffers from the same design flaw as every templating technology: views are not objects, and markup isn't code. After a certain point of complexity, HAML's elegance breaks down and you'd be better off doing loops and functions in code.

    You've already got a bunch of stuff in ERB and it'd take too long to convert it. Yes, legacy code is a pain, but we have a command-line tool that converts ERB (or HTML) to Erector to make it a bit smoother. And you don't have to convert your whole app to Erector at once. Erector views can interoperate with ERB or HAML in Rails and Sinatra.

    You're stuck on an old version of Erector. Yes, legacy code is a pain, but we have an upgrade guide for getting to 0.6.0, and people on the mailing list ready to help.

    Erector's too slow. Lies! Erector is faster than a greased rattlesnake going downhill. Check out these benchmarking results. Erector is about 2x as fast as ERB and 4x as fast as HAML about the same speed as ERB and HAML(*) under typical conditions. We make sure to use the same output stream to minimize string copy or realloc, and using Ruby objects means much lower parsing overhead.

    (*) Update: the "2x/4x" figure was based on a benchmark program that didn't use template caching, which speeds things up for both ERB and Haml. With template caching, Erector and Haml are about the same speed; Haml is about 20% faster when rendering a page with no partials. See this ongoing thread on the Erector list.

    There's no documentation. More lies! We have a whole bunch of documentation at http://erector.rubyforge.org, including a FAQ and a user guide.

    You got burned by Markaby. Underneath the elegant facade of Markaby lay a confusing and often counter-intuitive engine. Its use of instance_eval and other tricks made simple things break in weird ways and made debugging a real chore. Erector was born out of those frustrations, and one of its main design goals is "no magic." Also, there was a long time where Markaby wasn't being maintained (although that's changed recently); we have a core group of developers committed to responding on the mailing list and github, and we run integration tests against the latest stable Rails release (and soon, against Edge) to catch incompatibilities early on.

    Rails has all these great helpers and I want to keep using them. Okay, go right ahead! Erector's Rails integration allows you to call any helper, either directly through a proxy method, or indirectly through the helpers object. If you find a helper that doesn't work, let us know and we'll add it to the list of supported helpers. (We haven't done all of them yet because it's a pain in the neck to look at each function and figure out what its input and output semantics are. Does it return a string or emit directly onto the output stream? Does it take a block? An options hash? An html_options hash? Etc.) We're also slowly putting some Rails functionality into Erector, either in the base class or in custom widgets. If there's something you need, ask on the mailing list, or better yet, send us a patch.

    Its name is a dirty word. I've heard this more from people who didn't grow up in the United States, where the Erector Set was a popular toy among the 6-to-12-year-old DIY set in the 70s and 80s. (Apparently it was called Meccano in the UK.)
    Erector is a normal word, used all the time in the news and in business names. And as the name of a view library it's evocative in a way that's relevant and interesting, in that it's a builder, and you build a view up out of parts.

    But we have heard this complaint, and in sympathy, changed the name of the command-line tool (oh, sorry, guess I can't say "tool" either)-- uh, executable-- from "erect" to "erector" even though the former is a venerable English verb that's grammatically appropriate ("I asked him to erect the scaffolding."). If you introduce the library and your coworkers get all giggly then I think if you just say the name with a straight face and then roll your eyes and mock your bawdy buddies when they snicker then all will be well. After a few repetitions it won't sound odd at all.

    You've never heard of it. Help spread the word! Post a review on your blog! Ask your favorite app framework whether they support it! Post code samples in Erector and when people say "What's that?" then point them at http://erector.rubyforge.org! Give a talk at a meetup! Write your congressman and ask if she supports the Erector Mandate Bill of 2009! Buy ad space on the moon!

    So, in conclusion, and despite my somewhat snarky tone throughout, I am honestly and desperately curious to know why the world has not yet beat a path to Erector's door. Anybody got any more ideas?

  • There is a new hot toy out today. It looks like Spykee from Erector has become a hot seller. Only a few stores decided to offer these amazing robots and already they have sold out.  This Robot is a Webcam, a internet phone, a Digital music player and an interactive robot that has never been offered before.
    This robot can be controlled from any computer around the world and will allow you to talk and see your friends and family. Imagine yourself in Paris and you logon and drive Spykee the Spy Robot over to your Son’s room and wake him up in the morning.
    These will be sold out by December 15th. Take our word for it.

  • In a blog posting earlier this year, Ian Murdock, Sun Microsystems' vice president of cloud computing strategy and Debian GNU/Linux founder, wondered what might emerge as the cloud equivalent of the Linux distribution.

    Murdock pointed out that the cloud computing world today resembles the early days of Linux, during which dabblers with a surplus of time and motivation could assemble and integrate their way to a Linux platform.

    However, it wasn't until the Linux distributions emerged and whisked away much of the code-cobbling grunt work that the platform became broadly useful.

    Certainly, the assortment of different Web-based services out there could be made more useful through a bit of Linux distributor-like massaging, but a menu of mashed-up Web services won't add up to a platform comparable to Linux.

    The problem with that mashed-up picture--and the root, I suspect, of much of the anti-cloud sentiment that emanates from those without anything Web 2.0 to sell--is that it offers too little provision for packing everything up and moving it behind your firewall, or behind your laptop cover, if that's what you'd prefer.

    Lately, the term "private cloud" has been turning up quite a bit, and, in many cases, I've seen the phrase met with derision, as though people who wish to organize their workloads a la Amazon or consume software in the style of Salesforce without entering into a blood pact with such an organization don't "get it."

    The power of Linux as a platform lies in its capacity not only for taking on almost any task, but also for attacking those tasks almost anywhere. Certainly, you'd be hard-pressed to achieve the level of operational efficiency of an Amazon or a Google, but that's no reason not to seek a more portable future for the cloud.

    When I consider what might emerge as the cloud-era equivalent of the Linux distribution, the most likely candidate seems to me to be the Linux distribution itself.

    And, as I learned during a talk by Red Hat CTO Brian Stevens at last month's IDC Cloud Computing Forum West, the Linux world's most prominent distributor is working toward bringing just such a reality to pass.

    Through a collection of separate projects, clustered around Red Hat's oVirt virtualization management project, the company has been working toward extending Linux's layers to encompass a complete cloud reference implementation.

    At the IDC event, Stevens roughly outlined his company's plans to make this reference implementation available in the form of a publicly accessible test cloud running on Red Hat-hosted machines. At the same time--which, according to Stevens, should be around this summer--Red Hat will make the reference implementation available in a downloadable form suitable for installing on a pair of servers on ones' test bench.

    As Stevens hastened to point out, Red Hat is not out to become a cloud provider itself; rather, the company views its plans to advance the state of cloud-building as the logical next step in the platform continuum that Red Hat, Ian Murdock and others began in the early '90s.

    Since it began life as a bare kernel intended for educational purposes, Linux has steadily accrued higher-level stack layers, which now include the capacity for hosting virtual instances of itself or other operating system environments.

    It stands to reason that Linux should continue scaling up, into a building block for any number of private, public or test clouds, each bearing their own set of the slight adaptations through which all technologies evolve.

    UPDATE: Just a few hours after I posted this, I caught sight of Mark Shuttleworth's Ubuntu 9.10 name and goals announcement message. One of the goals for that release, and for the 9.04 version that will precede it, are cloud-building capabilities along the lines of what Red Hat has in mind:

    What if you want to build an EC2-style cloud of your own? Of all the
    trees in the wood, a Koala's favourite leaf is Eucalyptus. The
    Eucalyptus project, from UCSB, enables you to create an EC2-style cloud
    in your own data center, on your own hardware.

  • Erector Spykee Cell ... by Erector 4,044% Sales Rank in Toys & Games: 303 (was 12,557) Buy new: $199.99 $70.00 ... 2 used & new from $70.00...

  • Erector Spykee Cell ... by Erector 4,302% Sales Rank in Toys & Games: 174 (was 7,661) Buy new: $199.99 $79.99 (Ranking is updated hourly.

  • Erector Spykee Mini Vox ... by Erector 1,132% Sales Rank in Toys & Games: 305 (was 3,760) (3) Buy new: $39.99 $19.99 ... 2 used & new from $19.99...

  • This episode of the G Spot (#8) takes you on a borderline insane behind-the-scenes trip into the recording studio, to hear the various outtakes and other mishaps that occured in the production of our first G Spot video ad. Welcome to our world. (Background music by Johann Ess and Aphex Twin, piano composition and performance by Nate Sampsel.)

    Download The G-spot: Episode 8Share This

  • Erector Spykee Mini Vox by Erector (3)Buy new: $39.99 $19.99 2 used & new from $19.99(Ranking is updated hourly. Visit the Bestsellers in Construction & Models list for authoritative information on this product's current rank.)

  • Erector Design Kit Speedboat Set by Schylling Buy new: $10.34 12 used & new from $6.99(Ranking is updated hourly. Visit the Bestsellers in Boats list for authoritative information on this product's current rank.)

  • Erector Spykee Mini Vox by Erector 1,188% Sales Rank in Toys & Games: 272 (was 3,504) (3)Buy new: $39.99 $19.99 2 used & new from $19.99(Ranking is updated hourly. Visit the Movers & Shakers in Toys & Games list for authoritative information on this product's current rank.)

  • Erector Spykee Cell by Erector Buy new: $199.99 $79.99 3 used & new from $79.99(Ranking is updated hourly. Visit the Bestsellers in Figures list for authoritative information on this product's current rank.)

  • Erector Spykee Mini Vox by Erector (3)Buy new: $39.99 $19.99 2 used & new from $19.99(Ranking is updated hourly. Visit the Bestsellers in Figures list for authoritative information on this product's current rank.)

  • Erector Spykee Cell by Erector 40,222% Sales Rank in Toys & Games: 116 (was 46,774) Buy new: $199.99 $79.99 (Ranking is updated hourly. Visit the Movers & Shakers in Toys & Games list for authoritative information on this product's current rank.)

  • [Updated: added instructions "If you are using a widget in rails, you now need to inherit from RailsWidget"]

    Erector has been around for almost 2 years now, but we've always been a little reluctant to market it heavily. One reason has been that the API was a little inelegant. Another is that Rails integration wasn't as seamless as we'd like.

    With today's release of version 0.6.3, we have hopefully fixed both of those problems. With the new RailsWidget we've got a clean separation between core Erector functionality and the magic we need to make it work with Rails. We've renamed "render" to "content" so we don't conflict with the standard Rails render method. And we've changed the API for smoother lifecycle management -- the constructor is about initializing the widget, and the refurbished "widget" method is about setting it up to emit its HTML.

    The bad news is that you'll have to change your existing code. The good news is there's an update guide, which you'll find below the fold in this blog post.

    Please visit our Google Group to register comments or complaints, our project web site for full documentation and FAQs, and feel free to clone or fork our GitHub repo.

    (Why 0.6.3 and not 0.6.0? Because we had to work through some glitches in the new deploy process with GitHub and Jeweler and whatnot. We're only human...)Erector 0.6.0 Announcement

    This release is the first major API change to Erector. It will definitely break
    existing code. Sorry about that, but we promise it'll be cleaner afterwards.

    Quick Update Guide

    • Rename 'def render' to 'def content' in all your widgets
    • If you are using a widget in rails, you now need to inherit from
      RailsWidget to get helper goodness
    • Change MyWidget.new(helpers, assigns, output) to just
      MyWidget.new(assigns)
    • To render a widget from inside another widget, use

      widget MyWidget, :foo=>2

      or

      widget MyWidget.new(:foo => 2)

    • If you want your variables to have attr_readers, use 'needs'
    • If you want your widgets to be more self-documenting, use 'needs'

    Major API changes

    • "new" and "to_s" have been changed to clarify the lifecycle of a widget,
      so "new" accepts permanent state ("assigns" variables) and "to_s" accepts
      temporary, rendering state (output stream, helpers, and prettyprinting).
      This lets you do things like make collections of widgets in once place in
      your code and render them in another place.
    • Renamed "render" to "content", which removes confusion/ambiguity with
      Rails' "render" method and concept, and also allows "render :partial" to
      be made to work (though we're not sure if that totally works yet).
    • To render a widget from outside code, the pattern is:

      w = DateWidget.new(:when => Time.now, :title => "Nap Time")
      puts w.to_s(:helpers => some_rails_view)

    • To render a widget from inside another widget:

      def content
      # first way... pass class and assigns
      widget DateWidget, :when => Time.now, :title => "Nap Time"
      # second way... pass instance
      widget DateWidget.new(:when => Time.now, :title => "Nap Time")
      end

      Using "widget" will improve performance over calling "raw foo.to_s" or
      whatever since it reuses the same output stream.

    • To declare variables -- and raise an exception when one is not provided:

      class JohnLennon < Erector::Widget
      needs :love
      end

    • Formerly, every 'assigns' variable had an attr_reader defined for it. Now,
      only variables declared with 'needs' get attr_readers.

    Other changes:

    • Removed Widget#to_s caching, which fixed indentation issues.
    • BUGFIX: Indentation level is now correctly propagated to nested widgets.
    • Erector's Rails support strategy has changed. The released version of
      Erector only supports the latest stable Rails version (currently 2.3.2).
      If you need support for earlier versions of Rails, there are separate Git
      branches for each one, but we will not be in the habit of keeping these up
      to date with the latest features and patches. If someone wants to do a
      merge to a prior Rails branch, Brian will be happy to help :-)
  • Just putting the final touches to the worlds tallest building.The "Burj Dubai" @ 2,260 ft / 801m !!!