Эвалюцыя струн класічнай гітары

Арыгінал Артыкула: www.classicalguitarmidi.com

1. Гісторыя

На гісторыю музычных струнных ўплываюць тры фактары:

1) даступнасць матэрыялаў для вытворца струн і паляпшэнне іх фізічных характарыстык

2) эвалюцыя вытворчага працэсу і тэхналогій, уключаючы якасць

3) эвалюцыя інструментаў

1. Матэрыялы

Спачатку першая струна была зроблена з кішкі. У 14 стагоддзі струна была мананіткай. Затым, у 17 стагоддзі, накручаныя струны абгарнулі больш цяжкім матэрыялам. Накручаныя струны атрымалі шырокае распаўсюджанне ў канцы 17 стагоддзя. Пазней пры вырабе наматаных струн кішку замянілі шоўкам. У 20 стагоддзі з’явілася вялікая разнастайнасць матэрыялаў: нейлонавыя мананіткі і мультыфіламэнты, металы. Зусім нядаўна было ўведзена выкарыстанне сінтэтычных кампазітных валокнаў.

 2. Эвалюцыя інструмента

Дзве асноўныя тэндэнцыі прывялі вытворцаў струн да стварэння новых струн і якасцей:

1. Размер інструменту

2. Колькасць струн: колькасць струн павялічвалася з развіццём інструмента. Да сярэдзіны 15 стагоддзя гітара мела 4 струны, затым 4 падвойныя струны. Каля 1590 года ў ёй было 5 струн, затым 6 струн. У рамантычнай гітары было 6 адзінарных струн.

3. Якасці струны

Якасці струн, якія ўяўляюць сабой асноўную праблему, наступныя:

дынамічныя якасці: лёгкасць і камфорт гульні, хуткая рэакцыя, дакладнасць вібрацыі, адчувальнасць, сталасць якасці гуку ў любым становішчы на шыі

Якасць гук
Істотнымі якасцямі для якасці гуку струны з’яўляюцца: чысты гук, засяроджанасць, багатая гармоніка. Аб’ём. Дакладнасць.

ЛІТАРАТУРА

Інфармацыя пра струнах: Саварэз С.А., Брэмен, 22 мая 1999 года

Саветы па стылю напісання

Арыгінал Артыкула: cs.uky.edu

Тэхнічнае напісанне павінна быць выразным і кароткім. Каляровая фармулёўка і складаныя структуры прапаноў прыводзяць да нечытэльнай прозы. Асабліва цікавыя малюнкі і элегантная канструкцыя робяць чытанне прыемным. Вось спіс прапаноў для добрага стылю.

Будзьце прамымі і моцнымі.

Прастата

Фраза «x можа лічыцца як y» лепш за ўсё замяніць на «x, як y». Канструкцыя «гэта x, які лічыцца як  y», павінна быць запісана як «x, як y». 

Умацаванне

Абстрактныя назоўнікі і дзеепрыслоўі слабей чым дзеепрыслоўі/дзеепрыметнікі, якія ў сваю чаргу слабей чым дзеясловы. Паспрабуйце ўмацаваць слабыя канструкцыі. Напрыклад, “Джон бачыў, як ядуць піцу” трэба пісаць так: “Джон бачыў, як яны елі піцу”. “Асацыяцыя са свіннямі прыводзіць да бруду” павінна быць “Калі вы кладзецеся са свіннямі, вы ўстаеце бруднымі”.

Слабыя прыметнікі і прыслоўі

Шмат прыметнікаў і прыслоўяў мала дадаюць у сэнс сказа. Часта бывае разумна ўбраць прыметнікі “просты”, “асноўны”, “істотны”, а таксама іх прыслоўі. Некаторыя прыметнікі – гэта рэклама без істоты. Калі вы не можаце патлумачыць, што маеце на ўвазе, не выкарыстоўвайце такія словы, як “прасунуты”, “магутны”, “складаны”, “гнуткі” і “асаблівы”.

Слабыя дзеясловы

Некаторыя дзеясловы, асабліва “зрабіць”, “ёсць”, “магчы” і “выконваць”, часта выкарыстоўваюцца ў сітуацыях, калі можна знайсці значна лепшы дзеяслоў. Напрыклад, “свяшчэннік праверыў пасля таго, як пакаянец зрабіў сваё прызнанне”, лепш за ўсё перарабіць у “свяшчэннік правярыў пасля прызнання пакаянца”. Гэтаксама жа, “Я не магу зрабіць вызначэнне на аснове адного сімптому”, лепш напісаць так: “Я не магу зрабіць вызначэнне па адным сімптому”, а яшчэ лепш, “Я не магу вызначыць па адным сімптому. ” Калі вы выявіце, што большая частка вашага значэння знаходзіцца ў вашых назоўніках і вельмі мала ў вашых дзеясловах, вам варта выкарыстоўваць больш моцныя дзеясловы. Сімптомам з’яўляецца празмернае выкарыстанне “ёсць”. Аналагічна, калі дзеянне адбываецца, не кажыце “A можа выконваць B”; замест гэтага скажыце “A выконвае B”.

Двайныя негатывы

Пазбаўляйцесь ад падвойных негатываў. Замяніце “не непадобны” на “аналагічна”. Замяніце “не адрозніваецца ад” на “такі ж, як” або на “тое ж самае”. Часам лепш замяніць “не менш за” на “большае ці роўнае”, нават калі замена з’яўляецца больш складанай.

Рэгістр

Ня будзьце занадта нефармальнымі. Пазбягайце такіх тэрмінаў, як «шмат» ці «добры». Вы павінны быць больш дакладнымі і больш фармальнымі.

Перабіванне самога сябе

Не супярэчце сябе ў тым самым сказе, у якім вы робіце станоўчую заяву. Дачакайцеся наступнай прапановы.

Быць ясным.

Напружанне, настрой і голас

Напружанне: выкарыстоўвайце цяперашні час, калі няма неабходнасці выкарыстоўваць нешта яшчэ. Пры неабходнасці вы можаце выкарыстоўваць ідэальны час: «іншыя паказалі». Не выкарыстоўвайце простае мінулае: «іншыя паказалі».

Настрой: выкарыстоўвайце індыкатыў замест імпэратыву ( «x» або «мы бачым x» замест «звярніце ўвагу, што x» або «нагадаць, што x»), што прымушае чытача рабіць пэўныя крокі. «X» ў большасці выпадкаў аказваецца мацнейшым. Таксама пазбягайце “будзе”; “ёсць”, як правіла, лепш.

Голас: паспрабуйце пазбегнуць пасіўнага залогу. Больш актыўна і больш зразумела.

Лацінскія абрэвіятуры

Часта лепш выкарыстоўваць “напрыклад»” і “гэта значыць” замест “напрыклад,”. і “т. п.” , Аналагічна, “і т. д.” лепш, чым “і т. д.”,,

Тэхнічная тэрміналогія

Калі вы ўводзіце тэхнічны тэрмін для якой-небудзь канцэпцыі, заўсёды выкарыстоўвайце сапраўды такі ж тэрмін кожны раз, калі вам патрэбна гэтая канцэпцыя. Ня ўводзьце сінонімы, за адзіным выключэннем, вы можаце ўвесці стандартную абрэвіятуру. Гэта дапамагае ўзбадзёрыць тэрмін, калі вы яго вызначаеце, каб чытач мог лёгка знайсці азначэнне.

Што, які

Мне здаецца карысным адрозніваць “што” і “які”. Калі падпарадкаваны сказ дапамагае вызначыць назоўнік, які з’яўляецца істотным і не можа быць выдалены, тады мэтазгодна выкарыстоўваць слова “што” і не выкарыстоўваць коскі. Часта слова “што” служыць непасрэдным аб’ектам падпарадкаванага сказа. У гэтым выпадку слова “што” часта можа адмаўляцца. Калі ў падпарадкаваны пункт дадаецца дадатковая інфармацыя невызначальнага характару, гэта значыць круглая дужка і можа быць выдаленая, мэтазгодна выкарыстоўваць “які” і аддзяліць падпарадкаваны пункт коскамі.

Дэманстратыўныя прыметнікі

Словы “гэта”, “гэтыя” і “тое ж самае” заўсёды патрабуюць назоўніка. Прыклад: “Гэты вынік такі ж самы” можна пісаць як “гэтая тэхніка прыносіць вялікую эканомію”. Сапраўды гэтак жа “яно”, “тое” і “яны” заўсёды павінны мець ясную гісторыю.

Выбар слова

Паспрабуйце выбраць найбольш дакладнае слова, якое ахоплівае ваш прадмет. Напрыклад, «валіец» больш спецыфічна, чым «еўрапеец», што больш канкрэтна, чым «чалавек», што больш канкрэтна, чым «млекакормячае».

Некаторыя канкрэтныя сказы:

  • Не блытайце «законныя» (у адпаведнасці з законам) «дзеючыя» (у адпаведнасці з некаторымі абмежаваннямі).
  • Не блытайце «сваю» (Прыналежную форму «гэта») з «гэта» (скарачэнне для “гэтае”).
  • Напішыце «таму што» замест «як», калі вы паказваеце прычынныя адносіны.
  • Не кажыце «пытанне», калі вы маеце на ўвазе «праблему» або «цяжкасць».
  • Не кажыце «як гэтакае», калі вы маеце на ўвазе «таму» або «так».
  • Не выкарыстоўвайце «пакуль» або «тым часам», якія пазіцыянуюць падзеі ў радку часу, каб пазначаць «але», «аднак», «хоць» або «у той час».

Параўнання

Не кажыце, што-то “лепш”, “хутчэй” або больш любым спосабам, калі вы відавочна не пакажаце на тое, што вы яго параўноўваеце. Напрыклад, не кажаце: «Сінтаксіс гэтай мовы палягчае чытанне».

Будзьце граматычнымі.

Цытаты

Цытаты трэба вылучаць дужкамі (дужкі могуць быць квадратнымі) і павінны быць граматычна аддзелены ад сказа.

Калі вы ўяўляеце ідэю, заснаваную на чужой працы, спасылка, якую вы цытуеце, павінна быць “першаснай”: яна павінна прадстаўляць першае апублікаванае выкарыстанне гэтай ідэі, а не згадванне гэтай ідэі ў другаснай крыніцы, такой як Вікіпедыя.

Множны лік

Асобныя словы, утвораныя з грэчаскай і лацінскай моў, маюць няправільныя множнікі. Слова “дадзеныя” як назоўнік адзіночнага ліку набывае прызнанне. Іншыя формы множнага ліку ніколі не павінны выкарыстоўвацца там, дзе патрабуецца адзіночная форма.

Знакі прыпынку

