Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Оптимизировать код или как выделить всю вычислительную мощность пк на его выполнение?

Лучший ответ:
Первое, что бросается в глаза - это многократное копирование массива. Представьте, что при сортировке мы бы после каждых двух-трех перестановок делали бы полный дубликат массива. Это же ужас! И это слабое место, постоянное перевыделение памяти больших размеров.
Второе, что тоже важно - это сложность O(N*N). В вашем случае это критично, потому что много элементов в исходном массиве.
Предлагаю немного изменить алгоритм. Делаем одно прохождение, но немного увеличиваем потребление памяти, в которой храним интервалы. Таким образом, мы избавляемся от постоянного копирования массива, а также уменьшаем сложность примерно до O(N).
И маленькая оптимизационная хитрость - поиск интервала происходит по индексу, то есть O(1). Нужно немного поразмыслить, чтобы до этого догадаться, но в целом всё просто.Код<?php
$arr = [100,125,75,175,25,300,275,325,375];
$step = 50;

$b = []; //-1 - deny, 0 - not set, 1 - has interval
$int = []; //intervals if necessary 
$step2 = intdiv($step,2);
$arr = array_values(array_filter($arr, function($v) use ($step2,&$b,&$int) {
    $i = intdiv($v,$step2);
    $mod = $v % $step2;
    $res = true;
    if (isset($b[$i])) {
        if ($b[$i] === -1) $res = false;
        elseif ($mod < $int[$i][0] or $mod > $int[$i][1]) $res = false;
    }
    $b[$i] = -1;
    $b[$i+1] = -1;
    $b[$i-1] = -1;
    if (!isset($b[$i+2])) {
        $b[$i+2] = 1;
        $int[$i+2] = [$mod,$step2];
    } elseif ($b[$i+2] === 1) {
        if ($int[$i+2][0] < $mod) {
            $int[$i+2][0] = $mod;
            if ($int[$i+2][0] >= $int[$i+2][1]) $b[$i+2] = -1;
        }
    }
    if (!isset($b[$i-2])) {
        $b[$i-2] = 1;
        $int[$i-2] = [0,$mod];
    } elseif ($b[$i-2] === 1) {
        if ($int[$i-2][1] > $mod) {
            $int[$i-2][1] = $mod;
            if ($int[$i-2][0] >= $int[$i-2][1]) $b[$i-2] = -1;
        }
    }
    return $res;
}));

var_dump($arr); // [100, 175, 25, 300, 375]
?>
Переписав алгоритм на С++, получите дополнительно 50-кратное увеличение скорости.

Худший ответ:
найти максимальное значение
если их несколько одинаковых - посчитать сколько. это все за один проход.
записать в результат их в виде диапазонов. все.
Вопрос: Почему yii2 не работает с php версией 5.4 хотя в требованиях стоит от 5.4?

Лучший ответ:
Если библиотека работает с PHP 7, то нужно либо переходить на PHP 7, либо отказываться от библиотеки.
Последняя версия PHP 5.4 была выпущена более трех лет назад. Сейчас даже 5.6 уже официально не поддерживается!
Вы действительно уверены, что стоит до сих пор использовать настолько застаревшее ПО?

Худший ответ:
а как Вы ее обойдете, если если это сторонняя библиотека. Вы полезете в вендор править код? Да и если исправите какова вероятность, что не пойдут другие? Если библиотека под 7-ку, то надо использовать на семерке. К тому же семерка быстрее и вообще лучше чем 5.4. Так что я бы решал вопрос с версией php, а не с библиотекой. Хотя конечно всегда найдется говнокод, который решит вопрос с ошибкой. Но по такому скудному описанию сложно что-то советовать.
Вопрос: Выбор платформы для проекта. На сколько гибок Bitrix и в чём он сильнее чем Drupal?

