2022年11月27日日曜日

RaspiOsLite: :gpiozero,,flask,ssh,ads1115adc,pcimager,pip3,aplay/arecord

---------------------------gpiozero,flask-------------------------------------

sudo apt install python3-gpiozero 

sudo pip3 install flask

https://www.denshi.club/parts/2020/12/gpiozero13import-mcp3001mcp3002mcp3004mcp3008.html  :: gpiozero tutorial

---------------ssh,scp-------------------------------------------------------------

fseigojp@fseigojp-PC:~$ ssh -X pi@raspberrypi.local では

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

The ECDSA host key for raspberrypi.local has changed,

and the key for the corresponding IP address 192.168.3.12

has a different value. This could either mean that

DNS SPOOFING is happening or the IP address for the host

and its host key have changed at the same time.

Offending key for IP in /home/fseigojp/.ssh/known_hosts:1

  remove with:

  ssh-keygen -f "/home/fseigojp/.ssh/known_hosts" -R "192.168.3.12"

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that a host key has just been changed.

The fingerprint for the ECDSA key sent by the remote host is

SHA256:ZF2oZwd0xaZPE/PL9JnFWnD5tjpGXWYj+xuL0T5KGvQ.

Please contact your system administrator.

Add correct host key in /home/fseigojp/.ssh/known_hosts to get rid of this message.

Offending ECDSA key in /home/fseigojp/.ssh/known_hosts:3

  remove with:

  ssh-keygen -f "/home/fseigojp/.ssh/known_hosts" -R "raspberrypi.local"

ECDSA host key for raspberrypi.local has changed and you have requested strict checking.

Host key verification failed.

というエラーがでるので

ssh-keygen -f "/home/fseigojp/.ssh/known_hosts" -R "raspberrypi.local"を実施
してからssh pi@192.168.3.12,ssh -X pi@raspberrypi.localで成功した
scp::https://uxmilk.jp/50946にくわしい
ーーーーーーーadafruit ads1115 i2c adconverter ,pip3 ーーーーーーーーーーーーーーーー

https://qiita.com/ekzemplaro/items/1e98e1c9e58bd4d8a95c もうcircuitpythonでないと

いんすとできん(2022年末) 要注意

https://qiita.com/Lovely_030_Dong/items/672e0e98a5de11923f34 

pip3 install and git command install necessary!!

------------------------pc imager これだけではsshできん冒頭を参照------------------------------------

pc image writeのときに無線Lan,sshの設定が必要 設定印を操作

http://www.n-mmra.net/audio/raspi-os-ver/raspi-os-ver.htmlを参照

------------------aplay/arecord------------------------------------------------------------------------

 https://qiita.com/tukiyo3/items/524b435ffaf61199f434

https://netlog.jpn.org/r271-635/2019/02/ubuntu_google_home.html :: google assistant

2022年11月23日水曜日

Cとpthreads:: soloFly,soloFly2,soloFly3,soloFlyQueue

 #include <pthread.h>

#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>



#define WIDTH 78   /* スクリーン幅 */

#define HEIGHT 22  /* スクリーン高さ  原文では23だがこうする */

#define MAX_FLY 1  /* 描画するハエの数 */

#define DRAW_CYCLE 50   /* 描画周期(ミリ秒)*/


int stopRequest;  /* スレッド終了フラグ */


/*

 * ミリ秒単位でスリープする

 */

void mSleep(int msec) {

    struct timespec ts;

    ts.tv_sec = msec/1000;

    ts.tv_nsec = (msec%1000)*1000000;

    nanosleep(&ts, NULL);

}


/*

 * 画面クリア

 */

void clearScreen() {

    fputs("\033[2J", stdout); /* このエスケープコードをターミナルに送ると画面がクリアされる */

}


/*

 * カーソル移動

 */

void moveCursor(int x, int y) {

    printf("\033[%d;%dH", y, x); /* このエスケープコードをターミナルに送るとカーソル位置がx,yになる。*/

}