Знакі прыпынку ніколі не папярэднічаюць прабелам, за выключэннем працяжніка, якога, хутчэй за ўсё, варта пазбягаць так ці інакш, і левай дужкі. Знакі прыпынку заўсёды суправаджаюцца адным прабелам, за выключэннем левай дужкі, у якой няма прабелаў, перыяду ў канцы сказа, які мае два прабелы, і двукроп’я, якое часам мае два прабелы. За двукроп’ямі ідуць два прабелу і загалоўная літара, калі ніжэй варта пункт; за імі ідуць адзін прабел і маленькая літара ў адваротным выпадку. Сказ – гэта сказ ці фрагмент, у якім ёсць тэма і дзеяслоў. Незалежныя сказы ў адным сказе падзеленыя кропкамі з коскай. (Прыклад: “Я прыйшоў у сябе; світанак узышоў”.) Залежныя сказы (тыя, якія ўводзяцца спалучэннямі, напрыклад, “з”, “і” ці “але”) падзяляюцца коскамі. Не аддзяляйце тэму і дзеяслоў сказа коскай. Калі тэкст, які цытуецца, павінен заканчвацца знакамі прыпынку, змесціце знакі прыпынку ўнутры двукоссяў, калі цытаваны тэкст не з’яўляецца тэхнічным тэрмінам і знакі прыпынку не павінны лічыцца як частка гэтага тэрміна. Не стаўце знакі прыпынку ў канцы загалоўка раздзела, калі загаловак не ўяўляе сабой цэлы сказ.

Двухслоўныя прыметнікі

Двухслоўныя прыметнікі патрабуюць злучок паміж двумя словамі. Прыслоўе, за якім ідзе прыметнік, не павінна мець злучок (але быць паслядоўным). Ніколі не ставіце злучок паміж прыметнікам і назоўнікам.

Абрэвіятуры

Калі паняцце скарочана, напрыклад, СП для “скарочанае паняцце”, тады, калі СП выкарыстоўваецца ў якасці назоўніка, ён не патрабуе артыкула, але калі ён выкарыстоўваецца як прыметнік, ён патрабуе артыкула, калі ён будзе патрэбны без пераменнага току . Напрыклад, “СП” не патрабуе артыкула, але “метад пераменнага току” патрабуе артыкула. Загаловак, напрыклад “Структура пераменнага току”, не патрабуе артыкула. Гэтае правіла натуральна для носьбітаў англійскай мовы, але вельмі цяжкае для некаторых іншых.

Іншыя падказкі

Дарожныя карты

Вам не трэба казаць, што раздзел 1 робіць х, раздзел 2 паказвае “y” і гэтак далей. Чытач можа звярнуцца да зместу.

З пунтку гледжання

Фраза “з пункту гледжання х” павінна выкарыстоўвацца толькі ў тым выпадку, калі х – вобласць дыскурсу, якая мае тэрміны (гэта значыць спецыяльны слоўны запас) і калі ў наступным абмеркаванні сапраўды выкарыстоўваюцца гэтыя тэрміны. Я аддаю перавагу пазбягаць фразы наогул.

І г.д.

Спісы не павінны спыняцца “і г.д.” . Большасць спісаў пачынаецца з “напрыклад”, таму няма сэнсу паказваць на тое, што існуе больш прыкладаў.

Дзеяслоўныя назоўнікі

Некаторыя назоўнікі могуць ужывацца ў якасці дзеясловаў, напрыклад, “выявіць сцэну”. Аднак пераўтварэнне назоўнікаў у дзеясловы можа прывесці да агідных варварстваў. Напрыклад, “у нас больш няма месца для службовых людзей”, “яго прысутнасць моцна ўплывае на нас” і “на зносіны з кімсьці”. Тое ж абмеркаванне датычыцца прыметнікаў, якія ўжываюцца ў якасці назоўнікаў, і, у большай ступені, да слоў, якія ўжываюцца неналежным чынам. Такое няправільнае выкарыстанне характэрна для наўмыснай невядомасці бюракратычнага жаргону.

Гендэрныя займеннікі

Гендэрныя займеннікі могуць быць цяжка выдаленыя, але гэта варта таго. Часта «яго» або «яе» можна замяніць «або» або «асабістым» або «фiзiчнай асобай». На жаль, замена на “адзін” гучыць дзіўна. Казаць “ён/яна» або замяніць «чалавек» на «чалавека» ўсё яшчэ трывае да большасці чытачоў, хоць гэтая мова становіцца больш прымальным.

Метапатамія (змяненне коней у сярэдняй плыні)

Паспрабуйце не парушаць паралельныя структуры, адхіляючыся ад сінтаксічнага паралелізму. Напрыклад, не пішыце: “Здаецца, добра, гэта добра, і знешні выгляд даволі”. Акрамя таго, не пераключайцеся паміж актыўным і пасіўным, калі вы можаце зрабіць дзве паловы думкі, якія адпавядаюць. Напрыклад, не кажыце: “Жывапісь хат захоўвае іх, а дамы таксама ўпрыгожаныя хмызняком”. Замест гэтага скажыце: “Жывапісь хат іх захоўвае, а хмызняк ўпрыгожвае іх”.

Парэтэтычныя заўвагі

Паспрабуйце пазбягаць душэўных заўваг. Калі іх варта зрабіць, іх, хутчэй за ўсё, варта змясціць у звычайныя прысуды.

Літаратура

Кожны, хто цікавіцца выразным напісаннем, павінен прачытаць ласічнае сачыненне Джорджа Оруэла “Палітыка і англійская мова”. У канцы 10-старонкавай працы Оруэл пералічвае некалькі правілаў. Сярод іх ёсць парады, што англасаксонскія словы часцей бываюць мацнейшымі, чым лацінскія словы, і што трэба парушаць любое правіла, перш чым пісаць нешта варварскае. Добрым даведнікам па англійскай стылі з’яўляецца кніга Фаўлера “Сучаснае выкарыстанне англійскай мовы”. Часта гэта даволі займальна. Кніга Струнда і Уайта, «Элементы стылю», недарагая і добрая. Амерыканскі слоўнік спадчыны абмяркоўвае выкарыстанне англійскай мовы і згодны з маёй прадузятасцю з нагоды “гэтага” і “таго/што”. Кніга Лін Трус “Есць, страляе і сыходзіць” – гэта вельмі цікавая даведка пра знакі прыпынку. Вы таксама можаце паглядзець, як пісаць прапановы у Універсітэце Паўночнай Караліны.

BCPL

Арыгінал даступны на сайце cl.cam.ac.uk

Націсніце тут для розных перакладаў гэтай вэб-старонкі (BCPL.html) на іншыя мовы.

BCPL – гэта простая тыпізаваная мова, распрацаваная ў 1966 годзе Марцінам Рычардсам і ўпершыню рэалізаваная ў Масачусецкім тэхналагічным інстытуце вясной 1967 года.

Машынна-незалежная інтэрпрэтацыя рэалізацыі BCPL даступна бясплатна для прыватных і акадэмічных мэтаў. Калі вы хочаце ўсталяваць яго на свой кампутар, паглядзіце на дыстрыбутыўны файл README і атрымайце копію bcpl.tgz. або bcpl.zip. Памеры і даты стварэння гэтых файлаў можна знайсці ў ФАЙЛАХ.

УВАГА: Ваш браўзэр можа распакаваць bcpl.tgz моўчкі, стварыўшы файл .tar з імем bcpl.tgz. Калі гэта адбудзецца, яго можна выдаліць з дапамогай: tar xvf bcpl.tgz, а не чаканага tar zxvf bcpl.tgz. Ваш браўзэр можа прапанаваць вам запісаць файл на bcpl.tgz.gz. Калі гэта адбудзецца, пераканайцеся, што вы зрабілі мэта bcpl.tgz.

Гэты дыстрыбутыў ўключае ў сябе ўсе зыходныя файлы BCPL і C, калекцыю дэманстрацыйных праграм BCPL і эксперыментальную версію ўласнага кода, якая працуе на машынах Linux і DEC Alpha. Версія для партатыўнага Linux-кампутара GP2X была дададзеная (але знаходзіцца ў стадыі распрацоўкі). Акрамя таго, у хуткім часе для гэтай выдатнай маленькай партатыўнай машыны таксама даступная партатыўная аперацыйная сістэма Cintpos.

Больш старая, больш састарэлая версія BCPL дагэтуль даступная праз BCPL23-4-04.html. Але я больш не рэкамендую вам яго выкарыстоўваць.

Цяперашняя версія нашмат больш сумяшчальная з дыстрыбутывам Cintpos. Асноўнымі зменамі з’яўляюцца выкарыстанне новага кампілятара BCPL з некаторымі пашырэннямі, уключаючы сродак крыжаваных спасылак, змены ў структуры каталогаў і выкарыстанне зменных асяроддзі BCPLROOT, BCPLPATH і BCPLHDRS (замест CINTCODE і BCPLPATH). Версія гэтай сістэмы для Windows CE таксама была абноўлена, і па стане на 13 ліпеня 2004 года яе дыстрыбутыў працуе, па меншай меры, на маім HP 620LX пад кіраваннем Windows CE 2.0.

Бясплатны распаўсюджванне

Гэта распаўсюджванне прадугледжвае наступную агульную структуру каталогаў:

|

*–BCPL          — bcpl.tgz or bcpl.zip, 32-bit Cintcode BCPL

|  |

|  *–cintcode

|  |

|  *–bcplprogs

|  |

|  *–natbcpl

|

*–BCPL64         — bcpl64.tgz or bcpl64.zip, 64-bit Cintcode BCPL

|  |

|  *–cintcode

|  |

|  *–bcplprogs

|  |

|  *–natbcpl    — Пакуль недаступна

|

*–MCPL          — mcpl.tgz or mcpl.zip

|  |                Тыпізаваная мова, звязана з BCPL, ML, C and prolog

|  *–mintcode

|  |

|  *–mcplprogs

|  |

|  *–natmcpl

|

*–Cintpos       — cintpos.tgz or cintpos.zip, a Cintcode interpretive

|  |                версія Tripos Portable Operating System

|  *–cintpos

|

*–Bench         — bench.tgz or bench.zip

|  |                Незалежны ад мовы тэст

|  *–src

|

*–Cobench       — cobench.tgx or cobench.zip

|                   Незалежны ад мовы тэст BCPL style

|                   coroutines

|

*–Tcobench      — tcobench.tgz or tcobench.zip

|                   Незалежны ад мовы тэст, які выкарыстоўвае абодва патоку і

|                   BCPL style coroutines. (Under development)

|

*–VSPL          — vspl.tgz or vspl.zip

                   Поўны кампілятар і інтэрпрэтатар для простага, але

                     Нетрывіяльны мова называецца ВСПЛ. рэалізавана

                     некалькімі рознымі спосабамі, выкарыстоўваючы некалькі розных

                     мовы рэалізацыі, уключаючы BCPL, C і Java.

                     Версія BCPL складае каля 21 старонкі.