Лучший ответ:
Друпал сильно лучше по коду. Гибче, масштабируемее, можно делать CI. В битриксе вопрос деплоя между dev->stage->рабочим сервером вообще не решен для команды, в Drupal8 это сейчас из коробки (спасибо конфигурациям).
По 54-фз делают все кому не лень под друпалом уже, https://www.ra-don.ru/shop например. Как и интеграций с платежными системами полно (а еще -- их гораздо легче писать новые, чем для битрикса!)

Худший ответ:
Если у вас не типовой функционал то забудьте про эти решения и стройте свое. Возьмите Laravel или Yii, например
Вопрос: Как сделать множественное изменение значений в php файлах?

Лучший ответ:
Открыть все файлы, например, в Notepad++, выделить то что нужно заменить, выбрать на панели инструмент замены, ввести на что хотим изменить, нажать кнопочку заменить во всех открытых. 
Сработает при условии, что во всех файлах искомая строка написано одинаково.

Худший ответ:
cd /path/to/your/folder
sed -i 's/foo/bar/g' *вместо foo может быть регулярка
Вопрос: Как указать docker'у пользователя linux от которого создавать файлы(миграции laravel)?

Лучший ответ:
у docker exec есть параметр -u в котором можно указать пользователя или его uid
Думаю, ты даже можешь в контейнере сменить uid рута на такой же как у тебя на хост машине и в итоге миграции будут создаваться внутри контейнера от рута, а в volume на хост машине будут принадлежать тебе. Но, это не точно :)

Худший ответ:
@rustler2000: у docker-compose exec есть параметр -u в котором можно указать пользователя или его uid@GregIv: Попробовал, получил такую ошибки:
unable to find user SOME_USER: no matching entries in passwd file@rustler2000: Или при создание контейнера надо делать пользователя с правильным uid/gidИтого, решение:
1) Копируем строку с вашим пользователем из
/etc/passwd
2) Добавляем в нужный .docker файл такую инструкцию:RUN echo "СТРОКА ИЗ П1" >> /etc/passwd
3) docker-compose -d --build
4) Запускаем с параметром -uSOME_USER (или указываем конструкцию user: SOME_USER в docker-compose.yml, а лучше выносим имя пользователя в .env)
Вопрос: Ошибка при авторизации через VK. Как исправить?

Лучший ответ:
В общем, сам промучался с этой проблемой. Возможно, кому-то поможет (не претендую на лучший способ решения):
я поменял urlManager'e ссылку, чтобы она выглядела как 
site.ru/auth/network/vkontakte
вместо
site.ru/auth/network/auth?authclient=vkontakte
Плюс пришлось переопределить один класс. И вуаля!class AuthAction extends BaseAuthAction {
    protected function authOAuth2($client)
    {
        if ($client->getName() === 'vkontakte') {
            $client->setReturnUrl(Yii::$app->urlManagerFrontend->createAbsoluteUrl(['/user/sign-in/oauth/vkontakte']));
        }

        return parent::authOAuth2($client);
    }
}

Худший ответ:
С какой-то версии ввели обязательный параметр v. В данном случае достаточно было просто переопределить метод./**
     * @inheritdoc
     */
    public function applyAccessTokenToRequest($request, $accessToken)
    {
        $data = $request->getData();

        $data['v'] = '3.0';
        $data['uids'] = $accessToken->getParam('user_id');
        $data['access_token'] = $accessToken->getToken();

        $request->setData($data);
    }
Вопрос: Как сделать такие секции на сайте?

Лучший ответ:
Договориться с дизайнером об их спрямлении.
А будет выделываться - попенять на стопиццот косяков в верстке.

Худший ответ:
Что-то похожее
Вопрос: Можно ли телефон заряжать от 2А?

Лучший ответ:
Контроллер телефона/планшета банально не возьмет больше чем сможет "пережевать", а это сейчас максимум 2А.
Типовой массовый контроллер повербанка рассчитан на 3А, поэтому делают 2+1
Следующее  ограничение идет в кабеле, далеко не каждый кабель сможет передать 5V при А > 2. 
Для таких случаев придумали Qualcomm Quick Charge, который использует 9-19V, если не ошибаюсь, так можно передавать 36Вт

