Monday, March 10, 2014

Mac Tech 2013


Star Trek Bridge!
Folks form http://newstarship.com/ were there to display their Star Trek Bridge.  You could sit in the chairs and get your photo taken.  They were looking for volunteers to help with their effort to make the touch screens interactive.








Notes From Talks

Dave Maclachlan - iOS Development at Google. How we make it work.
  • They use Sen Test, OC/Test, SC Test
  • He wrote Cover story for code coverage
  • Unit tests are the best documentation your code will ever had.
  • Things Apple has done with XCode 5 are really nice.
  • Having the number of tests without having coverage is not very useful.  XCode can use GCov.
  • There is a NSUserDefaults setting that configure observers for code coverage.
  • When working in real time at 60FPS, you have 16 msec per slice. Mac dispatching takes 4 of the 16 Ms so he uses C++.
  • Good speaker, but the material was pretty deep and specific to unit tests and coverage.

Gwynne Raskind - Intro To Internals
  • Talking about the internal hardware design of the Mac from a high level.
Peter Hosey  - Building Great User Interfaces
  • Users are broken in that they are afraid of the computer.
    • They have been trained by bad interfaces.
  • Respect The User
    • A person is not a machine and should not be forced to think like one.  The machine should conform to the user, not the other way around.
  • Help The User
    • It is never the user's fault. The app should guide the user. If the user does the wrong thing, it's your fault.
    • Everything you tell the user should be actionable - even if the action is "wait".
    • Gestures are verbs, akin to keyboard shortcuts.
  • Problems in your app are your fault, not the users.
    • Kill Gestures: The problem with Gestures is that you need to know that they are there which means you need a tutorial.  This means it's best not to use them.
    • Kill Dialog Boxes : Dialog boxes will yank the user from the think they are trying to do.  Dialog boxes can be a problem.
    • Kill Documentation : If you have to explain your application, there is a problem.  Fix the app instead of explaining the problem.
    • Care about the little things - they all add to become the difference between good and great.
    • An example of little thing - setting the keyboard type to use the "@" symbol on the login screen.
    • Another Example : Dialog box on empty trash.  For one, it's a dialog box. Secondly,  you have to cancel to know what you will do.
    • Test your app on regular, non technical users.
    • Kill Verbs that can be replaced with nouns.
  • Not a bad talk. Peter always does well. Would be good to see this from an actual IXD person though.

Jim Rea; Constructing Lexers With Ragel and Objective C
  • Gave a talk in 2010 about maintaining a code base. This year he's rewriting Panorama in Objective C.
  • He writes tool used by Spreadsheets, Databases, Programming Languages.
  • Allow the user to create formulas that will operate on values. Take a string and convert it to tokens.
  • Parsing -> Tokenizing : Tokenizing can be done by char, NSScanner, NSRegularExpression.
  • Also can use lex, yacc, bison, etc.  He's using Ragel which targets Objective C and supports Unicode.
  • Ragel recommends that you install Mac Ports and use that to install their application.
  • Showed examples of writing grammars and then handshaking with Objective C methods to parse formulas and numbers.

Vendor Forum : Adobe
  • With creative cloud being in the cloud, how is it deployed?
  • Creative Cloud Packager
  • They have tools AAMEE, AUSST. They come together.  Home base update server.
  • RUM - Remote data manager. Remotely invokes the Adobe updater.
  • XDA - Exceptions deployer.
  • Adobe CS4 would have taken 400 floppy disks.
  • AAMEE 3.0 caused some problems for educational users.
  • With creative cloud, the apps still live on the user's system. They are still installed locally. Users are not required to sign in to each machine. You do not need to be on line to use the software.
  • Services such as shared storage and sync settings are in the cloud.
  • Creative cloud licensing for the enterprise is serial number based.  The serial number based solution does not count your launches. Adobe does not monitor what is launched when.
  • Talk of using serial numbers for installs. - They are "serialized". You can be serialized with a small number of users. They are going to trust you to manage your users on your own and not exceed concurrent users.
  • This was a good talk if you are someone who has to deploy Adobe products to a large enterprise. I had no idea they had so many tools to help manage deployments.
  • There was some mention of using Sassafras to manage license usage.
  • Currently they expect that you need at least 100 users to be an Enterprise account. Though, they know there are people that are smaller and want to work off line.