/*

 * カーソル位置保存

 */

void saveCursor() {

    printf("\0337"); /* このエスケープコードをターミナルに送るとカーソル位置を記憶する */

}


/*

 * カーソル位置復帰

 */

void restoreCursor() {

    printf("\0338"); /* このエスケープコードをターミナルに送ると記憶したカーソル位置に戻る */

}


/*

 * ハエ構造体

 */

typedef struct {

    char mark;    /* 表示キャラクタ */

    double x, y;  /* 座標 */

    double angle; /* 移動方向(角度)*/

    double speed; /* 移動速度(ピクセル/秒)*/

    double destX, destY; /* 目標地点 */

    int busy;     /* 移動中フラグ */

    pthread_mutex_t mutex;

} Fly;


Fly flyList[MAX_FLY];


/*

 * ハエの状態を初期化

 */

void FlyInitCenter(Fly *fly, char mark_) {

    fly->mark = mark_;

    pthread_mutex_init(&fly->mutex, NULL);

    fly->x = (double)WIDTH/2.0;

    fly->y = (double)HEIGHT/2.0;

    fly->angle = 0;

    fly->speed = 2;

    fly->destX = fly->x;

    fly->destY = fly->y;

    fly->busy = 0;

}


/*

 * ハエ構造体の利用終了

 */

void FlyDestroy(Fly *fly) {

    pthread_mutex_destroy(&fly->mutex);

}


/*

 * ハエを移動する

 */

void FlyMove(Fly *fly) {

    int i;

    pthread_mutex_lock(&fly->mutex);

    fly->x += cos(fly->angle);

    fly->y += sin(fly->angle);

    pthread_mutex_unlock(&fly->mutex);

}


/*

 * ハエが指定座標にあるかどうか

 */

int FlyIsAt(Fly *fly, int x, int y) {

    int res;

    pthread_mutex_lock(&fly->mutex);

    res = ((int)(fly->x) == x) && ((int)(fly->y) == y);

    pthread_mutex_unlock(&fly->mutex);

    return res;

}


/*

 * 目標地点に合わせて移動方向と速度を調整する

 */

void FlySetDirection(Fly *fly) {

    pthread_mutex_lock(&fly->mutex);

    double dx = fly->destX-fly->x;

    double dy = fly->destY-fly->y;

    fly->angle = atan2(dy, dx);

    fly->speed = sqrt(dx*dx+dy*dy)/5.0;

    if(fly->speed < 2) /* あまり遅すぎると分かりづらいので */

        fly->speed = 2;

    pthread_mutex_unlock(&fly->mutex);

}


/*

 * 目標地点までの距離を得る

 */

double FlyDistanceToDestination(Fly *fly) {

    double dx, dy, res;

    pthread_mutex_lock(&fly->mutex);

    dx = fly->destX-fly->x;

    dy = fly->destY-fly->y;

    res = sqrt(dx*dx+dy*dy);

    pthread_mutex_unlock(&fly->mutex);

    return res;

}


/*

 * ハエの目標地点をセットする

 */

int FlySetDestination(Fly *fly, double x, double y) {

    /* 移動中はセット禁止 */

    if(fly->busy)

        return 0;

    pthread_mutex_lock(&fly->mutex);

    fly->destX = x;

    fly->destY = y;

    pthread_mutex_unlock(&fly->mutex);

    return 1;

}


/*

 * ハエを動かすスレッド

 */

void *doMove(void *arg) {

    Fly *fly = (Fly *)arg;

    while(!stopRequest) {

        /* 行き先がセットされるのを待つ */

        fly->busy = 0;

        while((FlyDistanceToDestination(fly) < 1) && !stopRequest) {

            mSleep(100);

        }

        fly->busy = 1;

        mSleep(1000);

        /* 目標地点の方向をセット */

        FlySetDirection(fly);

        

        /* 行き先に到着するまで移動する */

        while((FlyDistanceToDestination(fly) >= 1) && !stopRequest) {

            FlyMove(fly);

            mSleep((int)(1000.0/fly->speed));

        }

    }

    return NULL;

}