Худший ответ:
Обычно у зарядок на планшеты 2А, смартфоны 1А-1.5А. 
У меня когда-то был sony ion заряд 2А не чего страшного с ним не произошло)
Вопрос: Верно ли написан JS (jQuery)?

Лучший ответ:
Неверно.
1) Это в принципе не ошибка, но вместо метода .click() лучше использовать .on(). Таким образом вы добьётесь единообразия в коде.
2) $(this) нужно сохранить в переменную, чтобы не создавать каждый раз экземпляр jQuery
3) $(this).closest('.col') тоже сохранить в переменную, ибо поиск в DOM-дереве самая затратная операция в скриптах.
4) Использовать цепочку вызовов по полной, а не частично как сейчас.
5) Какой-то лишний код у вас написан, хз для чего он.
В итоге ваш код будет выглядеть так: https://jsfiddle.net/beLsd91g/1/

Худший ответ:
Если вас все устраивает в чем проблема? И с чего вы взяли что это затратно для браузера?) На мелких проектах вы никогда не упретесь в потолок производительности.
Вопрос: Какой способ лучше для кроссбраузерной адаптивной верстки?

Лучший ответ:
Пора бы уже забыть про IE, если только это не 10 или Edge.
В остальных последних версиях браузеров все более менее одинаково.

Худший ответ:
Важно, что бы в тормознутом IE так-же все хорошо смотрелось
Вы придумали машину времени и делаете сайты для 2000-го года?
Bootstrap 4 использует FlexBox. А CSS Grid или Bootstrap это дело вкуса, привычки и требований проекта. Нельзя ответить на вопрос: "что лучше кушать яблоки или груши?"Есть ли беспроигрышный вариант кроссбраузерной адаптивной верстки?
есть, пустой тег body
Вопрос: Skype + Telegram + WhatsApp + E-mail = в одном десктопном клиенте под Windows?

Лучший ответ:
Сам столкнулся с такой проблемой.
Давно собираюсь сделать такой клиент, но всё руки не доходят. Причина простая - хотелось бы сначала найти  заказчика под этот проект, а не делать только для себя.
Использовать браузер для этой цели - это от безысходности. Задача ведь стоит не просто свести весь этот зоопарк мессенджеров  в одно окно со множестовом вкладок по числу мессенджеров, а чтобы иметь только один мессенджер, умеющий работать со всеми этими сервисами, но с единой базой контактов и с единым списком сообщений для каждого контакта.
Может найдутся заказчики на такой проект? 
Если что, пишите на info@astar.lt ( ASTAR software )

Худший ответ:
При первом поиске в гугле получил ответ, возможно который тебе подойдет.
Вбиваем All in one messenger и первые две строки возможно помогут тебе. Кстати сам мессенджер так и называется.
UPD.
В целом ни одному мессенджеру не выгодно чтоб юзер использовал сторонние приложения, которые позволяют использовать функционал их мессенджера без самого клиента. У Skype, viber, WhatsApp закрытый API и поэтому сделать универсальное приложение не получится. Для своей безопасности и удобства лучше всего использовать родные клиенты этих мессенджеров. Единственное что могу посоветовать это поставить отдельный браузер и сделать у него три вкладки на WhatsApp, Telegram & Email и использовать веб версии этого добра.
Вопрос: Как повернуть стрелку по горизонтали?

Лучший ответ:
Я бы просто обернул всё это дело ещё одним div'ом и назначил ему transform: rotate(сколько там вам надо). Типа так.

