My First Android App!!!! Transposer

I am sooooo excited to write this as it has been a long process for me. I have developed my first android app. You can try it out here: Transposer FREE

This is actually about the 4th version of this app and has taken maybe 1-2 years for me to complete… Even though I programmed it in 1 day. It seems that programming is like putting together a puzzle, and when things fall into place you’ve really got to run with the results.

This app started out as an idea for a website/program and was first coded badly in Python as I was trying to teach myself how to program. That was ver. 1.0.
Ver. 2.0 came out in Java complete with some semblance of a GUI thanks again to Philip, and was uploaded under an open source license to launchpad.
This was refined and redeveloped as I first learned about manipulating Strings and then started moving into programming with String Arrays, always the core engine, always small improvements. By this stage the goal was to release the app on the Android platform, I owned a Nokia N79…. not even a smartPhone yet! Aaaand, I still got lost in Eclipse and failed miserably at setting up my ADB. The sticking point for me was always the GUI, I hadn’t learned how to set this up in JAVA and couldn’t get my head around WTF a Listener was or how it influenced the program. After having a year and a half to think about programming and exposure to a few other languages and having now moved onto my second android smartphone, the Galaxy S2, I felt compelled to give it another try. To my surprise I managed to get all the components installed and working for ADB with Eclipse. I also managed to get my head around the demo programs of Android and felt ready to create my own. The program came to life and seemed to be functioning well, but now the dreaded GUI issues.

Fortunately, Google had been hard at work while I’d been struggling too and had now implemented a simple drag-drop GUI designer to get the outline of the app. With this out of the way I googled, searched, read, tested, debugged, turned on the flux capacitor and generally hacked my way through time travel… er… GUI design. Amazingly, thanks to anonymous internet friends, the code sort of functioned. And so ver. 3.0 was born. It sat on my computer for 2 months…

Now, 2 days ago I sat down to really nut it out and get the app up onto the market. I purchased my publisher account and waded through the requirements and visual imagery required to make the app marketable. I went back to revisit the code I’d written and saw sloppiness. Having not implemented some sort of SVN-type program for the code I figured the best way to debug it was to delete the unnecessary files…. Seems I deleted the wrong program…

And so, I started from scratch, again. And I’m happy with the result. Its a much cleaner code and seems to function well. The graphics were completed to the low standard of my ability and the app is now uploaded and available. It feels good. But the game is just beginning….. 🙂

Posted in Uncategorized | Tagged , , , , | 2 Comments

Effective use of energy in business

Putting your energy in the right direction. Trust that you will discover where things aren’t working the longer you work at them. Don’t stop.

Some things suffer from a fatal design flaw. They miss one key ingredient and then the whole thing breaks.

Work out who is most important in the equation, is it customers or you, executives or a market. Do you want to raise money our sell a product to users? Then, what is most important to them, is it’s price,  user experience. Typically it is a wild combination of many types of things. So with your idea, bust it out the best you can and aim for the market you need, everyone else will follow when they understand…

Posted in Uncategorized | Leave a comment

My new phone

So I recently bought a Samsung galaxy s2. My previous phone was a hero. I am a fan of HTC sense but don’t want to be too brand centric. Touch sense is the customized ROM and tried it for about a day and then went to my old favourite the ex launcher. Now this feels like home… Now compared to my hero this feels blistering compared. Dual core certainly has helped Android, I heard that the problems with Android’s responsiveness are hardware related…come on guys, lift your game. If you take away the speed then the big difference is the screen size. This phone adds almost an inch in size on the hero and I must say, the screen size makes the right hand of the screen hard to reach. What has changed with my purchase of a large screen phone is my desire does small screen tablet. I’d now much prefer a bigger tablet to accompany my phone, no more 7 inches for me, I want the big tablets! So now my weapon of choice is the Asus transformer prime…let’s DDR where the next few months take me…

Posted in Uncategorized | Leave a comment

We need a better way….

