Friday, June 20, 2014

I am still taking courses with Coursera. I finished the Web Applications Architecture class a month ago and am just now finishing the Digital Image and Video processing class. I complained the Web Applications Architecture class was too easy and they needed an advance class. They had us just copying code, not writing code on our own. The professor listened and he is offering an advance class this fall. Another student in the class alerted me to the fact that University of California-Berkeley was offering through Edx Engineering Software as a Service which used Ruby on Rails. It began not long after the Web Applications Architecture finished so it was the next logical step. The course is a much more intensive class and we do our own coding with pair programming on line. I have met people from all over the world this way. The course emphasizes Agile development which is new to me. The most new concept to me is doing testing using BDD and TDD. I had learned a little JUnit testing during my internship. We are currently using JUnit testing in Pattern-Oriented Software Architectures: Programming Mobile Services for Android Handheld Systems. Right now we are learning how to maintain legacy code in Engineering Software as a Service. I have realized what a rotten education I got at University of Texas at Arlington. I may have learned math, algorithms, and data structures but I did not learn good software engineering practices. I never heard about testing the whole time I was at UTA. When I was asked during job interviews what I did to test for bugs all I could say was put print statements in the code. I must have looked pretty stupid. I am taking the time now to learn some of what I should have learned. I did start a Machine Learning Course this week offered by Stanford University through Coursera. I do what to keep my math and algorithms skills current. All of the Coursera and Edx courses are much better taught than the classes I took at UTA. The professors lecture better and the courses are better organized. The professors seem really interested in teaching.

I am still stuck at home with a pulled leg muscle that won't healed. I can't walk far without the fear of falling. It is taking a long time to heal but I have to remember I was in pretty bad shape when I was first hospitalized. Besides broken down muscles I was lucky I didn't die of kidney failure. I am taking care of myself better now. Few skipped meals and no more throwing up food. Since I am no longer under stress like when I was going to UTA it is a lot easier to eat regular meals. I am still on the lookout for a telecommuting job. All of the many recruiters who call me say they only have on site jobs. I have found a few telecommuting jobs to apply to. The most recent phone interview I had with a hiring manager was for a Ruby on Rails remote position. They decided my Errai experience and class work in Ruby on Rails wasn't the experience they were looking for. She didn't ask me any specific technical questions. If I had made it through the first interview I would have been sent a coding challenge. I am wondering if I come off as some one hard to work with since software developers work in teams. I know being a woman in a male dominated profession it is harder to fit in but this last interview was with a woman.

Friday, April 4, 2014

I have been spending my time taking courses at https://www.coursera.org  A member of one of my listservs, I believe it was devchix, made me aware of a beginning Android course -Programming Mobile Applications for Android Handheld Systems. It was taught by Dr. Adam Porter of the University of Maryland - College Park. It was taught at the college sophomore/junior level so you didn't have to sit through beginning computer science stuff. The course assumed you knew Java. The course consisted of video lectures, online quizzes, and programming assignments. I started almost a month late so I had some catching up to do. The course is free and if you successfully complete the course you get a certificate of accomplishment. For $49 you can sign up for the signature track where you are expected to get 90% to get its certificate and the URL to it to put on your resume or give to your employer to show you successfully completed the course. This course had 150,000 students world wide so if only half of them signed up for the signature track Coursera stood to make a great deal of money so in the end the courses are paid for even though they are free to every one else. $49 is cheaper than a regular college course. I just wanted the knowledge so I wasn't going to pay $49 for it. This course is the beginning of a series of 4 courses in the Android Specialization. If you make it through all 4 courses on the signature track and are one of the top students Google will give you an iPad and the opportunity to put your final project in the App Store. The first course ended 18 days ago. I signed up for the next course, Pattern-Oriented Software Architectures: Programming Mobile Services for Android Handheld Systems, offered by Vanderbuilt University which starts in a month. I figured the Android knowledge would be good if some one wanted to use Errai to program for Androids beside the fact Android knowledge is in hot demand.

