Пробуем в Web )

Здесь обсуждаются проблемы мироустройства.
Kirillony
Posts: 232
Joined: Tue 24 Jan, 2006 18:49
Has thanked: 6 times
Been thanked: 4 times

Пробуем в Web )

Post by Kirillony »

Latest post of the previous page:

2useven10 wrote: Fri 02 Jul, 2021 19:59 Я понимаю, что в этом разделе может быть любой бред.
Но хоть какая-то связь с farmanager есть?
там же на картинке надпись "Привет Far Manager"
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

Точка поддержки IT-гетто в порядке уничтожения энтропии.
Last edited by leva on Mon 05 Jul, 2021 10:24, edited 12 times in total.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Пробуем в Web )

Post by tstr »

Kirillony wrote: Sun 04 Jul, 2021 07:50 там же на картинке надпись "Привет Far Manager"
так… оказывается ещё и тенкать самому себя можно… не говорите буняку и ситриксу…
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Пробуем в Web )

Post by buniak_a_h »

tstr, мне не говорили… А что такое «тенкать»?
На самом деле я давно хотел спросить, что курят эти поц-аны? Что-то очень забористое… :ha:
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

"Так...". Давеча, балалаешник в недавнем ролике у проф. Савельева не знает будто, что морфология мозга - это чисто черный ящик без входа и выхода сам по себе. Одного этого аргумента вполне достаточно. Если бы данный профессор попытался таким способом объяснять мироздание при ЦК, его бы отправили в сумасшедший дом наравне с остальными коллегами по псевдонаучному цеху. А сейчас он нас упрятал туда. Вот и "так" - мозги клевать. Мы не поц-аны. Мы остатки прежнего адекватного мира в прежнем неадекватном мире и нынешнем совсем неадекватном. :smile: Тов. Флягины:

https://www.youtube.com/watch?v=YkqjhZ0uZ00

У меня, например, два вида на жительство: в РФ и Украине, а паспорт только советский и ничего кроме этого нет. И тот пропал. Это "уважаемые люди".

https://www.youtube.com/watch?v=rwHSOrYomcY

:grin:
Last edited by leva on Sun 04 Jul, 2021 18:09, edited 16 times in total.
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

Как, например, понимать понятие "Если ударили по одной щеке - подставь другую?". Это значит, что если плюнули в рожу одни, поверни ее и убедись, что плюнут в рожу другие, вроде как враги первых. :) Или вот, например, что есть 10 заповедей? Попытка предотвратить слияние эмоций зависти и жадности. Сами по себе они не очень-то и опасны. Все зло в мире происходит из той или иной их комбинации. :) Или вот, зерна прорастают только на правильной почве. Какая надстройка может возникнуть без базиса? Если нет экономики - то нет ничего, кто бы кого не убеждал в обратном. В спрофанированной системе любой сюжет можно интерпретировать как в одну сторону, так и в другую. Ибо нет точки опоры. Так, в отсутствие базиса, обрушивается в небытие культура, этика, эстетика, законность и прочее. Мироздание гидропоники. :)

Image

Остов этой хрени - потребительский кредит (вместо классического коммерческого) и такие же СМИ вместо классических СМИ. Ну а "лайк" во всем его многообразии - рефлекторый сигнал башне, что пора заиметь дозу жидкой кашицы в мозг. Есть вполне математичное понятие "рефлекторно-функциональная цепь". В рефлекторно-функциональной цепи нет и не может быть смыслов, понятий, аутентичных объектов и бороться в ней не за что, кроме ее разрушения. Это карма-асансара. Но и это бесполезно, ибо история показала, что на месте одной, тут же как гриб возникает другая.

https://www.youtube.com/watch?v=YVaSkopu0EI

