Check APK Permissions with aapt

Side loading is fun, it gives us a chance to help developers test their Glassware. You can install an apk like so:

$ adb install cat-generator.apk

That sure is easy. But, this is a developer thing. Like many developer things, it assumes you know what you're doing, and that you trust the source of your software. It bypasses some security safeguards. This is why it's really important to understand what you're installing.

Before you sideload, protect yourself! There's a tool in your Android SDK: the Android Asset Packaging Tool, also called aapt. You can use it to inspect apk files.

Follow these steps:

  1. Find aapt. It lives in the <android-sdk>/build-tools/<version number>/ directory. I use it enough that I add it to my system path.
  2. Dump the permissions on the apk you're curious about.

    $ aapt dump permissions ./cat-generator.apk
    uses-permission: android.permission.INTERNET

  3. Check the permissions against the list in the Android reference docs to learn what they do.

  4. If you see anything unexpected, ask the developer. They should be happy to explain the permissions they request.

Make a 3.5mm Audio Adapter for Google Glass

Circuit diagram of a 3.5mm audio adapter for Google Glass

You've just built a really cool Glassware. People love it, and someone has asked you to present it to a large audience. One problem: the coolest part about your app is the sound. You can already present video over adb with tools like Android Screen Monitor, but they do not share audio.

To make matters worse, there's no standard for delivering audio over USB. Every manufacturer has its own of delivering audio from a microUSB port, so no off-the-shelf adapter is going to do the trick.

Never fear! There's a solution. You can make one! It involves a little solder and a resistor, but it's easy, I swear.

Ingredients

  • A headset adapter that adapts microUSB to 3.5mm audio - I used this one from Amazon.
  • A 500kΩ resistor - exactly 500kΩ might be hard to find, so just get as close as you can. I used a 499kΩ±5% that worked great.
  • A soldering iron, some solder, and some solder wick
  • Helping hands make it a lot easier

Directions

  1. Open up the headset adapter and take a look around. If you ordered the one linked above, you'll find pins 4 and 5 connected by a solder bridge. If you have a different one, you may find a something else like a resistor or a small circuit board.
  2. Clean it up. Remove the solder bridge. If there's other stuff in there, disassemble it. This is where the solder wick comes in handy.
  3. Use the 500kΩ resistor to connect pins 4 and 5.
  4. If necessary, wire up D+ and D- to the audio channels, and connect the two grounds. This is already done on the adapter I linked above.
  5. Get up on stage, plug in, and share awesome tunes and beats with your audience.

Source: This content is adapter from an answer I posted to Stack Overflow that was closed because it involved too much soldering.

Mid-career Crisis: Exploring Challenges and Opportunities

Facilitators

  • Adriana Compagnoni (Stevens Institute of Technology)
  • Susan Staffin-Metz (Women in Engineering Proactive Network)
  • Elaine Weyuker (AT&T Labs)

The Mid-career crisis

Women in technical fields face challenges that their male counterparts do not. Women are expected to balance home life, children raising, growing their careers and often supporting ailing family members. Women are more likely to experience stress related illness. In attempting to satisfy all of these needs in their lives, they often loose touch with their personal needs and end up having a reduced quality of life.

In this interactive session, panelists and attendees shared their personal accounts of their mid-career crisises, the challenges that they faced, and how they overcame them to find success. Here's a solution oriented summary of the topics discussed.

You cannot do everything

Society pressures us to juggle many things. Sometimes this is not possible. If you attempt to juggle everything that life throws at you, you may struggle. Decide what you would like to focus on, and be awesome at it. If you'd like to focus on building a successful career, do not be afraid to hire a maid or nanny. Just because you are not doing everything yourself does not mean you're a failure. You are doing yourself and those around you a service by making sure that you stay healthy.

Mentors are important

Sometimes we are the only woman on our team. Sometimes it's hard to find people near you for advice. One powerful way to avoid feeling alone is to find a mentor. Seek out and make use of a mentor. Mentors can span your entire career. They provide perspective on your situations that you may not find elsewhere.

If you've having trouble finding a mentor, leverage the resources around you such as the Systers program.

Live to work or work to live?

Some people live to work. Other people work to live. Do not assume that you have to follow the path laid out in front of you to be successful. It's OK to not work late every night. Even if you have other priorities in your life, your contribution is still valuable.

Vivek Wadhwa - Where The Next Billion Dollar Opportunities Lie

In this session Vivek attempted to dispel the myth that innovation has peaked. He did this by presenting numerous compelling examples of recent exciting advances in technology and describing several predicted breakthroughs. Throughout this discussion he challenged attendees to focus on saving the world instead of focusing on making a quick buck by turning out the next social media startup. He further postulated that the next billion dollar idea was not in social media, which he characterized as frivolous.

Here are a few of his examples of both where technology seems to have plateaued and, conversely, where it is accelerating.

Some examples where technology has plateaued

  • We flew to this conference in aircraft that are likely 50 years old.
  • In the last 2 generations nuclear power was invented and the automobile came into common use. But these technologies we interact with daily seem almost frozen now.
  • The last big business boom was fueled by the social media creations of college drop-outs.

A few examples of upcoming awesome