/*

 * スクリーンを描画する

 */

void drawScreen() {

    int x,y;

    char ch;

    int i;


    saveCursor();

    moveCursor(0, 0);

    for(y = 0; y < HEIGHT; y++) {

        for(x = 0; x < WIDTH; x++) {

            ch = 0;

            /* x,yの位置にあるハエがあればそのmarkを表示する */

            for(i = 0; i < MAX_FLY; i++) {

                if(FlyIsAt(&flyList[i], x, y)) {

                    ch = flyList[i].mark;

                    break;

                }

            }

            if(ch != 0) {

                putchar(ch);

            } else if((y == 0) || (y == HEIGHT-1)) {

                /* 上下の枠線を表示する */

                putchar('-');

            } else if((x == 0) || (x == WIDTH-1)) {

                /* 左右の枠線を表示する */

                putchar('|');

            } else {

                /* 枠線でもハエでもない */

                putchar(' ');

            }

        }

        putchar('\n');

    }

    restoreCursor();

    fflush(stdout);

}


/*

 * スクリーンを描画し続けるスレッド

 */

void *doDraw(void *arg) {

    while(!stopRequest) {

        drawScreen();

        mSleep(DRAW_CYCLE);

    }

    return NULL;

}


int main() {

    pthread_t drawThread;

    pthread_t moveThread;

    int i;

    char buf[40],*cp;

    double destX, destY;


    /* 初期化 */

    clearScreen();

  

    FlyInitCenter(&flyList[0], '@');


    /* ハエの動作処理 */

    pthread_create(&moveThread, NULL, doMove, (void *)&flyList[0]);


    /* 描画処理 */

    pthread_create(&drawThread, NULL, doDraw, NULL);

  moveCursor(0,23); // この記述が絶対必要 23行目で行き先をたずねる

    /* メインスレッドは何か入力されるのを待ち、ハエの目標点をセットする */

    while(1) {

        printf("Destination? ");

        fflush(stdout);

        fgets(buf, sizeof(buf), stdin);

        if(strncmp(buf, "stop", 4) == 0) /* "stop"と入力するとプログラム終了 */

            break;

        /* 座標を読み取ってセットする */

        destX = strtod(buf, &cp);

        destY = strtod(cp, &cp);

        if(!FlySetDestination(&flyList[0], destX, destY)) { 

            printf("The fly is busy now. Try later.\n");

            // この事象が起きる場合、これはDestinationo? の上にでる!

        }

    }

    stopRequest = 1;

    

    /* スレッド撤収 */

    pthread_join(drawThread, NULL);

    pthread_join(moveThread, NULL);

    FlyDestroy(&flyList[0]);


    return 0;

}

2022年11月20日日曜日

Raspi③ make,Header-Lib,Nasm/Gasm,UART,I2C-ADC

https://www.miraclelinux.com/tech-blog/0icygs  これが詳しい

http://omilab.naist.jp/~mukaigawa/misc/Makefile.html 総論的

https://blog.foresta.me/posts/gnu_make_syntax/ $^,$@の説明が詳しい

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

https://monozukuri-c.com/langc-headerfile/#toc2 ::header file tutorial

もう一度基礎からC言語 第15回 関数の宣言~ライブラリとヘッダファイル externとモジュール (grapecity.co.jp)

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

https://www.koeki-prj.org/~yuuji/2021/ks-b/asm/asm.html nasm tutorial

 Linuxでアセンブラプログラミング (finito-web.com) 

 nasm -f elf64 hello.asm でないと動かん! 要注意
Assembly Programming Linux (mztn.org) nasm tutorial
ラズパイでアセンブラ、最初の一歩かな? | デバイスビジネス開拓団 (jhalfmoon.com) これはgasの説明
アセンブラに手を出してみる - Qiita これは両方
-------------------------------------------- --------------------------------------------