We need a better way to enter data. My latest phone us a Samsung galaxy s2 and it comes with Swype. This keyboard is amazing. But I’m not here to talk about that. I’m here to talk about how we interact with everything…. I don’t want to have to touch a screen, I don’t want to have to pick up a wireless keyboard when I want to type on my media station. I want to be able to just work with any device without having to touch it or hold a wireless keyboard or mouse. Well, I have a solution but there is no way that I have the skills to create it. The basic premise is a bluetooth glove that can be used to enter text and thus access other shortcuts within programs.
The biggest difficulty i can see with this idea is that it requires a behavioral change in users, which even with a program as similar to current user behaviour like Swype, can cause tension and ultimately rejection by the users.
Other problems such as my huge gaps in knowledge about hardware and software interacting is also holding this project back. If you can help I can always use the assistance.

Posted in Uncategorized | 3 Comments

Giving Asian men a fighting chance:

China loves to involve foreigners within it’s country, and invariably mixed relationships have become commonplace. In Shanghai it is no different, there are a lot of Chinese-foreigner connections happening, even though it is only a small part of the population. And some of these connections continue past a fling.

One thing rarer than inter-racial relationships is the opportunities that Chinese men have to find a nice foreign girl to relate to. The balance weighs heavily on the side of Chinese girls with foreign guys.

But I think I have found the answer…

I was having a conversation with a girl about Western and Chinese perceptions of beauty, she felt that she had them both figured out pretty well and could switch between the two. To demonstrate this she proceeded to predict the ‘type’ of girl I would find attractive. Given that I have a broad view of beauty she was still spot on.

The reason I think this is the case is because the west has discovered its Asian flavour of women, the type of Chinese girl that we(men) find beautiful. We love our small geisha-like girls or our freckled Lucy-liu’s with ovoid eyes and incredible smile.

But when thinking about sex symbols for Asian men, hmmm, either Jackie Chan, Jet or Bruce lee. All know how to beat up 10 guys at once which is great for men to admire and girls to feel safe, but sex appeal? Hmm, not from foreign women.

Asian men need to discover their western version of sex appeal. What do women of the west want? Kicking ass is only good when in trouble, not on a date. And all those muscle are great, but nothing compares to deep eyes, a great smile and a sizzling look that says, ‘I want you’.

The key for asian men to discover that combination is through Hollywood. We need to see an Asian actor in a heart throb role in Hollywood without kicking ass, then we might see an increase in foreign women with local men.
Once women see how Chinese men ARE men this will become a reality.

Posted in Uncategorized | Tagged , , , , | Leave a comment

Forgiveness vs Judgment

Forgiveness and Judgment have their place in life.

When I do something wrong I want forgiveness and understanding now and don’t want judgment in the same time frame. Sharing something that I feel bad about makes me vulnerable, especially because it is the harder task to complete, at least in the short term. When I share I know there are two ways that the listener could react. This is oversimplified, but the response could be one of fundamentally forgiveness or judgment. One feeling will dominate this situation, rarely will it be so clear cut -normally a mix of the two.

I wish that the process of forgiveness was as short as possible and that the judgment would cause as small an impact as possible. I think it is just as important as the listener to commit to forgiveness as it is to commit to judgment, and more specifically, commit to processing the impact of actions good or bad. Saying things are ok when they still have an impact is not good for you or your relationships.

Why do we shy away from hard words about actions? I guess we could talk about the relative impact of negative feedback being greater than positive impact. Within business it is estimated that negative feedback is something like 30 times more ‘powerful’ than a positive impact.
It is so easy to fall into the trap of wanting someone to do the best for us, sometimes even going so far as getting angry when they don’t. And yet, when we make a mistake, the judgment is more then unwelcome. I think the importance of processing the impact of a decision and not underselling or dismissing those actions is vital to your growth as a person and the healing of a relationship. This will also allow us to appreciate and accept forgiveness for choices that aren’t so great.

Posted in Uncategorized | Tagged , , , , | 2 Comments

