Showing posts with label Google. Show all posts
Showing posts with label Google. Show all posts

Friday, February 21, 2014

Tablet and Google Hangouts Screenshare as KVM secondary monitor

Main display on KVM showing Linux workstation,
while monitoring Mac on tablet
I use a single 30" monitor while working across several workstations, but I'd like to know when some long running operations (e.g. building Chrome, or running tests) complete. Robert Ginda suggested using a spare tablet and Google video hangouts with screenhare. Works great!

- From source machine: open a hangout with yourself (I typed my own email address into the gmail hangout panel)

- Start a video chat, and from there a screenshare.

- Open hangouts on phone or tablet, join the existing video chat, have a second view!

- Flip back to other workstation on main display while you wait.

Tuesday, March 19, 2013

GDC Sessions for HTML5 games on web and mobile


GDC sessions that caught my eye related to building games on web tech:

Native Apps? With HTML5? Yes You Can! (Presented by Google)
Joe Marini  |  Developer Advocate, Google
... Chrome Packaged Apps platform allows the creation of native app experiences using HTML5 technologies that work offline by default, have access to native platform features, and can run across a variety of operating systems.

Fast and Awesome HTML5 Games (Presented by Mozilla)

Vladimir Vukicevic  |  Engineering Director, Mozilla Corporation
Alon Zakai  |  Senior Researcher, Mozilla Corporation

... JavaScript tooling and execution allow near-native-code speeds. Combined with standards such as WebGL, Web Audio, and the rest of the HTML5 stack, the modern web is emerging as a platform for high-quality games ...

Multiplatform C++ on The Web with Emscripten
Chad Austin  |  Technical Director, IMVU
Emscripten is a compiler of LLVM bitcode into JavaScript. With Emscripten, programs written in C++ can run straight from your web browser, and no plug-ins are required. ... why IMVU has chosen Emscripten as part of its multi-platform engine strategy ...
(Tragically, a time conflict with 'Fast and Awesome HTML5 Games' by Mozilla, which overlaps content wise)!

Nintendo Wii U Application Development with HTML and JavaScript

Ryan Lynd  |  Senior Software Engineer (NST), Nintendo Software Technology
Kevin McCullough  |  Software Engineer, Nintendo of America
Takeshi Shimada  |  Deputy General Manager, Software Environment Development 
... HTML and JavaScript have empowered a whole new wave of developers that have previously been excluded from Nintendo console development - until now! This session will introduce a new way of rapidly developing Wii U applications that takes full advantage of unique Wii U features while reducing development times significantly.


Game Development with Google Cloud Platform (Presented by Google)
Yanick Belanger  |  Server Architecture Lead, Electronic Arts
Ryan Boyd  |  Developer Advocate, Google
Chris Elliott  |  Solutions Architect, Google
Dan Holevoet  |  Developer Programs Engineer, Google
Momchil Kyurkchiev  |  CEO, Leanplum
Michael Manoochehri  |  Developer Programs Engineer, Google
Luca Martinetti  |  Founder and CTO, Staq Inc.
Google Cloud Platform provides everything you need to build, run, and scale social, mobile, and online games. Already, tens of thousands of popular applications like SongPop, Angry Birds, SnapChat, and Legend of Monsters ...


Supercharge Your Game With YouTube (Presented by YouTube)

Satyajeet Salgar  |  Product Manager, YouTube Live & Sports
Ibrahim Ulukaya  |  Developer Programs Engineer, YouTube
Jarek Wilkiewicz  |  Developer Advocate, YouTube
... By integrating your game with YouTube, you can share rich and authentic game experiences that are more likely to convert viewers into gamers than any other medium. In this session, we will highlight integration examples and best practices with special focus on mobile. We will also give you a sneak peek at our latest live streaming platform APIs. ...

HTML5 Cross-Platform Game Development: The Future is Today (Presented by Ludei)
Ibon Tolosana  |  CTO, Ludei
HTML5 is finally ready for cross-platform game development. We'll explain best practices for HTML5 game development, case studies and how to overcome issues to make HTML5 games work.

Rapid Development of High Performance Games for Mobile and Web
Ricardo Quesada  |  Software Architect, Zynga
This talk will be about the cocos2d JS, a complete toolchain for developing multi-platform games for both the Web and Mobile, which goes all the way from rapid prototyping to a finished high performing game. There are three main components: a game engine (cocos2d), a physics engine (Chipmunk), and a visual editor (CocosBuilder). For the web, no plugins are required. For mobile, it uses JavaScript bindings for the C/C++ version of cocos2d and Chipmunk, and achieves a performance 10 times faster than other JS engines/JS accelerators. ...

