Wednesday, 21 December 2016

Tales of Known Space - Part 1 & 2 - Larry Niven - Reading order

 Larry Niven has written over 50 books.
It's hard to work out what order in which to read them.
Maybe in the order they were written?
 
I think starting by reading stories set in his "Known Space" universe is a good way to go.
There are about 9 novels and 35 short stories set in this universe. 
They span about 1000 years in the future and cover a small portion of the Milky way.
They begin with the first human explorations of the solar system, to humanity's expansion into other near systems. 
 
You can probably divide this time span into 4 periods:
 
This post covers The Early  Exploration (Pre 2000 AD) period and the Slower-Than-Light (2000 to 2350AD) period. The years 2351 to 2650 are covered here

The Early Exploration stories cover the first human explorations and colonizations of the Solar System (Pre 2000AD).
Humanity explores The Moon (Luna), Mercury, Venus, Mars & the outer planets like Pluto.
 
The Slower-Than-Light stories cover later exploration and colonization of the solar system.
The time period is about 350 years (2000 to 2350AD). It's often called the Belter Period.
Belt refers to the asteroid belt of Earth's solar system, Sol system. Citizens are named Belters.
Earth is ruled by the UN (United Nations).
The  Belter period features slower-than-light travel with fusion-powered and Bussard ramjet ships.  
 
What struck me about Niven's world building was how close his vision is to that portrayed in the Sci Fi series, "The Expanse".
 
 This time is composed mainly of Niven's Belter stories, the Gil "The Arm" Hamilton mysteries, and the novels World Of Ptaavs, A Gift From Earth and Protector.
 
For the record, the later "Neutron Star/Ringworld  period is set around 2651 AD and later.
It features faster-than-light ships using "hyperdrive". 
It is composed of many stories featuring Beowulf Shaeffer and Louis Wu, among others.
 
 
Niven later joined the last two periods into a single universe in the short story "A Relic of the Empire" (If, December 1966). Then in the 1980's he started writing stories of the Man-Kzin Wars. The first volume was published in 1988. This filled in the 300 year gap (between 2350 to 2651). 

----------------------------------------------------------------------------------

Early Exploration period


The first-published work in the Known Space series, was also Niven's first published piece.
 
 "The Coldest Place" first appeared in the 
December 1964 issue of If magazine.***
 
 It is set on the dark side of the planet Mercury approximately 1976 AD.
***










 

Becalmed In Hell***
first appeared in Fantasy and Science Fiction in July 1965.
 
This story is also included in Niven's collections "All the Myriad Ways" 
 
Eric is the "Brain" of the first ship to explore Venus. Howie is his human crew member. When a fault develops, forcing the ship down onto the hostile Venusian surface, Howie must figure out the problem with Eric, be it mechanical or psychological.
* **
 
 
 
 
 
 
 

[1989 AD]
 Wait It Out 
 
This story is included in Niven's collections "All the Myriad Ways"
 
 
This is the story of the first manned flight to Pluto
 
 
 
 
 
 

1996 C.E.]
 Eye Of An Octopus  

Galaxy, February 1966
Covers the Martian Explorations.
 
This covers the first human expedition to Mars 
The all male crew digs up a grave & finds evidence of local intelligent life. 
 
 
 
 
 
 
 
 
 
 Slower-Than-Light Period
 
 
 
 Larry Niven's "How the Heroes Die"
Set about 2040AD 
This is the story of the second manned mission to Mars
and how it all went wrong.
First published: Galaxy Science Fiction, October 1966. 
 
 
 
 
 
 
 
 
 
 
 
 

 
The Jigsaw Man (short story)
Set around 2099 AD
and is included in Niven's collections All the Myriad Ways and Tales of Known Space
 
In the future serious criminals are forced to donate their organs to repay society.
 
 
 
 
 
 
 
 
 

World of Ptavvs
Set around 2106 AD
This was Niven's first published novel.
Published 1966 (Ballantine Books‎)‎ ***
It's based on a 1965 magazine story of the same name.
"A much shorter version of "World of Ptavvs" first appeared in Worlds of Tomorrow, March 1965 by Galaxy Publishing Corp." 
 
 A major element of the story was the Cold War existing between Earth and the "Belters",
 
 
 
 
 
 
 