Худший ответ:
смотри по цветам RED GREEN BLUE  (раскрасил специально)
подправь сам/а где нужно ㋛
https://codepen.io/anon/pen/rGramB.arrows-clip {
  display: block;
  position: fixed;
  top: 50%;
  margin-top: -25px;
  height: 12px;
  width: 50px;
}
.arrows-clip:after {
  content: '';
  position: absolute;
  top: 5px;
  left: 12px;
  right:12px;
  bottom: 5px;
  background: blue;
	height: 2px;
}
.arrows-clip .arrow-up-clip:after, .arrows-clip .arrow-up-clip:before {
  content: '';
  position: absolute;
  top: 0;
  height: 2px;
  width: 15px;
  background: green;
}
.arrows-clip .arrow-up-clip:after {
  right: 0;
  transform: rotate(45deg);
}
.arrows-clip .arrow-up-clip:before {
  left: 0;
  transform: rotate(-45deg);
}
.arrows-clip .arrow-down-clip:after, .arrows-clip .arrow-down-clip:before {
  content: '';
  position: absolute;
  bottom: 0;
  height: 2px;
  width: 15px;
  background: red;
}
.arrows-clip .arrow-down-clip:after {
  right: 0;
  transform: rotate(-45deg);
}
.arrows-clip .arrow-down-clip:before {
  left: 0;
  transform: rotate(45deg);
}
.arrows-clip {
  -moz-animation: bounce-arrows 1s both 999999 ease-in-out, opacity-in 0.5s forwards 999999s reverse;
  -webkit-animation: bounce-arrows 1s both 999999 ease-in-out, opacity-in 0.5s forwards 999999s reverse;
  animation: bounce-arrows 1s both 999999 ease-in-out, opacity-in 0.5s forwards 999999s reverse;
}
@-moz-keyframes bounce-arrows {
  0%, 100% {
    width: 50px;
    -moz-transform: translateX(0);
    transform: translateX(0);
  }
  50% {
    width: 70px;
    -moz-transform: translateX(-10px);
    transform: translateX(-10px);
  }
}
@-webkit-keyframes bounce-arrows {
  0%, 100% {
    width: 50px;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  50% {
    width: 70px;
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px);
  }
}
@keyframes bounce-arrows {
  0%, 100% {
    width: 50px;
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  50% {
    width: 70px;
    -moz-transform: translateX(-10px);
    -ms-transform: translateX(-10px);
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px);
  }
}
Вопрос: Нужно сделать свою кнопку play у тега video?

Лучший ответ:
По сути все просто. Нужно только обратиться к API html5 video, и можно творить все что угодно.snippet

Худший ответ:
Делайте обёртку и с помощью z-index и position: absolute подгоняйте.
По типу:<div class="video_wrapper">
   <div class="video_static_image"></div>
   <div class="video_play_button"></div>
   <video class="video_source"></video>
</div>
Вопрос: Что такое «Внешняя скорость передачи данных» HDD?

Лучший ответ:
Очень странное описание задачи или вопроса. 
Смотрите очередь на диск или время отклика и всё станет понятно, если растёт - значит он не успевает. 
SATA 6Gbit/s - скорость интерфейса. Это максимальная скорость, с которой способен работать интерфейс диска, а сам диск, с такой скоростью, сможет вам, разве что, отдать свой кеш, не более того. Даже не все SSD на такое способны (работать с такой скоростью).

Худший ответ:
Судя по формулировки вопроса вам лучше всего обратиться к специалисту.
Если кратко, скорость обычного жесткого диска в пределе 150мбайт/c, при случайном доступе может падать вплоть до нескольких мбайт в секунду. Проверить есть ли проблема с производительностью диска можно через очередь команд к диску( есть такая метрика производительности ).
Вопрос: Перспективы JQuery?

Лучший ответ:
Я думаю jquery сейчас находится на плато и будет там довольно долго. Далеко не всем нужен SPA. Пилить какой-нибудь лэндос на реакте ради того, чтобы пару кнопок анимировать - это как по воробьям из пушки стрелять.