Можно сказать и иначе: в ней нет и не может быть качественно-диалектичного отражения объективной реальности. А значит никакого вообще отражения объективной реальности. Причем даже в банальном потребительском смысле. Не говоря уже обо всех остальных. Есть примитивная линейка псевдопонятий, на которую проецируется сложное и диалектичное мироздание. А что случится, если спроецировать на прямую трехмерную, например, голограмму Джоконды с младенцем? Хаос из цветных точек, по которому исходную картину не восстановить. Если сам не можешь вращать проекцию вокруг голограммы и задействовать мозг, как мощный алгоритм для реконструкции исходного образа. Программист легко поймет, сколько всего для этого нужно. Некогда Маркузе объяснял такую линеаризацию (распиаренную под лейблом якобы "хаоса") потреблятством в книге "Одномерный человек". Все гораздо хуже - потреблядство это следствие. Причем, как нетрудно догадаться каждому, кто хоть немного изучал геометрию в школе, закрепляя эту проекцию в различных положениях, можно получить различные картины хаоса в бошках. А что будет, если сталкиваются две бошки с различными непримиримыми картинами хаоса в них? Нетрудно догадаться. И совершенно не важно, в таких обстоятельствах, какая там у них морфология. :smile:
Last edited by leva on Sun 04 Jul, 2021 14:58, edited 32 times in total.
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

Восточная мудрость: когда ты штампуешь непробиваемую крышу, чтобы никто не мог сесть тебе на голову, обязательно найдется сволочь, которая решит, что это фундамент. Отсюда следует другая восточная мудрость: жить нужно так, чтобы не заслонять небеса. Тогда исполнится третья восточная мудрость: каждая птица будет взлетать из гнезда, а не с крыши и возвращаться обратно.

К сожалению, из трех этих восточных мудростей помнят обычно только последнюю, нарушая две первых, извращенно трактуя ее в смысле запрета полетов. А потом предъявляют претензии и посконно-сермяжно сворачивают головы высоко залетающим птичкам, а остальное тупо превращают в птицеферму. В конце-концов не остается ничего.

И четвертая восточная мудрость: те, кто строит крышу над головой у других - смотрят вниз, а те, кто решит, что эта крыша фундамент - вверх. И если они будут руководствоваться теми же принципами, то рано или поздно они построят крышу над головой у предыдущих строителей крыш.

Впрочем, представителям посконно-оседлых народов рассказывать эти истории бесполезно. Поэтому они так живут и другим нормально жить не дают. Но и это пройдет. Экспоненциальный рост паразитарных обратных связей в экономике деньги-люди-деньги, когда можно бесплатно пользоваться людьми манипулируя либо их стадным инстинктом, либо безвыходным положением, окончательно зацементирует рефлекторно-функциональную цепь, а затем начнется обвальный переход к состоянию люди-люди-люди. Естественно, катастрофический, т.к. если уже сейчас эта цепь не выдерживает на себе даже базовых ценностей цивилизации, то в момент перехода, она сбросит их с себя окончательно. То есть не люди-люди-люди получится, а звери-звери-звери. И это будет очередным по счету финалом "пирамиды достоинства" c пропорциями в виде золотого сечения. ФЛАГ В РУЦИ!
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

Пример диалектики: есть Углов и есть Гудвин. Две дороги к одному обрыву. В одном случае алкаши объявляются врагами народа и мразями, при этом выпиливается 90% советской интеллигенции. В другом случае выясняется, что 20 раз. Есть оказывается уважаемые люди, поболее уважаемые, чем 99% трезвенников и язвенников. Что вот такой шиш, и что есть оказывается Б. Б. Гребенщиков и Ко, которые и на три буквы могут послать, выжирая литр за литром и оставаясь в уме значительно поболее трезвенников и язвенников. Так называемые проблемные пьяницы, из которых состоит 80% нобелевских лауреатов по литературе. В обществе их с гулькин нос - всего около 2%, но это особотворческие и прогрессивные люди.

Элементарно вальсируя в широком диапазоне между "Мама, я не могу больше пить" и "Время нае..ится", такие никогда и никого не станут слушать кроме самих себя, сверхнормальных людей или гуру где-нибудь в Тибете. Ралли на котором удержаться просто так проблематично и не всякому дано. И есть т.н. "умеренное питие" - третий иллюзорный формат и разновидность непроявленной синергии с неизвлеченным рублем познания

https://www.youtube.com/watch?v=FjAllQP9FTU

- положение неустойчивого равновесия, при малейшем дуновении ветерка переходящее либо в угловщину, либо в гудвиновщину. Неправда ли, знакомая картинка социоисторических циклов? И есть рубль отрефлексированной синергии - это то, что написано выше. То есть понимание диалектичности данного алкоголизма и соответственно необходимости надстройки над данным явлением в виде нормальности и адекватного управления этой самой диалектикой с целью оптимизации здорового образа жизни. Диалектике наплевать на точки зрения. А общество (как и фрактально любая его подсистема), считайте, исторически тот же алкаш. Особенно, как ни странно, наиболее трезвая в обычном понимании его компонента. Не странно, на самом деле, ибо это есть старый как мир принцип отрицания отрицания. :smile:
Last edited by leva on Sun 04 Jul, 2021 14:58, edited 10 times in total.
User avatar
John Doe
Бюрократ
Posts: 13848
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Пробуем в Web )

