Had a lot of fun working on the Microsoft Azure U.S. Hack for Accessibility. Paired up with 4 really great and random teammates on this one. We would up making AI Dog, which was a service that specialize in providing accessible directions for users to safely and more easily navigate to a campus. Here’s the entry on DevPost.
I had a great experience working with this team and thought we came up with a very creative idea. There’s a lot going on in the project, but it ultimately uses the Google Streetview API to grab photos of a college campus, that we then analyze using the Azure Computer Vision API to determine whether the photo is an accessible scene or not. We then use the data from the location photos to determine the most accessible route a user is searching on using our accessible website.
One of our teammates did an amazing job setting up the backend in Python. I’ll try to find the path to his repo. It really was amazing work, I’m still impressed at his skills. It was ultimately turned into an Azure Function, which we could then call on a simple web page.
I helped out on the frontend. Using Bootstrap 5 for the basic grid and applying a good amount of Javascript for the UI.
I really thought we had a good shot at winning this one, but the other entrants were just as if not more deserving as well. What a great experience. If I could go back I’d have us spend just a little bit more time on the presentation.
I signed up pretty early on, but was having a really hard time finding teammates. I asked some friends and some strangers with no luck. Just as I thought oh well, it’s a no go for me I got a request to join a team.
My team was great, with people located all over the country. Many in school and some with full-time jobs. It was a solid mix.
We ultimately developed PrivIQ. It is an Edge Extension that helps simplify if a site collects private data on a visitor.
My task was to create the NLP (neural linguistic programming). So I had to analyze privacy policy text and determine if the policy should alert a visitor that it does collect their private data.
I decided to use the Azure Text Analytics client library. Their API works great with Javascript and their Key Phrases service was a great fit. I was able to pass text from a privacy policy with a POST request to the API with Fetch and it would analyze the text and return an object of key terms.
What really impressed me most was how fast the Text Analytics analyzed and returned the response. I was sending over 5000 characters and it was milliseconds in its return. I wasn’t expecting such an immediate response.
So once we got our response of key words, we then compared them to our list of privacy terms we were looking for. Depending on how many matches were returned we either alerted the visitor through the Extension that yes your data is being collected, or that it may be being collected.
Luckily I got that part down with more than a week to spare. I’d say I got a lot better at sending and receiving POST requests to an API in vanilla Javascript. So that was a big plus!
Other team members worked on the design of the extension, the web scraper that would called the privacy text from a site and putting it all together in an Edge Extension.
Unfortunately we had a hard time getting our scraper to work in the Extension. There were some CORS issues (which did make sense), and we attempted to called an outside server side script like and API at the last moment, but alas ran out of time.
I would like to continue to learn how to better write an Azure Function. That’s the route I would have like to of taken.
We got our almost fully operational example submitted just a few minutes ago, and am really glad I participated. It really was a lot of fun and forced me to learn some new/better ways of coding.
Attended the OUTC conference in Anaheim, CA again this year. Presented again on Using Google Lighthouse to Find a Faster Website.
The trip out there was a little rocky with a decent amount of turbulence. While I typically do not travel very well, I was happy to not feel super lousy when arriving at LAX! Usually I’m in bad shape for the first day after a flight.
I was able to check in super early at the hotel, and took a much needed shower. I do think that was a key factor in me not feeling too poorly that day.
Arriving early on Sunday, we headed out to Irvine Regional Park. This place was awesome! The mountains, openness, so many cool things to do. Though I probably only saw 1% of the park, it was pretty awesome to take in all the differences that I would not find in New Jersey. A great experience.
Getting back to the hotel, we were served In-N-Out Burger from a food truck. The Double Double really it the spot, I was starved. It was great to meetup with earlier OUTC friends Caleb and Mark. They’re good guys.
Later that night, with a little bit of hard work was able to get HBO Go to stream on the large TV in the hotel room. On the west coast there was the option to watch it a t 9:00 pm or stream it at 6:00 pm EST. I had to present the next day and flew in that morning, so getting it to stream and watch the early time was a great success.
On Monday the sessions kicked off. I presented at 2:00 pm, and while I think I got off to a shaky start overall I think it went well. It wasn’t a very talkative crowd, but I could tell most everyone was following along and testing their site out using Google Lighthouse. It was fun.
The OU Campus 11 demo was pretty cool. I am excited at the direction the interface is going in. I think our content managers will be very happy with the coming updates.
I always look forward to hearing about their Product Roadmap, and that took place on Tuesday. The mentioned the following:
WCAG 2.1 (April 25)
Web Hooks (June) – Trigger actions outside of OUCampus. Can be assigned on folder.
Image Size Sets (July) – Set size (crop or not), group to set, assign to folder
File Uploads for LDP Forms (September)
Feed Manager (Winter) – easier feed management
OUCampus 11 (Winter)
Phase 1 – look and feel
Later phases to workflow
Formstack – available in Marketplace
Looking Further Forward
OU Calendar
Layout Builder
Accessibility Check/Insights Improvements
V11 Phase 2+
We’re exciting to see exactly how Web Hooks will work. There is some decent potential there.
I attended the Gadgets workshop again on Wednesday. It was a different take on that workshop, and I did find it to be useful. I’m always looking to improve my javascript game.
Later that night was the Hackaton. While I’ve been lucky enough to of been on the winning team in the last two events, I wanted to try a different role this year. I partnered up with Aaron, Soe, Fernando, and Nick in that order based solely on seating position when the Hackaton begun.
Aaron really wanted to develop a command line interface for OU. Fernando was all in with the idea, and quite frankly I was a little on the fence. In the past I’m leaned on user driven ideas, not so much admin. But Soe and Nick were all in, and I really wanted to try to enter with someone else’s idea this year.
I can’t say this enough, but we really worked so well as a team. Fernando was a command line genius and Aaron and Soe were great coders as well. They did such a great job, and far exceeded what I thought would get done in that timeframe.
Nick and I decided to focus on the presentation and marketing aspect of our team. We came up with talking points and images to be used. We even used the official presentation template (since I was a presenter) and got some big chuckles from the audience. Presentation can be a big factor in hackathons and we had a lot of fun with that.
It was a good thing that we worked so well as a team as there was some very stiff competition this year. Translation tools, image compression gadgets, XSLT data parsing, so many great entrants. In the end we did win, and I somehow would wound with with three in a row. Insane.
The last days workshops were very cool too, but there was so much going on in them I will have to revisit my sandbox and review the code before I forget too much. I’m very interested in learning more about PCF data outputs, especially outputting to JSON.
The flight home was smooth and a great way to end a great conference. While I’m not learning quite as much as I used to, it is fun to be in the role of the veteran who is now sharing knowledge with the newer folks to the platform. Glad I was able to attend again and looking forward to working in all the new ideas that were shared!