Gadgets!!! Tablets!! and Phones, oh my!

In the last few months there have been some blurring lines within our smaller computing devices. It was evident when Steve Jobs declared that ‘we live in a post-pc age’. There is a shift happening in the roles computers have in our lives.

First, we moved from desktop pcs to laptops.
Second, we moved from laptops to netbooks.

Meanwhile, phones developed rapidly to meet in the middle.

First, mobile phones can make calls and send SMS
Second, smartphones like the android family and iphone are serious challengers for the majority of work that is done on larger computers.

In the last few months 2 devices have crossed over this boundary.

Motorola Atrix safely stuck in the laptop docking station -image from otakku.com

The Motorola Atrix is an android phone which comes with a docking station that turns this dual-core phone monster into a netbook with mouse and full keyboard. An additional docking option will allow you to use your phone as a nettop for your tv or other screen. If you read the reviews for this device you can see it is not as smooth as one would like. It seems, though, that the concept works as a prototype. With such a steep price tag it won’t be disruptive but does however illustrate some cool, new ideas.

The Eee Pad Transformer is the second device which helps to blur the lines between devices and computers. Apple released the ipad in the similar disruptive fashion that the iphone invaded the smartphone market. Since Apple took

The Eee Pad with full keyboard and netbook experience

charge of this market android devices have been playing catch-up, and only recently have we started seeing devices that come even close to competing with the current second generation ipad. Asus has attempted to focus on the area that Apple prides itself on avoiding -expansion. The Transformer can be connected to the docking station which provides extra battery, extra USB ports and an SD card slot. From all accounts Asus have released a much more polished product than the Motorola Atrix and they are certainly finding their market with a fantastic price point. Time will tell if users wish for a simpler experience or more flexibility.

It seems that we are reaching a stage where phones and computers will cross over and be able to complete many common tasks. The choice we make about which device we use will be more based on the complexity and size of the task rather than just going to the computer.

And so now to the idea…

THE IDEA:

This is where the idea comes in. All these expansion devices should offer methods for enhanced connectivity that will allow for not just additional ports but further processing power. For example, connecting a number of phones together and then connecting them to the computer allowing for multiple touchpads which can be assigned to different controls. This would be super helpful for audio where each phone could process an affect, or in photoshop where each phone could display a different palette or plugin that it controls and free up more screen realestate as well as minimise mouse-clicks. This processing power could also be built into other devices such as displays, speaker systems and hard drives. With everything designed to give back more processing power than it needs.

The second level of work on these devices after shared inputs and interfaces would be for the processing chips on board to be run in parallel. Users being able to select one central device as the brain (control can even be passed around depending on which software is being run. Apps –> Software) which can help share the processing load wherever there are idle chips.

What this would look like in the audio example is this. Rather than the touchscreen of the phone being set to control the FX inputs of a reverb unit, the whole reverb FX processing could be handled by the phone and take some overhead away from the PC.

Posted in Uncategorized | Tagged , , , , , , | 1 Comment

Software challenges in the current climate -guest post

Today’s post is from my brother, some inspired thoughts about the new challenges within software design that was related to this article about the development that came with the new Chevy volt. The topic came about through exploring the type of challenges that come out of managing large, fragmented and modular projects such as was the case with the software and hardware development of the chevy volt.

Here was his thoughts about the tools that help to manage these types of development.

There are a few tools.  Most of the tools are practices more than actual software.  For example, to help minimize integration issues, larger projects will require things like

  • SRS’s (Software Requirements Specs)
  • Functional&Non-functional requirements
  • interface and API documentation

The catch is, though documentation helps alleviate the issue, it also generates yet another product that needs to be kept in sync with the code.  It is quite frequent to see documentation that is out of date with the code being developed, to the point where it is contradictory.

Other processes are things like change management, version control etc.  All intended to slow down changes (or properly version & control) changes made to program behaviour from an external perspective. Others help identify system risks (e.g., if I change this interface, what is the likely impact, what kind of bugs will it raise, how difficult or subtle will the change be etc.).

