Monday, July 7, 2014

Technologically Speaking in German

Recently, I have been working on resurrecting my German skills using a variety of online and audio tools based on the advice of language educators as well as drawing on my own prior experiences with language learning.  German was my first second language.  When I was seven years old, my father was stationed at an Air Force base in Germany.  We did not live on base, but instead lived in a neighboring German village.  So, I learned German both through immersion in the local culture, and through formal lessons in Elementary school.  Later, when we returned to America, I took a year of high school German, and worked with a native German speaker who had taken an interest in my education.  In between, I took a bit of Junior High Spanish too.  When I was 18, I married an Egyptian army officer and moved to Egypt, where I lived for three years.  So, Egyptian Arabic was my fourth language.  However, I am no longer fluent in any of my languages.  It seems, I can only maintain English and one other language at a time, and, if I stop practicing a language, I lose the ability to speak it.

An opportunity has arisen for me to potentially travel to Germany for work.  So, I have begun a concentrated effort to re-learn German. To help me, I am using Rosetta Stone, the Pimsleur Approach, Duolingo, iTalki, Anki, and a German language podcast.  I’m spending an hour or more every day on my German, with my study broken up amongst my various tools.  Each tool has its own benefits and drawbacks thus far.  To be honest, I’m not sure which I would advise you to choose if you had to limit your selection to just one.

This is one expensive tool.  I splurged and bought it when it was on sale.  It seems to do so frequently; so I would advise never paying the full $499 for it.  I love that it is simultaneously teaching me speaking, reading, and writing.  When I learned Arabic, I never became literate in the language.  So, I do appreciate that I’m learning to spell and read from the very start.  I also like how it has me use pictures and my intuition to figure out new words and phrases.  Essentially, the program teaches a few words, and then has you gradually figure out more based on elimination and logic.  The one thing that I’m finding difficult is that it does not formally teach grammar rules; so, at times things can get a bit confusing.  Because German nouns have different genders, and because German has both formal and casual forms of address, things can get a bit confusing at times.  Because I come to the course with a bit of a German background, I know why the articles and pronouns are changing, but if I were learning the language for the first time, I wonder if I wouldn’t be totally lost.  I hope to someday try to learn an entirely new language with Rosetta Stone and see how it goes.

The things I like about Duolingo are that 1) It’s free.  2) It explains the grammar rules. 3) It motivates me through points and levels.  I am finding that it seems to move a bit more quickly than Rosetta Stone in some areas, and I’m not sure that it is as good as Rosetta Stone in reviewing past skills so that they don’t get forgotten.  On any given day, I spend about 10-15 minutes with this tool.  

This is another free tool.  And, it’s not exactly a language course.  Anki is a flash-card tool that uses spaced repetition to help you memorize and retain new information.  In the past, I have used it to study the US presidents, state capitals, Oscar-winning movies, etc.  For my German practice, I have downloaded a flash-card set of the 1000 most commonly used German words and phrases.  I have learned from my research in foreign language acquisition that mastering a small subset of the language can be enough to achieve fluency and comprehension.  With Anki, I am learning random words rather than working on my conversational German.  But, I have found spaced repetition works very well for me, and I consider this to be a good supplement.

This is another expensive tool.  And,I find the official website to be a bit spammy in their sales approach.  They offer the intro materials for $10, but want you to sign up for automated shipments with a payment plan.  However, Pimsleur CDs can be found used or in some libraries.  The Pimsleur approach seems a bit more old-fashioned.  It is an audio-only method that strives to teach basic conversational phrases.  I tend to prefer Rosetta Stone’s approach which allows me to read and write at the same time.  BUT, I am finding that the Pimsleur CDs are helping my pronunciation a great deal.  The course deconstructs the words, which seems to help me to hear the sounds more clearly.  I don’t think I would recommend buying this program, but, if you can borrow it from somebody, it can be helpful.

This is a site that could  be brilliant, but thus far, I have found it to be the least helpful.  I am not willing to pay for a private tutor or conversational partner just yet, and I have been unable to find a free conversation partner for German.  For some reason, I have been approached by several Arabic men who were seeking language partners.  I’m not sure if it’s because iTalki integrates with Facebook, or if Arabic men just end to pounce on English speaking women.  I’m going to reserve my judgement on this tool until I have had some more time with it, because I have heard it can be quite helpful.


On My Own
In Germany, I learned my German by playing with German children.  In Egypt, my neighbor had twin toddler boys.  As they learned to speak, I learned along with them.  (They quickly surpassed me.)  Spanish is the one language that I learned only in a formal classroom setting, and it was always my weakest language.  So, on my own, I have been seeking out German videos for children.  Sesame Street has a German website, and there are many YouTube videos available.  I have also found some free children’s books for my Kindle.  I don’t think these tools will help me build up a professional vocabulary for work, but they the more I listen to them, the more I understand.  Once I become more fluent, I will move to more adult themes, such as German news broadcasts and topical podcasts.



I love that there are so many free ways to study a foreign language online now.  Because I know I have a tendency to forget my old languages as I learn new ones, I hope to add in some DuoLingo work on Arabic and Spanish in the near future.  I am interested in seeing if it is possible for me to successfully shift between multiple languages at the appropriate times.  Finally, I think I would like to try to pick up a totally new language next year, and see how well the tools fair with that.  

Thursday, February 13, 2014

Integrating TeamSupport Issue Tracker With PHPStorm

While working at WizeHive, I loved how FogBugz integrated so very nicely with PhpStorm.  By creating 'tasks' in PhpStorm, I was able to rapidly switch git branches and open files simply by selecting the desired task.  This enabled me to quickly jump to a specific issue if it moved up in priority (Usually because somebody was standing at my desk asking about it.)

Back at SleepEx, I'm using TeamSupport.  Nobody seems to use it, and it has no integrations with any tools, but it's what I'm stuck with.  So.  Here's how to get tasks working with TeamSupport.

1.  You will need your TeamSupport OrgId and API Token.  If you've used the Team Support API at all, you will already have this.  Otherwise, you will need to get it from whomever manages Team Support at your company.

2.  Next, you need to set the Task preferences in PHP Storm to extend the timeout.  The Team Support API is quite slow.  Without the change, you won't be able to get things working.  To do this, Open preferences in PHP Storm, and go to the tasks section.  Make sure you are using the cache, and set your timeout value quite high.


3.  Now, you are ready to add the Task Server.  In the PHPStorm Tasks preferences, go to the servers section. Add a Generic Task Server. The URL is https://app.teamsupport.com.  Make sure you turn on HTTP Authentication.  The username is your Team Support OrgID and the Password is the API Token.

4.  Now, go to the Server Configuration tab.  Here, I was trying to limit the number of tickets queried as much as possible to try to improve the speed.  You may want to use the API reference to modify your queries.  The bracketed options in the API [gt], [not], etc. did not seem to work for me here.

Task List URL: https://app.teamsupport.com/api/json/Tickets?IsClosed=False&TicketTypeName=Bugs&TicketTypeName=Features&GroupName=Development

Single Ticket URL: https://app.teamsupport.com/api/json/Tickets?TicketNumber={id}  (I used the TaskNumber rather than the ID because the Task Number is clearly visible on the Ticket screen and is the one that most people use when discussing an issue.)

Response Type: Json

tasks: Tickets
id: TicketNumber
summary: Name


5. Now, you are ready to use the Tasks.  You can easily associate a task with a Git commit message, and have your Team Support TicketNumber embedded into your commit messages.  By using a context for each task, the editor will remember which files to have open along with the appropriate Git branch for any given task.