Right now I am taking 2 courses, Web Application Architectures offered by the University of New Mexico and Fundamentals of Digital Image and Video Processing offered by Northwestern University. The Web Applications class assumes you know a programming language and teaches you full stack development using Ruby on Rails. I didn't know Ruby on Rails so I signed up. This course has turned out to be easier than the Android course but I am learning new things. The Digital Processing class which started last Monday looks like it is going to be harder even though I got 100% on the first quiz. The course expects you to know calculus and linear algebra and uses Matlab to program.. This course has knowledge I wish I had 2 years ago when I was looking for a thesis adviser. One professor I approached who worked on programming for MRIs gave me one of his papers and said if I could implement it he would be my thesis adviser. The paper had such advance math my math professor cousin couldn't help me with it. I attempted the paper but I don't know why I thought I could do it when I didn't even know the basics of digital processing. I still would like to be able to implement the paper so that professor didn't think I am stupid.

Coursera offers 400+ courses in a variety of subjects at varying levels of difficulty. They are offering a beginning computer science course right now that uses Python. I almost signed up for it but since it was designed to be a student's first computer science course and I have already spent time on Python I figured it would be too easy. Other programming courses are offered for different languages and advance math required for computer science. I have found the courses to be enjoyable.

I went back to finish another online course on Javascript and JQuery that I started in October 2012 that I almost but never finish. It was with Alison.com not Coursera. I soon realized why I didn't finish the course. It is all reading, no videos, with a couple of short exercises at the end of a module that are not graded. I believe there is an assessment at the end of the course to get a certificate but I haven't made it that far to find out. The most irritating part are all the ads you have to put up with between each page of the sections in the modules to take the course for free. Most pages of the sections are rarely longer than a screen shot. When you go to the next page you have to look at an ad for 15 seconds while the page of the section is loading. For 30 pounds you can get rid of the ads in the course and for 75 pounds you can get rid of all course and website ads. I am not going to pay money for a course I am not enjoying. I could just as easy read for free without the ads an online tutorial and get the same knowledge just not get the certificate. The course isn't even well written. Online tutorials often have you build an example program as you go along to demonstrate the concepts. The Alison course is just snippets of code for exercises that don't tie together or build into a working application unlike Coursera. Coursera courses run during a set time frame with deadlines for quizzes and programming assignments if you want a certificate. You can go back to the course archive to review when the course is over. Alison courses are not during a set time frame. The advantage of taking the course at the same time as other people like with Coursera is you can discuss the course with other people on the class forum. Coursera courses are kept up to date. Alison is still offering Microsoft Office 2003 with no courses on the most recent editions. There's no telling how out of date my Javascript and JQuery class is. There is a box at the bottom of a page of Alison to ask questions but I have no idea how long it takes to get an answer or whether anybody is paying attention to the course. Alison claims to have 600+ courses which is more than Coursera but the quality is not the same.

Thursday, February 20, 2014

After learning some Python and Django, including how to do some animation, to the point I thought I could work a job (though not an expert), I decided to return to Errai. I thought maybe I could look at Errai with fresh eyes. I still had the three errors in my dependencies that I had left.

<!-- Errai Core -->
ArtifactTransferException: Failure to transfer org.jboss.errai:errai-bus:jar:3.0-20131120.224014-312 from https://repository.jboss.org/nexus/content/groups/public/ was cached in a local repository, resolution will not be reattempted until the update interval of jboss-public-repository-group has elapsed or updates are forced Original Error: Could not transfer artifact org.jboss.errai:errai-bus:3.0-20131120.224014-312 from/to jboss-public-repository-group(https://repository.jboss.org/nexus/content/groups/public/):No response received after 60000
    <dependency>
      <groupId>org.jboss.errai</groupId>
      <artifactId>errai-bus</artifactId>
      <exclusions>
        <exclusion>
          <groupId>javax.inject</groupId>
          <artifactId>javax.inject</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.annotation</groupId>
          <artifactId>jsr250-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
