Unfortunately I will be on vacation next week so this is my last full week of work. Consequently, I believe this is my last blog post.
As my remaining work days dwindle, I have to keep in mind the results. Yes, the server did crash. Yes, we had to change things last minute and connect to a new server. And yes, we will not completely finish the app. But you know what? I think the important thing is deliverance. Deliverance is not just about finishing something, it is about showing something. My goal in my last two work days is to show what I have learned and to show how the app is coming along. Honestly I don’t believe I could have had a better experience than I did with the Vis Center. I have learned so much about programming as well as how the working world operates. We’ve had to meet deadlines, collaborate, research, and make presentations. The skills I’ve learned are priceless and now I’m just excited to go back to college and build on them even more.
Physically I want to produce a rough foundation for this app that is dynamic and aesthetically pleasing. I have implemented some of the graphics for the app and I’m working on squishing as much content into the app as I can before our time is over. I want people to be able to flip through pages, see the translations, play with a 3D viewer, watch the video content, and see the multispectral images once I’m done.
I’m proud to have been a part of this project, work with the people that I did, and lay the foundation that we did. I mean, I had to learn a whole new language and I had no idea of the aspects of programming for Apple. Looking back, I see that I also delivered to myself. I delivered a desire for knowledge and a drive for production. There were days that I wanted nothing more than to crawl back into bed and there were days that I was on fire for coding. But the experience as a whole has helped me become the programmer that I am. By no means am I where I want to be, but at least now I know how to push the lines of knowledge.
This week has definitely had its struggles. Because of bugs in the server, it had to be wiped so we couldn’t access its content… which came at a fantastic time seeing as I depend on the server for most of the things I have to work on right now. But I still was able to add a slider and configure it so that you can slide to a page and it will cache that page without caching all of the ones in between (that would lead to a hardcore crash). Also you can flip through pages and the slider will move along with you. And you can type in a page and the app will take you directly to that page. I’ve also been working on the pop up views that hold the additional content along with reading in the XML. The XML has probably been my largest struggle this week because the preset functions of AFNetworking are making it difficult to read in the XML as a document instead of just an instance of its function… I’ve spent hours just trying to manipulate it but I am definitely closer.
The theme of this blog was supposed to be growth so I should probably stop rambling and move onto that. I know this experience is irreplaceable and I have learned so much that will prepare me for my future courses, but I have also learned a lot about myself. I’ve learned that I can pick up on things fast when I’m being pressured. I’ve learned how to cooperate with others in order to accomplish a goal. It’s hard for me to not want to take over a project and make sure everyone is doing their job correctly, so it was good for me to be dependent on others. I’ve grown in my knowledge of programming. Before, I had just programmed little games and small things that weren’t really of any value (except to me). This was the first big project I’ve worked on and it allows me to see a larger purpose in programming. I’ve learned how to teach myself by researching what I need to know. Along with that I’ve learned to not give up when I can’t find the right answer.
When you spend eight hours a day programming, you figure out what you like about it and what you dislike. I’ve noticed I like working with the math side and logic of programming. I eat up any configuration of size and dote over following a logical function path. I’ve also noticed how little I enjoy describing my logic. I don’t exactly look forward to giving presentations but it has made me realize that that is one thing I need to work on. I also realize how I hate feeling defeated when I can’t get code to work properly, but I think that’s universal. No one really enjoys their hard work going up in flames.
Happy 4th of July! Due to this holiday, we didn’t have a speaker this week and we had Wednesday off. So… I will just discuss the work I did this week.
Basically this week I worked with display and gestures. As a group we decided to have the app organized in a way such that once a manuscript is chosen, it opens up with the first page low res image is on the left and the translation on the right. Also, there will be buttons at the top of the page that you can click on to see another viewer (3D, high res, etc.) instead of the translation.
At the moment I have the low res image set on the right side so you can swipe your finger along the screen and it will flip to the next image and cache it. I also have imported a view instance of our 3D view controller (a UIView would not have worked because you wouldn’t be able to pan, zoom, rotate, or interact with the 3D image). There were a lot of problems with the landscape view conflicting with the 3D gesture recognizing. At first every action did the opposite of what it was supposed to do. It frustratingly took more time than expected. But it’s all good now, the 3D viewer had to be rotated to match the gestures.
So now I just need to import 3D images from the server. That is my goal for next week. I would be great to even get some other viewers imported too.
To start off the week, us research students went to Raising Cane’s to spend some time together and eat lunch. Then we had a little seminar on design. It corresponded with the rest of the week because we all got together with the graphic designer to plan the layout of the app. This is critical, we have to make sure all the interfaces match for the best experience for the user.
So far our iOS app can import videos and images from the server through http requests. I worked mainly on caching the low res images so the user can easily navigate through the images and flip through the pages without waiting for constant loading. John perfected it so it could work with the pages from the server. I also worked on portraying 3D images of the pages. Now to import those from the server! Challenge accepted.
And since I am almost halfway through the program, I need to take a moment to reflect. Have you ever heard the phrase “hit the ground running”? That’s how I felt at the beginning of the program. I felt like I didn’t really know how to do what I needed to do. But I’ve learned how to program for iOS in objective C. I’ve learned how to interact with the server. I’ve learned how to cooperate with others in order to complete a huge project. And the funny thing is, we aren’t even done yet! This is only from 4 weeks of working. And I already feel so accomplished. I can’t wait to see what happens next and I’m excited for the app to be completed.
My love-hate relationship with Objective C grows along with the progress of this iOS app. I guess I just struggle because I know python and C++ very well and although the concepts are the same, Objective C has random aspects that are very different. And the fact that there are different iOS devices to keep in mind is quite the pain. But I’ve been able to adjust and I feel like this week has been productive.
For the main page of the app, I figured out to be able to add buttons until they fill the screen. And just when you think all hope is lost and you won’t be able to add anymore ancient manuscripts to the app…… it adds a scroll view! I know this isn’t amazingly exciting but it definitely will be useful.
In more exciting news the app can now access the server with http requests using a third party called AFNetworking. So I wrote a separate class for calls to the server and so far there are functions for accessing images and parsing xml. From the screenshot you can see the image grabbing. I definitely enjoy the iOS simulator in xcode. It blows my mind to think that a couple weeks ago, I lacked a lot of the knowledge I’m using now. But that’s the exciting part of research. Just when you think “Is it even possible for someone to learn this much?!” you realize how little you actually know.
I would like to give a shout out to my fellow part-time, high school team member Zack. He knows a lot about iOS and less about hardcoding. In comparison, I know little about iOS and more about hardcoding. So we’ve kind of been educating and working off of each other. I’ll write what the app does and Zack writes how the app displays it.
Also, this week we’ve been learning about the presentation of our research. And at the end of this program we will have a paper and a presentation on our work. I don’t exactly wake up in morning craving to give a speech in front of a group of people. But, I know that for the rest of my life I will have to give presentations whether it be in my college career or in my work. Practice makes perfect… right?
At the beginning of the week I piddled around with databases and SQL, as you can see from this screen shot. I managed to select and transfer images of pie to and from a database. You can probably tell it was nearing my lunch break and I was getting somewhat hungry.
Overall, the theme for this week would probably be research. More specifically: what is my research question? As undergrad researchers we want to push past our knowledge, not just flirt with the line of the unknown. The ultimate accomplishment would be to push past all existing human knowledge and expand on it.
My biggest struggle with forming a research question was that I couldn’t narrow in on the specifics. I wanted to think of the big picture and end product instead of my individual part in the project. And since my part involves the coding of the iOS app, my question needs to revolve around that. So here it goes, this is what I’ve established as my research question so far:
How do I import data from the server to display in an organized and aesthetically pleasing manner on iOS?
And once again I’d like to wrap up with a side note: Jean-Karlo makes a mean cup of coffee.
My first couple of days have consisted of planning, meetings, and research. The adult leaders of the program gathered us around to explain the basic goal of our project and then we all discussed the plans, possibilities, and execution of these goals. I am working on the project titled “Info Forest”. As much as that sounds like a project belonging to an environmentalist, it’s a metaphor for what we hope to lay the groundwork for. The Vis Center would like to develop a database of ancient documents that are accessible on the website as well as through mobile devices. Specifically, we are working with the Chad Gospels. This will be the foundation for any future documents that are added to the database.
With the overall goals laid out, my goal for the moment is to absorb. I am attempting to prepare myself for this project and have been relentlessly researching. I’ve been diving into HTML, CSS, PHP, and XML since I had only had a very basic knowledge of them.
I am excited to work alongside such amazing students. We have already been trading knowledge and teaching each other in order to stimulate growth as a team. The other day Zack taught me how to create an app for Apple devices. We even made a ridiculous app so I could gain experience.
And on a quick side note, I’d like to say that I am loving the cross-cultural environment.