Wednesday, August 4, 2010
iPhoDroid: My Adventure
A couple weeks ago, I heard about the iPhoDroid project. At the prospect of dual-booting my iPhone with iOS and Android, my palms got sweaty and my knees got weak. It felt like the room was spinning and my tongue got numb.
So I decided to give it a shot.
I read up about the project and the prerequisites, and got everything I needed to get this accomplished. One of the requirements was that the iPhone had to be jailbroken (check!) not by Spirit (DOH!)*. So I went through the process of restoring my iPhone to 3.1.2 and then jailbreaking with Pwnage Tool (my favorite anyway).
*In a moment of sheer curiosity a while back, I jailbroke with Spirit...it was so easy, it made me wonder why people would go through any OTHER methods of jailbreaking.
Monday, August 2, 2010
Motorola 68000 Programming
Funny how if you truly have an interest in something, you'll come back to it. In college, I had a terrible experience with assembly programming. My professor, who was probably a skilled engineer at work, regrettably was not a very good teacher. It was obvious that he knew the material, but could not find an efficient way to communicate the concepts to the class. As a result of that, I was kind of turned off by 68k programming.
Recently, the urge to learn assembly has crept back in my mind, and I picked up my book again and downloaded the Easy68k IDE. I'm currently strengthening my foundation of the 68k processor and microprocessors in general. Now that it's not in a forced, stressful environment, it's actually much more enjoyable. I see how this could have been fun in college, under the right circumstances lol.
Here's some progress on the subject.
Recently, the urge to learn assembly has crept back in my mind, and I picked up my book again and downloaded the Easy68k IDE. I'm currently strengthening my foundation of the 68k processor and microprocessors in general. Now that it's not in a forced, stressful environment, it's actually much more enjoyable. I see how this could have been fun in college, under the right circumstances lol.
Here's some progress on the subject.
Monday, July 12, 2010
Eclipse and Java for the Total Beginner
So I decided to get serious about learning Java today. I took a course in college, but it didn't really prepare me as much as I'd like. These tutorials that I found are really helpful. They are not only filling in the gaps I missed in Java and OOP, but teaching me the features and functionality of the Eclipse IDE as well.
I am getting to implement various aspects of Agile/ XP Methodologies. I'd previously read about these, but am now getting a chance to put them into practice. I am learning about Unit Testing and Test-Driven Development, by creating test cases before the classes. I am also building competency using JUnit testing framework, and the Eclipse IDE as a whole.
In addition to these video tutorials, I'm also taking online training on Principles of Object-Oriented Programming
through my job. The goal is to be a more well-rounded programmer with a strong understanding of fundamental primciples. Eventually, this will help me properly dive into Android programming as well.
Check out the Java tutorials out if you're interested!
I am getting to implement various aspects of Agile/ XP Methodologies. I'd previously read about these, but am now getting a chance to put them into practice. I am learning about Unit Testing and Test-Driven Development, by creating test cases before the classes. I am also building competency using JUnit testing framework, and the Eclipse IDE as a whole.
In addition to these video tutorials, I'm also taking online training on Principles of Object-Oriented Programming
through my job. The goal is to be a more well-rounded programmer with a strong understanding of fundamental primciples. Eventually, this will help me properly dive into Android programming as well.
Check out the Java tutorials out if you're interested!
Tuesday, July 6, 2010
Aahhhh, so THAT'S the big deal about 4G
I decided to do some reading on 4G and see what all the fuss is about.
Now I know.
If my understanding is correct, it just switches all communications to a really fast IP-switched data network. In contrast, 3G used circuit-switched technology for voice and IP for data. 4G implements VOiP for calls, so there's no need for separate networks for voice and data. And looking at the theoretical speeds (100 Mbit - 1Gbit/ sec), I can clearly see what the commotion is about. I would LOVE to work on implementing this network. Can't wait till I can at least access it here lol.
Now I know.
If my understanding is correct, it just switches all communications to a really fast IP-switched data network. In contrast, 3G used circuit-switched technology for voice and IP for data. 4G implements VOiP for calls, so there's no need for separate networks for voice and data. And looking at the theoretical speeds (100 Mbit - 1Gbit/ sec), I can clearly see what the commotion is about. I would LOVE to work on implementing this network. Can't wait till I can at least access it here lol.
Tuesday, June 29, 2010
My iPhone 4 Story. . .
So, on June 24, the new iPhone 4 was released. I had no intentions of getting one on that day. I just said that I'd upgrade my 3G to iOS 4 and jailbreak it to get multitasking and whatnot. However, after work I decided to head to the mall anyway, just to see what was going on. I fully expected the Apple store to be sold out, and all the lines long gone.
Upon arrival at the mall, I encountered a line of people stretched all the way down the hall from the Apple store (those who had pre-ordered online), as well as another line which stretched the other way down the hall (for walk-ins). . . so I said I'd wait in line.
After waiting for about 2 hours (and getting free food, courtesy of Apple), one of the Apple store employees came out, counted the people in line, stopped at me, looked me directly in the eye with the "damn, homie" look and said "sorry dude, looks like we won't have any phones from you on back." I said ok, but decided to wait until the last one was sold before I left.
About a half hour later, he came back, counting again. This time, he stopped about 10 people ahead of me and told us that there DEFINITELY wouldn't be any phones for us, but that we could put our names on the priority reservation list to be informed as soon as the store gets more. Lots of people left at this point. But once again, I said ok, but decided to wait until the last one was sold before I left.
Ten minutes later, the regional manager, who happened to be in this particular store, comes out and says, "right now there are no more iPhones in stock, however I'm going to call all the other stores in the area an and see if they have extras that they can bring." And they did...1 hour later, I left the Apple store with my new 32 GB iPhone 4.
I wish the people standing with me in line who punked out could see this.
Upon arrival at the mall, I encountered a line of people stretched all the way down the hall from the Apple store (those who had pre-ordered online), as well as another line which stretched the other way down the hall (for walk-ins). . . so I said I'd wait in line.
After waiting for about 2 hours (and getting free food, courtesy of Apple), one of the Apple store employees came out, counted the people in line, stopped at me, looked me directly in the eye with the "damn, homie" look and said "sorry dude, looks like we won't have any phones from you on back." I said ok, but decided to wait until the last one was sold before I left.
About a half hour later, he came back, counting again. This time, he stopped about 10 people ahead of me and told us that there DEFINITELY wouldn't be any phones for us, but that we could put our names on the priority reservation list to be informed as soon as the store gets more. Lots of people left at this point. But once again, I said ok, but decided to wait until the last one was sold before I left.
Ten minutes later, the regional manager, who happened to be in this particular store, comes out and says, "right now there are no more iPhones in stock, however I'm going to call all the other stores in the area an and see if they have extras that they can bring." And they did...1 hour later, I left the Apple store with my new 32 GB iPhone 4.
I wish the people standing with me in line who punked out could see this.
Thursday, June 24, 2010
Research: How to launch iOS app upon device startup
I have long been interested in the deep innerworkings of the iPhone (now iOS). I have gotten into iOS development, and poked into the process of jailbreaking and the filesystem of iDevices.
Today I was given a task to research the possibility of launching an app when the iDevice boots. I know that it is possible, since certain jailbreak apps/ processes are loaded upon startup. My digging led me to learn about daemons and how they work. This is incredibly useful to me in my quest to understand under the hood of iOS. Here are the results from my research.
Too bad I just decided today that I want an iPhone 4. I'm almost sure they're all gone now.
Today I was given a task to research the possibility of launching an app when the iDevice boots. I know that it is possible, since certain jailbreak apps/ processes are loaded upon startup. My digging led me to learn about daemons and how they work. This is incredibly useful to me in my quest to understand under the hood of iOS. Here are the results from my research.
- The device will have to be jailbroken in order to have access to the filesystem. I recommend Pwnage. It takes a lot longer than Spirit, but is more secure.
- With Spirit, you simply plug in your iPhone, open the Spirit app, press a button, and you're jailbroken. Spirit is what's called a "untethered userland jailbreak." Which means it exploits a hack in user (rather than kernel) mode in the UNIX filesystem. It therefore does not require iTunes to reboot the device and perform low-level tasks. Apple usually fills these holes in the minor updates (i.e. 3.1.x).
- The Pwnage Tool, builds a custom .ipsw file from an official copy. After that process is complete, you restore it to the device using iTunes. This is my preferred method. It takes about 30 minutes (maybe more), but some Pwnage jailbreaks will persist through software updates.There are Pwnage jailbreaks for 3.2 and 4.0 software already.
- Here is a list of iOS daemons. Depending on the functionality of the app, we can delete many of these in order to clear up some overhead RAM.
- We will have to create a daemon to launch our app. This tutorial goes into it as well as this one. The .plist will obviously have to be customized, but these two just prove that it is possible.
- Overriding the home button is the other issue I'm researching. In addition to SBSSettings, there are other apps which allow you to associate user interactions on the screen (swipe, pinch, touching the volume display, etc) with system actions (e.g opening apps, toggling settings). More research is needed on this, but I do believe it is a feasible task.
Too bad I just decided today that I want an iPhone 4. I'm almost sure they're all gone now.
Sunday, April 25, 2010
Code Specification Development
Recently I was given a unique opportunity. I was charged with the task of creating the code specification document for the official project which resulted from the proof-of-concept I developed. I was eager to take on such an assignment, as it presented a chance to learn a new area of the engineering process.
Since I'd never written one before, it took a bit of explaination from my boss for me to get the picture. Before he explainsed it to me, I had an idea, but was not completely comfortable with what I was doing.
I created an initial revision in Pages, using on a previous document as a template and screen mockups which illustrated the app's intended functionality. I went through each of the screens defined and established global variables, inputs and outputs, and specific functionality and data constructs necessary for the app to operate properly.
Being that it was a small project, the code specification didn't take long to develop. It took about a full work day to complete.
One of my favorite professors, Ben Sweet, preaches about the importance of engineering documentation. The time spent up front on providing detailed specifications saves time down the road on clarification and debugging.
I agree that this process is a necessity, and feel more well-rounded as an engineer because of this experience. It's good to have knowledge in multiple areas of development in order to be a proficient engineer.
- Posted using BlogPress from my iPhone
Since I'd never written one before, it took a bit of explaination from my boss for me to get the picture. Before he explainsed it to me, I had an idea, but was not completely comfortable with what I was doing.
I created an initial revision in Pages, using on a previous document as a template and screen mockups which illustrated the app's intended functionality. I went through each of the screens defined and established global variables, inputs and outputs, and specific functionality and data constructs necessary for the app to operate properly.
Being that it was a small project, the code specification didn't take long to develop. It took about a full work day to complete.
One of my favorite professors, Ben Sweet, preaches about the importance of engineering documentation. The time spent up front on providing detailed specifications saves time down the road on clarification and debugging.
I agree that this process is a necessity, and feel more well-rounded as an engineer because of this experience. It's good to have knowledge in multiple areas of development in order to be a proficient engineer.
- Posted using BlogPress from my iPhone
Subscribe to:
Posts (Atom)