Raspberry Pi と Arduino をUSBシリアル通信(第一弾) - とある科学の備忘録 (hatenablog.com) も参考になったが基本はraspbery piをはじめように詳述されてる

RaspberryとArduinoをシリアル通信する | (soup01.com) もあったけどね

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

https://riderid.hatenablog.com/entry/2021/07/26/130605


2022年11月6日日曜日

Raspi②サーボ、BME、DHT、ADC、DAC、webiopi@flask、drv8835,pwm、テザリング

赤外線距離OK 超音波もOK


wiringpiのハードウェアPWMでサーボモータ(MG996R)を動かす │ Kazuki Room ~ モノづくりブログ ~ (kazuki-room.com) PYTHON CODE


ラズベリーパイ(ラズパイ)で温度・湿度・気圧をまとめて取得!AE-BME280でIC2通信 | Device Plus - デバプラ pythonでOkとなった

https://www.souichi.club/raspberrypi/temperature-and-humidity/ dht11

たしかクジラpythonでもOKとなった 以下3つはARDUINO

DHT11_Temperature_and_Humidity_Sensor__SKU__DFR0067_-DFRobot 

日々 ほげほげ 研究所: ArduinoでSPI通信を使って8チャンネルADC MCP3208からデータを読み取る (hibihogehoge.com) 

ArduinoとDAコンバータ(MCP4922)を使用したアナログ出力の解説 | srltテクノアーカイブ (srlt-tech.com) 

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

webiopi | Device Plus - デバプラ BLUE BACKS

WebブラウザからRaspberry Pi を操作する(Flask 利用) (hiramine.com) OREILY

じつはKUJIRAHAND本に超簡単なPYTHON CODEがあった これでいいかも。。。。

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

余ってるルータつかうといらんけど。。。。以下に記す

Raspberry Pi 4 をWiFiアクセスポイントにする方法 - ボドテック!! (boardtechlog.com)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

🚘⚫DCモータを制御する - ⭐⭐|ラズベリーパイのレシピ (zenn.dev)

基本的にdigitalWriteでつかおう pin1は電池プラス、pin2,pin,3はモータ1

pin4,pin5はモータ2をつける、pin6は電池マイナスでこれはラズパイのGNDともつなぐ

pin7,pin8はモータ2制御、pin9,pin10はモータ1制御、pin11(mode)はラズパイのGND

最期のpin12は基本ラズパイの3v3につなぐ

(アルディーノでは5VにつないでもOK、ラズパイも多分OKだが、本体壊すおそれあり!)

アルディーノでは電池は単三x2でいけたが、ラズパイもいけた single gear boxにて

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

hardwarePWMがつかえるのはgpio17,gpio18のみ、それ以外のポートでpwm

するにはsoftToneCreate関数がつかえる 以下も参考になった

WiringPi の SoftPWM機能 – Linux & Android Dialy (developapp.net)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ex1.RaspberryPiでAndroidスマホのUSBテザリングを利用する(+ルーター化) - RaspberryPiで各種サーバー作り! - ある阪大生の物置小屋 (ninja-web.net)

スマホのモバイルデータ通信をオン、USB接続してファイル転送モード

プライベートDNSは自動にしておいた(いらんかもしれんが)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

2022年11月3日木曜日

シェークスピア全作品

  37作といわれる 最後の第38作は合作といわれる

史劇 10 items

悲劇 11 item