Some existing software tools simply work on trying to make this documentation “easier” to generate somehow.  These fall into two categories:

  • allowing code to be autogenned from the diagrams (aka “Any one can program it just requires design”… a mindset that has some truths, but can easily be taken to the point of ridiculous)
  • auto-genning diagrams from code (some fancy flow charts actually work quite well).

There are even some languages that specifically work to help this by using what’s called “design-by-contract” (http://en.wikipedia.org/wiki/Design_by_contract), the key one being Eiffel.  These still all suffer from the problem that your teams need to somehow work closely together.

I honestly think that tools like DVCS’s (e.g., Bazaar) help a lot with this, as it means changes can be passed around a distributed team or set of teams with much greater efficiency than traditional CVCS’s would ever allow.  But… as the article hints at, software management is still in its infancy, and really desperately needs better tooling and processes.

From my perspective & experience with the Linux world, high-level system integration really requires the following:

  • Small WELL-DEFINED parts.  Don’t make an all-singing-all-dancing part… it must always be small and very specific things.  This makes all the following easier to achieve
  • Frequent small updates to each component to allow behavioural changes to ripple out as quickly as possible.  This means jumping from version 1.0 to 2.0 shouldn’t happen all at once, but should roll out slowly as this allows both sides of the fence to more naturally integrate behaviours
  • Low level unit tests on both sides of the fence to ensure consistent behaviour internally
  • API level tests to ensure system behaviour remains fixed OR system behaviour changes are successfully identified (system being the overall code base, not just the internal bits that unit-tests target)
  • Integration tests all the way up (e.g.,  testing system A+B, then (A+B)+C)
  • Versioned API’s between components
  • Solid bug tracking & change tracking
  • All testing HIGHLY automated

A lot of this is actually pretty close to how linux works.  This doesn’t deal with people in various roles though, and factors such as committee vs. individual control (e.g., a person per component is probably a good way to go). Those require some more analysis into how much a human mind can hold, vs. how much benefit a collection of minds can hold vs. various trade-offs in knowledge etc. (e.g., democratic elections tend to mean a lot of people follow each other… so not everyone deserves a vote in software.  How many people should vote, and who should they be?)

Philip Peitsch.

Posted in Uncategorized | Tagged , , | Leave a comment

Electronic wallets, server-side or client-side

So, I’m studying E-commerce at the moment and am working through a chapter about how to simplify online payments. They suggested two very common techniques. One is a server-side storage of cash, similar to a bank account. This means if the merchant website accepts payments from this server you can save time with purchases, all details are hosted on their servers and security is maintained by them for many users. The other common alternative is a client-side wallet. This involves users downloading software onto each of their electronic devices that they wish to use for payments.

I think I would like to see another alternative… similar to what is happening with things like the social site diaspora. What about decentralizing the storage of these e-wallets. Allowing personal users who have a server to run and maintain their own version of this electronic wallet. It limits the risk of hackers gaining access to thousands of accounts and also effectively allows each user to maintain ownership over their personal details.

I am a huge fan of people developing online identities, but also, of individuals having control over that information. Being able to run your own invoice server, electronic wallet, personal id for social sites like facebook etc or generally being able to keep this type of information separate from institutions and private from companies that could exploit that information will be an improvement on individual privacy that I would much prefer.

Posted in Uncategorized | Tagged , , , , , , , , , , , | Leave a comment

Filling in the gaps

I have noticed on some of the individual airline pages some very coarse graphic information about seasonal and current demand for airline tickets to particular destinations when selected so you can get a feel for when you are travelling and the basic price fluctuation. I would love to see this being done by more airlines, and even other industries that have seasonal fluctuating prices.

Sometimes I am more interested in going rather than the destination. I don’t need to know the cost to a particular destination, I just want to know I’m getting a good deal. I figure more people will travel then currently travel during off-peak times, and to a greater variety of places.

Posted in Uncategorized | Tagged , , , , | Leave a comment