Худший ответ:
Да, на реакте и ангуляре можно сделать все, что можно сделать с помощью jquery или vanillajs. Ну а сам jQuery еще долго не исчезнет и будет использоваться для небольших приложений, ради которых тащить тот или иной фреймворк нецелесообразно.
Вопрос: Скажите кто пробовал сдавать MCSA сертификат Microsoft?

Лучший ответ:
Сложно ли - да, требуется голова помимо дампов, желательно ещё и опыт управления 2012м в реальных условиях.
Легко ли достать дампы - довольно легко (было), но на одни дампы полагаться нельзя.
Стоит ли сдавать - в 2014м стоило, правда 411й не осилил, потому что NAP нигде не было в досягаемости. Сейчас возможно стоит посмотреть в сторону таких же экзаменов, но про 2016й сервер.

Худший ответ:
Можно ли подсмотреть
Нет.Стоит ли сдавать?в этом случае Легко ли найти дампы на них?
Не стоит. Лучше нормально подготовиться.
Дампы всегда успеете.Сильно ли сложно их сдать?
Если курсы подготовки на английском освоите - не сложно, там половина ответов в самих вопросах.
У Вас цель какая? Просто бумажка или планируете стать MCSE и т.д.Как проходит сам экзамен?
https://www.microsoft.com/ru-ru/learning/certifica...
https://habr.com/post/262707/
Вопрос: Как сделать такой калькулятор?

Лучший ответ:
Картинку делаем в svg. По смене данных в форме запускаем js функцию, которая производит расчеты (тут только Вам ведомо при каких значениях что меняется) и  добавляет панели или красит их, что там Вам надо.

Худший ответ:
<select name='house_type'>
    <option value='0'>каркасный</option>
   .... 
</select>
<input name='square'>

<div id='battery'>  //  Батарея из трёх секций
   <img id='hot' src='hot_section.png'>
   <img id='hot' src='hot_section.png'>
   <img id='hot' src='hot_section.png'>
   <img id='cold' src='cold_section.png'>
   <img id='cold' src='cold_section.png'>
   <img id='cold' src='cold_section.png'>
</div>$( '[name=house_type], [name=square]' ).on( 'change', function() {
    var p = calcPower( $( '[name=house_type]' ).value, $( '[name=square]' ).value )  //  Вычисление количества включённых секций
    showPowerLevel( p );
});

function showPowerLevel( p )	{
    $( '#hot:lt( '+p+' )' ).show();
    $( '#hot:gt( '+p+'-1 )' ).hide();
    $( '#cold:lt( '+p+' )' ).hide();
    $( '#cold:gt( '+p+'-1 )' ).show();
}

showPowerLevel( 0 );
Вопрос: Почему сервер может долго отдавать json?

Лучший ответ:
3 мегабайта за 1.5 секунды - это около 20 мегабит/сек. Для локальной сети маловато, а для интернета, IMHO, вполне приличная скорость.

Худший ответ:
Переходите с json на что-нибудь другое 
msgpack.org
bsonspec.org
если данные имеют строгую схему то 
https://developers.google.com/protocol-buffers/
Вопрос: Стоит ли устанавливать Windows 10 на данную конфигурацию?

Лучший ответ:
На вкус и цвет..
Работать она будет, поэтому если нужна именно 10ка, то ставьте ее.
Я бы поставил 7ку, или 8ку.
Если надумаете ставить - не забудьте про SSD, у десятки дисковая активность явно побольше, hdd не справляются под системой вообще.
Хотя SSD не лишним будет в любом случае, если важна комфортная работа.

Худший ответ:
Windows 7 - идеальная система для такой конфигурации, и не только для такой.
С SSD вообще "летать" будет.
Вопрос: Зачем собирать проект на сервере?

