Google gives us a graphing tool that plots mathmatical functions. Happy Festivus!
http://insidesearch.blogspot.com/2011/12/showing-some-love-to-math-lovers.html
Google gives us a graphing tool that plots mathmatical functions. Happy Festivus!
http://insidesearch.blogspot.com/2011/12/showing-some-love-to-math-lovers.html
Posted at 05:36 AM in Web/Tech | Permalink | Comments (0)
My First (not so) Smartphone
A couple of years ago, I bought the Blackberry Storm 9530 (the first one). It was ok, even snappy... until I downloaded more than 2 apps on it. Apparently it wasn’t designed to hold very many apps (like 3, boo).
Let’s Go Shopping!
I’ll spare you the laundry list of problems with my Blackberry. The point is, I have been making due with this neglected stepchild of RIM’s for over 2 years. I have been uncharacteristically restrained and fiscally responsible. And now I am due for a phone upgrade! Lucky for me, the Droid Bionic, and possibly the Samsung Galaxy S2 will be out shortly (rumor has it, August/September).
But If You Don’t Have An iPhone...
But some would say I should wait for the iPhone 5. After all, Apple’s “App Store” has over 500,000 apps in it. But what does that mean? Am I going to download 500,000 apps? Probably not.
What’s In An App?
So what is important about these apps then? 500k is an impressive number, but less impressive without context. How many USEFUL apps are available? I don’t have need for 300 apps that make fart noises. How many of these apps are “I gotta have this, can’t live without it” good?
And if I went with an Android device, how many of these apps would I have to do without? So far, my experience has been that all the best app developers publish for Android at the same time, or very near at the same time as iOS. Rare indeed are apps I would call truly useful that exist only on one of these platforms.
Integration Sensation
So another thing to consider is integration. I download apps to extend my the abilities of my device. One thing I have enjoyed, and use on a regular basis on my poor old Blackberry is the send/share feature: when I take a photo I can upload it directly to Facebook. This is a feature I love, and would miss. Unfortunately, in iOS you need to be in the Facebook app to do the same thing. It’s not as integrated an experience. When I take a photo on an Android device, just like my BB, I have the option of sharing via multiple services (depending on what I have installed). Each new app I install has the ability to extend my experience in a way that is just not available on iOS.
But The Walled Garden Keeps Out The Bums!
All iOS apps go through a stringent approval process. It doesn’t necessarily make them good apps, and is certainly no guarantee they are going to be useful. In addition, development in the iOS environment is subject to certain restrictions that actually REDUCE the quality of my experience. Amazon, Google, and Rhapsody (amongst others) have all recently removed buttons that would make purchasing content easier. The reason? If the button is going to stay, Apple requires a 30% cut of sales. The result? My experience is less integrated, less seamless.
The iOS development and submission process is a minefield of restrictions, many of which are strictly geared towards Apple protecting their share of my disposable income. Yes, there are more apps on iOS. Does that really matter?
Big Numbers Are Impressive!
Android is claiming over 550,000 new activations per day. iOS is claiming just over 300,000 new activations per day. Analysts predict iOS will hold between 18% and 16% by the end of 2011, while Android is expected to have captured easily double that.
Developers tend to go where the audience is. I am not saying iOS is in danger of becoming obsolete... but as a Developer I might look at where I can get the widest adoption and develop for that platform first.
The Next Two Years
2 years is an eternity in mobile tech. That said, I am hoping to live happily with my next phone for 2 years. During that time, I think the App landscape will change radically. Mainly, general focus and favor will shift from iOS to Android. My next phone will be a Bionic. Or Samsung Galaxy S2...
Posted at 09:45 AM in Web/Tech | Permalink | Comments (1)
While building a web based viewer that uses the SVG format to display 2D documents, we have run into some interesting issues. There are many ways of getting an SVG into your HTML, and each comes with it’s own set of features and problems.
We needed access to individual elements within the SVG document. That pretty much narrowed our choices down to injecting the SVG inline (this has x-domain issues), placing the SVG in an iframe, or using the <object> tag.
We also needed to be able to Pan the document... this means we need drag and drop functionality. Unfortunately the default click event handlers didn't function properly in iframes in our initial tests. This left us with the <object> method.
The <object> tag is generally the preferred method of displaying SVG files. It has wide browser compatibility and allows access to the inner DOM, important when you want to manipulate sub items like layer visibility.
So we’ve been using <object>, and it works fine in our development and testing... right up until we put it on an external server. And then came the problems with IE9 (oh IE, you wily minx!).
We started to see that (only in IE9, and only from behind our corporate firewall) the initial header request for would stall for 2-3 minutes. That’s a long time to wait for an SVG to start to download!
It’s gotta be the firewall, right? Then we thought, maybe something else in our viewing application might be effecting it. Maybe it was a mis-configuration server-side?
In the meantime, we started to see the same issue pop up in another project that was getting ready to launch. It started to appear right after we introduced CloudFront for content delivery.
We made a reduced reproduction of the case, a basic html page with a SVG in an <object> tag. This time the problem was evident everywhere, even outside our corporate network... as long as the SVG was requested from CloudFront.
As it turns out, when there is a caching layer such as a packet-shaper/firewall/CDN, the <object> method for SVG embedding kinda sucks on IE9. I am going to say this is a bug in IE... it doesn’t seem to effect the other browsers that support SVG.
If IE9 support is important to you, then my recommendation would be to use an iframe to embed your SVGs. We have since conquered the event handler issues we were having with iframes initially, and iframes seem to have consistent compatibility and still allow us DOM access.
Posted at 12:51 PM in Web/Tech | Permalink | Comments (1)
Who’s Afraid Of WebGL?
If you have been paying attention to WebGL news, you will no doubt have heard that Microsoft is officially really concerned about the security of WebGL. Of course there are differing views, even within Microsoft. The topic has been done to death, so I won’t re-hash it here. If you have missed the hubbub, LearningWebGL covers it pretty extensively.
What is interesting is, WebGL in the way we are using it for Project Nitrous in Autodesk Labs is definitely NOT a security risk.
Consider this scenario:
At no point is the pipeline subject to malicious code injection.
WebGL has direct access to your GPU, and graphics drivers are not known for their focus on security. A WebGL application with evil intent could potentially DOS your machine, or worse. A question to ask yourself is: “do you trust the author of the app you are using”.
It seems to me that the whole WebGL security issue will likely be resolved by browsers asking users this question (Much like Microsoft does now for ActiveX). In this way, WebGL is no more of a security risk than ActiveX or any other code you download from the internet.
So go check out Nitrous, it’s from a trusted source... your friends here at Autodesk.
Posted at 08:19 AM in Web/Tech | Permalink | Comments (0) | TrackBack (0)
Project Nitrous features online storage, sharing, and viewing. The viewer is able to take 3D and 2D content from Autodesks DWF format and display it in the browser, rendered via SVG or WebGL. It's best viewed in Chrome, but Firefox works too!
Grab a DWF and check it out! http://nitrous.labs.autodesk.com
Posted at 01:00 PM in Web/Tech | Permalink | Comments (0) | TrackBack (0)
When you are working on software with developers who are geo-located in different timezones, communication is key. Our team has tried a variety of approaches to bridge the distance. Some of the challenges are technical, others are social or habitual.
We have been talking for a while about what technology we could put into place to improve the quality, consistency, and presence of our communications.
Here are some of the features team members have requested:
Here are some tools we currently use:
Email
Pros Email is awesome for threaded conversations, especially when an immediate response is not necessary.
Cons Unfortunately, email tends to have a high noise to signal ratio, and the tenor of messages is sometimes lost. Threads can grow to ridiculous size when new Subject fields are not properly used.
IM
(Skype, Live Communicator, AIM, GTalk, etc)
Pros IM can be a great way to get or send information ASAP.
Cons Communication is very dependent on availability. When team members are not online, IM is rendered useless, and can even cause frustration. Working with multiple IM systems at the same time can be painful. It is possible those 10 messages you sent over IM will be lost completely because the target went offline, and you will be closing your client soon too. No IRC-like Room
Video Conferencing
Pros Video is real-time and communicates subtleties and nuance better than text or voice only.
Cons Video conferencing can be expensive to do right, quality can vary greatly, and it can present a host of technical challenges. Conversation is real time only. Notes can be manually taken and transposed to text, otherwise conversation is not logged or searchable.
Voice
Pros Like video, inflection and meaning is communicated via audio that does not always come through in text.
Cons Calls, like Video are real time only. When participants don’t speak clearly or loudly, it’s easy for a part of the conversation that happens in one room to be missed by the other room entirely.
IRC
Pros IRC provides the ability for the team to have instant chat in a Room, or one to one. Conversations can be logged, and therefore searchable. Bots are fun.
Cons IRC takes a bit of getting used to, and user interface for non-tech team members is not very friendly or familiar. Depending on your company’s policies, running an IRC room on an outside server may not be an option, and you may not want or be able to set up your own IRC Server.
Last week we tested the use of a mashup of GTalk and Yammer to see how many of the needs listed above could be satisfied.
Here are my findings so far:
· Instant: Yammer has a great notification system which includes support for notification and response via IM, SMS and Email amongst other methods.
· Versatile Client Options: I have tested it with Digsby via GTalk notification. I get messages instantly and can respond from whatever IM client I choose and am not limited to 150px wide conversations (like one is in Skype). Clients exist for Mac, Windows and Linux.
· Privacy: A Yammer group can serve as a private room where messages are only shared amongst members.
· Video: Integration with GTalk means we could have easy access to Google’s Video Chat: http://www.google.com/talk/ I it’s not group video capable, but we can probably continue to use Skype for that.
· Saved and Searchable: Yammer conversations are logged and searchable.
· Simulated Remote Presence: Real Time availability and presence notification could be accomplished if we all agree to use Gtalk as the IM client. (another one might work too)
· Notification Options: Activity Digest (never, daily, or weekly), granular email notification control, granular real-time (email, IM, SMS) notification control.
· API and Integration: Yammer has an API and has a lot of plugins and integrations including SharePoint
· Extra Features: Polls, Events, Questions, Ideas, Praise and ‘like’
· Mobile: iPhone, Blackberry, SMS, Windows Mobile, and Android native apps are all also available
Summary
I have found the Gtalk/Yammer combo to be very interesting. It ticks all the boxes for the desired features stated at the start. An additional feature that is not offered by the other methods is the ability to get a daily digest notification of the Group communications via email. This allows for a casual scan of the conversations of the day that you may have missed if your IM client was off or you were otherwise unavailable.
It does not come without issue though. If I want to post to my group on Yammer via a GTalk client I need to prepend the message with: “to:mygroupname”
That’s a pain. Also, the initial setup of notification preferences and linking them to your GTalk account involves more set-up than other chat methods.
All that said, I think this combo has potential as a killer communications solution. Yammer and GTalk both have great APIs and I think an Open Source GTalk client could be tweaked easily to fix the biggest issues.
Posted at 09:24 AM in Web/Tech | Permalink | Comments (0) | TrackBack (0)
[Edit- these rough screen shots taken at Nikkio and Michael's request! Click for larger version]
Posted at 02:45 PM in Web/Tech | Permalink | Comments (1) | TrackBack (0)
Even though WebGL’s official specification solidified just this March, a dizzying array of engines is already available.
For example:
Other 3d Engines in JS/HTML5: (Thanks Theo for pointing these out!)
In January, while working on a web viewer for 3d files, we had to pick a WebGL engine. It was a tough choice, even then. Our big contenders were C3DL, CopperLicht, CubicVR, GLGE, and O3D.
Google’s O3D looked promising at the time, but we wanted an engine that would still be in active development 6 months down the road. As with any Google project, developers adopt at their own risk. Like the O3D plug-in before it, there was a chance it could get tossed aside.
CopperLicht is commercially licensed and comes with a tool suite for development, something we really weren’t interested in.
Other engines like CubicVR (a WebGL port of a C++ engine), seemed neglected and under-developed.
C3DL was definitely a consideration, but we found it lagged considerably on the performance front.
While not perfect, we found GLGE to be robust, lightweight, and well supported, and have chosen to work with that for now. In the meantime, we are keeping an eye on emerging technologies and would be very interested in your experiences!
Do any of these engines suit your needs? Are you considering just rolling your own? Send me your demos, stories, and reasons for choosing to use your favorite WebGL engine(s).
Posted at 08:47 PM in Web/Tech | Permalink | Comments (12) | TrackBack (0)
Tags: C3DL, CopperLicht, CubicVR, Engines, GLGE, O3D, Specifications, WebGL
Aloha! My name is Antonio Licon, and I’m a gadget enthusiast and have been a professional Web-geek for over 10 years. Currently, I am a Senior Software Engineer at Autodesk on the Suites, Web Services and Subscription (SWSS) team.
As our team attempts to push the envelope with technologies such as HTML5, SVG and WebGL, I would like to share with you some of our experiences, lessons, issues. I am particularly interested in hearing from others out there working with these same technologies.
For example: Wouldn’t it be cool if you could view 2d and 3d design files directly in your web browser without a plugin or software download? Lately, our team has been conducting viewing experiments that would allow you to do just that!
However, developing for consistent cross-browser behavior can be tough for even the most seasoned web-ninja. When you throw in the sketchy implementation of these bleeding-edge specifications, it gets very tricky indeed.
Take SVG for example. This chart gives you an idea of the landscape:
Browser |
supports <img> |
supports <embed> |
supports inline svg |
supports 'background-image' |
IE 9 |
yes |
yes |
yes |
yes |
Firefox 3 |
no |
yes; However mouse events are dropped through to the embedded object |
yes |
no |
Firefox 4 |
yes |
yes; However mouse events are dropped through to the embedded object |
yes |
yes |
Chrome 10 |
some; doesn't support large svgs like our converted dwfs but smaller svgs do work correctly |
some; doesn't support large svgs like our converted dwfs but smaller svgs do work correctly |
some; doesn't support large svgs like our converted dwfs but smaller svgs do work correctly |
yes |
Safari 5 |
yes |
yes; However mouse events are dropped through to the embedded object |
yes |
yes |
Then you have WebGL. WebGL is awesome… SO COOL. So what is up with IE9? Why are they not on board here? It’s a shame too, because IE has such a large user base and are doing cool things with SVG.
I have to give kudos to the development team at Google though. I think they have done a really good job with Chrome. I am really enjoying their aggressive update strategy. By the time I am ready to file a bug, they have often already fixed it!
According to Seth Rosenblatt at CNET, Firefox 4 has taken the lead for browser performance. But generally the difference in performance is negligible. A less than 100ms difference between the best and worst performer in the SunSpider 0.9.1 benchmark.
And the performance edge Firefox has may be entirely synthetic. Try running the Aquarium Demo side by side in both Firefox 4 and Chrome 10 with the same settings. In my experience Chrome’s performance is perceptibly smoother.
In addition, Firefox may still make you jump through some hoops to enjoy the WebGL experience. You will either need the latest graphics drivers for your system, or you can try to force-enable WebGL.
I just wish the iPhone, iPad and Android devices all had browsers that were as functional as Chrome is on my desktop. I will save my rant on that for a future post.
This is just my “Hello World”… I will be sharing more about our adventures in technology as well as links to some of our tech demos. We are also doing some cool things on viewing for mobile platforms and I can’t wait to share them with you. Stay tuned!
Posted at 08:55 AM in Web/Tech | Permalink | Comments (2) | TrackBack (0)
Tags: Chrome, Firefox, IE9, Microsoft http://www.itworld.com/security/93045/dump-internet-explorer-now http://www.artefactgroup.com/#/content/ie9-misses-a-great-opportunity-by-not-supporting-webgl/, Safari, SVG, WebGL
Our team is hiring in Pittsburgh and San Francisco! Visit Careers And search for the Job #s below:
Recent Comments