ArtifactTransferException: Failure to transfer org.jboss.errai:errai-bus:jar:3.0-20131120.224838-305 from https://repository.jboss.org/nexus/content/groups/public/ was cached in a local repository, resolution will not be reattempted until the update interval of jboss-public-repository-group has elapsed or updates are forced Original Error: Could not transfer artifact org.jboss.errai:errai-bus:3.0-20131120.2248384-305 from/to jboss-public-repository-group(https://repository.jboss.org/nexus/content/groups/public/):No response received after 60000
    <dependency>
      <groupId>org.jboss.errai</groupId>
      <artifactId>errai-ioc</artifactId>
      <exclusions>
        <exclusion>
          <groupId>javax.inject</groupId>
          <artifactId>javax.inject</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.annotation</groupId>
          <artifactId>jsr250-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

 <!-- GWT and GWT Extensions -->
Multiple annotations found at this line
-Missing artifact com.google.gwt:gwt-user:2.5.1

-ArtifactTransferExceptionfrom:failure to transfer com.google.gwt:gwt-user:2.5.1 from
http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Orginal Error: Could not transfer artifact com.google.gwt:gwt-user:2.5.1 from/to central(http://repo.maven.apache.org/maven2): No response after 60000
 
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-user</artifactId>
      <scope>provided</scope>
    </dependency>



I was still using juno Eclipse so I upgraded to kepler Eclipse like my mentor was using and was the most current Eclipse. In the act of updating I created a fourth error.

<plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <version>${gwt.maven.version}</version>
        <configuration>
          <logLevel>INFO</logLevel>
          <strict>true</strict>
          <runTarget>App.html</runTarget>
          <extraJvmArgs>-Xmx1000m -XX:MaxPermSize=500m</extraJvmArgs>
          <soyc>false</soyc>
          <hostedWebapp>src/main/webapp/</hostedWebapp>
          <server>org.jboss.errai.cdi.server.gwt.JettyLauncher</server>
        </configuration>
        <executions>
          <execution>
            <id>gwt-clean</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
Execution gwt compile of goal org.codehaus.mojo:gwt-maven plugin 2.5.1:resources failed Plugin org.codehaus.mojo:gwt-maven plugin 2.5.1 or one of its dependencies could not be resolved. Failure to transfer com.google.gwt:gwt-user jar 2.5.1 from http:/repo.maven.apache.org/maven2was cached in the local repository. Resolution will not be reattemped until the update interval of central has elapse or updates are forced. Original error Could not transfer artifact com.google.gwtgwt-user jar 2.5.1 from to central (http:/repo.maven.apache.org/maven2) No response received after 60000(org.codehaus.mojo:gwt-maven plugin 2.5.1: resources:gwt:compile process-resources)
          <execution>
            <id>gwt-compile</id>
            <goals>
              <goal>resources</goal>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
 The rest of the code is still at https://github.com/pmoessner/rpc-app1. 

This last error message appeared to indicate that I had some partially-downloaded dependencies stuck in my local Maven cache. To fix this I needed to try a build with Maven’s "-U” option, which forces updates:

C:\myapp> mvn -U clean install

(Note the U is a capital U, not lowercase.)
Before I did this I had updated Java. I changed JAVA_HOME to reflect the update :  C:\Program Files\Java\jdk1.7.0_51. I thought I was done with the update because when I ran C:\> java --version I got the correct version. I went to run the mvn -U clean install and got an error message that JAVA_HOME was not pointing to the right directory. It said JAVA_HOME = C:\Program Files\Java\jdk1.7.0_17 and to adjust environmental variable to the location of the Java installation. This JAVA_HOME had the value I had before I updated. I had since deleted the old jdk, installed the updated jdk and updated JAVA_HOME.  I tried just running C:\mvn --version and got the same error message. I went back and rechecked my environmental variables including JAVA_HOME and they were pointing to the update. I tried reinstalling both Java and Maven and still got the same error. I doubled checked all of my Java and Maven environmental variables. Nothing would work. I then remembered I had similar problems when I updated Java and Maven months earlier. What finally worked was to reboot my computer.
NOTE TO MYSELF: ALWAYS REBOOT AFTER UPDATING JAVA OR MAVEN BECAUSE MAVEN WON'T WORK IF YOU DON'T. YOU WILL GET A JAVA_HOME ERROR WHEN YOU RUN MAVEN IF YOU DON'T REBOOT. 

I'll be embarrassed if I forget this in the future. I had this in my December 18, 2013 post.
When I ran at the command line C:\myapp> mvn -U clean install that got rid of the fourth error. The first 3 errors were still there. To get rid of the first 3 errors I deleted the entire local Maven cache which I found under YOUR_HOME_DIR\.m2\repository. I deleted the whole repository folder. I ran C:\myapp> mvn -U clean install again. I then returned to Eclipse and went to Maven => Update Project. The 3 errors disappeared.

Friday, December 27, 2013

When creating a project in django using the tutorial at https://docs.djangoproject.com/en/1.6/intro/tutorial01/, I was getting an import error when running at the command line which asked if I was on the correct sys path using this command?:

django-admin.py startproject mysite.

 ImportError: Could not import settings 'mysite.settings' (Is it on sys.path?): No 
module named mysite.setting

I tried various things including trying to set the environmental variables differently. I finally installed Python-2.7.6, an upgrade from Python 2.7.3 I was using, to solved the problem. To get a working system on Windows 8 I used Python 2.7.6, Django 1.6, msql-installer-community-5.6.15.0, and MySQL-python-1.2.4b4.win32-py2.7. The trick is to find versions that work together. This can be done by trial and error since it is not always easy to find documentation that tells you. I tried to use the most recent stable releases of Django, Python, and MySQL.
 
To start the development server I attempted to run: 
 
 python manage.py runserver
 
I got:
 
  from django.core.exceptions import ImproperlyConfigured ... configured. " 
"Please supply the ENGINE value. Check ". "settings documentation for more details.")
 
