Страница 1 из 1

ALKEEPER RIP

СообщениеДобавлено: Ср мар 16, 2022 18:47
Padonak
Привет, друзья. Я долго тут не был, смотрю, мало кто вообще заходит из старожилов. Но произошло событие, о котором я просто должен вам сообщить, хотя, пальцы не хотят нажимать сейчас клавиши. 29 ноября 2021 года умер наш друг Саня Alkeeper. Заболел короной, которая вместе с его диабетом его убила. Я все годы, которые сюда не появлялся, продолжал с ним общаться в Вацапе. Изредка, в основном просил подсказать мне дураку что-то по программированию. Он никогда не отказывал, всегда находил время и возможность, а также слова, которые любитель вроде меня мог бы понять без труда. Не знаю, что ещё написать, я бы, вообще, эту поганую тему лучше не создавал... Когда это произошло, я сообщил Муерте, но больше у меня контактов ваших ничьих нет, а я думаю, что вы должны знать. Помяните нашего кента, кто бухает. Выложу тут некоторое количество его фоток:

1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

10.jpg

11.jpg

12.jpg

13.jpg

9.jpg

Re: ALKEEPER RIP

СообщениеДобавлено: Вс май 15, 2022 15:10
Aqua$erg
Да, помню. Дядька Алкипер был самым классным админом.
Корона, будь она неладна... У меня тоже 2-х друзей забрала.
Вечная память Алкиперу

Re: ALKEEPER RIP

СообщениеДобавлено: Пн май 16, 2022 20:12
Padonak
Слава богу, хоть один живой появился! Привет, Серг )) Надо оживить форум, думаю.

Re: ALKEEPER RIP

СообщениеДобавлено: Вт май 17, 2022 22:24
Muerto
Я в деле!

Re: ALKEEPER RIP

СообщениеДобавлено: Вт май 17, 2022 22:48
Jedi
Ох, печально это. Хороший был парень.
А форум было бы действительно не плохо оживить. Вот только как?

Re: ALKEEPER RIP

СообщениеДобавлено: Вт май 17, 2022 23:16
Padonak
Привет, друзья! Становится веселее! Хз как, надо придумать. В конце-концов, это я тут сантехник, а вы как раз заведуете интернетами ))) Многие форумы и сейчас процветают. Например, Киберфорум. Разве наш хуже?

Re: ALKEEPER RIP

СообщениеДобавлено: Вт май 17, 2022 23:22
Padonak
Давайте начнём с того, что станем сюда приходить хотя бы раз в день, а можно и чаще. Как-то о чём-то беседовать, глядишь и пойдёт дело..

Re: ALKEEPER RIP

СообщениеДобавлено: Вт май 17, 2022 23:24
Padonak
Неплохо бы админа раздобыть, поудалять к херам всяких нулевых юзеров без сообщений, подмести тут, полы помыть, ну и т.д.

Re: ALKEEPER RIP

СообщениеДобавлено: Ср май 18, 2022 10:24
Jedi
Нас получается тут всего 4 пока.
У меня вроде был контакт админа в скайпе, посмотрю

Re: ALKEEPER RIP

СообщениеДобавлено: Ср май 18, 2022 12:18
Padonak
Да-да, без админства херово

Re: ALKEEPER RIP

СообщениеДобавлено: Ср май 18, 2022 12:25
Padonak
Кстати, по поводу уборки - раздел форума Flash можно благополучно удалить к бениной маме ))

Re: ALKEEPER RIP

СообщениеДобавлено: Ср май 18, 2022 18:00
Jedi
Так может тогда вообще перейти куда-нибудь в телеграм или в ватсапе группу сделать? :)

Re: ALKEEPER RIP

СообщениеДобавлено: Ср май 18, 2022 18:09
Padonak
В вацапе - я только "за", т.к. у меня Skype установлен исключительно из-за Муерты. Больше никто из моих знакомых им не пользуется. Но у Муерты нет вацапа, как он говорит! Телега у меня есть, но вацап как-то роднее. Я тебе сейчас в личку скину мой номер телефона, напиши мне в вацап, чтоб я тебя сохранил в Контакты. Но форум всё равно кайф оживить. Вацап - для быстрой связи, а форум для каких-то вопросов по программированию или всяких там ещё цсс-хтмл-пэхэпэ и прочих апачей ))

Re: ALKEEPER RIP

СообщениеДобавлено: Сб май 21, 2022 14:03
Muerto
Кстати, если форум восстанавливать, то неплохо бы SSL-сертификат установить. Кто хостингом занимается у нас?

Re: ALKEEPER RIP

СообщениеДобавлено: Сб май 21, 2022 18:05
Padonak
Скай занимался, насколько я помню. Хз как его выцепить, у меня не осталось контакта, хотя раньше был...