喜劇 17items

  1. 間違いの喜劇Comedy of Errors、1592年 - 1594年)@
  2. じゃじゃ馬ならしTaming of the Shrew、1593年 - 1594年)
  3. ヴェローナの二紳士The Two Gentlemen of Verona、1594年)@
  4. 恋の骨折り損 Love's Labour's Lost、1594年 - 1595年)
  5. 夏の夜の夢A Midsummer Night's Dream、1595年 - 96年)@
  6. ヴェニスの商人The Merchant of Venice、1596年 - 1597年)@
  7. ウィンザーの陽気な女房たちThe Merry Wives of Windsor、1597年)
  8. 空騒ぎMuch Ado About Nothing、1598年 - 1599年)
  9. お気に召すままAs You Like It、1599年)@
  10. 十二夜Twelfth Night, or What You Will、1601年 - 1602年)
  11. 終わりよければ全てよしAll's Well That Ends Well、1602年 - 1603年)P
  12. 尺には尺をMeasure for Measure、1604年)P
  13. ペリクリーズPericles, Prince of Tyre、1607年 - 1608年)R
  14. シンベリンCymbeline、1609 - 10年)R@
  15. 冬物語The Winter's Tale、1610年 - 1611年)R@
  16. テンペストThe Tempest、1611年)R@
  17. 二人のいとこの貴公子The Two Noble Kinsmen、1613年)R@  これは合作とされる

Rはロマンス劇、Pは問題劇ともカテゴライズされる作品である。

英語で書かれた20世紀の小説ベスト100(モダン・ライブラリー編集部選)

 


1. Ulysses, James Joyce
 『ユリシーズ』 ジェイムズ・ジョイス
@2. The Great Gatsby, F. Scott Fitzgerald
 『華麗なるギャツビー』 F・スコット・フィッツジェラルド
3. A Portrait of the Artist as a Young Man, James Joyce
 『若い芸術家の肖像』 ジェイムズ・ジョイス
@4. Lolita, Vladmir Nabokov
 『ロリータ』 ウラジミール・ナボコフ
@5. Brave New World, Aldous Huxley
 『素晴らしい新世界』 オールダス・ハクスリー
@6. The Sound and the Fury, William Faulkner
 『響きと怒り』 ウィリアム・フォークナー
@7. Catch-22, Joseph Heller
 『キャッチ-22』 ジョセフ・ヘラー
@8. Darkness at Noon, Arthur Koestler
 『真昼の暗黒』 アーサー・ケストナー
9. Sons and Lovers, D. H. Lawrence
 『息子と恋人』D・H・ロレンス
@10. The Grapes of Wrath, John Steinbeck
 『怒りの葡萄』 ジョン・スタインベック
11. Under the Volcano, Malcolm Lowry
 『活火山の下』 ラウリー・マルカム
12. The Way of All Flesh, Samuel Butler
 『万人の路』 サミュエル・バトラー
@13. 1984, George Orwell
 『1984』 ジョージ・オーウェル
14. I, Claudius, Robert Graves
 『私、クラウディウス』 ロバート・グレイヴス
15. To the Lighthouse, Virginia Woolf
 『灯台へ』 ヴァージニア・ウルフ
16. An American Tragedy, Theodore Dreiser
 『アメリカの悲劇』 シオドア・ドライザー
17. The Heart Is a Lonely Hunter, Carson McCullers
 『心は孤独な狩人』 カーソン・マッカラーズ
@18. Slaughterhouse Five, Kurt Vonnegut, Jr.
 『スローターハウス5』 カート・ヴォネガット・Jr.
19. Invisible Man, Ralph Ellison
 『見えない人間』 ラルフ・エリソン
20. Native Son, Richard Wright
 『アメリカの息子』 リチャード・ライト
21. Henderson the Rain King, Saul Bellow
 『雨の王ヘンダソン』 ソウル・ベロー
22. Appointment in Samarra, John O'Hara
 『サマーラの町で会おう』 ジョン・オハラ
23. U. S. A. (Trilogy), John Dos Passos
 『U.S.A.』 ジョン・ドス・パソス
@24. Winesburg, Ohio, Sherwood Anderson
 『ワインズバーグ・オハイオ』 シャーウッド・アンダスン
25. Passage to India, E. M. Forster
 『インドへの道』 E・M・フォースター
26. The Wings of the Dove, Henry James
 『鳩の翼』 ヘンリー・ジェイムズ
27. The Ambassadors, Henry James
 『大使たち』 ヘンリー・ジェイムズ
28. Tender is the Night, F. Scott Fitzgerald
 『夜はやさし』 F・スコット・フィッツジェラルド