Consuming Web API's the TDD Way : Luis Solano @luisobo
  • Going to talk about good practices for networking code and real life testing scenarios
  • Also going to talk about underlaying principals of TDD
  • It's unfortunate that TDD has test in the name since it's really a design tool.
  • He is using a testing framework called "QE" which has an "it" block. Uses Objective C.
  • Tests must be isolated form undeterministic and slow dependencies such as the network, changing data, or databases.
  • Tests should not be coupled with implementation details.
  • You don't want to have failing tests while modifing both the tests and the implementation.  If you do, "git reset --hard"
  • He released an open source tool called Nocilla that allows you to "stub the internet".
  • Mentioned "Charles Proxy"
Joe Workman : Automating Business
  • He started as developer working at companies, and doing projects on the side.
  • He started charging and folks bought things. He then wrote a book.
  • If doing something more than one time, figure out how to automate.
  • Suggests using a Ticketing system instead of keeping things in E-mail.  He uses ZenDesk.
  • Suggests against using PDF for documentation. Use live web pages.
  • He suggests using Video Tutorials as much as possible.
  • The video should talk you through the work flow.
  • When hiring support staff, it's good to recruit customers. They are already your advocates.
  • There is a package maker for Terminal commands (similar to mac ports).  http://brew.sh
  • XCode ships with xcode-select, xcrun, xcodebuild
  • He went through and automated everything in his life with Ruby.  Before Ruby, he used Perl.
  • There were some automation talks at WWDC this year.  Changes in Apple script eleminated need for the TELL statements.
  • XCode Bots are a new thing in XCode5. They are new.  Allows some build automation like Jenkins.
  • Test Flight and Hockey App can be used to deploy tests.
  • He's never met the support folks that meets for him. One in Vegas one in Minnesota.  He pays his guys $15 per hour. 1099 contractors.
  • Cocoapods.org - Cocoapods allows you to use other folks open source tools in your project. "Ruby Gems for Cocoa".
  • It's worthwhile to hire contractors to build more stuff. What about hiring junior people cheaply, like High School folks.
  • Fresh Books is a good program for running your business.
  • They use BitBucket for tracking bugs.
  • Some talk of Tcsh, "Fish Shell", Csh, "Oh My CSh", Zsh.
  • joeworkman.net

Jeanette Lee : WiFi Design 
  • #rukusgirl  jlee@ruckuswireless.com
  • Channels 1, 6, and 11 suck
  • Lots of AP's are on these channels and they collide.
  • Power drops as an inverse square of distance.
  • With the 802.11 protocol, if someone else is on their channel, they have to stop transmitting.
  • Each channel is 20 Mhz.  There is now a 5Ghz Spectrum.  There is a lot more spectrum and more capacity.
  • The individual channels are 20Mhz wide and do not overlap.
  • These frequencies are also used for RADAR. If you hear something on that channel that sounds like RADAR, you are required to vacate for 30 minutes. These are called DFS events.
  • You can have more access points not using the same channel.
  • They use multiple antennas - called beam flex or beam forming. They try to make it directional.  Another trick is to try and transmit slightly out of phase and get a node where the person is sitting.  You can get 3db gain this way.
  • The client has to support beam forming and give feedback to tailor the signal.  Though, there are no clients that do this so they have to do implicit beam forming where the AP Guesses.
  • 802.11 MCS Rates - Your throughput will change depending on spacial streams.
  • MIMO Technology - You need multiple antennas. Inputs/Outputs/Spacial Streams i.e. 2x2x1
  • Option Key + WiFi on the Mac shows you what your Mac is doing. RSSI is not very usful.  MCS Index is important.!  SNR and MCS will tell the real story.  Data rate will always be changing.
  • Example Slide RSSI: -31, Transmit Rate: 27, MCS Index: 1
  • Mine Currently: -50, Transmit Rate: 216 , MCS Index: 15
  • "inSSIDer" is a good tool.
  • 802.11ac : 5Ghz only. GIgabit Wifi. Must be done in hardware.
  • 802.11n was supposed to support 4x4, but stopped at 3x3.  Best to wait till Wave 2 of 802.11ac.
  • 5Ghz goes about half the distance with the same data rate. 2.4Ghz
  • Indoor AP's can run up to 1W, outdoor can run 4W.
  • "Sticky Client Problem" - A client that connects to an AP, then moves.  The client has to decide to let go of the AP and use a new one.
  • With Apple, around and RSSI of 80 is where the client goes to a new AP.
  • With sparse AP's, lowering the power may help to make sure only clients that can actually talk to the AP's are connecting. Though, if you have sticky clients, it does not help.
  • A Wireless controller will not help with the "Sticky Client" problem becuase the AP can not force them to go somewhere else.  They end up writing a lot of code to deal with bad clients.  They then kick the client off the AP when the signal gets too low.
  • For the conference, they have 16 2x2x2 access points. They are all using 2.4 and 5Ghz.  Their pipe is 90 Megabits Per Sec.
  • In this hotel, they had bad jacks.
  • Hotel turned off their AP's where the conference is happening. Though, there is a ton of 2.4ghz traffic which made it un-usable.
  • On channel1, there are 30 overlapping AP's.
  • She had a client in Portland that had interference problem. They were in the middle of the woods. She went there with a spectrum analyzer. 2.4ghz went red for 10-15 minutes. Turns out they had 11 microwaves all going off at 3PM every day.