HTML5 Audio: Coming to a Mobile Game Near You!
Jory Prum  |  Sound Guy, studio.jory.org
... possibilities the new Web Audio API enables audio developers when building games for the web. ... With the adoption of the new W3C's new Web Audio API (available in Chrome, Safari, and iOS 6), tremendous possibilities exist, ranging from simple audio playback to object- and event-triggered audio. There are advanced filtering and reverb capabilities built in, 3D positional panning, and all available with extremely low latency. ...

Have fun at GDC!





Sunday, October 9, 2011

Go Board Game with Google Docs

Go, played on Google Docs
I've been satiating my asynchronous game play needs recently by playing Go via Google Docs. I figured someone else must of thought of that already, and they did: Edward Donohue had a spread sheet template available, which I modified into my Go Board Game Template.

The cool thing is that Google Docs comes with great features already in place:

  • Version history
    • Allows you to roll back time to recall what has been happening in the game.
  • Change Notifications
    • Allows you to make a move, and your opponent will automatically get an email notification that links to page showing what has changed.
    • (Set this up by going to |Tools| |Notification Rules|)
  • Auto formatting
    • Makes the board look like a bunch of black and white pieces instead of playing in text.
  • Works anywhere, even mobile
Also, you can do odd stuff, like make this tiling (toroidal) go board. People have played on tiling boards before, the simplest way is to just duplicate any moves on the left and top edge to the right and bottom. But, in docs, .

Try out the templates by making a copy so you can edit in them. Select a square and enter a 'w' or 'b' character. Have fun!

Gmail Follow Up Script

I have lots of email I want to follow up on later or put aside for some time. I use Gmail these days, and I miss Outlook's built in feature for this. Well, there's a solution, the apps script team posted a script for "snoozing" email. My modified take on it is this gmail Follow Up script doc.

With follow up you can:

  • Get emails out of your inbox, and out of sight, for a specified amount of time, and then have them return.
  • Send emails you want to make sure you get a response on, flag them for follow up and have them resurface in your inbox again after a given amount of time to ensure they were handled.


The implementation summary is: You can have javascript code run on a Google server at a regular interval that manipulates your gmail messages. You do so with google apps script.

I modified the original in a few ways:

  • I added "hours" to the "days" and "weeks"
    • At first I thought it was overkill. But, no, it's mighty handy in a work day to put off an email till the afternoon when you think someone else should have replied by then. Or just to clear your inbox rapidly so you can concentrate on the top items for the next hour.
  • I adjusted the label names to be more keyboard shortcut friendly
    • To move an item out of my inbox and have it reappear tomorrow, I type the keys, "v1d" enter. That's |move|, and then enough to match the label "FollowUp-1days".
  • I use the "quick links" lab in gmail to view all messages pending follow up
    • Sadly there's no way to roll up multiple labels in gmail, else the hierarchical labeling would have solved this. Anyway, details in the doc for using quick links.
Some notes:
  • Draft messages can be brought back to to the inbox, to complete and or send at a later time.
  • Muted messages can be brought back too, disabling the mute at that time. So you can let a firestorm thread rage on for a few hours before reviewing it in it's entirety instead of being interrupted constantly as replies come in.
  • I sometimes leave notes to myself as to why I marked this message for follow up. One way is to start a reply draft and then blank out the To: line so it's not accidentally sent.
  • It's handy when you send a message and want to ensure you get a reply back.
Now that I have this tool, I use it a lot a lot to rapidly simplify my inbox. Check it out: Follow Up script

Tuesday, February 8, 2011

One Year at Google

I've been at Google one year.

A lot has happened, but the vision stays the same. I and others are working on improving tech to support great applications on the web. Better performance, use of GPUs, 3D, and much more (audio, connectivity, device access, monetization, discovery, ...).

Google continues to build it's engagement with game developers. We're already engaging on multiple platforms (Android, Chrome, Google TV) and offering useful services (YouTube, AppEngine, Analytics, Ads) and building out great tech.

We've also continued hiring great game developers, and I'm humbled every day by the ones I'm working with. (e.g. people keep doing double takes that Bill Budge is working a few cubes down.) Ian Lewis has hit his stride and is doing a great job driving Game Developer Relations (btw: hiring) (and, well, all of Google is hiring really, even back in the Research Triangle NC, drop me a line if you'd like help applying).

Chrome GPU team is my home, though I'm still excited about Chrome OS where I started. There's a lot of core infrastructure for all GPU features, some of which are starting to ship, like WebGL.