Папярэдне скампіляваная версія для Windows ўключана ў стандартны дыстрыбутыў у выглядзе файла os/windows/wincintsys.exe. Яго можна перакампіляваць з дапамогай Microsoft Visual C. Каб запусціць яго, адрэдагуйце файл setupwin32.bat і выканайце яго.

Перавага сістэмы складаецца ў тым, што лёгка генерыраваць дадзеныя, якія адносяцца да спасылках памяці на час. Такія дадзеныя могуць быць выкарыстаны для стварэння карціны выканання праграмы, напрыклад, RASTERps.zip ўтрымлівае дыяграму Postcript памеру A4 для версіі кампілятара BCPL, кампіляваных самастойна.

УВАГА

Гэты дыстрыбутыў з’яўляецца новым і ўсё яшчэ некалькі няпоўным, але нават у гэтым выпадку ён усё яшчэ можа прадстаўляць цікавасць.

Мая хатняя старонка

Марцін Рычардс, апошняя мадыфікацыя 15 лістапада 2011

WEBVIEW: Інтэрнэт-шкала з выкарыстаннем TAIGA

Арыгінал даступны на сайце http://cs.brown.edu/

Агляд

WebView з’яўляецца візуалізацыяй таго, як на сённяшні дзень выкарыстоўваецца Інтэрнэт. Яно прызначана для маніторынгу сайтаў, якія праглядаюцца ў дадзены момант, а таксама для акумулявання інфармацыі з разбіўкай па катэгорыях для змястоўнага (і цікавага) яе адлюстравання. У той жа час, яно з’яўляецца дэманстрацыяй патэнцыялу сістэмы праграмавання TAIGA.

Каб зрабіць гэтую візуалізацыю цікавай і эфектыўнай, нам неабходна, каб людзі ёй карысталіся. Такім чынам, мы рэкамендуем вам загрузіць, усталяваць і запусціць праграмнае забеспячэнне.

Адлюстраванне даных

З пункту гледжання карыстальнікаў, webview – гэта просты скрыпт, які змяшчае катэгарызаванае адлюстраванне таго, што людзі ў цяперашні час праглядаюць. Прыклад адлюстравання даных паказаны ніжэй:

Адлюстраванне даных складаецца з канцэнтрычных кольцаў, кожнае з якіх адлюстроўвае перыяд часу ад адной хвіліны да некалькіх дзён. Кожнае кальцо дзеліцца на ўчасткі, якія адлюстроўваюць асобна ўзятую катэгорыю вэб-старонак (на сённяшні дзень мы выкарыстоўваем класіфікацыю OpenDirectory, але падыдзе любая катэгарызацыі). Катэгорыі размешчаны ў алфавітным парадку ідучы супраць гадзіннікавай стрэлкі з пазіцыі 3 гадзіны (што лагічна, па меншай меры, для матэматыкаў). Колеры з’яўляюцца адвольнымі, але выбраны такім чынам, каб па магчымасці зрабіць максімальную розніцу паміж найбліжэйшымі катэгорыямі. Ўнутры ўчастка кожнай катэгорыі знаходзіцца хвалістая лінія, дзе зашыфравана інфармацыя пра старонкі, якія праглядаюцца ў гэтай катэгорыі. Адлюстраванне даных абнаўляецца штохвілінна або каля таго.

Адлюстраванне даных дае карыстальніку інфармацыю некалькіх відаў. Інтэрвал дугі ў кожнай катэгорыі прапарцыйны колькасці праглядаў (старонак, запытаных браўзэрам) старонак названай катэгорыі за прамежак часу. Адценне ўчастка пазначае катэгорыю; насычанасць колеру адлюстроўвае адносную колькасць праглядаў. Такім чынам, калі інтэрвал ўтрымлівае адносна мала праглядаў (дзе паказчык абапіраецца на колькасць часу, якія ахопліваюць інтэрвалам ў адносінах да ўсёй гісторыі), то ўчастак будзе святлей; калі інтэрвал ўтрымлівае мноства праглядаў, то ён будзе цямней. Сама хвалістая лінія можа несці інфармацыю аб адносным колькасці розных URL-адрасоў за перыяд часу ў частаце паўтаранасці выгібу лініі. Так, напрыклад, калі б усе старонкі, прагледжваемыя ў рамках адной катэгорыі, ставіліся б да аднаго URL, то лінія была б роўнай, а калі б усе яны ставіліся да розных, то лінія была б даволі хвалістай. Таўшчыня лініі выкарыстоўваецца для адлюстравання адноснай колькасці карыстальнікаў, якія праглядаюць старонкі гэтай катэгорыі. Калі б усе прагляды былі зроблены адным карыстальнікам, то лінія была б даволі тонкай; калі ж яны адпавядаюць мноства розных карыстальнікаў, то лінія будзе тоўстай.

Адлюстраванне даных таксама можа несці інфармацыю з дапамогай яркасці участкаў (становячыся цямней) і амплітуды ліній. У карыстальніка маецца магчымасць змяняць розныя ўласцівасці адлюстравання даных з дапамогай адпаведных дыялогавых вокнаў. Гэта ўключае ў сябе: змяненне статыстыкі, звязанай з усімі графічнымі ўласцівасцямі; змена кветак, звязаных з рознымі катэгорыямі; мэппінг катэгорый; змена неаднолькавых інтэрвалаў.

Збор інфармацыі

Каб адлюстраваць інфармацыю аб тым, што адбываецца ў Інтэрнэце, нам неабходна сабраць інфармацыю. Такім чынам, гэтая праграма з’яўляецца шпіёнскім праграмным забеспячэннем. Яна адсочвае гісторыю вашых наведванняў і паведамляе аб прагляданых вамі старонках цэнтральнага сервера, дзе яны класіфікуюцца і дзе фіксуюцца катэгорыі. Аднак праграма не запісвае ідэнтыфікацыйную або асабістую інфармацыю. «Карыстальнікі» прадстаўлены унікальным выпадковым ID, які выкарыстоўваецца выключна для падліку карыстальнікаў. ID з’яўляюцца адвольнымі і не могуць быць отслежены аж да крыніцы (наколькі мне вядома). Шпіёнскае праграмнае забеспячэнне працуе толькі пры запуску праграмы прагляду і толькі для таго карыстальніка, які запускае праграму. Калі вы не верыце ў тое, што адбываецца, то прадастаўляецца зыходнік.

Звярніце ўвагу, што наша ПЗ падыходзіць Windows, Linux і Mac OS/X для Safari, Mozilla, IE і Opera у розных камбінацыях. Калі вы жадаеце зрабіць свой уклад у даныя праекта, але не хочаце запускаць візуалізатар, то мы прадстаўляем скрыпт, які запускае выключна адсочванне гісторыі.

Класіфікацыя

Сістэма ніколі не захоўвае URL або ID карыстальнікаў. Замест гэтага, калі яна даведаецца пра старонку, яна знаходзіць адпаведную катэгорыю і перыядычна захоўвае інфармацыю пра колькасць старонак, карыстальнікаў і URL-адрасоў для кожнай катэгорыі. Сістэма не загружае старонку і не зьвяртаецца да яе для таго, каб знайсці яе катэгорыю. Замест гэтага яна спрабуе знайсці катэгорыю выключна па URL.

Выкарыстоўваючы платформу TAIGA, мы прадстаўляем разнастайную рэалізацыю класіфікатараў. Цяпер мы прадстаўляем тры розных варыянту. Наш першы катэгарізатар выкарыстаў інтэрнэт-сэрвіс Google, запрошваючы ў Google пошук канкрэтнай старонкі і вывучаючы класіфікацыю Open Directory, якую Google вяртае ў якасці выніку. Такі падыход абмежаваны як тым, што Google не хоча, каб мы звярталіся да вэб-службе больш за 1000 разоў на дзень, так і тым, што яны не заўсёды даюць справаздачу аб класіфікацыі нават для адносна распаўсюджаных старонак. Альтэрнатывай з’яўляецца праект  MeURLin. У нас маецца класіфікатар, які звяртаецца да іх дэманстрацыйнай вэб-старонцы (у іх пакуль не настроены вэб-сэрвіс) і атрымлівае вынік. Гэта даволі эфектыўна (з рознай ступенню дакладнасці), але для нашых намераў ўсё ж занадта павольна. Наш трэці класіфікатар счытвае базу даных адкрытых каталогаў пры запуску і стварае дрэва класіфікацыі для URL. Як толькі дрэва пабудавана (што займае 15 хвілін і 2 ГБ памяці), пошук выконваецца даволі хутка. Пры тым, што ўсе тры класіфікатара даступныя і TAIGA можа свабодна выбіраць, які з іх з’яўляецца самым прыдатным ў дадзены момант, і, хутчэй за ўсё, выкарыстоўваецца апошні.

Калі ў каго-небудзь ёсць класіфікатар лепей ці ж такі, які хацелася б паспрабаваць, то я быў бы рады хутка інтэграваць яго ў сістэму. Taiga дазваляе рэалізацыі быць бібліятэкай, сэрвісам тыпу «кліент-сервер» або вэб-сэрвісам.

Захоўванне даных

Мы выкарыстоўваем уласцівасці глабальнай файлавай сістэмы TAIGA для прадастаўлення зыходнага сховішчы інфармацыі. Накопленыя даныя збору інфармацыі перыядычна дадаюцца ў гэты масіў даных. Паколькі гэты масіў патэнцыйна можа станавіцца даволі вялікім, у цяперашні час мы падтрымліваем сістэму файлаў з данымі, дзе файлы звязаны адзін з адным. Асобны сервер прадастаўляецца для ідэнтыфікацыі гэтага файла на вызначаны час запуску, для стварэння новых файлаў (калі файлы даных становяцца занадта вялікімі), а таксама для сувязі файлаў паміж сабой. Гэтая служба будзе запушчана аўтаматычна (калі яна ўжо не запушчана) на апаратнай платформе ў Brown.

Сетка

У аснове гэтага праекта знаходзіцца сістэма TAIGA. Пры запуску візуалізатара на сваёй апаратнай платформе вы таксама запусціце ядро ​​TAIGA. Для забеспячэння сувязі паміж рознымі ядрамі і сэрвісамі Taiga выкарыстоўвае аднарангавы пакет JAXTA. Пры першым запуску вы, верагодна, ўбачыце (па меншай меры, на сённяшні дзень гэта так) дыялогавае акно канфігурацыі JXTA. Калі ўсё добра, то досыць націснуць на «ОК». Калі вы знаёмыя з JXTA  не саромейцеся змяняць розныя налады. Выкарыстоўваючы JXTA, webview павінен быць здольным працаваць унутры брандмаўэраў і на выпадковых апаратных платформах. Калі вы хочаце атрымаць справаздачу ядра TAIGA падчас яго працы на вашым кампутары, то альбо ўсталюеце пераменную асяроддзя TAIGASHOW (для Windows), альбо задайце пераменнай асяроддзя TAIGALOG поўнае імя шляху да адпаведнага файлу справаздачы.

