Computer Science student, web professional

The evening of May 30th, my instructor passed along an article that Google would not longer be supporting the Google Translate API. After accessing my tranlsation application, the result 0 (zero) was returned instead of the translation. This was a truly sad occurance for me. I was truly excited about my application.

I pushed forward and decided to present on my application anyway during class. In the meantime, I did a bit of searching and found a potential solution through Microsoft’s Translate Array Method. I will doing further testing with this software. If I am successful in implementing a new translation api via Microsoft, I will modify the look-and-feel for a funner environment.

Microsoft TranslateArray Method: http://msdn.microsoft.com/en-us/library/ff512407.aspx. I’m off to create a bing id so that I can access the method.

Utilizing Facebook’s ui method (http://bit.ly/mvcPSG) has been a great success. I established a page that had a input textarea to make one’s comment in English. Then I did a GET action for the form, to pass the textarea’s value to the url. Once the value was passed, I had envisioned the page grabbing that value, posting it to facebook and then doing the translation. With the translation done, then it would do another post.

The Project In Review

I encountered some issues with deciding what type of technology to use and what process actually worked using the Google translation api and the Facebook’s UI method.

google's code logo

I decided upon using PHP with HTML and JavaScript. I found it quite easy to pass the data from the text area to the URL in this fashion. What I found difficult was how to do the translation and when. I attempted to do it first on the page that I passed the value to. Unfortunately, this was causing a bit of a cumberson nature of use for the user. I stepped-back at this point to re-evaluate the project and how I would want to use this as a user. I wanted to be able to input the facebook status (comment) and click post, and it would go to Facebook. I decided to move the translation to the initial page as well.

The Translation Revamp

I decided that if I was going to do a translation on the same page as the input area, I didn’t want the user to have click excessively. As a result, I decided to implement an onchange javascript call to a function that would do the translation. Then with this, Google’s api has a callback feature. With the callback feature, I was able to reassign the value of an HTML’s element. I updated a hidden translation input field for the form. With this done, I was then able to easily pass the value’s of the english input textarea and the hidden tranlsation element to the URL. On the receiving page, I pulled the data from the URL via PHP and passed the value to the Facebook’s UI. It functions sort of like this:

User input -> click post -> popup for translated post -> user click post or skip -> popup for english post -> user click post or skip

Analysis of Project

I believe that I’m going to work on implementing it a bit differently. If I combine the english & the translated text, I feel this would be easier for the user.If the user decided they didn’t want to include the translated piece then they could delete it. This is more difficult than just clicking skip, but on the flip-side it is much faster than clicking post twice. In addition to this, the wall would not have two posts, but one single one, which will result in a ‘cleaner’ wall. Next steps: modifications to the application and attempting to incorporate it into Facebook’s canvas (https://www.facebook.com/developers/).

Auto-Translate Post
http://www.stan-wood.info/apps/translate/graphcomments.php 

I have decided to go with Facebook. Considering the time restraint for my class and the scope of my project that I desire to complete (and be successful at).

I was able to implement the Facebook’s Connect Plug-in which has one specifically for the commenting. https://developers.facebook.com/docs/reference/plugins/comments/

Facebook has it so that you are utilizing xml type of coding in order to implement it. This makes it REALLY easy for developers and non-developers, a like, to get a comment thread going on one’s side or page. This doesn’t lend to easy implementation of auto-filling that comment box, or updating it with comment dynamically.

I dug further in to the tunnels of Facebook API and into how other users are tieing in the commenting feature for facebook onto their sites. This is where I tripped about a feed feature from a Facebook method called FB.ui. What a great resource! https://developers.facebook.com/docs/reference/javascript/FB.ui/. It was easy to implement and has helped me to start working on combining a user’s input into the posting on Facebook.

American & Romanian Flag
American & Romanian Flag Blended Image

Next I am going to approach doing the double post: one in english (my native language) and one in romanian (my desired posting language). You may take a preview at a very rudamentary version, although it may break and work break and work as I continue to update the code and implement to new features (cross my fingers). http://bit.ly/lDksA1

5/11/2011

I'm using Google's API for it's translationI thought this was going to be a simple process to get started and would have the hiccups when I start to try to incorporate google api with facebook api. To my surprise, it is starting with Facebook. I feel as if they tell you to you the canvas, but not exactly why. I tend to understand when I understand why. If a reader of this blog is familiar with the canvas and usage of it, please let me know! So far, I understand that I need to develop the application and host it on my own site. Through the iframe on Facebook, it pulls that page and displays the content.

Another question, with Facebook, am I required to have the url under a SSL? I don’t know, there is a space for the secure canvas url, but it doesn’t appear to be required.

I feel frustrated and bit like I’m in the mud at this moment. I hope to update this blog at the end of the week or w/in a week maybe with some answers to my big QuEsTiOnS. 😛

5/13/2011

UPDATE: After researching various methods of utilizing facebook api, google api, and phython, I have established a plan of action. I am working with the google api to do a translation on a page (http://bit.ly/fizvYW). The next step is I’ll incorporate facebook’s ability to post a status from an external site (https://developers.facebook.com/blog/post/198/). I’ll then try to take this application and incorporate it into Facebook’s canvas. Lastly, I’ll review my implementation and see if I can move it over into python language. Currently, I’ve been working with JavaScript and PHP.

Developing on Android

Image of Android logo dudeI will be working with java on android platform this summer for an internship. I have academia experience in java, but no experience developing for android. What do I do first? Of course, a google search. As it turns out, I forgot that android was developed by Google support. The first suprising thing that I’ve learned is that you can’t run java bytecode on Android. !?WHAT?! I thought Android was on a Linux platform with Java interface. I must dig deeper. The virtual machine Android runs is Dalvik Virtual Machine which has its own bytecode and Java is translated by Android’s tool ‘dx.’ 

Eclipse

I’d like to use eclipse as my development environment, because I’m I’m familiar with this IDE. Google provides the Android Development Tools (ADT) that you install with Eclipse, which converts the java compiled file ‘class’ type to ‘dex’ type.

Interestingly I forgot how heavy grphics are used in Android and read that it supports 2d and 3d graphics from the OpenGL library and uses SQLite for data management. In my project, they highlighted SQL so I’m not sure how the conversion goes from SQLite to SQL. I’ll have to take a peak at this as well. *doink*

Resources

I’ll be looking at various resources online. One is http://www.vogella.de/articles/Android/article.html, which has babsically provided the majority of the information above. The SDK for Eclipse is available at: http://developer.android.com/sdk/index.html.  The last resource that I think is vital is that first walk through is how to do your first project in Eclipse. Here is a resource for that: http://ibm.co/mUk3hc.

ASP.net with W3School

W3School logo

W3School logo

I wanted to learn more about how to program ASP.net and not just the model, view, controller. I decided to use the always trustful W3Schools.com website. As is common place with W3Schools, they deliver a great insight into the actual functionality and usability of the code.

Check out ASP.NET Examples at http://www.w3schools.com/aspnet/aspnet_examples.asp

ASP.net has three controls: HTML, Web, and Validation. How the code interacts with the HTML that will display the code is that the scripting is labeled (named) and then the HTML identifies an element with that lable as the id. This as a result pulls that result and displays it. In order for all of this to happen, the script has be told to runat=”server” as well as the element you id.

For example: […] lbl1.Text=”The date and time is ” & now()[…] <asp:label id=”lbl1″ runat=”server”[…] .

Requests to the server are different than requests for an HTML page. When a browser requests an HTML file, the server returns the file. When a browser requests an ASP.NET file, IIS passes the request to the ASP.NET engine on the server. (http://bit.ly/s7Gtk)

The Programming languages used are C#, Visual Basic, and J#. ASP.net has two development environments: Visual Studio .NET and Visual Web Developer. ASP.net components highly rely on XML to store information and configuration.

When it is time to install .net, it’s simple! Just look in your windows update. Now you will be ready to start the tutorial: http://www.w3schools.com/aspnet/aspnet_pages.asp.

W3School offerings

W3School offerings

I’ve always had an interest to upgrade to ASP.net from classic ASP. When you do a google search of the topic ASP.net, you’ll receive the following top four responses, one of which states it is NOT an upgrade but rather the next generation. I would take this as it is a completely new development of framework.

·         Microsoft’s site and links to information, and community resources. www.asp.net/  

·         A place to start with Microsoft ASP.NET & ASP.NET www.asp.net/get-started

·         ASP.NET is a web application framework developed by Microsoft for building dynamic web sites and web applications. en.wikipedia.org/wiki/ASP.NET

·         ASP.NET is the next generation ASP, but it’s not an upgraded version of ASP. It is part of the Microsoft .NET framework, and a powerful tool. http://www.w3schools.com/aspnet/default.asp

 On the get-started page of asp.net, I found a link to the MVC which you can download visual studio express using razor for as viewing engine and has a debugger. http://bit.ly/6vq2R I believe this is very useful for users who do not have visual studio (a microsoft product). There is also a link for the install of the mvc for developing in ASP.net.

The power behind ASP.net

What I believe is the power in .net is that you can build modules and reuse them in mulitple applications. This provides flexibility as well as speed in development. The other aspect of .net that is attractive is that works with the mark-up languages and can easily build dynamic sites. With ASP.net, you can use Visual C# or Visual Basic, which are both Microsoft languages. The visual studio express will provide you with a working framework template that you can easily build on. This MVC-based application contains (http://bit.ly/gKZ0lM):

  • Controllers: Classes that handle incoming requests to the application, retrieve model data, and then specify view templates that return a response to the client.
  • Models: Classes that represent the data of the application and that use validation logic to enforce business rules for that data.
  • Views: Template files that your application uses to dynamically generate HTML responses.

Using the controller

The mvc application provides the skeleton similar to the ide, eclipse, which does this for Java. The default MVC mapping is “/[Controller]/[ActionName]/[Parameters]. ” This looks a bit confusing, but if you pull this apart it is really simple to understand. In the url you will have the web address such as http://www.localhost.com then the controller would follow. Let’s say we created a controller called “hello.cs.” Within this file you have the action name, which “index” would be included in this. It’s action is similar to that of index.html for a website. Servers know to use this as the default page. Index would be called upon as the default action calle. You can specify other actions such, but you would have to directly type those into the URL. For each action, you can have parameters that would provide additional functionality and can be further enhanced by using  C# parameters.

What we’ve not covered

So far we’ve only covered the controller aspect of the MVC. Additional aspects that need to be learned are:

  • Adding a View
  • Adding a Model
  • Accessing your Model’s Data from a Controller
  • Examining the Edit Methods and Edit View
  • Adding a New Field to the Model and Table
  • Adding Validation to the Model
  • Improving the Details and Delete Methods

There are many already developed pieces of code out there such as progress bars that can be repurposed. When you look to code something, see if it has been done already and modify for your purposes. There is something to weigh in this matter though, if the code you will be working with isn’t document well, it may take more time for you to understand the code than it would to develop it yourself.

Other aspects (not an all encompassing list) of .net that are beneficial but not covered here are:

  • XML integration,
  • Security,
  • Simple compilation,
  • Multiple language implementation, and
  • Data driven.

You can check out more of these on the W3CSchool.

Tag Cloud