Post by John Doe »

Image
https://t.me/FarManager — Telegram чат
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

Поля времени - это реальность. Например, есть закон спроса-предложения. Некая кривая на плоскости (из двух кусков) в которой координата времени отсутствует. Если ее добавить, то получится поверхность. А кто сказал, что эта поверхность может быть какой угодно по форме и не подчиняется общим закономерностям? Из самых общих соображений подчиняется. Поэтому манипуляции спросом-предложением (равно как и любой другой перекос) божественный гомеостазис выправит в любом случае. Вопрос лишь в том, каким способом это будет достигнуто. Делает он это либо через воплощение в лицах и социальных структурах, мыслящих адекватно, а таких очень мало. Для которых ГАЗ-24 круче, чем самый навороченный звероавтомобиль. Ситуация примерно такова: попробуй покататься в интеллигентном ГАЗ-24 не для ретропонтов, а чисто по жизни. Тебя жена уничтожит, дети предадут анафеме, сам ты сдохнешь в ней от ксенофобской клаустрофобии, а какой-нибудь тварь-профессор или падла-лауреат и глазом не моргнут. Либо путем ухлопывания той или иной ненужной неадекватности. Это называется карма. Карма баксы не считает. Ну а если ваша судьба зависит от законов-спроса и предложения, а она зависит, тогда что? Бог не Тимошка. :) Они думают, что весь этот "прогресс" вокруг них - это прогресс. Вот такой шиш. Еще Мамфорд разобрал этот прогресс по частям. Это управляемая энтропия. Прогресс это не когда соединяются друг с другом вещи, комбинирование которых вобщем-то очевидно, а когда соединяются вещи, которые вроде бы никак не присобачишь друг к другу и возникает принципиально новое качество. Это и есть, в конечном счете, одно из следствий временного гомеостазиса. Плюс все четыре ключевых параграфа IT - это очевидная проекция массификации, повторившие в своем развитии, эволюцию биосистем. ОС, Соцсети, поисковики и ИИ. Ниразу не учитывающие то, что биосистемы находятся под контролем механизмов, гораздо более мощных, чем все эти тупые выдумки. В т.ч. через психику (в т.ч. и деформированное прогнозирование) - одну из форм отражения объективной реальности, а значит и полей времени. В том числе и через "обратные во времени" процессы, на этом массово-неадекватном прогнозировании основанные. Ведь гомеостазис не знает времени в человеческом понимании, он только знает траектории и варианты. Не очень беспокоясь о мнении на сей счет дуремар-студио, той или иной конкретной области мироздания. Вариантов образов тов. Привалову А. И. наштамповали - 100500, и все они чуть более чем полностью неадекватны. Хотя Привалов давно уже не Привалов, а другой персонаж этой повести. :smile:

Так гомеостазис прокладывает путь, сквозь тернии либо к установлению аутентичности образа, либо к закрытию/переформатированию дуремар-студио. При этом сами штампующие (чем бы и кем бы они не были вплоть до креатуры ИИ) уверены, что это делают они по своему произволу, а не механизмы мироздания, посредством их больной на голову головы, включая больную на голову электронную.

Таблетки выдает не Морфеус, а Вселенная с ее законами. Вселенной наплевать на Голливуд. :)
Last edited by leva on Mon 05 Jul, 2021 10:24, edited 26 times in total.
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

Примерный код простой кнопки, для описания "стиля" в котором настрочена вся "балалайка" выше: :grin:

Code: Select all

function CreateButton(name,caption,top,left,parent) {
 return eval(name+"=new Button('"+name+"','"+caption+"',"+top+","+left+","+parent+");");
}