Дакументы

Аб гэтым праекце яшчэ нічога не напісана. Мы цэнім любое ваша азнаямленне з ім і вітаем кожны водгук на выпадак калі мы напішам справаздачу.

Зваротная сувязь

Гэта праграмнае забеспячэнне з’яўляецца (весьма) эксперыментальным. Мы паспрабавалі выканаць мноства розных установак, але ў нас маецца толькі абмежаваны дыяпазон даступных сістэм. Шмат што можа пайсці не па плане: як у ядры і ў дадатку, так і ў сетцы, якая склейвае усё разам. Мы хочам ліквідаваць памылкі, але для гэтага нам трэба ведаць, што не працуе (і, па верагоднасці, што працуе). Мы вітаем усе водгукі, паведамленні аб багах, прапановы, каментары, пытанні і т. п. Электронныя лісты адпраўляйце на адрас [email protected].

Праграмнае забеспячэнне

Калі вы знаходзіцеся ў Brown Computer Science, то апошні выпуск праграмнага забеспячэння можна атрымаць па адрасе /home/spr/ ryview (Y:\home\spr\tryview для Windows).

Калі вы не знаходзіцеся ў сетцы Brown Computer Science, то праграмнае забеспячэнне можна атрымаць з нашага ftp-сервера ў (tar.gz) або (zip) фармаце.

Ўстаноўка простая: скачайце і пашырце праграмнае забеспячэнне. Яго запуск таксама просты: простае выкананне скрыпту runview (або runview.bat для Windows) для таго, каб атрымаць візуалізатар (а для запуску праграмнага забеспячэння прызначанага выключна для маніторынгу выкарыстоўвайце runspy scripts).

Зноў, каб скачаць праграму:

СКАЧАЦЬ webview.distrib.tar.gz

СКАЧАЦЬ webview.distrib.zip

Прырода і сіла матэматыкі

Арыгінал даступны на сайце lehigh.edu

Дональд М. Дэвіс

Гэтая кніга была выдадзена Princeton University Press у снежні 1993 г. У мяккай вокладцы яе ISBN склаў 0-691-02562, але Прынстан прадаў усе іх асобнікі. Яна была апублікавана выданнем Dover Publications ў снежні 2004 года. Новы ISBN – 0-486-43896-1, і яна ацэньваецца ў $ 19,95. Новыя і старыя копіі можна знайсці на сайце amazon.com

У аб’яве выдаўца напісана:

У гэтай займальнай кнізе Дональд Дэвіс тлумачыць неспецыялістам некаторыя найбольш цікавыя ідэі ў матэматыцы, падкрэсліваючы іх філасофскі і гістарычны інтарэс, іх часта дзіўную прыдатнасць і прыгажосць. Тры асноўныя тэмы, якія абмяркоўваюцца, – неэўклідавая геаметрыя з яе прымяненнем да тэорыі адноснасці; тэорыя лікаў з яго прымяненнем да крыптаграфіі; і фракталаў, якія ўяўляюць сабой прымяненне ў мастацтве, сярод іншых абласцей, ранняй матэматычнай працы над ітэрацыяй. Іншыя тэмы ўключаюць уплыў грэчаскай матэматыкі на законы Кеплера аб планетарным руху і тэарэтычную працу, якая прывяла да развіцця кампутараў.

Мяркуючы, што ў чытача ёсць асноўныя асновы алгебры і геаметрыі, Дэвіс абапіраецца на практыкаванні для распрацоўкі некаторых важных канцэпцый. Гэтыя практыкаванні накіраваны на тое, каб павысіць здольнасць чытача да логікі і даць яму магчымасць фактычна пераймаць матэматыку на ўсё больш прасунутым узроўні.

Змест

  • 1. Некаторыя грэчаскія матэматыкі

1.1 Пі і ірацыянальныя лікі: уводзіны ў грэчаскую матэматыку

1.2 Эўклідавая геаметрыя

1.3 Грэчаская матэматыка і Кеплер

  • 2. Неэўклідавая геаметрыя

2.1 Фармальныя сістэмы аксіём

2.2 Папярэднікі неэўклідавай геаметрыі

2.3 Гіпербалічная геаметрыя

2.4 Сферычная геаметрыя

2.5 Мадэлі гіпербалічнай геаметрыі

2.6 Геаметрыя Сусвету

  • 3. Тэорыя лікаў

3.1 Простыя нумары

3.2 Эўклідавы алгарытм

3.3 Арыфметыка кангруэнтнасці

3.4 Тэарэма малой фермы

  • 4. Крыптаграфія

4.1 Некаторыя асноўныя метады крыптаграфіі

4.2 Крыптаграфія адкрытага ключа

  • 5. Фракталы

5.1 Фрактальнае вымярэнне

5.2 Ітэрацыя і кампутэры

5.3 Наборы Мандэльброт і Джулія

Ф а р м а т м а л ю н к а B M P

Арыгінал даступны на сайце paulbourke.net

Увядзенне

Файлы BMP сыходзяць у мінулае (але ўсё яшчэ часта выкарыстоўваюцца) фармат файла для гістарычнай (але ўсё яшчэ часта выкарыстоўваецца) аперацыйнай сістэмы пад назвай “Windows”. Выявы BMP могуць вар’іравацца ад чорна і белага (1 біт на піксель) да 24-бітнага колеру (16,7 мільёна колераў). Хоць выявы можна сціснуць, гэта рэдка выкарыстоўваецца на практыцы і тут мы не будзем разглядаць гэта падрабязна.

Структура

Файл BMP складаецца з 3 альбо 4 частак, як паказана на дыяграме справа. Першая частка – гэта загаловак, за ім ідзе інфармацыйны раздзел, калі малюнак індэксуецца колерам, то вынікае палітра, і апошні з усіх – гэта даныя пікселя. Размяшчэнне даных малюнка адносна sart файла змяшчаецца ў загалоўку. Такая інфармацыя, як шырыня і вышыня малюнка, тып сціску, колькасць колераў, змяшчаецца ў інфармацыйным загалоўку.

Загаловак

Загаловак складаецца з наступных палёў. Звярніце ўвагу, што мы мяркуем, што кароткі int складае 2 байта, int 4 байта, і доўгі int 8 байт. Далей мы мяркуем, што парадак байтаў як для тыповых (Intel) машын. Даўжыня загалоўка складае 14 байт.

typedef struct {

unsigned short int type;                              /* Magic identifier                    */

unsigned int size;                                         /* File size in bytes                    */

unsigned short int reserved1, reserved2;

unsigned int offset;                                      /* Offset to image data, bytes  */

} HEADER;

Карыснымі палямі ў гэтай структуры з’яўляюцца тып поля (павінна быць “BM”), якое з’яўляецца простай праверкай таго, што гэта, верагодна, будзе законным BMP-файлам, , і поле зрушэння, якое дае колькасць байт да атрымання

фактычных даных пікселя (гэта адносна да пачатку файла). Звярніце ўвагу, што гэтая структура не кратна 4-м байтам для тых машын / кампілятараў, якія могуць размяркаваць гэта,  гэтыя машыны звычайна будуць размяшчаць гэтую структуру ад 2 байт да 16, што прывядзе да выраўноўвання будучых выклікаў fread ().

Інфармацыя

Даныя інфармацыі пра выявы, якія вынікаюць далей, складаюць 40 байт у даўжыню, гэта апісана ў структуры, прыведзенай ніжэй.Поля, якія прадстаўляюць найбольшую цікавасць, прадстаўленыя шырынёй і вышынёй малюнка, колькасцю біт на піксель (павінна быць 1, 4, 8 ці 24), лікам плоскасцяў (тут мяркуецца 1) і тыпам сціску (мяркуецца, што тут 0).

typedef struct {

unsigned int size;                              /* Header size in bytes             */

int width,height;                               /* Width and height of image  */

unsigned short int planes;               /* Number of colour planes     */

unsigned short int bits;                    /* Bits per pixel                         */

unsigned int compression;              /* Compression type                 */

unsigned int imagesize;                   /* Image size in bytes               */

int xresolution,yresolution;             /* Pixels per meter                    */

unsigned int ncolours;                     /* Number of colours                */

unsigned int importantcolours;     /* Important colours                 */

} INFOHEADER;

Ніжэй прыведзены тыпы сціску, якія падтрымліваюцца BMP:

  • 0 – без сціску
  • 1 – 8 біт Кадаванне даўжыні 
  • 2 – 4 біт Кадаванне даўжыні 
  • 3 – растравая карта RGB з маскай

Толькі тып 0 (тут не будзе абмяркоўвацца кампрэсія).

24-бітныя даныя выявы

Самыя простыя дадзеныя для чытання – гэта 24-бітныя сапраўдныя каляровыя выявы. У гэтым выпадку даныя выявы вынікаюць адразу пасля загалоўка інфармацыі, гэта значыць няма каляровай палітры. Ён складаецца з трох байт на піксель у парадку b, g, r. Кожны байт дае насычанасць для гэтага каляровага кампанента, 0 для чорнага і 1 для белага (цалкам насычанага).

Індэксаваныя даныя пра колер

Калі малюнак індэксуецца колерам, то адразу пасля загалоўка інфармацыі з’явіцца табліца з колерамі infoheader.ncolours, кожны па 4 байта. Першыя тры байта адпавядаюць кампанентам b, g, r, апошні байт зарэзерваваны / нявыкарыстаны, але, відавочна, можа прадстаўляць альфа-канал. Для 8-бітных малюнкаў шэрага колеру гэты каляровы індэкс, як правіла, будзе проста рампам шэрага адцення. Калі вы робіце сумы …. тады даўжыня загалоўка плюс даўжыня інфармацыйнага блока плюс 4 разы колькасці колераў палітры, якое павінна адпавядаць зрушэнню дадзеных малюнка. Іншымі словамі

14 + 40 + 4 * infoheader.ncolours = header.offset

Зыходны код

Вось крыніца, прадстаўленая Michael Sweet, BITMAP.H, BITMAP.C і BMPVIEW.C.

І некаторыя прыклады майго кода, parse.c і на прыклад  24-бітны rgb BMP файл для тэставання. Звярніце ўвагу, што ні адзін з гэтых сегментаў кода не будзе апрацоўваць усе тыпы файлаў BMP, у прыватнасці, яны не апрацоўваюць сціснутыя файлы BMP. Яны павінны стаць добрай адпраўной кропкай для сустрэтых варыянтаў і для тых, хто хоча пісаць файлы, сумяшчальныя з BMP. З іншага боку, калі ў вас ёсць ці напісаны лепшы апрацоўшчык BMP, то вы можаце падаць тут заяўку для яго дадання.