This led me to believe that I needed to go back to the mysite.settings.py file. I 
double checked my settings but found nothing to correct this error. I remember 
reading something about setting the DJANGO_SETTINGS_MODULE in the Environment 
variables. I created a DJANGO_SETTINGS_MODULE variable in the environment system. I 
set it equal to C:/python_projects/mysite/mysite.settings.py. That didn't work but 
when I was in the outer mysite directory on the command line I used: 
 
set DJANGO_SETTINGS_MODULE= mysite.settings
 
and after that ran 
 
python manage.py runserver 
 
and had no problems after that continuing through the tutorial. 
 
 So once again I have run into compatibility problems with updates of software. Each 
release is a little different enough to cause problems. Users need to be aware of 
these conflicts that can occur so they have something else to try when they hit a 
brick wall in developing. 

Wednesday, December 18, 2013

It has been a long time since I have posted on this blog. I attended a OPW intern meeting as an alumnae on the irc today. It was suggested I continue blogging here especially since I am still working some with JBoss as an unpaid intern. I am still having trouble with rhabdomyolysis. Last spring and this fall I fell and broke bones and ended up in the rehab hospital. Since I can barely walk I am looking for a telecommuting job. Unfortunately most jobs want you on site. I really need a paying job since I have unpaid medical bills.