This is the 1965 Magazine version
 
 
 
 
 
 
 

At  the Bottom of a Hole 
First published: Galaxy Science Fiction, December 1966.
Set 20-30 April, 2112 AD
Human explorers to Mars are killed by locals. 
This is a fast paced action story. 
It is the third in a series by Niven about the first Martian explorations.
This is not an independent story; it assumes you have read the previous ones - "How the Heroes Die" 
and "Eye of an Octopus" 
Lots of Belter references
 
 
 
 
 

 Intent to Deceive 
aka "The Deceivers",
About 2113 AD
First published: Galaxy Magazine, April 1968.

 ***
 
 
 
 
 
 
 
 
 
 
 
 

 
Death By Ecstasy (The Long Arm of Gil Hamilton or Flatlander)
2123 AD
It is the first of five Gil Hamilton detective stories, and provides most of the backstory for the character.
It first appeared in the January 1969 edition of Galaxy under the title The Organleggers.
 
 *
 
 
 
 
 
 
 
 
 


The Defenseless Dead (The Long Arm of Gil Hamilton or Flatlander)
2124-2125  AD
It is the second of five Gil Hamilton detective stories.
It was published in 1973 in the Roger Elwood anthology Ten Tomorrows.
 
 
 
 
 
 
 
 
 
 
 
 
 

Phssthpok
2125 AD
Read  the Protector
Novel by Larry Niven
Originally published: 1973
Ballantine Books
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ARM & Other Short Stories  
2126 AD
Gil “The Arm” Hamilton was one of the top operatives of ARM, the elite UN police force. His intuition was unfailingly accurate; his detective skills second to none; and his psychic powers—esper sense and telekinesis—were awesome.
 

 
 
 
 
 
 
 
 
 

The Patchwork Girl (Flatlander)
2126 AD
it is the fourth of five Gil Hamilton detective stories and the first to be published as a stand-alone novel in 1980. 
It was later included in the Gil Hamilton anthology Flatlander.
 
 
 
 
 
 
 
 
 
 
 
 

The Woman in Del Rey Crater (Flatlander)
2127 AD
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Cloak of Anarchy.
First published in Analog SF, March 1972. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

A Gift From Earth
2325 - 2343 AD
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Interlude, Vandervecken  &  Protector
2341 to 2361 AD
Protector was a 1973 science fiction novel  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 Ethics of Madness
2326-2390 C.E. approx
Worlds of If, April1967
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

The Warriors - Worlds of If Feb 1966
2360 AD
 
 ***
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-------------------------------------------------------------------------------------------------
In alphabetical Order, The stories & novels set in the Known Universe are:
 
 
  • The Adults (short story)
  • ARM (short story)
  • At The Bottom Of A Hole (short story)
  • At The Core (short story)
  • Becalmed In Hell (short story)
  • The Borderland Of Sol (short story)
  • Choosing Names (short story)
  • Cloak Of Anarchy (short story)
  • The Coldest Place (short story)
  • The Deceivers (short story)
  • The Defenseless Dead (short story)
  • The Ethics Of Madness (short story)
  • Eye Of An Octopus (short story)
  • Flatlander (short story)
  • Fleet Of Worlds (novel, written in collaboration with Edward M. Lerner)
    • Juggler Of Worlds (novel, written in collaboration with Edward M. Lerner)
    • Destroyer Of Worlds (novel, written in collaboration with Edward M. Lerner)
    • Betrayer Of Worlds (novel, written in collaboration with Edward M. Lerner)
    • Fate Of Worlds (novel, written in collaboration with Edward M. Lerner)
  • Fly-By-Night (short story)
  • Ghost (short story)
  • A Gift From Earth (novel)
  • Grendel (short story)
  • The Handicapped (short story)
  • How The Heroes Die (short story)
  • The Hunting Park (short story)
  • The Jigsaw Man (short story)
  • Madness Has Its Place (short story)
  • N-Space (anthology)
  • Neutron Star (short story)
  • The Organleggers (short story)
  • The Patchwork Girl (novel)
  • Procrustes (short story)
  • Protector (novel)
  • A Relic Of The Empire (short story)
  • Ring World (novel)
    • The Ringworld Engineers (novel)
    • The Ringworld Throne (novel)
    • Ringworld's Children (novel)
  • Safe At Any Speed (short story)
  • Slowboat Cargo (short story)
  • There Is A Tide (short story)
  • The Soft Weapon (short story, adapted into an episode of Star Trek: The Animated Series)
  • Wait It Out (short story)
  • The Warriors (short story, introduced the Kzin)
  • The Woman In Del Rey Crater (short story)
  • World Of Ptavvs (novel)