Лучший ответ:
У софта, библиотек, и прочих зависимостей бывают версии. Еще и у железа отличия бывают.
Смысл сборки "на месте" в том, что если уж оно собралось, то уже не должно ругаться на "не та версия" и должно учитывать особенности железа. Т.е. потерпев некоторое неудобство при сборке получаете надежность и скорость работы.
Собрав у себя локально и перелив на сервер, у которого отличается окружение - рискуете получить кучу глюков, и чем больше оно отличается, тем сильнее рискуете.

Худший ответ:
Ну, во-первых, нужно понимать - мы говорим о статических артифактах или динамических? Если статических, то все равно как и где собрать.
Если о динамических, то советую посмотреть в сторону волшебного слова "контейнеризация" и проблема разницы исполняемой среды уйдет в небытие.
Автор, дай больше конкретики, какой use case тебя тревожит
Вопрос: Какие альтернативы есть для rabbitmq?

Лучший ответ:
Не вижу связи между MQ и кроном - MQ это способ связи между клиентом и сервером.
RabbitMQ на данный момент весьма актуальна (последний релиз от 25 мая) - не представляю, куда уж "посвежее".

Худший ответ:
замечательный цикл статей по теме
habrahabr.ru/post/149694
habrahabr.ru/post/150134
habrahabr.ru/post/200870
Вопрос: Почему при float: right блоки меняются местами?

Лучший ответ:
птому что флоат это не прижимание а обтекание.

Худший ответ:
Потому, что смысл флоата такой. Если нескольким блокам дать float:right, то последний в DOM-е блок останется на месте, все же остальные поочередно (последовательно) последуют за ним. Проще сказать: блоки выстраиваются последовательно в обратном порядке.
Вопрос: Нужно ли знать front-end, программисту back-end?

Лучший ответ:
Я согласен с OnYourLips 
Добавлю от себя такой момент - судя по моему опыту надо знать и то и то на довольно хорошем уровне. Когда достигните Middle Full Stack Developer можно будет уже отдавать предпочтение backend или frontend и соотвественно перейти на кодинг только одной части.
На вопрос "зачем?" ответить легко - ты когда кодишь на беке ты должен понимаешь как фронтендер будет это использовать и наоборот. Если ты будешь тупо писать API без понимания работы фронта, то фронтендеры тебя схедя живьем.

Худший ответ:
Этот вопрос уже был на Тостере.
Если кратко, то достаточно основ HTML5.
Вопрос: Socks5 что сможет увидеть админ?

Лучший ответ:
Socks5 over ssh подойдет.
Но вам не кажется, что использование прокси или подобных решений только привлекут к вам внимание?

Худший ответ:
Нужен vpn, прокси не спасет.
Вопрос: Как правильно писать вложенность в CSS?

Лучший ответ:
это указание прямого потомка, добавите вложенность и первый вариант перестанет работать
div.title > a - только a именно в этом диве
div.title a - все a в этом диве не зависимо от вложенности
Для <div class="title">
   <div class="some">
     <a
сработает только второе
для<div class="title">
     <a
сработают оба

Худший ответ:
> — указания на потомка.div.title > a > span {} — мне нужен span, который находится в a, который находится в div.title (лучше читать справа-налево).div.title a span {} - мне нужны все span, которые находятся во всех a, которые находятся в div.title
Вопрос: Проблемы с сетью при копировании больших файлов. Причины?

Лучший ответ:
Подскажите пожалуйста куда копать?
1. Продолжать локализовывать проблему, убирая один за одним "подозреваемые" в проблемах компоненты. 
2. Найти причину. 
3. Устранить.
4. Профит!

Худший ответ:
Всем спасибо, догадки подтвердились. Заменил гигабитную "соху" на 100Мбитную) Все наладилось.
Вопрос: На каком js фреймворке писать landing page?

Лучший ответ:
Лендинг ведь не одностраничное сложное приложение с кучей интерактива. В лендинге только крвасивая верстка, параллакс-эффект какой-нибудь и формы для регистрации. Для форм можно, конечно, использовать react / vue, но вряд ли это оправданно.