20% time is a great perk at Google. Not everyone uses it, but I take a lot of it to help Game Developer Relations out and also do some game experiments.

Google was the hardest job I've joined yet, though. There's so much to learn, so much great tech and products, tons of fascinating things to look into, and so many rather smart folk. I love the culture, the positive "do the right thing" attitude, and that there are engineers all the way to the top. I'm excited for year 2. ;)

Wednesday, September 15, 2010

Leadership by Influence


Leadership is an interesting skill; here are a few thoughts I've had recently at Google.

Skills are honed by practice, but leadership is a daunting skill to try before you have your confidence. Some skills you build up little by little, and often you can learn about them before you try them. But leading is one of those skills that you need to learn by doing and then thinking. It can be intimidating to try, like public speaking. But that's the pattern to follow: try leading a little bit at a time, and growing.

Finding opportunities to improve leadership is also different than many skills. Learning how to program? Start writing some code. Learning how to lead? You need some people to (possibly) follow, and an appropriate time and place. That's a good segue into some of my experiences.

At Emergent I spent the last few years as a software architect. My role was varied, but essentially was influencing the direction of our product and business. I did that by understanding technical issues, building compelling explanations, and influencing the decisions of others. Those others ranged from software engineers on our product, managers and executives, and external game teams considering tech. The key point is that I had no authority or decision power myself, even over our own engineers.

My situation was different than some of my peers. A few of us rose into senior positions at the same time. Some of my friends ended up as technical leads over groups of engineers. While they didn't have "personnel management" responsibilities, they did have direct technical management. Teams collaborated on the work that they did, but generally speaking these technical leads defined tasks onto their team members. If they needed to they could specifically direct a given engineer. I contrasted this against my role, with no reports and only the ability to influence engineers.

Gathering information from groups was novel as well. The technical leads' smaller groups met regularly and shared information. Spanning the engineering department I couldn't gather information directly from all engineers. I relied on meeting notes, speaking with team leads, and most importantly individuals coming to me for relevant topics. Some engineers did this voluntarily , "Vince, I've got an idea to bounce off you." Other's work I wouldn't have heard about unless I stopped by and asked them about it.

Moving back in time, I recall developing a game during my undergraduate degree. We had some initial meetings with dozens of interested students. A smaller group moved forward to create a game. But, being entirely volunteer work there was no certainty that anything would get done. In the end, only a couple of us made much progress, and we were left with many good intentions of others, but no work done.

And that brings me back to Google, where the internal engineering structure is decidedly bottom up. Engineers self organize, recognize issues, and address them. Leadership at Google is more similar to my experience as a software architect at Emergent than the tech leads there. Engineers aren't assigned tasks, they generate them or adopt them. The top down influence comes in two parts: influential direction, and team allocations. The technical influence is something anyone at Google can, and is expected, to do. And that's what motivated me to write out these thoughts.

This is also my first time contributing to open source projects. And I can see they follow similar patterns. There is decentralized control, and often no specific hierarchy of technical authority. Rather, the community relies on those individuals who've proven the kind of influential leadership I've described here.

So, what's your takeaway, dear reader? How about a few answers to questions I asked myself in the past:

How does one gather more influence?
By recognizing when something needs doing, making compelling explanations for why and how, and showing others how it can be done by doing it. By doing so you build respect as someone who will make things better and solve problems.

How do you get an opportunity to try leading?
Everything you do is an opportunity, and you have to grow by taking small steps. It is rare that you'll be given the responsibility without first having demonstrated that you can lead. Don't wait for someone to decide that you can try leading. Just offer your contributions and thoughts, lead by doing, and be sensitive to what the group needs.

And, a final thought. At Emergent, we frequently used the phrase, "Managing engineers is like herding cats." The statement has a changed meaning for me now. If you manage engineers by herding them, you'll be as frustrated as if you were herding cats. But, all the cats will run to tasty food. Perhaps that's why Google invests so much in it's cafes ;)

Wednesday, February 17, 2010

Working on Chrome OS at Google

Many have been curious what I'll be working on at Google, including myself for a while. Google is interesting in that you are not allocated to a team until just before your first day. You accept the job because you're a good fit for Google in general, not just one team.

I'm going to work on Chrome OS. There's a lot to do for the initial launch, but long term my goal is to help make it a great platform for rich graphical apps and games too.

Whoa, you say, I thought you worked on high performance games? Yes, high performance 3D games will be running inside browsers, with security and performance delivered via Native Client.

Tuesday, December 29, 2009