Уклад Адама Маеўскага, які запісвае па адным біце ў піксельным файле BMP: pf1bit_bmp.c.

Змены ў pf1bit_bmp.c паводле “aleksisto”: mypf1bit_bmp.c

Уклад Гаральда Ходзінса для выпраўлення байтавай упакоўкі, неабходнай для некаторых кампілятараў: bitmap2.h.

Інструкцыя па альтэрнатыўнай наладцы

Арыгінал даступны на сайце sethares.engr.wisc.edu

Уільям А. Сэтарэс

Новыя налады натхняюць на новыя музычныя думкі. Альтэрнатыўныя налады дазваляюць прайграваць галасы і слізгаць паміж акордамі, што звычайна немагчыма. Яны даюць доступ да нестандартных адкрытых радкоў. Гульня знаёмых аплікатур на незнаёмым грыфе – гэта захапляльна – вы ніколі не ведаеце, чаго менавіта чакаць. І адпрацоўка знаёмых рыфаў на незнаёмам грыфе часта падказвае новыя гукавыя ўзоры і варыяцыі. Гэта кіраўніцтва дапамагае вывучыць альтэрнатыўныя спосабы стварэння музыкі. А зараз ёсць інтэрактыўная версія альтэрнатыўнага кіраўніцтва па наладцы.

Інструкцыя па альтэрнатыўнай наладцы паказвае вам, як уставіць гітару ва ўсе папулярныя альтэрнатыўныя налады, паказвае, пастаноўку пальцаў і акорды, як гуляць гамы і графічна адлюстроўвае ноты, калі яны з’яўляюцца на грыфе. Абмяркоўваюцца моцныя бакі і абмежаванні кожнай налады, што дазваляе атрымаць максімальную аддачу ад вашых музычных даследаванняў. Інструкцыя па альтэрнатыўнай наладцы падзелена на чатыры асноўныя раздзелы, якія адпавядаюць чатыром асноўным тыпам альтэрнатыўных налад: адкрытай, інструментальнай, рэгулярнай і “спецыяльнай“.

Пазнаёмцеся з гэтымі альтэрнатыўнымі музычнымі сусветамі з дапамогай Інструкцыі па альтэрнатыўнай наладцы, дружалюбных акордаў і схем гам. Чаго вы чакаеце… перанастрой гэту гітару зараз.

Як выкарыстоўваць Інструкцыю па альтэрнатыўнай наладцы

Круг нататак

Транспаніраванне акордаў

Прыклад у Open G

Аб’яднанне акордаў

Выкарыстанне актавы

Чатыры хітрасці 

Набор акордаў зробленыя з

Як стварыць акорды і гамы

Што пра іншыя налады?

Табліца інтэрвалаў акордаў

Папярочныя налады

Табліца інтэрвалаў маштабу

Алфавітны спіс па наладзе

Адкрытыя налады

У адкрытых наладах шэсць струн наладжваюцца на просты акорд. Гэта дазваляе лёгка гуляць незвычайныя акордавыя спалучэнні і цікавыя кластары танальнасцей, выкарыстоўваючы струны “беспілотны” і “ўстойлівы”. 

Слайдовая тэхніка і гармоніка цудоўны ў адкрытых наладах, таму што вы можаце прайграваць поўныя шэсць струнных акордаў. І вы можаце гуляць акорды толькі адным пальцам!

Інструментальныя налады

Інструментальная настройка заснавана на наладцы сучасных і гістарычных інструментаў, такіх як мандаліна (дапоўненая для шасці струнных гульняў), шаранго, цытрын, уд і шмат іншых. Гульцы гэтых інструментаў могуць палічыць настройку і дыяграмы акордаў карыснымі, але гітарысты знойдуць некалькі цудоўна “альтэрнатыўных” спосабаў налады.

Звычайныя налады

У звычайных наладах струны наладжваюцца раўнамерна па грыфе. Гэта дазваляе перамяшчаць групы акордаў уверх і ўніз па грыфе, як звычайныя акорды, а таксама у бок па ўсім грыфе. Вывучыце некалькі формаў акордаў у звычайнай наладзе, і вы ведаеце сотні акордаў! Оле Кіркебі вельмі захоплены асноўнай трэцяй настройкай, і джазавая вэб-старонка Ральфа Пата мае вялікую калекцыю налад.

Спецыяльныя налады

Спецыяльныя налады – гэта разнастайная калекцыя налад, большасць з якіх была створана і / альбо папулярызавана ў апошнія гады рознымі спевакамі і аўтарамі песень.

Вы можаце загрузіць поўную Інструкцыя па альтэрнатыўнай наладцы з зручнымі ўкладкамі pdf і ўсім (каля 2 Мбайт).

Шукаеце сапраўды дзікіх налад? А што з гітарай, адаптаванай на 19 тонаў?

… альбо зайдзіце на маю дамашнюю старонку для атрымання дадатковай інфармацыі.

Герман Холлерыт

Арыгінал даступны на сайце columbia.edu

Калумбійскі універсітэт, доктар філасофіі, 1890 г.

Фота: IBM.

Герман Холлерыт шырока вядомы як бацька сучасных аўтаматычных вылічэнняў. Ён выбраў перфараваную карту ў якасці асновы для захоўвання і апрацоўкі інфармацыі, і ён стварыў першыя машыны для табліравання і сартавання перфакальных карт, а таксама першы клавишны перфаратар і заснаваў кампанію, якая ператварылася ў IBM. Канструкцыі Холлерыта панавалі ў вылічальнай архітэктуры амаль 100 гадоў.

Атрымаўшы ступень інжынера шахты у 19 гадоў, Холлерыт працаваў над перапісам у 1880 г. у ЗША, працаёмкай і схільнай да памылак аперацыяй, якая патрабавала механізацыі. Пасля некалькіх першапачатковых выпрабаванняў з папяровай стужкай  ён уладкаваўся на перфакаваныя карты (упершыню ў станку жакарда) для запісу інфармацыі і распрацаваў спецыяльнае абсталяванне – табулятар і сартавальнік – для падліку вынікаў. Яго праекты перамаглі ў конкурсе перапісу насельніцтва ЗША у 1890 г., выбраныя за іх здольнасць лічыць аб’яднаныя факты. Гэтыя машыны скарацілі дзесяцігадовую працу да трох месяцаў (некаторыя крыніцы прыводзяць розныя лічбы, ад шасці тыдняў да трох гадоў),  зэканоміўшы у 1890 г. падаткаплацельшчыкам пяць мільёнаў долараў і зарабіўшы ў Калумбійскскам універсітэце кандыдата у 1890 годзе. Гэта была першая цалкам паспяховая сістэма апрацоўкі інфармацыі, якая замяніла ручку і паперу. Машыны Холлерыта таксама выкарыстоўваліся для правядзення перапісаў у Расіі, Аўстрыі, Канадзе, Францыі, Нарвегіі, Пуэрта-Рыка, на Кубе і на Філіпінах, а таксама ў час перапісу насельніцтва ЗША 1900 года. У 1911 годзе кампанія Холлерыта аб’ядналася з некалькімі іншымі, каб сфармаваць кампанію Computing-Tabulating-Recording Company (CTR), якая ў 1924 году змяніла назву на International Business Machines Corporation (IBM).

Паміж перапісамі 1880 і 1890 гадоў Холлерыт правёў год (1882) на машынабудаўнічым факультэце ў Масачусецкім тэхналагічным інстытуце, а потым у сярэдзіне 1880-х гадоў працаваў над тармазнымі сістэмамі чыгунак, атрымаўшы некалькі патэнтаў на электрамагнітныя пнеўматычныя тармазы і вакуумныя тармазы,  а таксама што тычыцца гафрыраваных металічных труб

Ідэі Холлерыта аб аўтаматызацыі перапісу выкладзены каротка ў Патэнце № 395,782 ад 8 студзеня 1889 года: “Апісаны тут метад складання статыстыкі, які складаецца ў запісе асобных статыстычных артыкулаў, якія адносяцца да асобы, адтулінамі або спалучэннямі прабітых у лістах адтулін з электрычна неправоднага матэрыялу, які мае пэўнае стаўленне адзін да аднаго і да стандарту, а затым падлічвае або падлічвае такія статыстычныя элементы асобна альбо ў спалучэнні пры дапамозе механічных лічыльнікаў, якія працуюць пры дапамоге электрамагніта, схемы, праз якія кіруюцца перфараваныя лісты, па сутнасці як і з мэтай, выкладзенай”.

Уклад Холлерыта ў сучасныя вылічэнні… “невылічальны” 🙂 Ён не спыняўся на сваёй першапачатковай машыне табліцы і сартаванні 1890 года, але вырабіў мноства іншых інавацыйных новых мадэляў. Ён таксама вынайшаў першы аўтаматычны механізм падачы карткі, першы клавишны перфаратар і зрабіў тое, што было, мабыць, першым крокам на шляху да праграмавання, увёўшы ў яго табулятар тыпу I панэль праводкі у 1906 г., што дазваляе ёй рабіць розныя працы, не будуючы перабудаваны! (Зборнік табліцы 1890 г. быў надзейны для працы толькі на перапісных картах 1890 г.) Гэтыя вынаходкі былі асновай сучаснай апрацоўкі інфармацыі.

__________________________________________________________________________

* Аўстрыйская біяграфія Холлерыта [44] вынікае, што доктарская ступень Холлерыта была ганаровай:

“Здавалася, толькі тое, што школа, якой ён так даўны, і якой ён заслугоўвае, мусіць прысвоіць яму ганаровую ступень. І сапраўды, запісы Калумбіі паказваюць, што ў чэрвені [1890 г.] у школе ён пачаў займацца і фактычна, стаў доктарам Холлерытам “. (с.56)

Аднак рэестр выпускнікоў Калумбійскага універсітэта 1932 г. [48] паказвае, што Холлерыт атрымаў ступень доктара навук, а таксама заяўляе, што кандыдат навук і ніколі не была адзначана ганаровай ступенню. У пратаколе факультэта шахты, 3 красавіка 1890 г., гаворыцца (што тычыцца адсутнасці Галерыта папярэдняга атэстата навучання ў доктарскай праграме): “Пастаноўлена, што апякунскі савет з просьбай адмовіцца ад гэтага патрабавання ў выпадку г-на. Холлерыта і надаць яму ступень доктара філасофіі па працы, якую ён выконваў “, і наступнай пастановай апекуноў ад 7 красавіка 1890 г. аб наданні яму ступені.

_________________________________________________________________________

Узнагароды:

  • Медаль д’Ор, экспазіцыя Universelle de 1889.
  • Медаль Эліата Крэсана з Інстытута Франкліна Філадэльфіі, 5 лютага 1890 года.
  • Бронзавая медаль, калумбійская экспазіцыя ў свеце, 1892 г.
  • Зал славы Нацыянальных вынаходнікаў, 1990 год.