Jamie Newberry : Designing Engagement
  • I really liked this talk.  I asked Jaimee to come give it for our team.
  • @jaimeejaimee  bests.com jaimeejaimee.com
  • Worked for Black Pixel after using them when she worked at Zappos.
  • She's been doing all mobile stuff since 2010.  She has a UX background.
  • You have to find out both who you are, and who your customers are.
  • Been doing design work for the last 17 years.
  • Ask the question, "If my product were a celebrity".
  • When looking at a web form, think about the personality with the colors and symbols. For example, the login on Oprah's site vs a more playful one on Carbonmade.
  • Personality informs everything!
  • The OnBoarding process is really important.  Introduce the concept.
  • Empathy Rules.  It's way more important than disruption.
  • Simplicity is very hard. Editing, taking things away, is difficult.
  • Define Your Objectives
  • Games define their objectives. They don't cram everything up front.
  • The personality of the product should be everywhere. i.e. Release notes, button text, etc.
  • Bug reports should be fun as well.
  • Example of Photomojo making a connection emotionally.
  • Honesty is Important.
  • Talked about Twitter moving from "What are you doing" to "What's happening"  A simply change in copy changed the possibilities with the product.
  • Flickr has a downtime message that is a coloring contest.
  • Review Your Product - Do a sweep. Think about.  There are Cheap, Delightful, and Engaging things you can do you to your product.
Angel M. Stone (TSE At Walt Disney Studios) - Documentation Can be a beautiful thing.
  • Documentation is important, but it can also be fun and interesting.
  • She likes doing documentation because it allows her to come to conferences, lowers the bus quotient, and helps her remember things.
  • Documentation is changing.  No more simple text documents or even word documents.
  • She's a fan of video documentation.
  • She worked at a Catholic university and made videos for the Nuns.
  • Think about the audience of the documentation.  What is the scope of their expected knowledge?  How often will it be updated. ?
  • Know your clients - Know what your clients can and can't do.
  • Know your team
  • Pretend you are doing this task for the first time. (She didn't say it, but this is akin to putting yourself in the users shoes)
  • Don't be boring. - No one wants to see your documentation if it is boring.
  • She does not like Wiki's.
  • Their help desk system comes back with "Have you tried doing this"... As they add more knowledge, they have more people clicking on the "have you tried" links.
  • Separate documentation from what the product is, and how you use it.
  • Folks went around and talked about documentation that was problematic.  i.e. Stick notes on the client's monitor, text translated from Russian, Old documentation for an old operating system.
  • Error messages often need translation.
  • She started talking a tiny bit about cognitive research.
  • She still uses pages for documentation and builds her templates in pages.
  • Zen Desk - Useful for integrating help. A lot of effort can go into making the site useful.
  • One of the teams is publishing all their documentation as Google Docs in Read Only mode.
  • Someone mentioned folks printing documentation and putting it on the wall and then it goes out of date.  To me, it seems this is done because 1) Docs are hard to find. 2) Fear they go away.  Angel said she fixes this by visiting users.
  • She's been using Camtasia because it has editing built in such as Title cards.
  • She walked through using Camtasia to record some documentation.
  • She has "Stems" and the stems need to be named accordingly.
  • Someone mentioned iFixIt and that they have a tech writing handbook.

Some Random Notes From Talks:
  • There is a desire from folks to "Learn Terminal" - A new talk for next year?
  • Listening to some folks, I wondered if a talk on Learning Spaces would be useful.

Python For The Sysadmin By Matt Schnittker And Greg Neagle
Greg and and I gave a presentation about python programming for the Mac sysadm.  The talk was well received.  Here is some Twitter feedback.





Some folks suggested that it would be good for us to give our python talk at UofPenn. Greg and I applied and will be presenting as a pre-conference workshop!!


Evening Events.
Mac Tech keeps you busy all day.  They feed you breakfast, lunch, and dinner, and plan evening activities well into the evening.  They want to make sure that everyone has a chance to talk with peers and share ideas well beyond the formal learning presented in sessions. One of the trips was to the Endevour Shuttle at the California Science Center.