These are some projects and the accompanying code I have written to solve some of my problems.

  • Mimeo Digital: Hired by Mimeo to build their hybrid application using AngularJS, Ionic v1, and Cordova to package for Android, iOS and Windows 10. The application allowed viewing of various document types (PDF, images, ePub, Articulate, Captivate, etc) including offline support. The application leveraged the application cache and platform specific meta tags to offer a full offline experience prior to PWA entrance. I also rewrote the application using Angular 5 and Ionic v3 with TypeScript adding full PWA support with service workers (with fallback to application cache). During this process I also setup build environments and deployment projects in Octopus.
  • Network Interface Plugin for PhoneGap Build: Started using PhoneGap Build for rapid development and ran into an issue grabbing the device IP. I wrote this plugin to request the WiFi IP address and return it. Currently, this plugin is for iOS only however plans are in place to extend it out. Website can be found here
  • OpenSprinkler Mobile Controller: A mobile frontend for the OpenSprinkler irrigation device. Designed to allow manual control, program management (view, edit, delete and add), initiate a run-once program, view status, adjust rain delay, change OpenSprinkler settings and view logs. More information about the app (including screenshots) can be found here
    Project is on Github
    More information can also be found on Ray’s blog posts here and hereUpdate: Application is now being developed and compiled as a native application (iOS, Android and WP). One of the key advantages is automatic OpenSprinkler detection (based on the plugin discussed above). More information can be found on the product website.
  • Security Camera Viewer: This was an app designed to support multiple sites, allow both live and recorded viewing, show motion alerts with corresponding video, and display all cameras in one view. The app was designed to work in low bandwidth situations. I was forced to make this app because the bundled Logitech native application would not work under my low bandwidth environment, charged $80/yr for viewing recent clips, and could not show all cameras in one view. More information about the app can be found here and here
    Project is on Github
  • Home Networking Overhaul: During my break after medical school and before residency I undertook the task of wiring the home for gigabit. I ended up running cat5e all over the house by pulling old phone/coax lines attached to the new cable. I used this backbone to attach wifi extenders all over the home. I also used the network for the security cameras and media extenders. I locally cache media for several XBMC machines. I also use the network for AT&T Microcell extenders. During the rewiring I also redid the phone network by purchasing an ATA (analog telephone adapter) and having my server handle voicemails (sent via email) and routing of calls. This allows me to route international calls to the cheapest provider while still using the same handset.
  • Rossie Rotation Advice (Maps): This is a tool designed to extend the features of the Rossie Rotation Advice search built by parsing the text using Yahoo Placemaker for location information. The information is then used to construct a map with markers on each location. This allows users to geographically fence results. Website can be found here
  • Rossie Rotation Advice: Despite the playful name this project provides great utility by allowing a user to search the entire Facebook group. This is required due to a limitation in Facebook’s own search. This was built on top of the import function listed below without the documented time limitation (solved the issue and will document how soon).
    Website can be found here
    Project is also on Github
  • Medical and Pathology Lab Website: Decided to redesign the MPL company website. Went with a very simple theme using the company colors and very light jQuery to do some fading between sections. Website can be found here
  • Facebook API:
    Worked with FQL and Graph API for Facebook in order to export group posts/comments to a personal SQL database. Code and description can be found at here
  • Picasa Name Tag Sync:
    I worked on this for a while after many Google searches showed nothing to aid me in my problem. Before Picasa 3.9 name tag syncing would not work. I found a perl script that did sync tags to PWA however I had to modify it and write my own batch script to get it to work as documented here
  • Prebot Service:
    In high school, I was on many IRC channels and a member of the scene which allowed me access to FTP sites for downloading the latest movies and tv shows. Eventually, I started offering a service to gain more access in the form of a prebot. This was written entirely in TCL using MySQL as the database. The bot would scrape pres from various sites and on a new race announce the age of the release. This would allow various sites to `nuke` a race meaning it’s too old and the owners will not give credit to the racer for it. Later the bot grew a front end using PHP and AJAX while communicating back to the bot via the partyline on TCL (telnet via PHP). This worked surprisingly well. The code can be found here on Github.
  • TI-89 Recovery and Xtreme Viewer:
    These are tools I wrote during middle school. The first one recovers deleted files useful for teachers who screen calculators. Xtreme Viewer is a file browser with some extra features such as compression. Both can be found here

4 Comments

James G · November 28, 2017 at 12:57 am

Any thoughts on adapting Opengarage to handle following scenario, as there is a demand for such a capable item. Problem:
1. Car hatch or tailgate sticks out beyond garage door and accidental garage door closure results in damage to vehicle.
2. Car is not pulled in garage all the way but wheel is not blocking sensor, accidental press of garage door opener to close results in door contacting car (scratches or dents).
Suggested solution: use distance sensing opengarage.io device relay to mechanically move a panel to obstruct photo sensor of GDO, or perhaps electronically disrupt the sensor power (testing required).

Samer Albahra · January 24, 2018 at 3:19 pm

Hi James,

Sorry for the delay in replying, I don’t normally check these comments. Can you please post on forums.opengarage.io and we can discuss there further?

Thanks,
Samer

OpenSprinkler Mobile Web App Instructions (with Video) « Rayshobby · July 16, 2013 at 1:26 am

[…] walk you through the basic steps to set up and use the OpenSprinkler mobile web app developed by Samer Albahra. I’d like to thank Samer for making this app available, and credits should be attributed to […]

The Story of OpenSprinkler: an Open-Source Web-Based Sprinkler Controller | MAKE · April 27, 2014 at 1:33 pm

[…] browser, but it’s not particularly stylish, nor is it mobile friendly. On June 07, 2013, Samer Albahra released the first version of OpenSprinkler Mobile App. The app received overwhelming responses. […]

Leave a Reply

Your email address will not be published. Required fields are marked *