Выданні:

  • Холлерыт, Герман, “Электрычная сістэма табліравання“, Квартал, Школа шахтаў Калумбійскага універсітэта, т. № 16 (красавік 1889 г.), с.238-255.
  • Холлерыт, Герман, У сувязі з электрычнай сістэмай табліцы, якая была прынятая ўрадам ЗША для працы бюро перапісу. Кандыдат навук. дысертацыя Шахцёрскай школы Калумбійскага універсітэта (1890).
  • Холлерыт, Герман, “Электрычная таблічная машына”, Часопіс Каралеўскай статыстычнай асацыяцыі, Т.5.5 Частка 4 (снежань 1894 г.), с.678-682.

Літаратура:

  • “Метад статыстыкі Холлерыта”, “Ілюстраваная газета Франка Леслі“, 12 кастрычніка 1889 г., с.182.
  • Scientific American, Vol.63, № 9, 30 жніўня 1890 года.
  • Перапіснае бюро ЗША, адзінаццаты перапіс Злучаных Штатаў (1890), 25 тамоў.
  • Martin, T.C., “Падлік нацыі па электрычнасці”, электрычны інжынер, Нью-Ёрк, 11 лістапада 1891 года.
  • “Электрычная таблічная машына Холлерыта”, “Чыгуначны веснік“, 19 красавіка 1895 года.
  • Брэйтмейер, Ота У., ліст (прафесар Калумбіі) Бэн Вуд, 30 мая 1930 г. (3-старонкавая біяграфія Галерыта).
  • Аўстрыйцы, Джэфры, Герман Холлерыт: Забыты гігант апрацоўкі інфармацыі, Калумбійскі універсітэцкі друк (1982).
  • Башэ, Чарльз Дж .; Лайл Р. Джонсан; Джон Х. Палмер;П’ю, Эмерсан У., Утварэнне, IBM Early Computers, MIT Press (1985). [4]
  • Ліст Рычарда Холлерыта да Роберта Дж. Хакета, рэдактар ​​часопіса Калумбійскага універсітэта, 15 сакавіка 1990 года.
  • П’ю, Эмерсан У., будаўніцтва IBM: фарміраванне прамысловасці і яе тэхналогіі, The MIT Press (1995) [40]
  • Імэс, Чарльз і Рэй, кампутарная перспектыва: перадумовы эпохі камп’ютэраў, Гарвардскі універсітэцкі друк. Першае выданне 1973; Другое выданне 1990 г. [103].
  • Truesdell, Leon E., “Развіццё табліцы перфаратарнай карткі ў бюро перапісу 1890-1940 гадоў”, Упраўленне друку ўрада ЗША (1965).

Спасылкі на месцы:

Знешнія спасылкі:

E – K e r m i t

Арыгінал даступны на сайце kermitproject.org

Кампактны, хуткі, надзейны, партатыўны пратакол перадачы файлаў Kermit для ўбудавання

Версія: 1.7

Дата: 6 чэрвеня 2011 г.

Гэта старонка абноўлена: 9 красавіка 2019 года

Аб’ява з адкрытым зыходным кодам: 30 сакавіка 2011 года з версіяй 1.6 E-Kermit  выпускаецца “як ёсць” у адпаведнасці з Revised 3-Clause BSD License.

Змест

  1. ПРАГРАММА КІРАВАННЯ
  2. ПЕРАДАЧА ФАЙЛАЎ
  3. ЗЫХОДНЫ КОД
  4. ВЕРСІЯ UNIX
  5. ПЕРАНОС НА НОВУЮ ПЛАТФОРМУ
  6. АДЛАДКА
  7. ГІСТОРЫЯ РЭЛІЗАЎ
  8. СКАЧАЦЬ

EK (Embedded Kermit, E-Kermit) – гэта рэалізацыя пратакола перадачы файлаў Kermit, напісанага ў ANSI C і прызначана для ўбудавання ў прылады і прашыўкі, выкарыстання ў прыкладанне ў рэжыме рэальнага часу або для стварэння DLL і бібліятэк. EKSW – гэта новая версія E-Kermit, якая ўключае ў сябе сапраўдную рассоўную пакетную перадачу. EK і EKSW павінны быць узгоднены ў адзіную базу кода, але да гэтага часу гэтага не адбылося.

Што E-Kermit робіць

EK выконвае толькі дзве функцыі: адпраўка файлаў і атрыманне файлаў. Ён кампактны, партатыўны і  выкарыстоўваецца паўторна. На SPARC (RISC), kermit.o складае каля 25K. На Intel (CISC) гэта каля 15K. Памяншаючы памеры буфера і ухіляючы дадатковыя або непажаданыя функцыі, можна дамагчыся меншых памераў.

Што E-Kermit НЕ РОБІЦЬ

EK не ўключае функцыі кліент/сервер; мову праграмавання каманд або скрыптоў; пераўтварэнне знакаў; транспартнае шыфраванне; або любой формы сувязі або ўводу/вываду файлаў. Ён не набірае мадэмы, не ўстанаўлівае сувязі, у яго няма ўбудаванага стэка TCP/IP. Калі вам патрэбныя гэтыя функцыі, вам варта выкарыстоўваць поўную праграму Kermit, такую як C-Kermit  або  Kermit 95.

EK не з’яўляецца самім прыкладаннем, гэта падпраграма, якая выклікаецца з вашага асноўнага прыкладання. Ён карысны толькі распрацоўшчыкам, якія павінны даць  прыкладанне або выклікаць сераду, а таксама падпраграмы ўводу/вываду файлаў і паведамленняў. У сваю чаргу вызав серады павінен ажыццяўляць і наладжваць сувязь, калі такая неабходна і яшчэ не адкрыта. Для Unix прадастаўляецца прыкладны вызав серады і падтрымка ўводу/вываду.

Кліенты адаптавалі EK да розных серадах і платформах, уключаючы Palm Pilot, розныя віды абсталявання для тэхнікаў (напрыклад, для дыягностыкі і абслугоўвання вежаў сотавых тэлефонаў), і часам яны ўносяць свае адаптацыі або працэдуры ўводу/вываду, і мы можам зрабіць іх даступнымі на строгай основе. Мы не можам падтрымліваць код, які прадстаўляецца кліентам; такім чынам (напрыклад), калі выпушчаная новая версія EK, модулі, дададзеныя карыстальнікам, неабавязкова абнаўляюцца. Код, які ўносіць кліент, уключае:

  • Microsoft Windows 9x/ME/NT/2000/XP/Vista/7 serial-port і ўвод/вывад файла для EK 1.3 і больш позняй версіі.
  • Wind River VxWorks для EK 1.1
  • EK 1.2 пераведзены на Java.

EK ўключае наступныя функцыі Kermit Protocol:

  • Доўгія пакеты
  • Рассоўныя вокны з аднаўленнем памылак Go-Back-to-N (праўдзівы выбарачны паўтор у EKSW).
  • Сціск з паўтарэнннем
  • Прэфікс упраўляючага сімвала і наадварот
  • 8-бітны прэфікс (для перадачы 8-бітных даных на 7-бітныя спасылкі) (= парытэт)
  • Пакеты атрыбутаў (тып, размер і дата)
  • Адпраўка і атрыманне аднаго або некалькіх файлаў.
  • Аўтаматычнае пераключэнне паміж тэкставымі і бінарнымі рэжымамі.
  • Усе тры тыпу праверкі блокаў (6- і 12-бітная кантрольная сума, 16-бітная CRC).
  • Справаздачы аб стане спраў (стан пратаколу, імя файла, размер, адзнака часу, байты і гэтак далей).
  • Адмена перадачы любога з бакоў.

Наступныя функцыі Kermit Protocol якія не рэалізаваны:

  • Рассоўныя вокны з выбарачнай паўторнай перадачай (акрамя EKSW)
  • Наборы знакаў
  • Блакаванне змяненняў
  • Кліент/сервер

Тайм-аўты будут адказныя за праграму Kermit на іншым канцы злучэння або, калі неабходна, у самым E-Kermit, які залежыць ад платформы працэдуры чытання пакетаў, якую вы напішаце.

Пачынаючы з версіі 1.5, E-Kermit ўключае ў сябе канструкцыі прэпрацесара, якія дазваляюць выключаць розныя функцыі, такія як доўгія пакеты, рассоўныя вокны і праверкі блокаў больш высокага парадку для дасягнення найменшага магчымага аб’ёму памяці, а таксама могуць быць створаны ў канфігурацыі толькі для прыёму.

ПРАГРАММА КІРАВАННЯ

EK прызначаны для працы ў сумеснай шматзадачнай асяроддзі, але не патрабуе такога асяроддзя. Праграма кіравання клапоціцца пра планаванне. Вось што павінна (і/або можа) рабіць праграма кіравання:

  • Пры жаданні адкрыць камунікацыйныя прылады, калі яны ёсць.
  • Пры жаданні ўсталяваць камунікацыйныя прылады, калі яны ёсць, у «пакетны рэжым».
  • Ініцыялізаваць kermit struct з патрэбнымі працоўнымі параметрамі.
  • Выклікаць kermit (K_INIT, …), каб Kermit ініцыялізаваў сябе.
  • Пры адпраўцы файлаў выклікаць kermit (K_SEND), каб пачаць перадачу.

(Калі E-Kermit атрымлівае файлы, ён пасіўна чакае першага пакета ад адпраўніка файла, таму ён проста ўваходзіць у цыкл пакета.) У цыкле пакетаў E-Kermit:

  • Атрымлівае буфер  і счытвае яго ўваходны пакет.
  • Правярае перапыненне карыстальніка.
  • Выклікае kermit (K_RUN, …), каб зрабіць наступны крок у пратаколе.
  • Робіць усё, што хоча (напрыклад, выконвае іншыя задачы).
  • Выходзіць ці працягвае цыкл на аснове кода вяртання kermit().

Кожны раз, калі праграма кіравання выклікае функцыю kermit(), гэта дае дазвол на апрацоўку аднаго пакета; такім чынам, адзін пакет = адзін зрэз. Калі праграме кіравання больш няма чаго рабіць, яна проста апрацоўвае пакеты бесперапынна, як звычайная праграма Kermit. Знаходзячыся ў цыкле перадачы дадзеных, кожны званок kermit() вяртае структуру, якая змяшчае:

  • Цяперашні стан пратакола;
  • Цяперашняе імя файла;
  • Размер файла, калі ён вядомы, або -1;
  • Адзнака часу файла, калі яна вядомая;
  • Колькасць перададзеных байтаў.

Калі гэта будзе зроблена, праграма кіравання:

  • Аднаўляе і (пры неабходнасці) закрывае камунікацыйная прылада.

Коды функцый, з дапамогай якіх праграма кіравання можа выклікаць kermit():

K_INIT            —   Ініцыялізацыя структур даных.