var Button = function (name,caption,top,left,parent) {


 var mousedown=false; //кнопка мыши нажата
 var isout =false; // мышь выходила нажатой из кнопки
 var StructSelf =[]; // id составных частей из которых состоит компонента
 var stx, sty = 0;
 var normalColor = 0; // нормальный цвет кнопки, заданный в CSS
 var normalTextColor = 0; // нормальный цвет текста кнопки, заданный в CSS
 var normalShadowColor = 0; // нормальный цвет тени кнопки, заданный в CSS
 var invelement = 0;
 var element=0;
 var selement=0;



 this.name=name;
 this.caption=caption;
 this.left=left;
 this.top=top;
 this.visible = true; // видимость
 this.shadow = true; // отображать или не отображать тень
 this.shdwcolor = "gray"; // цвет тени кнопки
 this.bckgcolor = "ligrhtgray"; // цвет переднего фона кнопки
 this.markcolor = "black"; // цвет текста кнопки
 this.livemark = false; // допускаем изменение цвета кнопки при наведении мыши
 this.livecolor = "blue"; // цвет  кнопки при наведении мыши
 this.livetextcolor = "yellow"; // цвет текста кнопки при наведении мыши 
 this.liveshadowcolor = "red"; //цвет тени кнопки при наведении мыши 
 this.parent = document.getElementById(parent);


this.deleteButton = function()
 {
   // удаление кнопки
   removeElement(invelement);
   removeElement(selement);
   return;
 }

 this.setVisible = function(state)
  {
    // установка видимости компоненты
    // state = true - видим, false - невидим
    for (var i=0; i<StructSelf.length; i++) {
      document.getElementById(StructSelf[i]).hidden = !state;
    }
    this.visible = state;
  } 

 this.setShadowColor = function(color)
  {
   // установка цвета тени компоненты
   // цвет передается либо в виде строки 
   // либо шестнадцатиричной константы

   selement.style.setProperty("background-color", color);
   selement.style.setProperty("border-color", color);
   selement.style.setProperty("color", color);
   this.shdwcolor = color;
  }

 this.setBackColor = function(color)
   {
    // установка цвет фона кнопки

    element.style.setProperty("background-color", color);
    this.bckgcolor = color;
    if (!this.state) this.setMarkColor(color);
   }

 this.setMarkColor = function(color)
  {
   // установка цвета кнопки

   element.style.setProperty("color", color)
   this.markcolor = color;
  }

 this.changeMarkColor = function(color)
  {
    // переключение цвета кнопки
    element.style.setProperty("color", color)
  }

 this.onclick = function() 
{
 // пользовательский обработчик нажатия чека:  check3.onclick=kapusta;
} 

this.ondown = function() 
{
 // пользовательский обработчик нажатия чека:  check3.onclick=kapusta;
}

this.onup = function() 
{
 // пользовательский обработчик нажатия чека:  check3.onclick=kapusta;
}

this.conclick=function()
 {
   // обработчик нажатия кнопки по умолчанию
   this.onclick();  
   return false;
 }

this.mousedown =function()
 {
    mousedown = true;
    selement.hidden = true;
    setFocus(this);
    element.style.top = AddStrIntPx(sty,2);
    element.style.left = AddStrIntPx(stx,2);
    this.ondown();
    return false;
 }

this.mouseup =function()
 {
    mousedown = false;
    selement.hidden = false;
    element.style.top =  sty;
    element.style.left =  stx;
    this.onup();
  }

this.mouseleave=function()
 {
   if (!mousedown) return;
   isout = true; 
   selement.hidden = false;
   element.style.top = sty;
   element.style.left = stx; 
 }

 this.mousemarkover = function()
  {
    mouseinmark = true;
   }

  this.mousemarkout = function()
  {
       mouseinmark = false;
   }

this.press = function(e)
 {
  // this внутри обработчика - это объект WINDOW
 }

this.GKDown = function(e)
 {
   // this внутри обработчика - это объект WINDOW

   var key=e.keyCode || e.which;
   var self = window.GFocus;

   switch (key) {
     case spaceKey: {self.mousedown(); break;}
   }

 }

 this.up = function(e)
  {
    var key=e.keyCode || e.which;
    var self = window.GFocus;
    switch (key) {
     case spaceKey: {self.mouseup(); self.conclick(); break;}
   }
  }

 this.mouseover = function(src)
   {


     // перемещение мыши над кнопкой
    if (!this.livemark) return;
    normalColor = src.style.getPropertyValue("background-color");
    normalTextColor = src.style.getPropertyValue("color");
    normalShadowColor = selement.style.getPropertyValue("background-color"); 
    src.style.setProperty("background-color",this.livecolor); 
    src.style.setProperty("color",this.livetextcolor);
    selement.style.setProperty("background-color", this.liveshadowcolor);
    return;
   }

 this.mouseout = function(src)
   {
     // перемещение мыши над кнопкой
    if (!this.livemark) return;
    src.style.setProperty("background-color",normalColor); 
    src.style.setProperty("color",normalTextColor);
    selement.style.setProperty("background-color", normalShadowColor);
    return;
   }

this.Active = function()
 { // на форме вызывать отдельно из-за глюка в рендере браузера
     StructSelf.push(this.name+"_sh");
     StructSelf.push(this.name+"_ct");
     invelement = document.getElementById(this.name+"_inv");
     element=document.getElementById(this.name+"_ct");
     selement=document.getElementById(this.name+"_sh");
     stx = element.style.left;
     sty = element.style.top; 
   return;
 }

this.MonoBox = function()
 {
    
     var res=""; // результирующая таблица чека

     
      res+="<div id ="+this.name+"_inv class='BUTTON_INVISIBLE'  onmouseleave='"+this.name+".mouseleave();' onclick ='"+this.name+".conclick();' onmousedown ='"+this.name+".mousedown();' onmouseup ='"+this.name+".mouseup();' style='left:"+(this.left)+"; top:"+(this.top)+";'>";
     res+="<div id='"+this.name+"_ct' class='BUTTON_CIRCUIT' onmouseover='"+this.name+".mouseover(this);' onmouseout='"+this.name+".mouseout(this);'  style='left: 0px; top: 0px;'>";
     res+=this.caption+"</div>"
     res+="</div>";
     
     res+="<div id='"+this.name+"_sh'  class='BUTTON_SHADOW' style='left:"+(this.left+5)+"; top:"+(this.top+5)+";'>";
     res+=this.caption+"</div>";

    if (parent == 0) {
     document.write(res);
   } else {
     this.parent.innerHTML+=res;
   }

   this.Active();

    return;

 }

this.MonoBox();

return this;

}

