Wednesday, October 02, 2013

Techniques for learning German - podcasts.

Podcast - "A multimedia digital file made available on the Internet for downloading to a portable media player, computer, etc."

If you have a modern phone, ipod, or mp3 player you can play podcasts on the move.  Or you can listen to them on your computer when you're not mobile.  It may seem a bit weird explaining what a podcast is... but there are many people who do not know what they are, or haven't tried them.  Skip to the bottom for lists of German podcasts.

Situations where you may be able to learn with a podcast:
  • sitting at the computer doing an office job (if you don't need to talk lots!)
  • on a bus/train, or walking/running (be careful!)
Other methods of learning may not be possible in these situations.  For example, you probably can't have a teacher follow you around the park as you go jogging.  Also, they probably can't sit next to you at your office whilst you work.

It's always better if you can talk out loud along with the podcasts.  Even if the people on the train start to consider you a little strange, or annoying.  But not everyone is happy with sounding like a freak... so if that's you, speak the words to yourself in your head.  Listening to yourself on a recording later can be a great way of comparing what you said to how it sounds when said on the recording.  Often people notice their mistakes much more easily this way.

Not only lesson podcasts are useful for learning German!  Any podcast in the language you are learning can be a useful one to listen to.  Just so you can get used to hearing how people speak.  Choosing a topic you are interested in can help your motivation as well.  For example, if you like photography and are learning German, find a photography podcast where the speakers speak German.  This gives you a little bit more motivation to try and listen to how people speak.

Going over what you have already learned is a great way to retain that knowledge.  Podcasts are a low effort way of refreshing knowledge you learnt through another technique.  For example, if you are going to language lessons, then listening to the words you have learnt that day can keep them fresh in your mind.

The Audio Trainer - is a podcast for learning German.  It contains 100 German lessons of vocabulary, grammar and pronunciation training.  It goes over (CEFR) A1 and A2 level content.  By going over the standardised A1 and A2 level topics, this podcast useful for directing your learning towards the tests.  Whilst learning lots of other esoteric words may be useful for your general knowledge, directed learning towards the syllabus allows you to use other learning materials within your level.

"Deutsche, Warum Nicht" is available in iTunes and as a podcast at http://www.dw.de/learn-german/deutsch-warum-nicht/s-2548
"The course Deutsch – warum nicht?, divided into four parts, tells the story of the journalism student Andreas and his invisible ex. Join the two of them on an adventure and learn German along the way! Each of the four series contains 26 lessons with dialogues, exercises and audios to download. The course covers levels A1 to B1 of the European Framework of Reference for Languages and is geared toward beginners and advanced learners. Deutsch – warum nicht? was produced by Deutsche Welle and the Goethe Institute."
The Goethe institut has made some pod casts available here:http://www.goethe.de/frm/pod/enindex.htm.  From the seven podcasts they provide,  Radio D is sort of fun.  Since it contains fifty two short stories, each 15 minutes long, suitable for A1 and A2 level students.  Listen to short stories, and learn at the same time!  It can be a nice change from more boring learning methods.

One other good example of a non-lesson podcast that many learners will be interested in, is a podcast of the Deutsche Welle News read using simplified language, and spoken slowly.  This way you can get some of your daily news, but at the same time be learning something!  Brilliant.  See: German news spoken slowly podcast

http://german-podcast.blogspot.com/ is a podcast by Stephen Wiesner with many lessons (111 items listed in the podcast at time of writing).  Stephen has also made PDF files available to print out so you can read along whilst you listen(Unfortunately a lot of the links to the PDFs are broken).  The lessons include a lot of call and response with Stephen asking you to respond to his questions, or repeat phrases.  Stephen has also made an Android app available.

Germanpod101.com beware! this one is sort of free (for 7 days), but there are some lessons made available for free if you search on itunes for their podcasts.  Otherwise you have to sign up via email, and they try and get you to pay a monthly fee.  I found the accent improvement lessons particularly useful.  You can see many of their video lessons for free on youtube here: http://www.youtube.com/user/germanpod101/videos?flow=grid&view=1 They're not podcasts, but video podcasts or vodcasts.  Learn German Vocab with pictures is a youtube playlist from them where you can listen to some nice piano playing whilst a man reads out words for different topics, and you are shown pictures of the word.

"Slow German" is a podcast where Annik Rubens from Munich reads various stories slowly in German.  The text is available in the mp3 id3 tag or on the website ( http://www.slowgerman.com/ ).  This lets you follow along with the story if you want.  This is at approximately simple B1 level, and is sort of good for improving your listening comprehension skills.  There is a related iphone/ipad app too.

"German GrammarPod" podcast and the blog that goes along with it covers German grammar lessons.  There's about 30 lessons, with some being 11 minutes long, and others being as long as 51 minutes!  Some people hate learning grammar, but I don't think it can really be avoided.

"Pukka German!" is a podcast of German slang, idioms, funny sayings, common German words and phrases.  This one has real authentic soul - and teaches you funny things to say.  Want to know what to say at parties, or to talk about your hangover the next day?  Then Pukka German! has you covered.

Forming learning habits can greatly help your progress in learning German.  By including a podcast into your daily routine, you make sure you are learning regularly.  A little bit of learning every day slowly adds up, and many people can fit some podcasts into their routine easily without having to sacrifice other things.

Podcasts are one of many techniques, and tools available to learn languages.  They should not be used alone for learning, but can be a great when used with other methods of learning.  I'm blogging various techniques I have used to learn German under the German and Deutsch labels.

Friday, April 12, 2013

All you need is love, Berlin... and a dog.




All you need is love, Berlin... and a dog.



Thursday, April 11, 2013

Serial and pixels for breakfast. Arduino + pygame.

Taking a byte of bits of Serial, along with Green screen with Sam, pygame, and an Arduino hooked up to a light sensor and a motor thing.

Coffee too?  Naturally.

Where do we begin?  At the end of course.  A video of the result...



The arduino code

#include <Servo.h>  
Servo myservo;
int potpin = 0;
int val;

void setup() { 
  Serial.begin(9600);
  myservo.attach(9);
} 
 
void loop() { 
  val = analogRead(potpin);
  Serial.println(val);
  val = map(val, 62, 540, 0, 179);  
  myservo.write(val);
  delay(15);
}

python pygame code

Extended the "green eggs and ham" code I made recently to read serial data from the Arduino, and paint the screen different shades of green, whilst also making some silly sounds depending on the value read from the light sensor.



import os
import pygame
import serial

# guessing serial ports names. Linux or macosx.
#'/dev/tty.usbserial'
ser = serial.Serial('/dev/tty.usbmodem1411',
                    9600,
                    timeout = 0)
serial_buffer = ""

# an event number for the SERIAL
SERIAL = pygame.USEREVENT + 1


from pygame.locals import *
Event = pygame.Event
split = os.path.split


pygame.mixer.pre_init(44100, 8, 2, 1024)
pygame.init()
screen = pygame.display.set_mode((640, 480))
message = "Press q to quit, b for blue, r for red."
pygame.display.set_caption(message)

import pygame.examples
example_path = split(pygame.examples.__file__)[0]
example_data = os.path.join(example_path, "data")
sounds = [pygame.mixer.Sound("wiff.wav"), 
          pygame.mixer.Sound("punch.wav"), 
         ]

going = True
while going:
    serial_data = ser.read()
    #print (repr(serial_data))
    while serial_data:
        serial_buffer += serial_data
        # if there is a new line in it, then 
        if "\r\n" in serial_buffer:
            #print (repr(serial_buffer))

            evt = Event(SERIAL, 
                        {'line': serial_buffer})
            pygame.event.post(evt)
            serial_buffer = ""
        serial_data = ser.read()

    events = pygame.event.get()

    for event in events:
        print (event)
        if event.type == KEYDOWN and event.key == K_q:
            going = False
        if event.type == KEYDOWN and event.key == K_b:
            screen.fill(Color("blue"))
        if event.type == KEYDOWN and event.key == K_r:
            screen.fill(Color("red"))
        if event.type == SERIAL:
            # read the line from the serial event.
            print (repr(event.line))

            # clean up, and do sanity checking.
            # It could be corrupt or garbage.
            line = event.line.replace("\r\n", "")
            line = line.replace("\n", "")
            line = line.replace("\r", "")
            # it could be empty.
            if line:
                val = int(line)
                if val < 1024 and val > 0:
                    print (repr(val))
                    # map 0 and 1023 of analog read to
                    #  0-255 colour colour range.
                    green = int((val/float(1023))*255 )
                    screen.fill((0, green, 0))
                    if val < 100:
                        sounds[0].play()
                    if val > 300:
                        sounds[1].play()
                    
    pygame.display.flip()

ser.close()

Tuesday, April 09, 2013

Touchless UI with a Light Dependent Resistor, and the Arduino.

Touchless UI?  This is the next step in my little adventure into the world of Arduino...

It can sense light, from which the Ardunio reads an analog signal and then drives a Servo Mototor.




Arduino Servo motor, and a Potentiometer

Moving a servo motor(vrmmm vrommm) based on the analog input Linearly interpolated (LERP'd) from the Potentiometer (turny thing).

Arduino, Analogout fading LED.

So the Arduino adventure continues... This time, playing around with fading a light via an Analog output.

Vietnamese style coffee.

Coffee good.  Different styles of coffee good.  Viet coffee good.

Try and get the viet bean, and get it ground the way they do it too.  It's usually a mild flavour... but with the sweetened condensed milk it can be very sweet.  Plus you can make it on your desk!  Mostly I don't drink it sweetened, but that's the way they mostly do it, so for this video I did that too :)


Here is a much better video on how to make Vietnamese style coffee... great song too!


Monday, April 08, 2013

LED, lumens and a multimeter

Picked up a small 360 lumen LED light with built in heatsink. As well as a multimeter.  Going to use them in a projector project with the Arduino.
LED lights with built in heatsink, and a multimeter.

Saturday, April 06, 2013

Reducing the number of concepts. To make teaching easier.

I am Sam.  Sam I am*.  Well at least my middle name is Sam.  So of course, one fun book I've always been drawn to is Green Eggs and Ham. The famous beginners book by "Dr. Seuss".
 
It contains just 50 different words: a, am, and, anywhere, are, be, boat, box, car, could, dark, do, eat, eggs, fox, goat, good, green, ham, here, house, I, if, in, let, like, may, me, mouse, not, on, or, rain, Sam, say, see, so, thank, that, the, them, there, they, train, tree, try, will, with, would, you.

A great beginners book, because it's a full story teaching a number of other concepts using a limited amount of words.  It's a clever bootstrapping hack to language learning.  Apart from all its cleverness, it's a fun & entertaining read too! :)

So you want to teach some newbies how to be l33t python pygame pr0grAmm3rs?  Maybe Sam I am, and Green Eggs and Ham have something to teach us, the teachers?

Let's reduce the number of concepts!

Classes, packages, and even functions are hard to get right away.  As in the first 10 minutes of teaching something to someone it's hard anyway.  Some people may get your car metaphors, and your nonsense about Ducks quacking like ducks... but others will look at you blankly.  Then that snotty nosed brat at the back of the class will start texting rude words about how you are a poo poo head, and it's GAME OVER.

However, there are two parts to these concepts.  Creating them, and just using them.

Here is an example pygame program using functions, packages, and classes... but not creating them.  This requires less knowledge to start doing something.

Press r for red.

import pygame
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((640, 480))
message = "Press q to quit, b for blue, r for red."
pygame.display.set_caption(message)

going = True
while going:
    events = pygame.event.get()
    for event in events:
        print (event)
        if event.type == KEYDOWN and event.key == K_q:
            going = False
        if event.type == KEYDOWN and event.key == K_b:
            screen.fill(Color("blue"))
        if event.type == KEYDOWN and event.key == K_r:
            screen.fill(Color("red"))
      
    pygame.display.flip()


This displays quite a number of perhaps confusing concepts, but removes a few of the complex concepts.

Watch ALL the events printed out!

Notice how there are no functions declared, no classes created, and no packages declared.  There's also no "Reactor", or callbacks required for the events.  It's just importing (which is boiler plate).

Ask yourself, "How would I see all of the events coming into a browser with JavaScript?".  This example prints out all of the events happening to the program.  Including Keyboard events, and Mouse events.  You don't need to know in advance what type of events will be appearing.  You can discover that there is a key up event, that there are mouse motion events.

By reducing the set of concepts needed to understand the code you will have an easier job teaching it.

Press b for blue!


(* I don't like Green Eggs and Ham. I don't like them here or there. I don't like them anywhere.)

q for quit.

Friday, April 05, 2013

Raspberry pygame

The Arduino adventure took a little pause today...

I finally managed to buy a raspberry pi.

Things have improved greatly with the software since I messed around with an alpha board 1 year and 7 months ago.  Pygame is even on the desktop!  Pretty cool :)  I just wish they'd been in contact with the project so we could have made the experience better.  Tried to reach out a few times with no luck.
 
But anyway... managed to get one finally.  *happy dance*
 
raspberry pygame

Improvements to the sound, OpenGL ES, camera, movie, python 3 version, are amongst 
some of the things I see that can be improved so far.

Thursday, April 04, 2013

Amplification via a NPN bipolar transistor.

In this part of the little Arduino adventure, I've been messing around with the Fritzing prototyping application.  This lets you design things based on bread board layouts, then to generate Schematics and PCB.

Unfortunately I couldn't get the schematic to draw properly.  Some connections are missing or wrong.  But that's ok, I'm not using it for anything serious :)

Behold some pretty screenshots!

Schematic... slightly wrong.

Bread board diagram made in Fritzing.

Wednesday, April 03, 2013

Push the button!


The little Arduino makes the lights go on and off.  Simply amazing ;)

Sideways

Read a bunch of this book this morning whilst I lay in bed drinking coffee and laughing. Really enjoying the blend of wine critic style with the struggling writer buddy road trip genres. Was even reading it on the train on the way home... so engrossed I missed my stop!

I give it 7 stars. Out of 5.

Shelf painting

Roughly sanded, and now coated twice with grey. What remains is masking tape to get straight strong lines where the grey meets the pink.

Tuesday, April 02, 2013

Italian white bean 'soup'


*Onion diced along with three bits of garlic smalled.
*In a pot with olive oil Browning.
*Then brown red capsicum (paprika) with about a cup of mushrooms(chunkily chopped).
*Fresh parsley and basil chopped up with a knife.
*Tomatoes 2 cups.
*White beans, cup of.
*Pesto, basil spoon of.
*Diluted half teaspoon of veggie stock in cup of water, add to pot.
*half hour later chop more flat leaf parsley.
*Serve in a bowl each with a spoon of sour cream.

pygame logo colour swatches

Been messing around with some colour swatches for the neu pygame website...
colors/colours for pygame logo

Arduino blinking lights.


Working on an Arduino(micro controllers) project with a friend.  Have to start somewhere... and that somewhere is programming the famous Blinking Lights!

Tape Wallet.

I made a Tape Wallet