K_SEND            —   (Толькі адпраўка) — ініцыяваць адпраўку.

K_RUN              —   Запусціць пратакол.

K_STATUS        —   Вяртанне справаздачу аб стане ў структуры k_response.

K_QUIT            —   Выйсці неадкладна і ціха.

K_ERROR          —    Адправіць пакет памылак, а затым выйсці.

Коды вяртання функцыі kermit():

X_OK               —   ОК, пратакол актыўны.

X_DONE           —   ОК, пратакол завершаны.

X_ERROR         —   Фатальная памылка.

X_STATUS       —   Зварот статусу ў адказ на K_STATUS.

(На самай справе статус перанастройваецца пры кожным званку.) Коды стану пратакола:

-1                     —   Фатальная памылка

 0                     —   прыёмнік (пратакол не працуе)

 1                     —   Прыёмнік чакае пакет S

 2                     —   Прыёмнік чакае пакет F або B

 3                     —   Прыёмнік чакае пакета A або D

 4                     —   Прыёмнік чакае пакета D або Z

10                    —   Адпраўнік (пратакол не працуе)

11                    —   Адпраўнік адправіў пакет S (пачатак)

12                    —   Адпраўнік адправіў F-пакет (імя файла)

13                    —   Адпраўнік адправіў пакет (атрыбуты)

14                    —   Адпраўнік адправіў пакет D (даныя)

15                    —   Адпраўнік адправіў пакет Z (EOF)

16                    —   Адпраўнік адправіў пакет B (EOT)

ПЕРАДАЧА ФАЙЛАЎ

Паколькі EK прызначаны ў першую чаргу для ўбудавання, ён не выкарыстоўвае струменевыя або (за выключэннем EKSW) праўдзівыя рассоўныя вокны (хоць вялікая частка кода рассоўных вокнаў ёсць). Гэта адбываецца па наступных прычынах:

  • Выкарыстанне звычайнага пратакола ACK / NAK дазваляе праграме кіравання аднаўляць кантроль пасля кожнага пакета. Гэта дазваляе яму выконваць шматзадачнасць, адлюстроўваць графічны дысплей перадачы файлаў, што заўгодна. Струменевыя або рассоўныя вокны могуць вывесці праграму кіравання з бізнесу на працягу працяглых перыядаў часу.
  • Струменевыя або сапраўдныя рассоўныя вокны зробяць інтэрфейс паміж праграмай кіравання і модулем kermit() больш складаным, і на самой справе будуць падштурхоўваць мноства дэталяў пратаколу ў прастору праграмы кіравання, дзе яны не належаць.
  • Перадача можа выкарыстоўвацца толькі для надзейных злучэнняў (напрыклад, TCP / IP), але прылады з ўбудаванай сувяззю звычайна выкарыстоўваюць серыяльныя парты.

Адсутнасць сапраўдных рассоўных вокнаў у EK кампенсуецца тым, што EK прыкідваецца, што падтрымлівае іх, не робячы гэтага. Гэта дазваляе партнёру адпраўкі «перадаваць» пакеты, а не чакаць ACK пасля кожнага з іх, калі няма памылкі. Калі ёсць памылка, стратэгія аднаўлення «вернецца да n» (ці, магчыма, у некаторых выпадках «памылка»), а не «выбарачнае паўтарэнне». EKSW, асобная праграма, якая не была інтэграваная з EK (але павінна быць), падтрымлівае сапраўдныя рассоўныя вокны з выбарачным паўторам; гэта значыць, перадаюцца толькі тыя пакеты, якія на самой справе павінны быць.

У любым выпадку, паколькі EK прызначана перш за ўсё для ўбудавання, чакаецца, што затрымкі ў абодва канца не будуць вялікім фактарам; злучэння, як правіла, лакальныя, кароткія, адносна хуткія, і калі злучэнне эфектыўна кантралюецца патокам, без памылак. Калі эфектыўнага кіравання патокам не хапае, хуткасць і/або даўжыня пакета і/або памер акна могуць быць устаноўлены ў камбінацыю значэнняў, якія максімізуюць прапускную здольнасць і мінімізуюць страту даных.

ЗЫХОДНЫ КОД

 Зыходныя файлы:

platform.h

Файл загалоўка для любых неабходных для платформы #includes або вызначэнняў. 

Неабходны, нават калі ён пусты, бо kermit.c уключае яго.

kermit.h

Файл загалоўка для ўсіх модуляў. Вызначэнне k_data і k_response структуры.

kermit.c