Last edited by leva on Sun 04 Jul, 2021 16:54, edited 3 times in total.
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

Обработчик клавиатуры один на всю систему и в упрощенно-необъектном виде выглядит примерно так:

Code: Select all

 var arrowLeft=37;
 var arrowRight=39;
 var arrowTop=38;
 var arrowBottom=40;
 var pgDwn=34;
 var pgUp=33;
 var insKey=45;
 var endKey=35;
 var homeKey=36;
 var spaceKey=32;
 var bckSpc=8;
 var delKey=46;
 var tabKey=9;
 var ctrlKey=17;  
 var shiftKey=16;  //18 - это клавиша Alt
 var enterKey=13;
 var EscKey=27;
 var AltKey=18;
 var PlusKey=187;
 var F1Key = 112;
 var F4Key = 115;
 var F5Key=116;
 var F6Key=117;
 var F7Key = 118;
 var F8Key=119;
 var NLPlusKey=107;
 var ptnKey=1001;
 var char=" "; // печатуемый :) символ

_Keys = [arrowLeft, arrowRight, arrowTop, arrowBottom, pgDwn, pgUp, insKey, endKey,
  homeKey, spaceKey, bckSpc, delKey, tabKey, ctrlKey, shiftKey, enterKey, EscKey, AltKey, PlusKey, F1Key, F4Key, 
  F5Key, F6Key, F7Key, F8Key,  NLPlusKey, ptnKey];


//--------------------------------------

window.captureEvents(Event.KEYPRESS); //если обрабатывать KEYPRESS, то KEYDOWN перестает обрабатывать обычные клавиши, которые мы ловим именно в KEYPRESS

window.captureEvents(Event.KEYDOWN);

window.captureEvents(Event.KEYUP);

window.captureEvents(Event.MOUSEMOVE);

window.captureEvents(Event.MOUSEUP);

window.captureEvents(Event.MOUSEDOWN);

function hideDesktopElement()
 {
    if (typeof Program == "undefined") return;
    if (typeof MainMenu == "undefined") return;
    if ((window.GFocus != MainMenu) && (MainMenu.popup.visible)) MainMenu.closePopup();
    if  ((window.GFocus != Program) && (Program.visible)) Program.setVisible(false);
    return;
 }