Do let me know is there are any mistakes, errors or omissions.  

--------------------------------------------

sci Fi Index

----------------------------------------------

Sunday, 18 December 2016

New Sound Waves Synth Meet

Sunday 18th Dec, 2016.
Always great fun to catch up with my Synth mates.
This was the last meeting of 2016.

I think I want this sequencer.
It's from Red Light District. Totally Australian made.
 I understand they will be sold in Kit form too.
Its Eurorack format.

..




Another one for the shopping list:
Ornament & Crime
Voltage Controlled Labs
Muffs site


See you all in 2017.
Happy Christmas.

Saturday, 17 December 2016

Buchla 100 - A new Future

To mark the end of 2016 & the beginning of 2017.

Buchla 100 (mostly vintage modules).





Kyoto Station, Japan

Breathtaking. This is the second largest station in Japan (after Nagoya Station) and is one of the country's largest buildings.

I think it's a futuristic masterpiece and should be on your "to do" list when you visit Kyoto, even if you're not into modern architecture.
Opened in 1997 to commemorate Kyoto's 1,200th anniversary, it is 70 meters high and 470 meters from east to west.

The architect was Hiroshi Hara.
He was a professor at the University of Tokyo until 1997, and has held an emeritus position since that time.
Hara's other buildings include the Yamato International Building in Tokyo 
and the Umeda Sky in Osaka.
Back to the train station:
The interior is a cathedral of glass and steel. Which reminds me a bit of the Musee D'orsay in Paris.
Both are train stations ...beautiful, though separated by a century.




Take the escalator from the 7th floor on the east side of the building up to the 11th-floor glass corridor, Skyway (open 10am to 10pm).
The Skyway is open 10am to 10pm. It runs high above the main concourse of the station.
Panorama of the Kyoto Tower and surrounds from the train station. 

 ------------------------------------------------------------------------------------------
Click here for more travel postcards

Timer Interrupts and clocks - Part 2 - CTC Mode

 There are a few ways to do interrupts.
The last post was a basic intro on Timer Interrupts
in Arduino. It used the TimerOne Library
 
Another common way uses "Clear Timer on Compare Match" or CTC Mode.
The Uno has three timers called timer0, timer1, and timer2.  
Each of the timers has a counter that increases with each tick of the timer's clock. 
 
These interrupts are a good way of clocking events in Arduinos. 

CTC interrupts are triggered when the counter reaches a specific value.
This value is stored in the "Compare Match Register".
On reaching this value, the counter resets to zero.
You can set this specific counter value and you can also set the speed of the timer.
This allows you to control the frequency of the timer interrupts.
 
So the two important things to set when making your clock are:
1. speed of the timer
2. value of the counter reset

Speed.
The fastest speed of the Arduino clock is 16Mhz.
We can divide this speed , thus slowing things down using a "prescaler".
The formula for working out the speed is:
 
(timer speed (Hz)) = (Arduino clock speed (16MHz)) / prescaler
 
 
Counter Reset
Timer0 and timer2 are 8 bit timers. Thus they can store a max counter value of 255. 
Timer1 is a 16 bit timer. Thus it can store a max counter value of 65535.  
 
// --------------------------------------------------
 
Timer setup code is mostly done in the setup(){} function in an Arduino sketch.
We need to do things like turning on the CTC mode, setting the prescaler
 
Below is a example of some code:
 
//*********************
 