Things look bleak. We're on the the edge of peak oil, scarcity of fresh water looms in front of us, and climate change is beginning to have very real impacts on humanity. All this time, though, we've lost sight of the progress we're making in strides.

  • Smart phones put the world's information in your pocket. You, with your smart phone, have better access to developing world events than President Regan did 30 years ago. You also have better access to medical information that physicians of the 80s.
  • Solar power is approaching financial parity with traditional energy generation techniques. Solar cells are already starting to pop up all over India to replace diesel generators, and this will only get better.
  • The first sequencing of the human genome took 13 years and cost $3 billion. Today you can have it done for $3000. Soon it may be as cheap as $100.
  • The smart phone in your pocket has more computing power than the entire world did in 1970. It also has more sophisticated sensors for acceleration and orientation than multimillion dollar projects of yesteryear.

Challenges in front of us

All of these great advances are happening, even if we don't recognize their magnitude. Based on how fast things are advancing on these fronts, immagine what impact you can have on making fresh water available to the 2.4 billion people who currently lack it. Imagine how effective you could be at helping educate the world.

Some editorializing

Vivek's presentation was charismatic and inspiring. I felt challenged to save the world, and making an impact seemed quite possible. But, pretty quickly this feeling passed. He presented scores of examples of advancing technology and promised future breakthroughs, but one thing history has taught us is that we cannot predict when a field of development will hit unforeseen challenges and plateau. For example, solar cells may continue to advance rapidly, but our ability to store and load balance this energy may greatly reduce its impact. We never know when there's a road block around the corner.

Additionally, in an attempt to tune his discussion to and audience dominated by women, some of the claims he made started to edge into oppositional sexism. For example, he made the blanket statement that the audience is better suited to save the world because unlike men, women are altruistic and not focused on building financial wealth. As a result, we will not be distracted by starting a frivolous social media startup. These kinds of assumptions left a bad taste in my mouth. Just because we're women does not mean that we do not share some of the same drives as our male counterparts.

In spite of these issues, this session did challenge me to explore how I can better use my skills to positively impact humanity.

Hackathons - Social Collaboration for Innovation

Presented by Cathy Polinsky - Senior director of Software Development at Salesforce.com

In this session Cathy Polinsky talked to us about hackathons. She opened the session by defining a hackathon. Next, she explained how to run a great hackathon. She focused on organizing your event and enabling successful demos. After this, she gave us some inside tips on how to be an effective hackathon participant.

What is a hackathon?

A Hackathon is an event that starts at a schedule time and has a predefined duration. During this interval, participants solve interesting problems by writing code. At the end of the event, participants demo their creations to a panel of judges.

Why are hackathons awesome?

Hackathons foster great ideas. During the event they provide a safe environment for participants to take risks and learn by doing. The short format encourages failing fast and collaborating with different people.

The benefits don't end with the event. Exciting demos inspire participants, and expose them to new ideas.

Running a great hackathon

You will need to vary your plan to match your environment, but the most successful plans focus on determining the correct event format, supporting a community, encouraging diversity, keeping it fun, and creatively awarding success.

First and foremost, you must select a format for your event. Timing is everything. Keep your event short, but make sure the timing caters to your intended participants. Do you want to attract a crowd of young developers who would love to hack through the night, or would a two day format that allows your participants to return home for dinner fit better? Once you've selected the timing for your event, start promoting it. Find creative ways to alert people about your event and remind them as the time to hack approaches.

Community is also very important. Promote discussion leading up to your event and beyond. If you have multiple events, community provides continuity between them. It allows participants to share ideas and form relationships during the hours that they are not hacking. A strong community will also make it more likely that those who have signed up will follow through and show up to code.

The most interesting hacks originate from diverse teams. While planning your event keep in mind that different participants will have different needs and communication styles. Not everyone can hack through the night on pizza and beer alone. Some people will be more effective hacking in a space you provide, and others will hack best in the cafe across the street. Be mindful of these differences.

Amid all of this planning don't lose sight of what attracts people to hackathons: fun! Encourage a casual, collaborative environment. Make sure your hackers don't go hungry and enjoy the food you provide. And don't forget the beer.

Once the code has settled and the demos have ended, it's time to award your best participants. Counterintuitively, large monetary awards tend not be very effective. Instead, continue your creativity and find interesting ways to award great work. Plan a lunch with a distinguished member of the judging panel or perhaps award the winners with extra time to focus on their innovation projects at work.

Enabling successful demos

Hackathons are about more than just code. For a hack to be successful, it must be accompanied by a great demo. Here are some tips for helping your participants demo smoothly.

  • Encourage your participants to work towards the demo. Remind them that their project does not need to be ready for production tomorrow. Focus on producing an expressive core flow. They can talk to the edge cases as they demo.
  • Keep demos short. 1-5 minutes should be plenty of time.
  • Allow participants to schedule their demo after they've started hacking. Share a spreadsheet and have them order themselves. Remember, not every team will be ready to demo at the end of the event.
  • Prepare your audio/visual flow. For example, if you have remote participants, set up a video conference. If people will be developing on mobile devices, provide them a projector.
  • Select your judges carefully. If you have a panel of distinguished judges, participants will be more excited to present.

Insider tips for great hacks

Those of us who plan hackathons also tend to participate in them. Here are Cathy's tips for success when its your turn to turn 24 hours of coding into an exciting demo.

  • Plan ahead. Form your team before the event. Brainstorm ideas together. Come in with a plan.
  • Prepare your environment. Install the development tools you will need and resolve any hosting issues before the event begins. Use the event time to focus on your hack instead of troubleshooting tools.
  • Be entertaining. The most engaging demos are fun. Be creative with your sample data. Frame your idea with a story.
  • Perfect your elevator pitch. Before you know it, your hacking time will be over. While you develop, keep thinking about how you will present your idea as if you were explaining it in an elevator.