function setFocus(GFocus)
 {
  // установка клавиатурного фокуса ввода
  defocusedLedits();
  defocusedEdits(); 
  if (typeof  GFocus != "undefined") { 
   window.prevGFocus = window.GFocus;
   window.GFocus = GFocus;
  
  window.onkeydown=GFocus.GKDown;
  window.onkeypress= GFocus.GKPress;
  window.onkeyup=GFocus.up;
  hideDesktopElement();
 }
  return;
 }

function setMouseFocus(GMFocus)
  {
    // установка фокуса для мыши
  if (typeof  GMFocus != "undefined") { 
   window.GMFocus = GMFocus;
   window.onmousemove = GMFocus.GMmove;
   window.onmouseup = GMFocus.GMup;
   window.onmousedown = GMFocus.GMDown;
   hideDesktopElement();
  }
   return;
  }
Last edited by leva on Sun 04 Jul, 2021 17:03, edited 1 time in total.
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

Код грязноватый, местами недоделанный, местами некорректный. Например, Active надо бы вставить во внешний конструктор и т.д. - это не готовый продукт, а сочинение на вольную тему, - Windows в браузере накатать минимальными средставами. Для сочинения готовых продуктов бакси нужны. И не мало баксов, а много, как говорится. Четыре чемодана, как минимум. Дорожных чемодана, которые носят взятошники друг другу, ради демонстрации эмпатии и прочей культурности. Ведь что можно украсть на таком рынке? Весы? Или, может быть, белый халат? А значит и коррупции нет никакой, а есть просто эмпатия. :) Коррупция - это когда в темной-темной комнате мафиозо, корпоративный босс и министр втихаря сговариваются кинуть на деньги правительство и ФРС. А потом за ними гоняются все, чтобы отнять у них деньги обратно, а они, к тому времени их успевают освоить и адвокатов нанять. Какая же это коррупция? Нету у нас коррупции никакой и не было никогда. А есть дефицит:

https://www.youtube.com/watch?v=mFNAUv17QFc

Но факт есть факт, манипулируя контейнерами на низком уровне, можно вполне себе легко настрочить все, что угодно, практически не въезжая в веб-технологии. В этой теме есть очень много паттернов - таких маленьких приемчиков, овладев которыми, веб-интерфейсом можно манипулировать непринужденно и с легкой душой, не заморачиваясь ни на что. То есть будучи полностью отвлеченным от собственно веб-технологий, если не учитывать некоторые преодолимые при желании ловушки браузера. :)

https://www.youtube.com/watch?v=1pGJXb240eA

:)
Last edited by leva on Mon 05 Jul, 2021 06:32, edited 18 times in total.
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

Например, вот рендер текстового редактора с моноширинным шрифтом - по сути это управление содержимым <span>

Code: Select all

   this.RefreshWindow = function(key)
    {


      // подготовка контента на строках
           if (W_Ins) {Cur_Color=W_InsCursorColor;} else {Cur_Color=W_CursorColor;};
           bgcol=this.pallbgr.carr[this.decode(Attr[0]).split(":")[0]];  
           col=this.pallfgr.carr[this.decode(Attr[0]).split(":")[1]]; 
           attrold=Attr[0];
           Content="<span style='background-color:"+bgcol+"; color:"+col+";'>";
           k=W_scrN+1; 
            for (i=1; i<=W_h; i++) {
              p=W_w*(k-1);      
                for (j=1; j<=W_w; j++) {
                dt= Data[p];
                bgcol=this.pallbgr.carr[this.decode(Attr[p]).split(":")[0]];  
                col=this.pallfgr.carr[this.decode(Attr[p]).split(":")[1]]; 
                if (Attr[p]!=attrold) Content+="</span><span style='background-color:"+bgcol+"; color:"+col+";'>"; 
                if (p==this.get_addr2(W_x,W_y)) {
                  Content+="</span><span id='"+this.name+"_cur' style='background-color:"+Cur_Color+";'>"+Data[this.get_addr2(W_x,W_y)]+"</span><span style='background-color:"+bgcol+"; color:"+col+";'>";
                } 
               else { 
                  if (dt==" ") {Content+="&nbsp;";} else {Content+=dt;}; 
                }
                attrold=Attr[p];
                p+=1;
           }
            Content+="<br>"; 
            k+=1;
          }
        Content+="</span>"; 
 
      document.all[this.name+"_cont"].innerHTML=Content;
      return;
 }  
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

А так загружаются старинные DOS-шрифты, конвертированные в тестовый формат такой же старинной DOS-программой:

Code: Select all

 this.loadFont = function(name)
     { // загрузка шрифта с именем name
        var ch = "/";
        var str = ""; 
        var rawFont = "";
        var symb = [];
         var bitsymb = [];
        var symbArr=[];
        var font = [];
        var req = new XMLHttpRequest();
        req.open("GET", "/FONTS/"+name+".c", false);
        req.send(null);
        rawFont=req.responseText;
        symbArr = rawFont.split("\n");
        for (var i=0; i<255; i++) {
          symb = []; 
          bitsymb = [];
          str = symbArr[i].substring(0,symbArr[i].indexOf(ch));
          str = str.trim();
          str = str.substring(0,str.length-2);
          symb = str.split(",");
          if (i == 0) font.push(symb.length); // высота символа
          for (var j = 0; j<symb.length; j++) {
            bitsymb = this.hexToBit(symb[j]);
            font = font.concat(bitsymb); 
          }
        }
        this.loadedFonts[name] = font;
        return font;
     }
потом они ложатся на битовый массив DC один махом, целиком или полностью перекладываемый на массив данных canvas.

Code: Select all

this.Apply = function()
 {
   // приложить данный DC к его канве.
     this.canvas.container.innerHTML = this.screen.join(""); 
     return;
 }
Все операции производятся с DC, а методы и свойства canvas никак не задействованы. Черепаховая графика, например:

Code: Select all

var bitTurtle = function(name, dc) {

 var centerScreenX = Math.round(dc.w/2); 
 var centerScreenY = Math.round(dc.h/2);
 var heading = 0;
 

 this.dc = dc;
 this.name = name;
 this.posX = centerScreenX;
 this.posY = centerScreenY;
 this.Pen = true;

 this.Init = function()
  {// инициализация черепахи
    heading = 0;
    this.posX = centerScreenX;
    this.posY = centerScreenY;
    this.Pen = true;
    return;
  }

 this.Goto = function(x,y)
  { // перейти к координате (x,y)
   var newX = centerScreenX+x;
   var newY = centerScreenY+y;
   if (this.Pen) this.dc.Line(this.posX,this.posY, newX,newY);
   this.posX = newX;
   this.posY = newY;
   return;
  }
 
 this.Home = function()
  { // вернуться к началу координат
    if (this.Pen) this.dc.Line(this.posX,this.posY,centerScreenX,centerScreenY);
    this.posX = centerScreenX;
    this.posY = centerScreenY;
    return;
  }

 this.Forward = function(dist)
   { // вперед на расстоние dist
    console.log(this.posX,this.posY);
    var newX = Math.round(this.posX + dist * Math.sin(heading));
    var newY = Math.round(this.posY - dist * Math.cos(heading));
    if (this.Pen) this.dc.Line(this.posX,this.posY, newX,newY);
    this.posX = newX;
    this.posY = newY;
    return;
   }

 this.Back = function(dist)
  { // назад на расстояние dist
    var newX = Math.round(this.posX - dist * Math.sin(heading));
    var newY = Math.round(this.posY + dist * Math.cos(heading));
    if (this.Pen) this.dc.Line(this.posX,this.posY, newX,newY);
    this.posX = newX;
    this.posY = newY;
    return;
  }

 this.Right = function(angle)
  { // поворот вправо на угол относительно текущей ориентации
    heading+=RAD*angle;
    return;
  }

 this.Left = function(angle)
  { // поворот влево на угол относительно текущей ориентиации
    heading-=RAD*angle;
    return;
  }

 this.Orient = function(angle)
  {
    heading = RAD*angle;
    return;
  }

 return this;
}
А вот рекурсивный рендер панели файл-менеджера:

Code: Select all

 this.TopicsScroll = function(topics,direct, fn)
 {

  var idspos=1; //счетчик для номера строки в панели - идет составной частью в id <a>
  if (topics!=this.CurrentFolder) {
     ParentFolder.push(this.CurrentFolder);
     this.CurrentFolder=topics;
    }

  tail=new String();
  tail=" ";
  topic=new String();
  innerStr=new String();

  if  (direct==-3) {
   // опция "Домой"
    scrN=0;
  }

  if (direct==-4) {
  // возврат в родительскую папку
    scrN = StackScrN.pop();
  }

  if (direct==-5) {
   // переход в конец списка
   scrN = topics.length/2 - 8;
  }

  if (direct==-6) {
    // простое обновление текущего содержимого 
    //ничего не делать.
  }  

   if ((direct==1) || (direct==-1))  {
   // постраничная прокрутка
   if ((direct==1) && (scrN>=topics.length/2-maxtop)) return; // ограничение на постраничную прокрутку вниз
   scrN+=direct*maxtop;
   // это ограничение на прокрутку вверх (условие direсt!=0 - предотвращает коррекцию для возврата в верхнипй каталог
   if ((scrN<0) || ((scrN>0) && (scrN<maxtop)) && (direct!=0)) scrN=0; 
  }

  if (direct==0) {
     //вход в подпапку 
      StackFolderName.push(this.FolderName);
      this.FolderName=fn;
      StackScrN.push(scrN);
      scrN = 0;
      this.SelectedNode=[]; //снимаем выделения при входе в новую папку $$$$!!!!
  }

   j=1+2*scrN;
   for (var i=0; i<document.all.length; i++) { 
     if ((document.all[i].id.split('$')[1]=="mnr") && (document.all[i].id.split('$')[0] == this.name)) { // это неправильно - нужно учесть this.name
         if ((j>=0)&(j<=topics.length-1)) {
           topic=topics[j];
          // если это папка
           if (topics[j-1].split(":")[0]=="fldr") {
              clr="blue";
              topic=topic+"►";
                  fnm=topics[j-1].split(":")[1];
                  //id строки имеет следующий формат: this.name$<номер строки в списке>$<номер позиции в массиве>
                 innerStr = this.Transform(topic,stFolder, [idspos, j, clr, fnm]);
           }
           else {
                innerStr = this.Transform(topic,stDoc, [idspos, j]);
           }
            idspos+=1;
          } 
         else 
                innerStr = this.Transform("",stTail, []);
         document.all[i].innerHTML=innerStr;
          j+=2;
      }
   }
 // восстанавливаем помеченные
  this.RestoreSelected(); 

}
И все в том же духе. Словом, концепция WWW ("Web Without Web"). Она напрягает мозги, но полностью высвобождает руки и память от помещения туда 500 томов спецификации HTML и CSS. А также раскрепощает творческий подход к проектированию интерфейса.

https://www.youtube.com/watch?v=rboTdmHVPTs

Плюс вам становятся доступны все предыдущие наработки, когда-либо используемые в IT. В первую очередь ментально доступны. Без опоры на ту или иную секту, маразм или ахинею.

Image

Ведь для управления контентом и визуализацией можно также задействовать любую алгоритмическую базу или изобрести новую. Книжечка поучительна. Если кто-то скажет, будто тов. Сталин - отец индустрии, - не верьте, - это вранье. Ведь Сталин не был даже буддой. Как он мог чего-то там породить? Это был банальный плагиатор и садист, загнавший ленинские кадры в шарашки, предварительно натравив на них население, для убедительности дискуссии. Ленин вроде как плохой, а "Ленин сегодня", оказывается, хороший.

https://ru.wikiquote.org/wiki/%D0%A1%D1 ... 0%BD%D1%8F

Это и называется плагиатом. Дата начала "Большого Хапка" не менее поучительна. Не ведитесь на эту разводку опять. Потом худо будет и вам, и вашим потомкам. И жуликов из противоположного якобы лагеря слушать тоже не надо. Все это фуфло. Нужно развивать адекватность.

https://www.youtube.com/watch?v=t3_mSnIOreU

Чтобы не возникало заболевания "уплотнения мозга". Массовой патологии нашего времени. Тогда и "уплотнения квартир" и прочих материальных и ментальных сущностей не возникнет. Они есть простое следствие этого, самого главного, уплотнения. :)
Last edited by leva on Sun 04 Jul, 2021 22:25, edited 36 times in total.
leva
Posts: 54
Joined: Tue 17 Mar, 2020 01:21
Been thanked: 7 times

Пробуем в Web )

Post by leva »

Ну и, наконец, нормальность не бывает ни новой, ни старой. Либо она есть, либо ее нет. Это старая как мир синектика.
Моргенштерн. Занимательная библиография.


https://ru.wikipedia.org/wiki/%D0%9C%D0 ... 0%B8%D1%87

:)
Last edited by leva on Sun 04 Jul, 2021 19:12, edited 2 times in total.
Post Reply

Return to “О тщете всего сущего”