Гэта механізм пратаколу Kermit. Ён цалкам залежыць ад даных выкліку. Уся інфармацыя стану захоўваецца ў структуры даных kermit, якая перадаецца па спасылцы з асноўнага модуля і сярод усіх функцый модуля kermit і назад у асноўны модуль; такім чынам, адзін і той жа модуль павінен адначасова перадаваць некалькі файлаў на розныя злучэння. Акрамя таго, у модулі kermit няма спасылак на бібліятэкі, ні адзін наогул, нават stdio (акрамя выпадкаў, калі ўключана адладка), а таксама няма файлаў загалоўкаў /usr / include/*. Правілы для kermit.c:

  • Няма глабальных зменных (акрамя адладкі) або буфераў.
  • Няма ініцыялізацыі масіваў кампілятарам.
  • Проста для бяспекі, не ініцыялізіруе аўтаматычных скаляраў.
  • Няма бібліятэчных або сістэмных выклікаў, няма #include <…>.
  • Усе аперацыі ўводу/вываду выконваюцца функцыямі, вызначанымі ў асобных модулях.

Адзінай кропкай уваходу для модуля kermit.c з’яўляецца функцыя kermit():

int kermit(struct k_data * k, struct 

k_response * r)

Структура k змяшчае ўсе працоўныя параметры, зменныя, інфармацыю аб стане і буферы; r-структура інфармуе абанента аб бягучым стане пратаколу, імя файла і інфармацыі аб файле, а таксама аб ходзе перадачы (байты).

main.c

Выбарка праграмы кіравання. У тэставым стэндзе Unix гэта проста традыцыйная функцыя main (), якая счытвае аргументы каманднага радка, ініцыялізуе пратакол і затым выклікае модуль пратакола ў цыкле, кіраваным становішчам, да таго часу, пакуль не будзе выканана яго праца, а затым ачысціцца. Ва ўбудаванай асяроддзі гэтыя функцыі будуць інтэграваныя ў праграму кіравання.

unixio.c

Функцыі ўводу/вываду ў Unix. Заменіць свой уласны модуль, які рэалізуе гэтыя функцыі ў мэтавай асяроддзі і змяніць працэдуру зборкі, каб звязаць з ім. Кропкі ўваходу і пагадненні аб выкліках, апісаны ніжэй.

ВЕРСІЯ UNIX

Распрацоўка EK адбываецца на звычайнай платформе Unix, напрыклад, Solaris, HP-UX або Linux, у якой EK пабудаваны як праграма перадачы файлаў Kermit з дыстанцыйным рэжымам, падобная G-Kermit, і пратэставаная супраць настольнага Kermit такім чынам як K95 або C-Kermit. ЗАЎВАГА. Версія Unix працуе над stdin/stdout; «лінія» абумоўлена самым суровым чынам ((system(“stty …”)). Гэта дае зменныя вынікі; напрыклад загрузкі з EK на Solaris могуць працаваць на хуткасці 17Kcps, тады як загрузка з Linux у адной сеткі на том жа кампутары можа працаваць на хуткасці 1700Kcps. Не варта хвалявацца з-за таго, што EK не прызначаны для выкарыстання ў Unix, які ўжо мае G-Kermit і C-Kermit для вытворчасці.

Unix makefile мае наступныя мэты (лёгка дадаць больш):

gcc:     Зборка з gcc (па змаўчанні).

cc:       Зборка з дапамогай cc.

hp:       Зборка для HP-UX.

gccnd: Зборка з gcc, без адладкі.

gprof:  Стварыце з дапамогай gcc, уключыце прафіляванне.

clean:  Выдаліць файлы аб’ектаў і ядра.

Мakefile стварае выкананы файл Unix пад назвай «ek» (убудаваны kermit). Працэдура sample main() падае просты інтэрфейс каманднага радка:

$ ./ek -h

Usage: ./ek options

Options:

 -r                   Receive files

 -s files           Send files

 -p [neoms]     Parity: none, even, odd, mark, space

 -b [123]          Block check type: 1, 2, or 3 (default = 3)

 -k                   Keep incompletely received files

 -B                   Force binary mode

 -T                    Force text mode

 -R                   Remote mode (vs local)

 -L                    Local mode (vs remote)

 -E number      Simulated error rate (0-100)

 -d                   Create debug.log

 -h                    Help (this message)

$

Пры адпраўцы файлаў, калі вы не ўказваеце Тэкст або Бінарны файл, EK скануе кожны файл і выбірае тэкставы або бінарны рэжым на аснове яго змесціва.

Аддалены/мясцовэ рэжым выкарыстоўваецца толькі для ўключэння тэсту на перапыненне перадачы файлаў.

ПАРТИРОВКА ДА НОВАЙ ПЛАТФОРМЫ

Версія 1.0 EK была перанесена ў VxWorks кампаніяй Airvana, Inc, Chelmsford MA. Поўны пакет VxWorks EK 1.1 уключаны ў якасці прыкладу вытворчай сістэмы з дазволу Airvana (звярніце ўвагу, што з тых часоў EK API трохі змяніўся, таму, перш чым выкарыстоўваць код VxWorks, ён павінен быць абноўлены). Каб падключыцца да новай платформе:

  • Дадайце новую запіс Makefile для сваёй мэты або напішыце ўласную працэдуру зборкі.
  • Стварыце файл platform.h для сваёй платформы. Гэта можа ўключаць любыя патрабаваныя #include або definitions, а таксама можа выкарыстоўвацца для пераазначэння пэўных азначэнняў ў kermit.h:

#define NODEBUG для стварэння без кода адладкі.

#define HAVE_UCHAR, калі UCHAR ужо вызначаны або typedef’d сімвал  без знака

#define HAVE_ULONG, калі ULONG ужо вызначаны або typedef’d сімвал  без знака

#define IBUFLEN – жаданы памер для ўваходнага буфера файла.

#define OBUFLEN – жаданы памер для выхаднога буфера.

#define FN_MAX як максімальная даўжыня для імя файла.

#define P_PKTLEN, каб перавызначыць максімальную даўжыню пакета па змаўчанні.

#define P_WSLOTS, каб перавызначыць максімальныя інтэрвалы вокнаў па змаўчанні.

  • Заменіце ўзор main.c уласнай праграмай кіравання. Выкарыстоўвайце тыя ж includes і выклікаюць пагаднення, што і ў прыкладзе.
  • Скапіруйце файл unixio.c ў xxxio.c (імя па вашаму выбару), адрэдагуйце яго для працы на сваёй платформе, выкарыстоўваючы сапраўды такія ж пагадненні аб выкліках, і адкарэктуе працэдуру зборкі, каб звязаць ваш новы модуль xxxio замест unixio. Звярніце ўвагу, што запаўненне ўвода і вываду буфераў (i_buf [ ] і o_buf [ ]) павінны быць вызначаны ў вашай працэдуры xxxio.

Вось некалькі саветаў па стварэнні модуля ўводу/вываду:

Чакаецца, што працэдуры ўводу/вываду прылады будуць апрацоўваць самі параметры сувязі, уключаючы хуткасць лініі сувязі, кантроль цотнасці і кіраванне патокам. У прыватнасці, Kermit не спраўляецца з парытэтам, але ўсё роўна трэба сказаць пра гэта. Гэта робіцца ў наладзе main(). Пры неабходнасці вашы праграмы readpkt() і ttx_data() павінны падзяляць і дадаваць парытэт, калі гэта неабходна. Пры паслядоўных падлучэннях, магчыма, UART можа быць запраграмаваны для гэтага.

API Змена паміж EK 1.1 і 1.2: Пагаднення аб выкліках (спісы аргументаў функцый і зваротных значэнняў) былі змененыя паміж версіямі 1.1 і 1.2, галоўным чынам, каб забяспечыць доступ да кожнай структуры k паслядоўна, а таксама забяспечыць лепшую зваротную сувязь з выклікалым абанентам. У кожным выпадку, калі было зроблена змяненне, прыведзены як стары, так і новы фармат.

Функцыі ўводу/вываду прылады:

int

devopen (char * device)

Адкрывае дадзеную прыладу сувязі. Таксама можа быць сеткавым хастом. Вяртае 0 пры збоі, 1 пры паспяховым выкананні.

int

devsettings (char * settings)

Гэта выконвае ўсе неабходныя ўстаноўкі для прылады, як хуткасць і рэгуляванне патоку для серыйнага прыбора. Паколькі няма ніякага спосабу даведацца, што адпаведныя параметры, гэтая працэдура проста прымае радок, якая можа быць у любым фармаце, напрыклад “9600;8N1” or “speed=57600;flow=rts/cts”; працэдура devsettings павінна будзе прааналізаваць радок. Вяртае 0 пры збоі, 1 пры паспяховым выкананні.

int

devrestore (void)

Калі неабходна, вярніце прыладу назад, як заўважыце яго devsettings (). як раз перад закрыццём.

int

devclose (void)

Закрывае камунікацыйную прыладу.

int

readpkt (UCHAR * buffer, struct k_data * k) (1.1)

readpkt (struct k_data * k, UCHAR * buffer, int length) (1.2)

Гэтая працэдура павінна выконваць менавіта тое, што робіць выбарка: пошук пачатку пакета, а затым капіраванне ўсіх сімвалаў (але не уключаючы) да канца пакета ў пакетны буфер, адрас які паказаны. Вы захочаце скампіляваць гэта як мага больш эфектыўна, выкарыстоўваючы любыя трукі, якія даступныя для вас. Калі вы хочаце, каб ваша праграма Kermit адчувала таймаўт, тут вы павінны змясціць код. ЗАЎВАГА. Тайм-аўты не патрэбныя, бо верагоднасць таго, што ek Kermit-партнёр не можа выйсці, складае каля 0. Фармат EK 1.2 змяшчае k ў якасці першага аргументу для ўзгодненасці з іншымі падпраграмамі і дадае аргумент даўжыні буфера.

Звярніце ўвагу на функцыю F_CTRLC. Гэта ўключана па змаўчанні. Гэта дазваляе EK выходзіць з пакетнага рэжыму, даслаўшы яму тры паслядоўных Ctrl-C ў струмень даных. Звычайна вам не трэба адключаць гэта, так як, нават калі адпраўнік з’яўляецца “unprefixing” Ctrl-C, тры з іх у радку звычайна будуць згорнутыя ў паслядоўнасць паўтарэння.

int

tx_data (UCHAR * data, int length, short parity) (1.1)

tx_data (struct k_data * k, UCHAR * data, int length) (1.2)

Тут зноў трэба прытрымлівацца роўнасці (калі яно не выконваецца аўтаматычна прыладай сувязі або драйверам). Гэтая працэдура павінна быць эфектыўнай і надзейнай. Ён павінен перадаваць усю радок даных, інакш збой. См. unixio.c, што я маю на ўвазе пад «robust». У EK 1.2 і пазней, парытэтны ўрэгуляванне паднята з k структуры.

Функцыі ўводу/вываду файла наступныя: яны могуць выкарыстоўвацца для чытання або запісы чаго заўгодна – не толькі файлаў: памяці, стужкі, карт, лазерных прамянёў, кантралёраў прыбораў, што заўгодна. Не мае значэння, што вы называеце гэтымі працэдурамі, але спіс аргументаў і тып якое вяртаецца значэння павінны быць такімі, як паказана; таксама, калі вы дасце ім розныя імёны, вам трэба будзе змяніць прататыпы ў kermit.h:

int

openfile (UCHAR * filename, int mode, struct k_date * k) (1.1)

openfile (struct k_date * k, UCHAR * filename, int mode) (1.2)

Адкрывае найменны файл у зададзеным рэжыме (1 = чытанне, 2 = запіс, 3 = даданне). Вяртае X_OK на поспех, X_ERROR пры збоі.

ULONG

fileinfo (UCHAR * filename, UCHAR * buf, int buflen, short * type, short mode) (1.1)

fileinfo (struct k_data * k, UCHAR * filename, UCHAR * buf, int buflen, short * type, short mode) (1.2)

Атрымлівае інфармацыю аб паказаным існуючым лакальным файле: размер, дата і, калі mode == 0, тып файла (тэкставы або двайковы). buf і buflen прымяняюцца да радка даты/часу файла. Вяртае X_OK або X_ERROR.

int

readfile (struct k_data *)

Чытае буфер з уваходнага файла, і калі перадача ў тэкставым рэжыме, канвертуе фармат запісу ў стандартны CRLF Cermit Stream. Вяртае X_OK або X_ERROR.

int

writefile (struct k_data *, CHAR * buffer, int length)

Запісвае буфер ў выходны файл, і калі перадача ў тэкставым рэжыме таксама пераўтворыць стандартны фармат запісу CRLF патоку Kermit у тое, што патрабуецца лакальна. Вяртае X_OK або X_ERROR.

int

closefile (struct k_data *, UCHAR code, int mode)

Закрывае файл. Для выходных файлаў, вядома, гэта скідае любыя якія чакаюць буферы ў файл перад яго закрыццём; то ён правярае, адмяняе Ці перадача Kermit перадачу файла да яго завяршэння (код == ‘D’), і ў гэтым выпадку ён адкідвае частковы файл, а не захоўвае яго. Рэжым паказвае, ці з’яўляецца гэта уваходным або выхадных файлам, таму пры неабходнасці могуць быць выдаленыя не цалкам атрыманыя файлы. Вяртае X_OK або X_ERROR.

Дакладныя пагаднення аб выкліках паказаны ў файле unixio.c.

АДЛАДКА

Калі EK быў створаны без вызначэння NODEBUG, то, калі вы ўключыце ў камандным радку параметр -d, прыкладны версія EK на аснове Unix стварае файл debug.log ў бягучым каталогу. У вытворчай версіі вы павінны дадаць -DNODEBUG да кампілятара C CFLAGS, каб выключыць код адладкі. Памеры, паказаныя вышэй, ўключаюць адладку. Вы можаце рэалізаваць функцыю адладкі любым спосабам, які вы хочаце ў сваім модулі ўводу-высновы для платформы.

ГІСТОРЫЯ РЭЛIЗАУ

Версія ДатаАпісанне
1.12002/10/07   Першапачатковы выпуск. Версія VxWorks ўсё яшчэ знаходзіцца на гэтым узроўні.
1.22003/01/28алепшаны API, порт Java (які ўсё яшчэ знаходзіцца на гэтым узроўні).
1.32004/03/04Выпраўце перадачу файлаў з дапамогай HyperTerminal.
1.42004/03/20Выпраўленне прыёму пустых файлаў
1.52004/04/10Выправіць праблему з A-пакетамі, дазволіць сверхмалые і / або налады толькі для прыёму.
1.512004/09/23Адаптацыя да Philips XAG30 (Джон Данлэп)
EKSW 0.942010/06/24Сапраўдныя рассоўныя вокны з выбарачнай паўторнай перадачай (Джон Данлэп)
1.62011/03/30Выдадзена і выпушчана пад ліцэнзіяй 3-Clause Revised BSD.
1.72011/06/06Пратакол FORCE-3 2011/06/06 працуе сумесна з C-Kermit 9.0 (тлумачыцца тут)

СКАЧАЦЬ

Для загрузкі даступны некалькі розных рэалізацый E-Kermit. Сам E-Kermit, версія 1.7, з’яўляецца асноўным. Іншыя – адаптацыя да розных платформах або мовах, якія былі зробленыя падчас папярэдніх выпускаў E-Kermit, як паказана ў папярэдняй частцы; іншымі словамі, выпраўлення, знойдзеныя ў E-Kermit 1.3, 1.4 і 1.5, ня знаходзяцца ў версіях VxWorks або Java, а версія VxWorks выкарыстоўвае API E-Kermit 1.1 API замест палепшанай версіі 1.2. EKSW мае некаторыя змены ў API і іншыя неадпаведнасці, якія варта адмяніць, перш чым ён можа быць інтэграваны з EK 1.6, але зусім карысны сам па сабе. Фактычна, гэта версія, якая працуе ў новым пакаленні Apex-EM ocean floats, і была пратэставаная больш старанна ў больш неспрыяльных умовах, чым, магчыма, любая іншая рэалізацыя пратаколу Kermit. Вяртаючыся да версіі 1.7, якая рэалізуе новы пратакол праверкі пакетаў Force-3. (EKSW атрымае гэта таксама ў нейкі момант.)

  HTTPFTP
NameDescriptionTar*ZipSource Files
E-Kermit 1.7Партатыўны на ўсіх платформах, з Unix дэма.СкачацьСкачацьСкачаць
EKSW 0.94E-Kermit з праўдзівымі рассоўнымі вокны, адаптаванымі да Linux.СкачацьСкачацьСкачаць
EKVX 1.1 E-Kermit 1.1 адаптаваны да VxWorks.СкачацьСкачацьСкачаць
JavaE-Kermit 1.2 канвертаваны ў JavaСкачацьСкачацьСкачаць
SimiridТэстар стрэсу пратаколу [Апісанне]СкачацьСкачацьСкачаць

* Не сціснутыя, няма неабходнасці, яны вельмі малыя.

Націсніце тут, каб атрымаць доступ да FTP ўсіх файлаў E-Kermit