29. The Studs Lonigan Trilogy, James T. Farrell
 『スタッズ・ロニガン 三部作』 ジェイムズ・T・ファレル
30. The Good Soldiers, Ford Maddox Ford
 『かくも悲しい話を…』 フォード・マドックス・フォード
@31. Animal Farm, George Orwell
 『動物農場』 ジョージ・オーウェル
32. The Golden Bowl Henry James
 『黄金の盃』 ヘンリー・ジェイムズ
33. Sister Carrie, Theodore Dreiser
 『シスター・キャリー』 シオドア・ドライザー
34. A Hundful of Dust, Evelyn Waugh
 『一握の塵』 イーヴリン・ウォー
@35. As I Lay Dying, William Faulkner
 『死の床に横たわりて』 ウィリアム・フォークナー
36. All the King's Men, Robert Penn Warren
 『すべての王の臣』 ロバート・ペン・ウォーレン
37. The Bridge of San Luis Rey, Thornton Wilder
 『サン・ルイス・レイの橋』 ソーントン・ワイルダー
38. Howard's End, E. M. Forster
 『ハワーズ・エンド』 E・M・フォースター
39. Go Tell it on the Mountain, James Baldwin
 『山にのぼりて告げよ』ジェイムズ・ボールドウィン
@40. The Heart of the Matter, Graham Greene
 『事件の核心』 グレアム・グリーン
@41. The Lord of the Flies, William Golding
 『蠅の王』 ウィリアム・ゴールディング
42. Deliverance, James Dickey
 『脱出』 ジェイムズ・ディッキー
43. A Dance to the Music of Time (series), Anthony Powell
 『時の音楽のなかの舞踏』 アンソニー・パウエル
44. Point Counter Point, Aldous Huxley
 『恋愛対位法』 オールダス・ハクスリー
@45. The Sun Also Rises, Ernest Hemingway
 『日はまた昇る』 アーネスト・ヘミングウェイ
46. The Secret Agent, Joseph Conrad
 『密偵』 ジョセフ・コンラッド
47. Nostromo, Joseph Conrad
 『ノストローモ』 ジョセフ・コンラッド
48. The Rainbow, D. H. Lawrence
 『虹』 D・H・ロレンス
49. Women in Love, D. H. Lawrence
 『恋する女たち』 D・H・ロレンス
50. Tropic of Cancer, Henry Miller
 『南回帰線』 ヘンリー・ミラー
51. The Naked and the Dead, Norman Mailer
 『裸者と死者』 ノーマン・メイラー
52. Pornoy's Complaint, Philip Roth
 『ポートノイの不満』 フィリップ・ロス
53. Pale Fire, Vladmir Nabokov
 『青白い炎』 ウラジミール・ナボコフ
@54. Light in August, William Faulkner
 『八月の光』 ウィリアム・フォークナー
55. On the Road, Jack Kerouac
 『路上』 ジャック・ケルアック
56. The Maltese Falcon, Dashiell Hammett
 『マルタの鷹』 ダシール・ハメット
57. Parade's End, Ford Maddox Ford
 『観兵式の終わり』 フォード・マドックス・フォード
58. The Age of Innocence, Edith Warton
 『エイジ・オブ・イノセンス』 イーディス・ウォートン
59. Zuleika Dobson, Max Beerbohom
 『ズレイカ・ドブソン』 マックス・ビアボウム
60. The Moviegoer, Walker Percy
 『映画狂時代』 ウォーカー・パーシー
61. Death Comes for the Archibishop, Willa Cather
 『死を迎える大司教』 ウィラ・キャザー
62. From Here to Eternity, James Jones
 『地上より永遠に』 ジェイムズ・ジョーンズ
63. The Wapshot Chronicles, John Cheever
 『ワップショット家の人びと』 ジョン・チーヴァー
@64. The Catcher in the Rye, J. D. Salinger
 『ライ麦畑でつかまえて』 J・D・サリンジャー
