The hackathon was okay. There were some regrettable moments and some unforgettable ones.
When I arrived there, I was still pretty miffed that my friends had ostracized me from their group. I came in with the “I’m-scared-of-tall-white-people-with-glasses-and-braces” look, but to be honest, looks turned out to be deceiving when the final products appeared.
I saw some kids from my summer engineering program, at least the ones that mattered. There was a noticeably smaller amount of kids than were expected, but this turned out to be quite advantageous.
As with any group project, I was the mastermind, and everyone else just sat and watched me do all the work. More specifically, they played League of Legends for hours on end. That morning I did not have an idea for a project, but before I came, I suddenly recalled my need of an all-encompassing cloud storage solution, so I decided to call it UltronCloud. I mean it’s not ever going to be finished, so just give it some joke name.
The environment was excellent; this was the college my brother goes to. It’s private but the tuition turned out to cost less than that of a public university, and needless to say, it seems that every penny of it was spent wisely on the infrastructure and architecture. I got a huge-screen television all for myself, so I was able to use the television as my primary monitor, which made it very easy for my eyes as the night progressed.
The hackathon was great, or rather should have been great. But I think I did not take advantage of the opportunities; there were mentors who were teaching how to develop for mobile platforms. I also didn’t take as many breaks as I should have; I strained myself in order to squeeze every hour of the venue, so I didn’t have as much fun with other kids. On top of that, the challenges I was facing when making the project were serious yet to a ridiculous extent. Some problems took hours to be solved, only to be met with yet another problem.
This following section is part of an issue I made on the repository of the library I used, because the following morning, I was so mad that I had wasted all this time for nothing. Once again, I hold nothing against the developer of the library:
Literally every step of the way has been riddled with bugs and other quirks and undefined behavior, even when following the instructions to the letter and trying it on two different Windows 7 x64 machines. Needless to say that I wasted my time trying to make a frontend out of this library. Maybe you can figure out whether the library hates me or if it’s just that unstable.
The first problem was when DokanCloudFS failed to load assemblies when I set the build configuration to NuGet-Signed. If I tried cleaning the build, it would still error out. If I tried changing the build config back to regular NuGet, yet again it would throw the exact same exception. The solution was to nuke the entire project, keep it in the default configuration and never touch it again. This alone cost me a few hours to figure out.
And alas, very shortly later, more problems arose. My mounted Google Drive appeared as a drive, but all interactivity with it was completely blocked, thanks to a vague exception thrown repeatedly as shown in the console:
Exception thrown: 'Google.GoogleApiException' in mscorlib.dll
Exception thrown: 'Google.GoogleApiException' in Google.Apis.dll
Exception thrown: 'System.IO.InvalidDataException' in SharpAESCrypt.dll
Absolutely no stack trace and Visual Studio did not even bother to break.
And this was after I had compiled CloudFS, put in secret keys for GDrive, copied the output DLLs to the DokanCloudFS Library folder, and assured that it had access to the Drive API by turning it on in the console, and waited a few minutes for it to “enable”.
So I said, screw it! Let’s use OneDrive instead, thinking that somehow it would ease my pain. Nope. Same spiel. Except Microsoft was taking me to some OAuth2 auth link that would just take me to a blank page. After a bit of research I found out that I had to add “mobile” as a platform in order for me to even have an OAuth2 login page. Okay, so when it asks me, “Let this app access your info?” and the usual permissions and I click “yes,” ….it just opens another browser window to do the exact same thing. I click yes again, and the window reappears ad infinitum. And instead of the `GoogleApiException` I get a `System.Security.Authentication.AuthenticationException in mscorlib.dll` along with a `System.AggregateException` which VS *should* be breaking to tell me about, but it’s not doing squat.
By this time I’m forgetting about even running the DokanCloudFS.Mounter example and instead just building hacks to bridge the frontend with the library, using the mounter program as an example because there’s absolutely no documentation that comes with it.
And as of the time of the writing of this issue, I’ve spent sixteen hours trying to get all this to work just to make a frontend that will mount OneDrive, Google Drive, etc. in unison.
I racked my brains so hard that instead of pulling the all-nighter as I had intended to, I decided to sleep for three hours. I didn’t bring a pillow nor a sleeping bag, so I was in for a really nice sleeping experience. Thank the lady who showed me where the cot was in the nice, dark, quiet room; all the couches were taken. So between the hours of 3 AM and 6 AM, I decided to rest and try to figure out what to do with the project. Now, the resting period was important because when I woke up (I think I only achieved REM sleep for a few minutes), I did not feel disillusioned as I usually am when I am sleep deprived (the reason for this is that the image of sunset is still ingrained in my brain, so it gives the impression that it was a very short night and that I will have to sleep during daytime hours to compensate for this).
When I woke up, I returned to my workspace. My teammates were still playing League as they were before I went to sleep, and I sat down and looked at Visual Studio. I tried to begin hacking together some sort of interface to figure out if any functionality is possible, but it was futile. By 10 AM, I simple gave up. I failed.
I had really been looking forward to the hackathon, and I met quite a few people there. But I was not met with a stroke of luck, and the hackathon was not as enjoyable as it could have. If I went back in time, I could have done all the right decisions: convince my friend to let me in the team, bring a pillow and a surface to sleep on, actually go to one of the Android workshops, talk with the head of the hackathon, etc.
But alas, the result would have been the same regardless of anything. The judges delivered some rather questionable decisions in terms of which project was “better”; despite my utter failure, I placed third in “best software hack,” and my friend’s team, who had put all their efforts on a robotic hand, did not seem to place at all in the “best hardware hack.” What? At least there was an “everyone’s a winner” attitude which is a nice way to end a hackathon. No massive prizes for winners, like a graphics card or anything like that.
I don’t really know what to do now though; I left the hackathon with an incomplete satisfaction. What can I do instead: order parts for the electric bicycle? Compensate by trying to invite my friends to do something similar? Or just work on the school stuff I’m supposed to finish by the first day of school?
Ugh. I had felt during the hackathon that this was the beginning of my demise; that this was a glimpse of my condemnation; that I was no match for anyone around me in terms of college admissions. It’s not true. But one question still remains: what am I to do now?