Re: ALKEEPER RIP

СообщениеДобавлено: Пн дек 26, 2022 1:51
Skay
Скай тут. Пароль забыл, кое-как восстановил прямым инсёртом в БД...

Грустная новость, только увидел. Саша был у меня в друзьях в ФБ и Инсте, но эта новость как-то меня обошла и узнал вот только что. Светлая ему память!


Padonak писал(а):Скай занимался, насколько я помню. Хз как его выцепить, у меня не осталось контакта, хотя раньше был...


Сделал тебя админом

Re: ALKEEPER RIP

СообщениеДобавлено: Пн дек 26, 2022 1:54
Skay
Muerto писал(а):Кстати, если форум восстанавливать, то неплохо бы SSL-сертификат установить. Кто хостингом занимается у нас?


мы староверы ;D верим в HTTP ))) Вроде активировал SSL на хостинге через Lets Encrypt.. хостинг виртуальный, наверное через какое-то время активируется...

Re: ALKEEPER RIP

СообщениеДобавлено: Пн дек 26, 2022 1:57
Skay
Насчет восстановления форума - хз, времена уже изменились, как и технологии. Можно создать чатик в Телеге для своих, если есть желание, чтобы как-то поддерживать контакт)

Re: ALKEEPER RIP

СообщениеДобавлено: Пт дек 30, 2022 18:33
Padonak
Блин, какая-то хрень с фотками. На серваке там они лежат, только что проверил. Слава богу, что Скай жив-здоров и появился! Я уже, было, заходить сюда перестал, т.к. никаких движений не было. Спасибо за админа, попробую что-то тут поменять на досуге. Зря ты, Скай, заранее не веришь в реанимацию форума - Сайберфорум-то очень даже активен. Уверен, что многое зависит от посещаемости форума умными чуваками типа программистов, которые могут помогать страждущим. Ну и просто общаться.

Re: ALKEEPER RIP

СообщениеДобавлено: Пт дек 30, 2022 19:03
Padonak
Фотки поправил. Пока разобрался, что тут их можно прямо в сообщение вставить, много матерился. Или тупею уже с возрастом -13-

Re: ALKEEPER RIP

СообщениеДобавлено: Вт июн 20, 2023 16:58
VoicE
Спустя 21 год с момента написания последнего сообщения тут. Во же ж время пролетело.
А я таки с тех пор занимаюсь вебом. Читаю свои старые сообщения, диву даюсь...

Alkeeper'у земля пухом. Помню его тут.

Re: ALKEEPER RIP

СообщениеДобавлено: Вс июн 25, 2023 0:44
skreets
BSBD.......

Просто смотрел на ютубе как индус крестики нолики верстает, и думаю а как там дома дела, зашел и ахирел...

Re: ALKEEPER RIP

СообщениеДобавлено: Вс июн 25, 2023 0:49
skreets
Я за чатик в телеге, если что.

Re: ALKEEPER RIP

СообщениеДобавлено: Сб июл 01, 2023 18:14
Padonak
VoicE писал(а):... Читаю свои старые сообщения, диву даюсь...


Я - тоже, когда свою херь тут читаю ))

Re: ALKEEPER RIP

СообщениеДобавлено: Сб июл 01, 2023 18:21
Padonak
skreets писал(а):Я за чатик в телеге, если что.


Создал там группу, приходите: https://t.me/+ISNpzyv6DMk5NjI6. Никогда в телеге не делал группы, хз чо так как -09-

Re: ALKEEPER RIP

СообщениеДобавлено: Сб июл 01, 2023 18:29
Padonak
skreets писал(а):... индус крестики нолики верстает...


Я тут как раз недавно накалякал крестики-нолики(бомж-стайл):