65. A Clockwork Orange, Anthony Burgess
 『時計じかけのオレンジ』 アントニー・バージェス
@66. Of Human Bondage, W. Somerset Maugham
 『人間の絆』 ウィリアム・サマセット・モーム
@67. Heart of Darkness, Joseph Conrad
 『闇の奥』 ジョセフ・コンラッド
68. Main Street, Sinclair Lewis
 『本町通り』 シンクレア・ルイス
69. The House of Mirth, Edith Warton
 『歓楽の家』 イーディス・ウォートン
70. The Alexandria Quartet, Lawrence Durrell
 『アレクサンドリア四重奏』 ロレンス・ダレル
71. A High Wind in Jamaica, Richard Hughes
 『ジャマイカの烈風』 リチャード・ヒューズ
72. A House for Ms. Biswas, V. S. Naipaul
 『ビスワース氏の家』 V・S・ナイポール
73. The Day of the Locust, Nathaniel West
 『イナゴの日』 ナサニエル・ウェスト
@74. A Farewell to Arms, Ernest Hemingway
 『武器よさらば』 アーネスト・ヘミングウェイ
75. Scoop, Evelyn Waugh
 『スクープ』 イーヴリン・ウォー
76. The Prime of Miss Jean Brodie, Muriel Spark
 『ミス・ブロウディの青春』 ミュリエル・スパーク
77. Finnegans Wake, James Joyce
 『フィネガンズ・ウェイク』 ジェイムズ・ジョイス
78. Kim, Rudyard Kipling
 『少年キム』 ラドヤード・キプリング
@79. A Room with a View, E. M. Forster
 『眺めのいい部屋』 E・M・フォースター
80. Brideshead Revisited, Evelyn Waugh
 『ブライヅヘッドふたたび』 イーヴリン・ウォー
81. The Adventure of Augie March, Saul Bellow
 『オーギー・マーチの冒険』 ソウル・ベロー
82. Angle of Repose, Wallace Stegner
 『アングル・オブ・リポーズ』 ウォレス・ステグナー
83. A Bend in the River, V. S. Naipaul
 『暗い河』 V・S・ナイポール
84. The Death of the Heart , Elizabeth Bowen
 『心の死』 エリザベス・ボウエン
85. Lord Jim, Joseph Conrad
 『ロード・ジム』 ジョセフ・コンラッド
86. Ragtime, E. L. Doctorow
 『ラグタイム』 E・L・ドクトロウ
87. The Old Wives' Tale, Arnold Bennett
 『老妻物語』 アーネルド・ベネット
@88. The Call of the Wild, Jack London
 『野生の呼び声』 ジャック・ロンドン
89. Loving, Henry Green
 『愛する』 ヘンリー・グリーン
90. Midnight's Children, Salman Rushdie
 『真夜中の子供たち』 サルマン・ラシュディ
@91. Tobacco Road, Erskine Caldwell
 『タバコ・ロード』 アースキン・コールドウェル
92. Ironweed, William Kennedy
 『黄昏に燃えて』 ウィリアム・ケネディ
93. The Magus, John Fowles
 『魔術師』 ジョン・ファウルズ
94. The Wide Sargasso Sea, Jean Rhys
 『サルガッソーの広い海』 ジーン・リース
95. Under the Net, Iris Murdoch
 『網のなか』 アイリス・マードック
@96. Sophie's Choice, William Styron
 『ソフィーの選択』 ウィリアム・スタイロン 映画で。。。。
97. The Sheltering Sky, Paul Bowles
 『シェルタリング・スカイ』 ポール・ボウルズ
@98. The Postman Always Rings Twice, James M. Cain
 『郵便配達は二度ベルを鳴らす』 ジェイムズ・M・ケイン
99. The Ginger Man, J. P. Donleavy
 『赤毛の男』 J・P・ドンレヴイ
100. The Magnificient Ambersons, Booth Tarkington
 『すばらしいアンバソン家の人びと』 ブース・ターキントン