Communicate to the users
I know I am not the first developer to say this, but yet here I go. Developers, you NEED to communicate to your users. Don't EVER make them guess what is going on. eg: The hourglass or endless spinning circle. What is happening? When will it end?
See, the problem is that because the developer wrote the code there is often an assumption that it is self explainitory. It is not.
For example here is a Unity dialog:
Because VR applications are HUGE I am forced to look at this dialog for hours, and that is not an exageration. So what's specifically wrong with this dialog?
Users should not have to guess what is happening and should also not have to spend ANY time on Google/application site attempting to figure out what is happening. Tell them, be explicit. Yes, some users will be annoyed because they know what is happening... the thing is, they will know because you told them.
60 Second Star Wars
At the annual Star Wars marathon I recalled seeing the opening scene in Imax in a short film Special Effects: Anything Can Happen. Within that film ILM, had redone the opening to "A New Hope" in LARGE Imax scale and it was truly awesome. It was like seeing it again for the first time. I realized it could be fun to experience this moment in VR. So here we are. Hope you dig it.
Download 200 MB June 3, 2021
Oculus Rift or Quest 2 if using AirLink
Credits
Technologies: C#, Unity, Oculus Quest 2 (AirLink), URP, Visual Studio
About / Contact
Blissgig is run by James Rose in New York City. Blissgig was started in the Spring of 2008 as a home to a social site I was constructing, for details see "The Social Site".
Blissgig@gmail.com
Twitter/Blissgig
All content on this site is copyright James Rose unless otherwise stated. Code and applications may be used under any situations that are not for profit use. If there is a situation where there is a need to use the application or code in a business situation please contact me as I am sure we can reach a mutually agreeable terms.
AMS Enterprise
AMS Enterprise is a medical application for monitoring methadone patients and dispensing liquid medication. This was a rather complicated application as it had over 200 clinic options and over 200 user options.
The design of the application was to mimic the doctor chart. This made sure that each section of the patient's information is only a single click away. Each tab could be hidden based on clinic or user options.
Even though this application was build in 2002/2003, I choose to use Visual Basic 6 because after visiting multiple clinics and hospitals I became aware of the minimal funds available to the IT depts. Because of this issue the computers were all much slower and had less RAM than technologies such as .NET would need so that the application could run well. The back end data store was SQL Server. This choice was again based on funds and there was a free version of SQL Server called "SQL Server Dekstop Edition". The current free version of SQL Server is SQL Server Express.
Technologies: VB 6, SQL Server
Appliance TMR
Appliance TMR is a Windows Phone app that allows you to easily set a timer for your home appliances. For those of us who live in apts doing laundry can become a bit of a guessing game.
Available appliances:
To change an appliance, simply swipe left or right, starting on the icon. To change an appliances time swipe left or right, starting on the time (right half of the Tile)
The user may have multiple, really unlimted, Timer Tiles. Each tile can have it's own appliance and it's own time.
When a timer completes the user is notified by a standard Windows Phone Toast that shows specific info about the appliance.
As of Sept 25, 2015 this application is ready for some alpha testing. The code is available below.
This app is in development and the source code is available at GitHub
Technologies: C#, WP8
ATM World
ATM World was an application I built while employed at Wells Fargo. This application tracked all details about their ATMs; Projects, Sites, Users, etc.
The users at Wells Fargo lived in MS Outlook so I designed the application to mimic the look and feel of that application. We researched including ATM World within Outlook but at that time the abilities of the Outlook SDK did not meet our requirments. As you can see from the screen shot below the information is a little crowded as the maximum resolution available for systems at Wells Fargo was 800 x 600. The application that was in use when we started development of ATM World was double the screen resolution causing the users to have to scroll left/right and up/down to view information. (not good)
ATM World was build using Visual Basic 5 and 6 using Oracle as the back-end data store.
Technologies: VB 4, 5 and 6, ADO, Oracle
b.Linkr
Aug 5th, 2015. Alpha version available.
I have given this app a name; "b.Linkr", pronounced in Blinker. The very basic activity of this app is to link files together.
While talking with management about our technical process I wanted to know about the original documentation and system flow. It turned out that no documentaion was every created. Sadly, this is not uncommon. While explaining the value of a flow chart of the system process I came to realize that one reason that there is so rarely any good documention is that it is too dificult to create and update. So with that in mind I created the following specifications for a new flow chart/documentation application.
The base idea is that a project manager and/or developers could talk with management and/or end-users and talk over the process flow. As each "event" is described the application user can simply add nodes. Developers can use the application to add links to screen shots or code classes to make it easier to find out what the process is and where the code for each "event" exists.
Selecting the top level document will display a preview pane. Currently there is no way to remove a document from the group.
Download Alpha version of b.Linkr
Storage is via XML, but the data model will also easily translate to a relational database in case of larger scale needs.
Technologies: C#, XML.
Bathroom Remodel
This one was for me, a quick one day project as we want to update our attic bathroom. This allowed us to easily see how the space will actually look.
Bathroom Remodel
Oculus Rift or Quest 2 if using AirLink
Technologies: C#, Unity, URP, Oculus Quest 2 (AirLink), Visual Studio
Bedia
I had collected over 1000 albums and in the late 90s I learned about MP3 and converted my collection so I could use my computer as a very functional jukebox. I also collected a large number of DVDs and thought it would be nice to use the same computing power to allow me the ease of viewing this material without having to shuffle through discs.
Over the years I have used a number of technologies to stream my DVD and video collection anywhere in my home. Most of these applications were too slow, too difficult, did not have the features I wanted or simply did not work reliably. So with this in mind I created Bedia.
Bedia is designed to be a simple interface to a computers hard drive that is navigated using any two button mouse that has a scroll wheel. The scroll wheel is used to navigate up and down the list, the left mouse button selects items and the right mouse button returns to the previous menu. Simple enough? I thought so. The mouse does not need to lie on any surface and there is no actual mouse icon/pointer as the user is using the mouse like a simple remote control. One of the problems with current tv remote controls is that they have so many buttons and you are moving your concentration from the tv/monitor to the remote and back again. This is not an effective way to view your media. Another problem with many tv remotes is that they are line-of-sight, so if your remote is not preciesly aimed at the tv or video box you are stuck pressing the same button multiple times. Bedia seeks to resolve this by allowing the user to use inexpensive wireless mice that do not require line of sight and the options; Fast Forward, Rewind, Pause, etc, are viewed on the top of your tv/monitor. This way your are looking at your media while you are selecting what function you wish to perform. Easy right?
An Introduction to Bedia.
As you can see from the following two images, you can see that I have setup Bedia to just view a collection of folders that the user can choose from your local or network hard drive. Because each user may organize their files within your own logic I believe it would be easist to allow the user to choose their own oganizational patterns. There is no database and nothing to update, unlike so many other media systems. So the moment the user selects a menu the data within that folder is displayed. There is no need to update a database or system files. If you add new media to one or more of your folders, when you select that option within Bedia the new media will be displayed.
Commands available during playback:
Features:
Update: Jan 2nd, 2014. Added additional podcasts, available via the Settings menu. Update the UI to be consistant with the upcoming version of Bedia NV Fixed a few minor bugs.
System Requirements:
Source Code is available at GitHub
VLC has released a new version (2.0) and unfortunately the new version has broken the existing interfaces. Version 1.0 of Bedia only works with VLC 1.1.11 or earlier. There are some known issues with this version.
Download Bedia 1.0, VLC Version
* Kudos to MST3K.
Technologies: VB.NET, XML, Windows Media Player
Bedia NV
Bedia and Bedia NV came about because of my desire to have a home theatre application that fit my needs. I played with multiple software and devices and all of them forced the user to sort data the way the application wanted to sort. Both versions of Bedia allow the user to add multiple folders to the Home Page. Users can sort their data the way they want and simply have the folders as the top items on the Home Page.
Another issue with all Home Theatre devices and applications is that the remote is a collection of small buttons and different icons that the user must take their focus from the content. This application uses a standard computer mouse, the scroll wheel allows the user to scroll through the media when selecting one or more to play, and then during playback the scrollwheel allows the user to see the navigation options on the television/monitor.
Bedia is designed to be an easy to use media player for your television. A mouse is used for a remote. The benefits of this are you don't need line-of-site, like standard remotes, and the ease of use. All actions can be seen on the television, so no more hitting the incorrect button while watching a movie in a dark room. The mouse scroll wheel moves you through available menus and navigation options (during playback) while the left button is "Select" and the right button is "Back". While media is playing if you scroll the list of navgation options is shown as a pair; Left button or Right button. Very simple and easy.
One or my bigger complaints about many media players designed for use on a television is that the application would decide how to organize your media. The Bedia family of media players allow you to add as many folders to the Home Page as you want, including sub folders, and these are displayed at the top making them easy and quick to access.
Navigation
New features
Services
Settings
Advanced Settings
Files Supported
Thanks and Credit where due...
Download Bedia NV - Version 2.4.420 April 20, 2017
This is the 2nd version of Bedia NV. The first version was designed for Windows 8 Store, however because of limitions of that platform I used technologies that are available for Windows 7, 8/8.1 and 10.
Technologies: C#, WPF, XAML, XML, JSON
Bedia UV
Bedia UV is the third version of the Home Theatre application. It is now a Windows Universal Application. The update will allow access to more online media thanks to the new MS Player Framework
Because of a number of limitations of the Windows Universal Platform, there are several issues that cannot be handled at this time. At this time Bedia NV has been updated with the features in Bedia UV and it my preferred home theatre application.
Bedia is designed to be an easy to use media player for your television. A mouse is used for a remote. The benefits of this are you don't need line-of-site, like standard remotes, and the ease of use. All actions can be seen on the television, so no more hitting the incorrect button while watching a movie in a dark room. The mouse scroll wheel moves you through available menus and navigation options (during playback) while the left button is "Select" and the right button is "Back". While media is playing if you scroll the list of navgation options is shown as a pair; Left button or Right button. Very simple and easy.
One or my bigger complaints about many media players designed for use on a television is that the application would decide how to organize your media. The Bedia family of media players allow you to add as many folders to the Home Page as you want, including sub folders, and these are displayed at the top making them easy and quick to access.
Bedia and Bedia NV came about because of my desire to have a home theatre application that fit my needs. I played with multiple software and devices and all of them forced the user to sort data the way the application wanted to sort. Both versions of Bedia allow the user to add multiple folders to the Home Page. Users can sort their data the way they want and simply have the folders as the top items on the Home Page.
Another issue with all Home Theatre devices and applications is that the remote is a collection of small buttons and different icons that the user must take their focus from the content. This application uses a standard computer mouse, the scroll wheel allows the user to scroll through the media when selecting one or more to play, and then during playback the scrollwheel allows the user to see the navigation options on the television/monitor.
Navigation
Files Supported
Services
Settings
Available in the Windows Store
Bedia UV is now open source and available on GitHub
Privacy Policy
Bedia UV uses the computer's IP address to get the location. The location information is used to get weather, transit, movie theatre location and movie times. Media history is stored within a text file with the application, this data can be cleared from the Settings menu.
Media history and other usage is not sent to Blissgig.com or other parties. Period.
Technologies: C#, UWP, XML, JSON, Source Safe
Bedia VR
I rented the Oculus Rift Developer Kit last year and purchased the CV1 recently. It was quick to see the value of VR, at least in the realm of entertainment, as the additional sense of movement brings an entire new level of engagement. I have spent some time thinking about how these devices can be used as business applications, however because of the lack of high enough resolution I do not believe basic text based business applications are valid at this time. Visual based applications can have real potential and the ability to freely move about the data could be an intuative way to understand the information at hand.
I also noticed that the various vr media players do not have a good playback media control like I created within Bedia, Bedia NV and Bedia UV. I thought I would dig into the Oculus SDK and research into the ability to display 3D 180/360 content with the Bedia playback controls displayed in from of the user in whatever direction they are viewing with minimal obstruction to the content.
I have started researching the various tools that will allow me to use .NET to create this VR application. This will at least allow me to know the cababilities of the device.
Update April 21, 2017. I have been looking at a number of VR media players;Bigscreen, Deo, Cmoar VR Cinema, Moon VR Player, Sour VR, Virtual Desktop, Whirligig and a few others. Each of these have some interesting features. Deo is very easy to use and Bigscreen and Virtual Desktop and some interesting environments to watch movies.
Because I have not settled on the feature set I would include and because Unity and VR is a little more complex to build this without better experience I have postponed this application will I work on a few more simple VR applications.
Technologies: C#, Unity, Visual Studio
Big Apple Transit
A Windows 8 Phone app for viewing current status of the New York City transit. Simple app to view the current status of all NYC transit: Subways, Buses, Bridges, etc.
The app settings allow you to select the transit items you want to see on the home page.
Update: Sept 4, 2013: This application is now available on the MS Store..
Technologies: C#, WP8
Blissgig
Welcome to Blissgig. This is a showcase of projects and technologies with which I have worked.
Bollage
Bollage is a simple image collage application. There are some collage screen savers, but a quick search did not turn up any applications that you can run that display a collage of pictures without being in screen saver mode. I have multiple monitors so it is nice to run in a side monitor and see all the pictures I have taken over the years. Beats a single Windows Gadget that only displays a single image. The window can be any size that you want it to be. I wrote this very simple application (free, enjoy) and I have included the source code in case anyone wants to use in within their non-commercial applications. I will most likely use this code in one or more applications that I am currently working on or that I am currently designing.
August 2, 2011. I created a multi-monitor enabled screen saver version. It is available below, along with the source code.
June 17, 2011. Bollage recieved a minor update. It can now load multiple folders, as many as the user requires. The Select Folder dialog appears repeattly until the user presses Cancel.
When you start Bollage you see this dialog asking you for a folder that contains images. Once you select a folder and press "OK", the Bollage displays a random picture for that folder at a random size and position. This application will run forever taking the next random image.
Select a folder
There is no installation for Bollage at this time.
Download Bollage Screen Saver.
Bollage Source Code available at GitHub. C#
Requires the Microsoft.NET Frameworks 4.0 available hereTechnologies: C#
Books and sites to read
As a tech we spend every day reading documentation, however some documents are more valuable than others. Follows is a list of books and sites that I highly recommend for all developers.
About Face
User Interface design issues. This book is written by the creator of Visual Basic, so of course I read it years ago. He takes a bit of a hard line on some issues, and while a lot of this book speaks about older issues (Windows UI) they are still relevant today.
Design Patterns
This is simply a must read for all developers. Anything else I say here would be redundant
Dreaming In Code
A great book about some impressive developers and their management attempting to handle a large scale development. Developers and management need to read this one, as there are many good points made here.
The Mythical Man-Month
Written so long again and yet very relavant, again for developers as well as management.
Programming as if people mattered"
I loved the title here; "as if", not that they do, but AS IF. Too funny. Still, a good book about issues with UI/UX that all developers should read.
Clients From Hell.net
Good to know what to look out for and how to handle bad clients.
Programmers Life
(comic) If you write software, you've lived these stories.
The Daily WTF.
Code horror stories, fun reads and good info to know.
Not Always Right.com
Because the customer/client/boss/user is not right.
Broadway
This is a recreation of a control I had started to make back in 1999 using Visual Basic 6.0, however that set of tools was not very efficiant for dealing with graphics. From time to time I have had the need for this sort of old style led display, so here it is.
Round elements 10x10
Square elements 20x20
I attempted to address all the possibilities for this type of control and keep it as simple as possible. An "element", think of an element as a single LED, can have separate height and width and can be oval or rectangle. There can be a border color on an element and the border is also an adjustable width and height. I have allowed for an adjustable width between each charactor and I have threaded the process that moves the text value.
In the addition of the standard UserControl properties, Broadway has the following properties:
Base Properties
Element Properties
Element Border Properties
Download source code. Written in VB.NET 2008.
This code contains the control and a test bed for trying out your changes. The code can be used and modified for non-commercial or non-business related products. If there is a need for this code to be used within a commercial product, or if you have any other questions please contact me at Blissgig@gmail.com
It is worth noting that this could be made accessable to COM, but really, I think you should move beyound that technology if you can. I have not tested this under those circumstances.
bundance
"bundance", as in abundance, is to be an application that is designed to run on computers with multiple monitor so that the user can select media (images and video, with an optional audio soundtrack) to play on one or more monitors. Each monitor will be allowed to divide into 1, 2, 3 or 4 sections. Each section can be assigned as video or images. Media can e abssigned to a specific section or to all sections. Think of this as a massive collage.
I am currently creating detailed specifications for this application, so if there details you would like included this is the time to ask me.
Capture / Crop
A request on Reddit.com this weekend for an app to capture and crop the Window's desktop. Since I was nursing a cold this was something that would distract me.
Features
Beta: Capture / Crop. At this time there is not an installation app. Simply download this ZIP file. You will need the Microsoft .Net Frameworks 4.0
CDC 3000
Yet another countdown clock. This afternoon a request on Reddit.com as someone needed a countdown clock for telepropter. So I threw this together and here it is, source code and all.
Features
Source Code and application. .Net 4.0 Frameworks required
D2 Playlist
A few days ago I got the Droid X, an impressive smartphone. However creating music playlists on a phone is never that easy and I have playlists that date back 30 years, once upon a time they were called "Mix Tapes". So I made "D2 Playlist" as a simply Windows based application that will allow the user to drag and drop, or open existing WinAmp playlists. Then by selecting "Export" the application navigates to the "music" folder and copies the music and creates a playlist file that the Droid can read (.pls)
This is a very simple 1.0 application and I am releasing the application as well as the source code as after reviewing countless posts there did not seem to be any application that was easy to use or even covered this requirement. I have tested this application on Windows 7, 64bit with the Droid X. When selecting "Export" you will be prompted for the location to where you want to copy the files. On My Droid X that location is "[drive]\mobile\music". Please be aware that on your phone it may be different.
The source code is available and may be used for any non-commercial uses. If there are feature requests or bugs that you would like to report please feel free to contact me.
An installation has yet to created for this application. You will need to have Microsoft's .Net Frameworks 2.0
Please be aware that this is an "alpha" product and that Blissgig does not offer any support or take any responsability for issues with your computer or other devices by using this software.
DJT2
DJT2, "DJ Tools 2", is the second generation tool of "DJ Patterns". This application is a companion application to Virtual DJ.
Export Data Fields
The following fields are available for the Export section. The user can choose which fields to show and in what order.
The next version will allow the user to "tag" media and filter by that data as well.
This application was written in Visual Basic.NET 2008. Source is also planned to be available in C# at a later date.
Download DJT2Documentation
Over the past twenty years I have read countless technical books, documents, help files and web pages searching for clues on how to work with numerous technologies and development tools. Is still amazes me after all these years the lack of consistency within the development community and within even specific sites on the process of documentation.
The ability for a project or technology to succeed both in the short and long term often can rest in the documentation. Giving other members of the team, or those who come from outside the development of the specific item information on how to use the technology is paramount to it use and acceptance as a tool to be widely used. I have frequently heard the phrase; "The code is the documentation." While commenting the code can be helpful and should be done (to excess!) it is not the documentation. Proper documentation of a technology should consist of at least the following:
I believe documentation suffers for a variety of reasons; I think that the developers who are writing the code are often under pressure from management to get this project done asap, or sooner. I can't count the number of times I have been asked how long a project will take to complete before I have even been given specifications. I believe this is because our industry is relatively new and there is a disconnect between developers and management. In the last decade I have seen this get better as more developers have risen into the ranks of management, usually through the role of Project Manager. The lack of foresight causes so much more wasted time at later stages of the process. Again, the number of projects that I have come into at later stages of development that had zero documentation is upsetting and, imo, criminal. (OK, so "criminal" is a bit harsh, but I think you're bright enough to get the idea.)
Another issue that I believe is an issue with the documentation is that those who write the code are too close to make good judgment calls on how to properly, and concisely state what the code does and how to use it.
This bring me to a big point; Code Samples. I have seen good code, really, I have. And it is littered with comments. The header is commented with how wrote it and when, the body of the function has numerous comments about what is supposed to happen and why something might fail, and the details about what is done to avoid specific or even unknown failures.
I once read a book in about 1993/94 called Visual Basic Database Programming and it contained only one and a half paragraphs about tables and joins. I understand that the mid 90's are the dark ages compared to where we are now, my point in this rant is to insure that in 10 years time we make the leaps in technology and its ease of use that should be occurring and to make it easier for me and you in our projects.
James Rose
Eclipse VR
I was lucky enough to catch an eclipse a few weeks back and I had wondered about creating a VR experience. I found a Reddit post asking if such an experience existed and thought I should create one, if only to get the idea out there. This is ONLY a prototype version. It's a short experience and you can only watch, there is no movement within the scene.
Download: Eclipse VR. At the moment this is PC VR only
Technologies: C#, Unity, URP, Oculus Quest 2 (AirLink), Visual Studio
Expressions VR
"Expressions VR" is to be a place where I can show off mini-vr experiences. This allows me to test technologies and ideas.
Field of flowers
The first scene is a simple field of flowers inspired by this photo I found on Reddit. The initial thought was this would allow me to learn how to use Gaia, and while this asset was quite easy to use and impressive, what I ended up learning was the details about third party vegitation and it's use within Unity
I also learned, as I did with Heartbeat City, is the limitations of the VR platform. The majority of the vegitation had to be 2d panels as the frame rate could not handle the tens of thousands of 3d flowers that this scene required.
This is a simple scene and there is no user navigation within the environment. It is designed as a two minute experience, simply sit on the bench and enjoy the view.
Download "Expressions VR" 330 MB
Fireflies
I created the following scene as I saw an amazing photo of forest filled with fireflies. Because I am originally from the West Coast, where I never, ever got to see fireflies, so I thought it would be a nice and quick distraction, as well as a nice art piece where the user can sit and experience fireflies. Nothing to do, no where to go. Just sit and enjoy the scene.
Download "Fireflies VR" 500 MB
Technologies: Unity3d, Oculus Rift, VR, C#
FeelzMe
FeelzMe was an idea that was brought to me by someone without development knowledge. It was built on the notion that web sites do not give a method for users to express themselves with the exception of an Up/Down or a Like.
Besides the web site; APIs were created to allow XML access to search and trending, widgets so websites could have a current mask for the site url or a phrase. Also a mobile page and mobile app for the Windows phone was created.
FeelzMe can be demonstrated here. This demo version does not contain many of the features that were working on the full site, however the base function is preserved.
Technologies: C#, ASP.NET, SQL Server, XML, WP8
GitHub
Developers have a responsability to share their knowledge and experiences. In order to contribute a number of my projects have been posted to Github for use and review.
Great American Broadcast
The Great American Broadcast is a internet show by broadcast pioneer Alex Bennett.
There are many ways to enjoy the Great American Broadcast. All the applications are available for free.
Windows Phone application
Technologies: C#, WP8
Heartbeat City
In the not too distant future life in the city is modern, clean and safe. Heartbeat City is filled with "Auto Autos" that drive themselves, they take us where we want to go. But then there is you; a hacker with an addiction to speed and a disdain for authority. What do you do? You race the streets, avoid the cops and cause mayhem. Enjoy
Nov 8, 2023. Design work and optimization complete. It has been 18+ months of work, mostly design work (hats off to real designers!) There is still work to do, but now I can concentrate on what i do best; programming.
A number of changes were made to get to the required frame rate. ALL traffic is now using the Unity ECS/DOTS technology, however the player's Auto is currently still the older tech, which means that for now there is no interaction between the player and other Autos.
Next Steps
Here is the current version. There is NO gameplay. This is a completely new version, the map is 10km x 10km and the traffic now has a new process using the Unity ECS/DOTS technology. Each auto chooses a new path at each intersection.
Nov 9th, 2023. I recently rediscoved an AMAZING version of the VR-flying-car-thing, it is so much better than I could have ever done, after all I'm a software developer, not a graphic designer. Hell, I barely play games. But really, the acolades belong to LeDorean2015 and "Grid Runner". You simply must look into this project. So much better. I had learned what I came to learn from this project, so for the time being I am pausing most work on Heartbeat City. Again, Bravo! LeDorean2015
Heartbeat City Road Map
Above Heartbeat City
Seen from above you can see that Heartbeat City is a large place to explore.
Please be aware that I know many areas of the game are rough. The intent here was not to make a game, but to learn more about the abilities and limitations of the platform and devices. In this aspect there is a lot going on here; Lots of multi level traffic, buildings that respond to the beat, endless selection of races since each race is random.
This is a chase/race game designed for VR. I do not play many video games, however in the past few years I have enjoyed the Need for Speed franchise and with my interest in VR I thought it would be of value to my abilities and knowledge to attempt to create a game that I would enjoy.
Thanks to Unity's "Data-Oriented Technology Stack" aka DOTS the game can now have the immersion for which I first hoped. There are still many items that will need to be completed to make this a fully functioning game.
Series of videos showing the progression of Heartbeat City
I was listening to The Cars "Heartbeat City" while playing NFS and it clicked as the inspiration for the game. So I created a playlist of additional songs that I believe match the feel of the game, to inspire me and move me in the direction I believe the game should go.
What follows is an incomplete list of components used within this project
Technologies: C#, Unity, Unity ECS/DOTS, Oculus Quest 2 via Air Link, Visual Studio, VR
Infinite Candles
I have been having some issues with finding the limits of what can realistically be acomplished on the Oculus Quest 2*. Because of these issues, and because I have spent months working on larger projects I thought it best to create a simple project and see how far I can push the technology and still get decent frame rates.
About a decade ago I saw an interesting art installation, quick clip here, where you were in a small room with lots of mirrors and faux candles which gave the impression of infinite candles. It was an impressive piece so I thought I would replicate that here. There is no movement in this scene, you can only look around, just like the art installation.
Download Infinite Candles 39 MB
Technologies: C#, Unity, Oculus Quest 2, URP, Visual Studio
* This scene has just under 5000 low poly candles. Less than half of those move. Only a small percentage have animated flames, those closest to the player. Candles in the mid-range flicker, while those farther out do not. This was build on the Unity Universal Render Pipeline. Unity DOTS was considered, but at this time I got the information I required.
Interviews, We Can Do Better
So, for the sake of fun and avoiding a bad interview.
Lego
I often used a reference to legos when explaining my career to someone who is not in software development. Everyone knows what Legos are, and Geek Moment: Apollo 11 Lego is due shortly and I am looking forward to this kit.
When I first picked up a software development tool (::cough:cough::vb2) I used Legos as how I saw these objects, visible or not. It was easy to manage the idea that each specific lego part could have specific abilities and ways to affect those abilities. So add in a specification from the client on what they want it to do, and why (WhyWhyWHY! Ask the WHY qusetions, saves so much time) and your building software.
It is a massive over-simplification of the process and needs as well as the abilities of current technologies. But the base concept gets across to the non-tech.
This is also where I disconnect from so many who had a structured learning path. That is a great method, but one that does not work for me. This is even kind of the point of this post, to state that if you're interested in hiring me and you want somene who has memorized, or can memorize a sdk, then I will not be the right person for the job. I have worked with many components in dozens of different use cases and knowing what type of questions to ask the users, so I then know what components I need to purchase to build their solution.*
The real value in IT and Software Development is everyone understand the needs and abilities and time, then purchasing those lego pieces and wiring them together. It's not that difficult, but it does take some work.
*I had a friend, a fellow developer who spent a month, on contract in the late 1990s, writing a reporting engine in Visual Basic 5. That was simply a waste of time and money, for a fraction of the cost of this developer's time Crystal Reports could be purchased and actual reports could have been created. It was not only a waste of time/money, but the speed of a VB5 application compared to a C++ is going to be much slower, so yet another detriment to the value.
Light
Light is a Windows Phone flashlight. Of course that's what the world needs, another flashlight. /s
However after using a number of flashlight applications, on Droid and Windows Phone, I found that all of them offered many options. I wanted a simple flashlight; Select the app and the light comes on, select anything else and the light goes off. Simple right?
This app does not have any other features, it doesn't include unnecessary code for any other abilities, no advertising, no spyware, nothing but a simple light.
Icon by DesignModo on IconFinder.com
C# Source Code available at GitHub. Free to use in any way, shape or form.
Technologies: C#, WP8
Message In A Bottle
Most, if not all applications are very specific about what they do. "Message In A Bottle" is not like that. In fact I do not have a specific reason for this application. I consider it more of a "build in and they will come" sort of idea.
Users will be able to come to a page here on Blissgig (maybe another named site) where they can put a message "in a bottle" and throw it into the "sea" that is the internet. The note can be as long as the user wants and contain whatever information that they wish. Other users can come to the site and by random chance there may be a bottle with a message that they can read. Users can recork the bottle and throw it back and, if they desire, add additional notes. Once a bottle has been opened it cannot be found by any other users.
Simple enough?
June 17, 2011. I have created the data model and some of the stored procedures and logic required for this application.
Naming Conventions
There are any number of naming conventions and coding standards. Each have their values and issues. This is the pattern I created but as it is important to stay flexable and learn new patterns as new ideas come along.
I started developing software with MS Visual Basic 2.0, back in 1993. So my naming conventions came from the Hungarian notation. However a few years later I found that this convention was not quite right for me. It was with the release of VB 4.0 in 1995 that I developed the "Rose Variant" on the Hungarian form. Not much changed. However I believe I made it easier to recognize the objects by this new convention. You see human beings are primarily visual creatures and we can interpret information visually much quicker than we can read. (Yes I understand that reading is a visual medium as well)
The Rose Variation is simply:
Recently I posted on several tech and development sites asking about naming conventions and if they still have a value. Because I have been using these conventions for over a decade I wanted to insure that I was not holding on to old patterns just because that is the way I have been doing so for the past years. Software development is a relatively new profession and I believe that it is important to keep up on new processes and well as new technologies. After a week of reviewing the various conversations I came away with the thought that there is still a strong value for naming standards. My variant is not the absolute answer, just one idea. What I do strongly suggest is that you find a pattern that works for you and stick with it. Over time you and other developer that have to work with your code with appreciate the consistency.
There were some who spoke that naming conventions are no longer necessary with the current abilities of IDEs. Most allow you to mouse over the object to get the details including data type and the current value. However I felt that this method of thought missed out on why I developed the Rose Variant in the first place. The ability to scan a page of code and instantly know what type of object you are looking at has been a great help for me.
For example: What is this object "UserValue" (yes it is a bad name) Is this a string or a numeric or even a full object? (yes, I know that in .NET all items are objects, let's not get picky here.) But if it was labeled as "iUserValue" or "sUserValue" then you could know instantly that it is a integer or a string.
There is, of course, some issues with the Rose Variant in that some objects will have the same prefix. eg: Single, Short and String, or Date, Decimal and Double. While I will agree that this is not perfect, I have used this pattern for over a decade and it has served me well.
Here is a listing of the differences between the two conventions. This list is not complete, and I welcome any thoughts on this pattern.
Variables:
Object | Hungarian Prefix | Rose Prefix |
Boolean | bln | b |
Byte | byt | b |
Char | chr | c |
Date | dat | d |
Decimal | dec | d |
Double | dbl | d |
Integer | int | i |
Long | lng | l |
Short | srt | s |
Single | sng | s |
String | str | s |
Database Objects:
Object | Hungarian Prefix | Rose Prefix |
Field | fld | fd |
Index | idx | dx |
Query | qry | qy |
Table | tbl | tb |
Recordset | rec | rs |
Connection | con | cn |
Command | com | cm |
DataSet | dst | ds |
DataReader | dar | dr |
DataAdapter | dap | ad |
These objects are the same for the Rose convention as the Hungarian standards.
Controls and Objects
Object | Hungarian and Rose Prefix |
Form | frm |
Check box | chk |
Combo box | cbo |
Command button | cmd |
Dialog | dlg |
Grid | grd |
Image | img |
Label | lbl |
List Box | lst |
Menu | mnu |
Option Button | opt |
Picture Box | pic |
Scroll Bar | scr |
Text Box | txt |
Timer | tmr |
O. Cay - A One Day Project
O. Cay, as in Ocean Cay, is just that, it's ok. I have been building a Northern Lights experience, VR.ORA, which took me about 8 weeks. This was "simply" a copy and paste of that project. Last week I was lying in a hammock on a beach in the Caribbean and thought; "I should make a simple VR experience so I can enjoy this whenever I want.", and also because I have SO often seen the "I built this in a day" or someone in management saying; "it's easy, it will only take a day or two.", and since I am a big fan of showing examples I thought I would make this project.
This is the process on what I did:
So just those few things took and entire day, and that's starting with an existing project that had MANY of the same assets and capabilities. I didn't have to redo the VR configuration or many, many other aspects of the project. So next time you hear; "I can do that in a day or two", BEWARE, software development takes time, lots and lots of time. ...or maybe it's just me and I'm slow.
You can add your own MP3s to the "O.Cay_Data/Music" folder and they will play automatically on the radio in the sand next to you. I HIGHLY recommend ELO - Mr. Blue Sky, the 5 minute version, because the sun sets as the song ends. It just feels right.
Download: O. Cay
Oculus Rift or Quest 2/3 using AirLink
Technologies: C#, Unity, URP, Oculus Quest 2 (AirLink), Visual Studio
Outlook / OS Integration
I gave a presentation in 2005 at a tech conference about the future needs and possibilities of Operating Systems. The key item that I spoke about was relationships. Currently the file structure of the OS is that of singular objects that do not have a relationship with each other outside of the fact of the folder/folder structure that they reside within.
One issue is that users are required to create a file name, thankfully larger than the old 8.3 restriction from DOS. However the fact that the user has to distill down the basics of the document to 256 characters and then remember where they save it. The next large scale evolution of an OS needs to remove this unnecessary step. The OS and applications should automatically save their data and allow the user to get back to their data by a search by an number of data points. When I spend my day at my computer there are multiple data streams at any given moment. For example while I am writing this I have surfed to multiple web sites, answered a few emails and music has been playing via WinAmp. The user should be able to search on any of these data points to get back to their data. The OS should store information as the application needs as well as the relative data points.
This application was written to give a quick example of what can be done to this extent. The application allows the user to monitor multiple folder for multiple document types. As documents are created or edited an entry is made in a document type specific calendar within MS Outlook. The entry gives the user a link to the document. Many users in corporate environments live in Outlook and this was a way to give them addition reference to their data.
This project was started to show the possibilities of the issue and currently the project is in limbo. The source code is not available at this time.
Process
Late last week I spoke with a manager who asked me about my release process. While I have worked in many shops with different patterns, I thought it would be of value to show the pattern that I would use if I had that form of control. This article is just a "top of my head" and there will be additional details added as I think of them and, of course, you should adjust these as your requirements demand.
Of course some of these items are obvious, but the number of times I have encountered processes that are opposite the logical flow "just because".
Specifications
Getting customer ideas. I prefer to get as many users involved in the initial request. Knowing what everybody wants helps me to plan those functions before I write myself into a corner that I later have to untangle. Of course not all features are going to make it into the initial release, if ever, so it's also important to manage the users expectations so that they are less disappointed when they don't get those functions. (and they will be disappointed and they will say; "you promised" when in fact you have not promised.)
Divide up the tasks into manageable pieces. At this moment in history, especially with web based projects, it is often better to make smaller and more frequent changes. This gives the users some of the functions they want asap.
Documentation! Do it up front, like source code comments they are an investment that will pay off sooner
Development
All developers should be using source control such as Source Safe, CVS. No excuses! I use source control at home.
Bug tracking systems such as Bugzilla
All database changes are to be scripted!
Always use stored procedures. There are some who believe that using stored procedures is not of value, I disagree.
Release
I prefer to have a three tier enviorment: Development, Test, Production
Backup Production enviorment (obviously daily!) and restore to Test. Register new components, run scripts and then run test scenarios. (for more detail on testing consult someone else. I do extensive function testing, but I strongly believe that testing should not be do by developers and definatly not done by the developer who wrote the code. The person who wrote the changes has the suposition of what should happen. To remove this issue, at the very least a different developer should test the changes. The specification written in the first step should be a good start, if not a complete document on what should be tested.
Releases should be scheduled for a time of day and day of week that is least likely to affect the most amount of users.
Additional:
Backups of source code, documents, database and all other documents should be done, at very least daily and stored in an offsite location. There are too many encrypted cloud based services to not having a backup. (yes, I have worked at companies that did not have backups)
Quiet space. Developers need personal space, their own office so that they can concentrate and give you the project results you need.
Good computers: Developers should not have to work on a 4+ year old computer. Period. Spent the money and make the developers happy, or management will spent much more money in lost time.
Realtime Backup
This is another application that wrote based on the "Directory Watcher" component of Visual Studio. I absolutely love this tool. This idea was simple in that the user can choose multiple folders and within each folder they can define what files or file types that they wish to monitor and backup. The application creates a series of Directory Watchers for each instance that make a copy of the file to an additional drive, defined by the user.
This application was written in Visual Basic.NET.
The application and source code are not available at this time.
Recruiters, wtf
It is my sad duty to report that after 20+ years I have yet to meet an agent that had a clue. While my personal perspective is not a lot of data to make a good judgement call... it does say a lot
The data that follows is from only a couple of weeks after I posted my resume to a collection of site. My resume states my skills, the technologies that I know and that I am only looking for a position within Nwe York City.
Here are some examples of what I have experienced just in the past few weeks.
Again, this is data collected only in the past few weeks. I could spend all day talking about the bad, rude and just plain awful recruiters I have had deal with, which makes me worry about companies that use these agencies.
For additional "wtf" check out this subreddit: reddit.com/r/recruitinghell/
Resume
This introduction is an integral part of my resume and while it may be a bit lengthy, I believe that clarity is more important than brevity. I am an IT professional with more than 20 years in software development. I have created applications for multiple sectors including Banking, Telco, Legal, Medical and e-Commerce. I have designed and created large scale mission critical applications, including gathering specifications, designing the data models and creating documentation for end-users and technical staff.
My primary experience has been in developing Windows based applications, though I have also created web, mobile, server-side as well as spending the past five years creating virtual reality experiences. I have also managed projects where large and often complicated systems were required to run the daily business. Each situation and every project is a new experience and while previous knowledge of similar systems can be helpful, I like to keep an open mind about the possibilities of the project's current and future abilities.
I understand that working in IT means that new technologies and new features are coming online frequently and this requires me to keep up to date. I preview, test and read up on existing and new technologies to ensure that I am aware of what is coming and how it can interact with current systems as well as possible future abilities. I was never the type of developer that engineered the perfect piece of code, to me technologies are just objects to connect together in the best possible combination, based on the known issues at that moment. Attempting to make the perfect code, instead of a working and completed application has never been the point to me. I am proud to state that the majority of projects I have worked on have been completed.
I did not come into IT with a formal background, it was the.client’s issues that have dictated the different software and hardware for that solution. I have worked with a number of technologies, a handful of languages and an assortment of hardware devices. However, memorization was never my forte, this is why I never do well with test based interviews, which means I won’t be participating. Good practices and processes, documentation and communication are the key to successful projects, not the specific tools or memorization of a subset of these. I have long learned that it is best to research topics that I thought I was already aware of, as technology changes so quickly. I am happy to discuss, at length, about the details of each project.
Thank you for reading through this and I hope that it is helpful.
Developer, Blissgig.com. New York, NY. 2008 – Present
Designed and developed a technology that allows users to create, tag and share events. This connects
users to events as well as other users based on the user’s previous event patterns. Created data model
as well as system and process documentation. This technology has been sold, however the domain
remains active as my portfolio. Other projects include Windows, Web, Mobile, Home Automation and
Virtual Reality.
Technologies: ASP.NET, C#, SQL Server, Unity, Visual Basic.NET, Visual Studio, VR, XAML, XML
Co-Founder / Developer, Electric Light Ideas. New York, NY. 2014 – 2016
Created applications; site, widgets and mobile that took user input on a subject and output an emotional
result icon. Designed algorithm, engine, database and interfaces for external developers. Generated
documentation for interfaces and designs.
Technologies: ASP.NET, C#, JavaScript, Source Safe, MS SQL Server, Visual Studio 2013, XML
Software Developer, AmericaToGo.com New York, NY. 2008 – 2014 Integrated the new site design into existing site and code. Created interface with Partner's system via SOAP and Windows Services. Created Windows Service to deal with images that were too large for a VB Classic application. Responsible for the maintenance and addition of new features to a Windows based medical imaging application. Wrote documentation for existing and new components. Technologies: ASP, JavaScript, SOAP, SQL, SQL Server, Visual Basic.NET, Windows Services, XML
Software Developer, Burrelles Luce. New York, NY. 2007 – 2008
Responsible for the upkeep and re-architecture of the company’s core system. This included over 200
DLL, OCX and application components. Created and optimized Oracle stored procedures and triggers.
Created .NET components using COM to allow these objects to be used in VB6. Wrote development and
system documentation as well as created prototypes in Photoshop to expedite user acceptance of new
interfaces. Interfaced with QA, sales, end-users and upper management to ensure products and practices
were in line with the company’s process. Mentored junior developers including best practices and code
reviews. Interviewed applicants for technical knowledge.
Technologies: Oracle 10g, PL/SQL, SVN/Tortoise, Toad, Visual Basic 6, Visual Basic.NET
Developer, Affect Image. Seattle, WA via New York City. 2006 – 2007
Developed code examples for the company’s new technology as well as designing and creating the data
model. These examples were used to facilitate licensing this technology.
Technologies: Source Safe, SQL, MS SQL Server, C#, Visual Basic.NET
Senior Developer, Addiction Management Systems. New York, NY. 2002 – 2006
Lead the re-design of an existing MS Access application into a true client/server using MS SQL Server.
This design change was to allow current and future customers to have a stable environment for this
mission critical medical application. This included meeting with management, customers, support and
sales staff to gather and document specifications and to ensure that the new product would meet current
and future customer requirements. Documented the design, code and data model.
Technologies: ADO, Source Safe, SQL, MS SQL Server, Visual Basic 6, Visual Basic.NET
Senior Developer / Development Lead, B-Line. Seattle, WA. 2001
Completed a 60-day contract to rewrite a data-entry system. The completed legal/bankruptcy application
doubled the speed of the entry with less than 60% of the previous workforce. Reworked and orchestrated
the redesign of the data model into a workable, scalable system. Aligned the development team by their
strengths and created an environment that allowed users and management to achieve the goals they set
out in a minimum of time and allowed developers to accomplish the goals management set out for them.
Created development documentation and coding standards implemented by the entire development team.
Technologies: ADO, Source Safe, SQL, MS SQL Server, Visual Basic 6
Application Analyst II. Cellular One / Western Wireless. Issaquah, WA. 2000 – 2001
Responsible for Payment Processing System; consisting of multiple databases, numerous Visual Basic
components, MS Access reporting front end and Active Server Pages to allow easier report viewing for
the end-users. Developed coding and naming standards for the development team.
Technologies: MS Access, ASP, ADO, Source Safe, SQL, MS SQL Server, Visual Basic 6
Application Developer, Punch Networks Seattle, WA. 2000
Developed Windows based internet file-sharing/repository application. Responsible for the User Interface
design of the retail application.
Technologies: ADO, CVS, Oracle, PL/SQL, Visual Basic 6, XML
Senior Application Developer, MediaPassage.com. Seattle, WA. 2000
Developed internal company wide accounting. Designed the data-model for client/vendor transactions.
Implementation of User-Controls as a way to group and control code generation / reuse.
Technologies: ADO, SQL, MS SQL Server 7, Source Safe, Visual Basic 6
Senior Application Developer, Wells Fargo Bank. San Francisco, CA. 1996 – 1998
Developed and implemented a company-wide ATM management application. Responsible for database
and application development, testing, interface design, system integration, and maintaining code base.
Co-wrote the data-model for this application allowing consistent and historical views of all data. Created
and presented proposals/strategic planning.
Technologies: ADO, DAO, RDO, Crystal Reports, Oracle, Source Safe, Visual Basic 4, 5 and 6
Network Admin / User Support, Symantec / Timeline. Novato, CA. 1995
Supported company wide network. Created scripts to enable faster reproduction of systems for the QA
department.
Technologies: Novell 3.1, Windows 95, Windows NT
Software Developer / Consultant, Shattered Rose. San Francisco, CA. 1992 – 1995
Created networks and applications for clients. Trained end-users on current technologies.
Technologies: MS Access, Novel 3.x, MS SQL Server 6, Visual Basic 3, Windows 3.x, Windows NT
Wrote the chapter on Visual Basic, VB Script and coding standards for the Ventana Press book “MS Site Server”.
Rose Rules of Development
I often find myself explaining some of the basics of software development and I thought I should finally post these in the hope that they are help to others. So, here are The Rose Rules of Development:
Simple CMS
Back in the late 1990's I was approached to make a web site. They wanted to be able to add/edit content and have multiple content types. It was a vague request, and out of it came the design that I have used on mutiple occations. The data model consists of three basic tables. "Articles", "Types" and a join table "ArticleTypes"
The design allows for multiple article types in case the site needs; "News", "Entertainment", "Weather", etc. Each article can belong to one or more if desired.
It has been written in ASP and ASP.NET, with the back-end using MS Access or MS SQL Server. However minor changes can be made to use PHP and/or MySQL or other technologies.
The source code is one page; "Default.aspx". Each time a viewer requests a page the "hits" are stored within that article, so there is no need for external site metrics. Someday I will bother to make an extra page that shows the articles and their stats.
The source also includes all database scripts.
Source code and database scripts are available at GitHub.
Technologies: C#, ASP.NET, SQL Server
Stage Presence (prototype)
This is a simple prototype put together over a few days to show a client how VR will allow them to see exactly to set up their stage setup would be best for thier needs/costs. This prototype has no interaction, you cannot play the drums, etc. Sorry.
Stage Presence
Oculus Rift or Quest 2 using AirLink
Technologies: C#, Unity, URP, ECS/DOTS, Oculus Quest 2 (AirLink), Visual Studio
Take A Bow
This is a small app for those users who have a MS Kinect. The idea is taken from an artist installation called "Performer" by Adam Frank.
There are multiple random responses for when you Take A Bow.
Technologies: C#, Kinect
Tell Us About Yourself
I grew up in the Silicon Valley. My first job was a position at a consulting and engineering firm that modified Wafer Track machines for AMD and Intel. However because I was more interested in getting into the music industry I moved to San Francisco and converted a warehouse into a recording/rehearsal space. I was an acceptable base player and a decent drummer, but I was much better at the technical aspects of this process. I had a knack for connecting and troubleshooting the synthesizers, sequencers, drums, recording equipment and computers. This enabled me to record 8 tracks analog and 32 tracks digital via MIDI. It was an impressive setup for it’s time and very inexpensive compared to other studios.
While working at a toy importer, music just wasn’t paying all the bills, I started creating databases to handle the stock, sales and other business management. My next step was picking up a language that would allow me to make stand alone applications. At the time the easiest route to this was Visual Basic 2.0 which allowed me to create applications that could do much more than what was then available in database engines.
Over the next few years I transitioned to setting up networks, troubleshooting applications and OS issues and occasionally creating applications for clients. I ended up running a small consulting company with friends for a few years. However running a business is something I didn’t enjoy and it was not really my forte. So I shut that down and found work at established companies.
In the last 20 years I have learned additional technologies as needed or wanted. These were chosen because of a specific need to accomplish a goal, not simply to learn a new technology. I didn’t start with the lowest level concepts and work my way up to higher level technologies, I choose software and knowledge based on the results they would give me for the given need. Because of this there are some aspects of systems I may be unaware. However, I believe for application development my top-down approach has served me well because the need is about finding the best business solution and implementing that asap.
This is why my resume speaks about having a conversation, as opposed to a quiz, as I will be happy to discuss what choices I have made, the technologies I have used and the logic and reasoning behind all of those decisions. Memorization is something you find in books, how’s that for an old phrase, since everything is available online now. Which is my point, asking me to memorize and regurgitate hundreds of thousands of functions available in .Net and other languages will not prove if I am a good developer, it will just show that I am able to memorize data and that is not where my talent excels. I am very organized and can think through a given situation to many levels. I also know what questions to ask to insure that the business needs are met now, and hopefully in the future as those needs change.
Tumbl-Weed
A Windows 8 application for viewing Tumblr feeds. This application was started as a way to understand Windows 8 development requirements and to learn about OATH development issues. No release date is planned for this application atm
Virtual Tolkien
While rewatching the Lord of the Rings films, as the fellowship sails past the giant statues I always wished I could do the same. So I created it so I can. Now you too can slip past the watchful eye of Sauron, in the shadow of Mount Doom and sail past the Argonaths and all their majesty. This is a 5 minute VR experience.
Video from Oculus Quest using Airlink.The graphics quality within the experince is much better.
Video from Oculus Quest
This experience is designed for use with the Oculus Rift. Because of numerous requests for Quest, Index, Vive and Windows Mixed Reality devices, I will look into releasing versions that support these devices. If you wish to test this experience on your device, contact me and I will let you know when a version is available. Note: WMR has been removed as of July 28 because of some render issues. I will get back to that.
Thanks to an article on UploadVR there has been additional interest in this project. Thank you all very much for the great feedback. I have spent the past week fixing those issue and adding new features. If you have any additional thoughts or issues please feel free to contact me; blissgig@gmail.com
July 2021: This update is for Oculus Rift only, well, or with Oculus Quest 2 using Air-Link, which is what I use... but I digress. I stopped working on this project for Quest because of the lack of power of the device SPECIFICALLY in reference to the abilities *I* have as well as what I want the experience to be like. Because of those requirements I was able to start from scratch and make a more active, through not yet interactive, and detailed environment. Because there was a need to release it today (July 21st) there are a number of features, bugs and other items that will be addressed in a future version. This is just the current state, not it's final form.
Download "Virtual Tolkien" for Oculus Rift or Quest 2 using Air-Link - Aug 20, 2021 (1.45 GB)
Download "Virtual Tolkien" for Oculus Quest* - Nov 1, 2020 (760 MB)
* You will need to sideload the Quest version. For details on how to sideload applications to your Quest, visit SidequestVR
Additionally since this is getting traction, it should be stated that I am a business developer, not a designer. Credit to much of what you experience in this application is due to artists and designers. I have always looked at software development as creating with LEGOS; Purchase the pieces you need and put them together in the manner you want. I will update this page with a list of the assets I used.
Some of the assets I used for this experience:
Technologies: Unity3D, URP, ECS/DOTS, Oculus Rift, Oculus Quest, VR, C#
VR.ORA
Jan 31, 2024. A relaxing journey on a catamaran through a frosty fjord to watch the northern lights. Add some music and sit back and enjoy.
You can add your own MP3s to the "VR.ORA_Data/Music" folder and they will play automatically on the Mobile on the table next to you.
Sit back, enjoy the ride. The ride is about 10 minutes, however you can stay on longer if you wish
This is not complete and barely optimized. Currently it is for PCVR, not native Quest, once this is complete I will see if it can be made to run native to those devices.
A short video of the current alpha version, it's better now.
Technologies: C#, Unity, Oculus Quest 2 (AirLink), Visual Studio
vxTunes
vxTunes is a small Windows based application that was designed becuase the LG VX8100 does not support playlists for your MP3s. vxTunes can import WinAmp and Windows Media Player playlists, as well as adding media indivdually. By user request additional phones models
vxTune simply adds a three charactor numeric prefix. ie: "Styx - Come Sail Away.mp3" becomes "001 Styx - Come Sail Away.mp3".
vxTunes was added to the open source library SourceForge.net
Wardrobe Manager
The base idea of this application is to give the end-user an application where they can create a wardrobe outfit based on one of more items and then the application can show them items that match via color, style, tag, etc.
This would need to be a phone based application, although there could be a value for tablet, laptop and desktop could be of value as well.
Voice recognition will be important to make the process of accessing the data. Allowing the user to speak the name, style, etc of an item could make data entry easy enough. Image recognition will also be helpful for determine color and texture. A combination of these features could get an acceptable result until RFID gets into the mainstream.
A big concern would be ability to add your wardrobe into your local database. Users would not want to type anything into their phone or other device. The preferred method would be to have RFID tags implemented into clothes by the manufacturer and of course phones would then have to RFID readers. This technology is coming along and details of one example can be found here: http://www.electronics-eetimes.com
Another option, using the current technology within most cells phones would be to scan standard bar codes or QR codes. Again this would mean that data would have to be shared from the manufacturer.
Many apps charge, of course, and then there are many applications that are free and have found other forms to make money, often with advertising. One of the benefits, for the end user, would be that this application would pay the user for using it. The more frequently the user enters their daily wardrobe the more "points" the user would earn that would then give them discounts to attire from various participating vendors/manufacturers.
The usual connections to Facebook, Twitter, etc could be included; "Look what I am wearing today" and these sort of social connections could be used to earn additional "points"
To attempt to alleviate fears of Big Brother during the installation all options should be "Opt In". The user should see a dialog that informs them of their options and the benefits. These options should be able to be changed at a later date. One option would be to show the user their ID so that they can see exactly what data is being transmitted and that data should move from device to device in an encrypted form so only those who pay for the data can have access to it.
Application funding.
The application will be paid for by manufacturer and retail establishment purchasing users detail data. A standard GUID will identity the user so the user's personal information is not identify them directly. This info would include, but not limited to; age, (range?) height, weight, favorite outfits, tags, frequency, brands owned, worn, location where the outfit is purchased and worn (City and State via the phone's GPS. The exact address would not be shared to vendors)
Benefits for the user
Benefits for the manufacturer
This application would require a very large buy-in from clothing manufacturers and retails, who user their own metrics and have systems that they may be reluctant to allow access. (in the case of getting new data) This becomes a realm of sales and marketing. I only state this here to show that I am fully aware of the details necessary for this project to succeed.
The point of this entry is to show that I can take an idea, in this case presented to me by my wife, and carry it forward to include additional details that can benefit the user as well as the host company. I worked briefly at Coach and saw how much they used their own internal data based only on sales.
WhatzHappn
WatzHappn is a location based news aggregate being created by James Rose (@blissgig) and Shaka Wallace
Data Providers
The application can be seen here: http://blissgig.com/whatzhappn/
The source code is available on GitHub.
This application is to show a friend the process of development. At this stage the application is not even Alpha.
Technologies: C#, ASP.NET, XML, JSON, GitHub