Худший ответ:
Почему не выбрать vue.js? Если нужно быстрое вхождение во фрейм, то вью будет получше того же ангуляра. 
+ vue сейчас на большом подъеме
Есть много готовых уже решений awesome-vue
Вопрос: Как отправить сообщение на telegram с моего сайта, просто по нажатию на кнопку?

Лучший ответ:
Можно. Создаете бота, подписываетесь на него.
Когда пользователь на сайте нажимает кнопку - шлете с сайта запрос в апи телеграма, чтобы бот отправил Вам сообщение.
https://core.telegram.org/botsUPD
метод https://core.telegram.org/bots/api#sendmessage
chat_id - это ваш личный id в телеграме.
Узнать его можно очень просто - получаем от бота сообщения которые ему пишут юзеры, как это сделать написано https://core.telegram.org/bots/api#getting-updates
В сообщении видно chat_id автора. Соответственно пишите боту что нибудь, видите свой chat_id, хардкодите его в коде.

Худший ответ:
Да, можете, но надо чтобы с ним начали беседу. В sendmessage указывается chatid и сообщение. При нажатии на кнопку реализуйте это и все.
Вопрос: Как подружиться c SMTP от Яндекса?

Лучший ответ:
Сгенерировал одноразовый пароль - не помогло. 
Потом включил в настройках яндекса 
Разрешить доступ к почтовому ящику с помощью почтовых клиентов
С сервера imap.yandex.ru по протоколу IMAP
Хотя казалось бы при чем тут smtp
И всё заработало

Худший ответ:
username может без @yandex.ru?
Вопрос: Как проверить на соотношение сторон?

Лучший ответ:
Взять абсолютное значение разницы отношения ширины к высоте и 16/9, и если то меньше некого порога, выполнить действия:if( Math.abs($( window ).width()/$( window ).height() - 16/9) > 0.01) {
  // сделать что-то, когда соотношение не 16:9
}

Худший ответ:
https://gist.github.com/phobeo/793329 вот сюда отдаешь ширину и высоту окна и сравниваешь)
Вопрос: Как правильно указать пользователю что данный блок можно свайпить если это не слайдер?

Лучший ответ:
Так же как и сейчас. Оставьте один блок справа на половину, чтобы понятно было что там еще есть другие блоки.Скриншот

Худший ответ:
Добавить текст "Тащите изображения влево, чтобы увидеть больше".
Вот это будет понятней всего.
Вопрос: C#: Как правильно прочитать и записать объекты в ArrayList?

Лучший ответ:
Не стоит использовать ArrayListбез весомой на то необходимости. Поэтому компилятор не смог вас предупредить, что ArrayListсостоит из ArrayList'ов, в котором строки (двумерный массив строк), а не просто строк.
Вместо ArrayListнеобходимо использовать типизированный динамический массивList<string>.public void Click_OpenFile()
{
    string fileName = form1.OpenFie();

    IList<string[]> aL = ParseFile(fileName);

    foreach (var line in aL)
    {
        // Снова собираем токены в строки
        MessageBox.Show(string.Join(" ", line));
    }
}

// Читаем файл и построчно парсим его
private IList<string[]> ParseFile(string fileName)
{
    if (string.IsNullOrEmpty(fileName))
    {
        throw new ArgumentNullException(nameof(fileName));
    }
    if (!File.Exists(fileName))
    {
        throw new ArgumentException($"There is no file {fileName}!");
    }

    string[] fileContent = File.ReadAllLines(result);
    var aL = new List<string[]>(fileContent.Length);
    foreach (var line in fileContent)
    {
        aL.Add(ParseString(line));
    }
    return aL;
}

// Разбиваем строки на токены
private string[] ParseString(string s)
{
    const char delimiter = '|';
    return s.Split(delimiter);
}

Худший ответ:
в конце есть пример