The Navigational problem I was working on was solved by some one else. I moved on to rpc (remote procedure call) since there were several issues in the tracker concerning rpc. First I needed to build a rpc application to test to get a better understanding of rpc. I tried to build a rpc app using the Reference Guide for Errai. I got rid of all of the errors in Eclipse but was getting a run time error. I didn't know what was wrong. Finally I asked my mentor. He said put the project on Github so he could look at it. He fixed the project but there were still 3 dependencies coming up as being errors. I asked my mentor about it. He looked at my error messages and suggested the central JBoss repository was down. If that was true then the repository had been down for over a week. I asked my mentor how to know what to put in the pom and web.xml files since he had made so many changes in them. He suggested I get a book on Maven and look at the section on servelets in the Java EE 6 tutorial. So besides learning CDI and GWT I have to also learn Maven and Java EE 6. When I set up my Maven project I used the settings described in the Reference Guide for Errai. I didn't know I had to change them since it wasn't mentioned in the Reference Guide. I just assume the settings for Maven were universal for Errai. I bought "Apache Maven Dependency Management" by Jonathan Lalou and "Maven 3.1 Step by Step" by Riyaz Eksambi inexpensively on my kindle. Both books were from 2013. I wish I had been able to look through the books before I bought them. While they had information for Maven dependencies for applications like Spring there was nothing specific for Errai. The Java EE 6 tutorial didn't have anything specific to Errai servelets either. I also need to figure out what goes in the properties files. If I understood Errai better I would write my own book for people.

Since I need a job I have started to learn Python in more detail. I had been exposed to Django and Python 4 years ago but didn't know much of them. I have gotten calls about telecommuting jobs using Python and Ruby which I don't know either. Learning Python and MySQL  that went with it was much easier than learning Errai. I am having some problem with creating a project with Django. I am wondering if it has something to do with Windows 8 I am using. When I upgraded to Windows 8 I had to update MySQL because it wasn't configuring. I am hesitant to update to Windows 8.1 and the development applications for MySQL, Python, and Django because I might lose all compatibility.. A friend suggested I switch to a virtual Linux system. For Ubuntu there is no installer for Windows 8. Updating software creates a huge headache. Java and Maven are being updated all the time. I then have to change environmental variables, remove old versions, and remember to reboot to install them if I want access to the current versions. After the last Java update I suddenly didn't have enough heap space to run the JVM. I had to create a _JAVA_OPTIONS systems environmental variable of -Xmx512M to create enough space.

As you can see I have learned a lot of stuff but not enough to solve the rpc tracking issues. I wonder if I should give it up for now and concentrate on Python so I can get something up on Github in Python so I can find a job.

Wednesday, June 19, 2013

I have been continuing to work part time for Errai. Since April I have been trying numerous things to do Errai UI Navigation. I have been beating myself about how stupid I am not to get it to work. My code was full of red lines and xs in the Eclipse IDE. I tried Googling for help and was unsuccessful in finding something helpful. My mentor had stressed to thoroughly do my research before asking other developers a question because they would be more inclined to answer. Don't say just give me the code. You should provide code to show other developers you at least made an attempt at it. Finally in desperation I sent my mentor some code highlighting where the errors were. He replied that it looked like I didn't have the Errai UI dependency in the pom.xml:

<dependency>
  <groupId>org.jboss.errai</groupId>
  <artifactId>errai-javaee-all</artifactId>
  <version>${errai.version}</version>
</dependency>
 
Or if you prefer to manage your project's dependency in a finer-grained way, you can depend on errai-ui directly:

<dependency>
  <groupId>org.jboss.errai</groupId>
  <artifactId>errai-ui</artifactId>
  <version>${errai.version}</version>
</dependency>
 
These were not included in the reference guide. My mentor added it to the reference guide. I tried both dependencies and the finer-grained dependency solved the problem. My mentor had stressed to try to become independent. Some times one can attempt to be too independent and not ask for help. I should have asked my mentor much sooner for help. I was embarrassed I could not get even simple code to work. I would have saved myself a couple months of aggravation if I had asked sooner. My mentor is an expert on Errai since he was one of the founders. He quickly saw the problem in little time.

Tuesday, March 26, 2013

I am still learning GWT, CDI, Errai, and Errai Navigation. I also need to update my HTML skills to HTML5. One thing I worried about when I graduated was ending up in a routine job. Friends told me how much easier working was than school. The grad adviser seeing how tired I was from school suggested I get a job before I went on for a PhD. He said he had one student report back he was being paid not to do much of anything. I didn't want to sit around twiddling my thumbs.This internship has been so challenging that I didn't need to worry about any of that. This internship has been like being in grad school. There is always something new to learn.