void setup(){

cli();//stop interrupts

//set timer0 interrupt at 2kHz
  TCCR0A = 0;// set entire TCCR0A register to 0
  TCCR0B = 0;// same for TCCR0B
  TCNT0  = 0;//initialize counter value to 0
 // set compare match register for 2khz increments
  OCR0A = 124;// = (16*10^6) / (2000*64) - 1 (must be <256)
// OCRnA/B is the output compare register 
 // turn on CTC mode
  TCCR0A |= (1 << WGM01);
  // Set CS01 and CS00 bits for 64 prescaler
  TCCR0B |= (1 << CS01) | (1 << CS00);   
  // enable timer compare interrupt
  TIMSK0 |= (1 << OCIE0A);
sei();//allow interrupts

}//end setup 
void loop() {
// put your main code here, to run repeatedly:

ISR(TIMER0_COMPA_vect){  //change the 0 to 1 for timer1 and 2 for timer2
   //interrupt commands here
// ******************** 
 
It all looks very confusing, but if you look at any CTC code, you will see these similar
lines of code:
 // turn on CTC mode
  TCCR0A |= (1 << WGM01);
It turns on the CTC mode 
The 3 Different timers will use slightly different code.
TCCR0A |= (1 << WGM01);//for timer0
TCCR1B |= (1 << WGM12);//for timer1
TCCR2A |= (1 << WGM21);//for timer2
----------------------------------- 
TCCR#A/B - this stands for "Timer/Counter Control Register".
This register holds the main control bits of the timer.
After TCCR there is a number and a letter A or B   
-------------------- 
The next bit of code involves setting the prescaler
// Set CS01 and CS00 bits for 64 prescaler
  TCCR0B |= (1 << CS01) | (1 << CS00);  
Each of the 3 timers uses a slightly different bit of code.
 TCCR2B |= (1 << CS22);  // Set CS#2 bit for 64 prescaler for timer 2
TCCR1B |= (1 << CS11);  // Set CS#1 bit for 8 prescaler for timer 1
TCCR0B |= (1 << CS02) | (1 << CS00);  
// Set CS#2 and CS#0 bits for 1024 prescaler for timer 0
 ---------------------
Next we have the Timer/Counter Register (TCNTn).
   TCNT0  = 0;//initialize counter value to 0
This register controls the counter value and is needed to set a preloader value.
Here, the preloader value is zero. 

The formula for the preloader value, for a required time (in seconds) is:

TCNTn = 65535 – (16x1010xTime in sec / Prescaler Value)

To calculate the preloader value for timer1 for a time of 2 Secs is:

TCNT1 = 65535 – (16x1010x2 / 1024) = 34285

 
 
------------------------------------------------- 
 These commands need to be placed outside the void setup() and void loop()
functions
 // ======================================================
ISR(TIMER0_COMPA_vect){  
   //this is for timer0
   //change the 0 to 1 for timer1 and 2 for timer2 
 // you would place all your timer commands here.
}
// =============================================== 
ISR stands for Interrupt Service Routine. 
TIMER1_COMPA_vect - this is your TIMER1/compare match interrupt.
When the TIMER1 matches the OCR1A, (ie: compare match interrupt == OCR1A)
an interrupt is generated. 
If we were using timer1 the commands would looks like this:
 ISR(TIMER1_COMPA_vect){


//this is for timer1 // you would place all your timer commands here. 
}
For the record there are three types of interrupts.
1. Compare Match interrupt (TIMER1_COMPA)
   These are good if you wish to toggle a pin or read from a sensor at precise
   regular intervals 
2. Overflow interrupt (TIMER1_OVF)
   Here, the timer clocks over 65535 ticks for timer1 and 255 ticks for timer 0&2 .  
3. Input capture interrupt (TIMER1_CAPT) 
   If a logic level change occurs on a specific pin , an input capture interrupt
   is generated. These are great if you want to measure the time between pulses
   or measure the frequency of an unknown signal.
// ================================================== 
 Below is an example of code using timer interrupts.
This uses timers 0,1 & 2. It works on the Arduino Uno.
// =========================================== 
 //timer interrupts
//by Amanda Ghassaei
//June 2012


/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
*/



//this code will enable all three arduino timer interrupts.
//timer0 will interrupt at 2kHz
//timer1 will interrupt at 1Hz
//timer2 will interrupt at 8kHz

//storage variables
// these are used in the timer command section at the end of the code
boolean toggle0 = 0;
boolean toggle1 = 0;
boolean toggle2 = 0;

void setup(){
  
  //set pins as outputs
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(13, OUTPUT);

cli();//stop interrupts

//set timer0 interrupt at 2kHz
  TCCR0A = 0;// set entire TCCR2A register to 0
  TCCR0B = 0;// same for TCCR2B
  TCNT0  = 0;//initialize counter value to 0
  // set compare match register for 2khz increments
  OCR0A = 124;// = (16*10^6) / (2000*64) - 1 (must be <256)
  // turn on CTC mode
  TCCR0A |= (1 << WGM01);
  // Set CS01 and CS00 bits for 64 prescaler
  TCCR0B |= (1 << CS01) | (1 << CS00);   
  // enable timer compare interrupt
  TIMSK0 |= (1 << OCIE0A);

//set timer1 interrupt at 1Hz
  TCCR1A = 0;// set entire TCCR1A register to 0
  TCCR1B = 0;// same for TCCR1B
  TCNT1  = 0;//initialize counter value to 0
  // set compare match register for 1hz increments
  OCR1A = 15624;// = (16*10^6) / (1*1024) - 1 (must be <65536)
  // turn on CTC mode
  TCCR1B |= (1 << WGM12);
  // Set CS12 and CS10 bits for 1024 prescaler
  TCCR1B |= (1 << CS12) | (1 << CS10);  
  // enable timer compare interrupt
  TIMSK1 |= (1 << OCIE1A);

//set timer2 interrupt at 8kHz
  TCCR2A = 0;// set entire TCCR2A register to 0
  TCCR2B = 0;// same for TCCR2B
  TCNT2  = 0;//initialize counter value to 0
  // set compare match register for 8khz increments
  OCR2A = 249;// = (16*10^6) / (8000*8) - 1 (must be <256)
  // turn on CTC mode
  TCCR2A |= (1 << WGM21);
  // Set CS21 bit for 8 prescaler
  TCCR2B |= (1 << CS21);   
  // enable timer compare interrupt
  TIMSK2 |= (1 << OCIE2A);


sei();//allow interrupts

}//end setup

ISR(TIMER0_COMPA_vect){//timer0 interrupt 2kHz toggles pin 8
//generates pulse wave of frequency 2kHz/2 = 1kHz 
//(takes two cycles for full wave- toggle high then toggle low)
 if (toggle0){
    digitalWrite(8,HIGH);
    toggle0 = 0;
  }
  else{
    digitalWrite(8,LOW);
    toggle0 = 1;
  }
}

ISR(TIMER1_COMPA_vect){//timer1 interrupt 1Hz toggles pin 13 (LED)
//generates pulse wave of frequency 1Hz/2 = 0.5kHz 
//(takes two cycles for full wave- toggle high then toggle low)
 if (toggle1){
    digitalWrite(13,HIGH);
    toggle1 = 0;
  }
  else{
    digitalWrite(13,LOW);
    toggle1 = 1;
  }
}
  
ISR(TIMER2_COMPA_vect){//timer1 interrupt 8kHz toggles pin 9
//generates pulse wave of frequency 8kHz/2 = 4kHz 
//(takes two cycles for full wave- toggle high then toggle low)
 if (toggle2){
    digitalWrite(9,HIGH);
    toggle2 = 0;
  }
  else{
    digitalWrite(9,LOW);
    toggle2 = 1;
  }
}


void loop(){
  //do other things here
}
// ============================================================== 
Links
+ https://circuitdigest.com/microcontroller-projects/arduino-timer-tutorial
+ https://www.youtube.com/watch?v=2kr5A350H7E 
 

Thursday, 15 December 2016

El Jadida - Morocco

El Jadida or al-Jadida




Its a port city on the Atlantic coast of Morocco, located 100 km south of the city of Casablanca,




somewhat of an off-the-beaten-track destination 




Take a stroll through the old Portuguese City



 churches and synagogues sit close to mosques,


 the UNESCO-listed Fortress of Mazagan is one of the country’s best-preserved coastal fortresses,