Код: Выделить всё
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>&#10060; vs &#9898;</title>
   <style>
   table{
   margin-top: 50px;
   }
   
   tr{
   background-color: #f1f3f4;
   }
   
   td{
   width: 50px !important;
   height: 50px !important;
   text-align: center;
   cursor: pointer;
   font-size: 30px;
   border: 1px solid #ccc;
   border-radius: 5px;
   }
   
   td span{
   font-size: 12px;
   }
   
   th{
   background-color: #fff;
   padding: 15px 0px;
   }
   
   th b{
   font-size: 18px;
   color: crimson;
   }
   
   .cross{
   background-color: #045;
   }
   
   .zero{
   background-color: #abc;
   }
   </style>
   <script>
   let turn = 'cross',
       flag = 0;
   /* padonakQuery ;)) */
   function _(attr){
      return !arguments[1] ? document.querySelector(attr) : document.querySelectorAll(attr);
    }
   
   function fieldSize(){
      const n = +( prompt('Введите количество рядов/ячеек игрового поля', '10')?.replace( /[^\d]+/g, '' ) );
      return n >= 6 ? n : 6;
   }
   
   function checkVH(val){
   /*
   Если передан индекс(number), проверяем вертикаль
   В противном случае(коллекция) - горизонталь
   */
      const row = typeof val == 'number' ? _(`td:nth-child(${val + 1})`, 1) : val,
           res = [...row].find( (n, i, A) => i >= 2 && n.className !== '' && n.className == A[i - 1].className && n.className == A[i - 2].className );
      if( res ){
         _('#game tbody').insertAdjacentHTML('afterbegin', `<tr><th colspan="${row.length}">Игрок <b>${turn == 'zero' ? 'Крестики' : 'Нолики'}</b> победил!</th></tr>` );
         _('#game th').scrollIntoView({block: 'center', behavior: 'smooth'});
         flag++;
      }
   }
   
   function checkDiag(fsize, turn, rownum, ind){
   const ltrDiag = [], /* left to right */
       rtlDiag = []; /* right to left */
   
   /* сперва проверяем диагональ слева-направо */
   let [x, y] = [ind, rownum];
   
   /* стартовые позиции для цикла */
   while( x > 0 && y > 0 ){ x--; y--; }
   
   /* массив классНеймов(если есть или прочерков) ячеек "по диагонали" */
   for(let i = y, j = x; i < fsize; i++, j++){
      ltrDiag.push( _('#game').rows[i]?.cells[j]?.className || '-' );
   }
   
   /* ищем три классНейма подряд в массиве */
    const resLTR = ltrDiag.find( (n, i, A) => i >= 2 && n !== '-' && n == A[i - 1] && n == A[i - 2] );
    if( resLTR ){
         _('#game tbody').insertAdjacentHTML('afterbegin', `<tr><th colspan="${fsize}">Игрок <b>${turn == 'zero' ? 'Нолики' : 'Крестики'}</b> победил!</th></tr>` );
         _('#game th').scrollIntoView({block: 'center', behavior: 'smooth'});
         flag++;
         /* если нашлось, то выходим из функции */
         return;
      }
   
   /* если первая диагональ не дала результата, проверяем справа-налево */
   
   let [c, r] = [ind, rownum];
   
   /* стартовые позиции для цикла */
   while( c < fsize - 1 && r > 0 ){ c++; r--; }
   
  // console.log( [c, r] );
   
   /* массив классНеймов(если есть или прочерков) ячеек "по диагонали" */
   for(let i = r, j = c; i < fsize && j >= 0; i++, j--){
         rtlDiag.push( _('#game').rows[i].cells[j].className || '-' );
         //console.log(`row ${i} cell ${j}`);
      }
   
   //console.log( rtlDiag );
   
   /* ищем три классНейма подряд в массиве */
   const resRTL = rtlDiag.find( (n, i, A) => i >= 2 && n !== '-' && n == A[i - 1] && n == A[i - 2] );
   if( resRTL ){
         _('#game tbody').insertAdjacentHTML('afterbegin', `<tr><th colspan="${fsize}">Игрок <b>${turn == 'zero' ? 'Нолики' : 'Крестики'}</b> победил!</th></tr>` );
         _('#game th').scrollIntoView({block: 'center', behavior: 'smooth'});
         flag++;
      }
   }
   
   function buildTab(){
      const n = Array( fieldSize() ).fill(0);
   
     _('body').insertAdjacentHTML('afterbegin', `<table id="game" align="center" border="0">
         <tbody>
         ${ n.map( tr => `<tr>
               ${ n.map( td => `<td>&nbsp;</td>` ).join('') }
            </tr>` ).join('') }
         </tbody></table>`);
   
     _('#game').addEventListener('click', e => {
         const trg = e.target,
              cls = ['cross','zero'];
      
      if(flag > 0 || trg.tagName !== 'TD' || cls.includes( trg.className )) return;
   
      trg.classList.add(turn);
      
      turn == 'zero' ?
         [trg.innerHTML = '&#9898;', turn = 'cross'] :
            [trg.innerHTML = '&#10060;', turn = 'zero'];
   
      /* проверка по горизонтали */
      flag == 0 ? checkVH(trg.closest('tr').cells) : null;
   
      /* проверка по вертикали */
      flag == 0 ? checkVH([...trg.closest('tr').cells].indexOf(trg)) : null;
      
      /* проверка по диагонали */
      flag == 0 ? checkDiag(
                  n.length,
                     trg.className,
                        [..._('#game').rows].indexOf(trg.closest('tr')),
                           [...trg.closest('tr').cells].indexOf(trg)
                              ) :
                                 null;
     });
   }
   
   onload = buildTab;
   
   </script>
  </head>
  <body>   
     
  </body>
</html>