Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: .NET неоправдано сжирает память?

Лучший ответ:
трудно что-то сказать не видя всего кода. Но вот тут:byte[] buffer = new byte[1000000000]; // RAM заюзалась
buffer = null;
buffer = new byte[100]; // (<b>GC</b>) тот же самый буфер. Но памяти при этом выделено под 1000000100 байт.
Нет никакой гарантии что сборщик мусора сработает. От может сработать, а может когда-нибудь потом.
Что происходит в этом коде? Вы выделяете память, buffer = null не говорит о том что память должна освободиться, а только что переменная ссылается на другой участок памяти (с адресом 0). Далее выделяете еще память и теперь переменная ссылается на новый участок памяти..
По поводу сборщика мусора. В 99,999% случаев, когда программисту хочется поработать вручную со сборщиком мусора, нужно править код.

Худший ответ:
Сборщик будет отдавать память, когда у программы будет простой и/или системе она(память) потребуется и/или в системе будет доступно менее некоторого % памяти.
По графику вызова GC, он вызывался только в самом начале.
Если хотите другого поведения - вынесите выделение и использование массива в функцию, и крутите в цикле функцию, при этом поставьте у gc параллельную серверную сборку. Тогда выброшенные фреймы стека с указателем на ваш старый byte[] должны быстро подбираться параллельной сборкой мусора, приложение начнет интенсивнее отдавать память.
Соответствующие флаги в appConfig-е
https://msdn.microsoft.com/ru-ru/library/ms229357(...
https://msdn.microsoft.com/ru-ru/library/ms229357(...
Вопрос: Как обойти ошибку при добавлении столбца в БД?

Лучший ответ:
В MySQL 5.7  и выше по умолчанию используется строгая проверка даты. Пустое значение или 0000-00-00 недопустимы.
Вам необходимо задать корректное значение по умолчанию, либо установить режим ALLOW_INVALID_DATES.

Худший ответ:
При создании нового столбца, вероятно, вы указываете значение по умолчанию, и вероятно, пытаетесь использовать значение 0 для даты. Хотя, если используется значение по умолчанию, его нужно задавать корректно с точки зрения эпохи Unix (от 01.01.1970 и моложе).
Вопрос: Какие актуальные способы есть автоматического распознавания ReCaptcha2 с выбором картинок в сетке 3на3?

Лучший ответ:
Смотря откуда рекапчу берёшь. Можно antigate.com использовать, а можно pixodrom.com
decaptcher.com ещё, но это американский сайт.
Они решают антикапчи быстро

Худший ответ:
Imacros скрипт гуляет по интернету. А там уже на выбор подключайете к нему любое яля Rucaptcha или anti-captcha или забугорный deathcaptcha api.
Вопрос: Почему не выполняется команда git add. ?

Лучший ответ:
Инициализируем новый репозиторийgit init
Добавляем файлы (все)git add .
Если файлы не добавляются, то добавляем каждый вручнуюgit add README.md
Делаем коммитgit commit -m "First commit"
Пушимgit push -u origin masterwarning: LF will be replaced by CRLF in *file_name*
The file will have its original line endings in your working directory.
Здесь всего-лишь говорится, что перенос строки будет дополнен возвратом каретки.

Худший ответ:
Первая строка гугла на запрос "warning: LF will be replaced by CRLF in *file_name*"
stackoverflow.com/questions/5834014/lf-will-be-rep...
Что же вам тут не подошло?
Вопрос: Как получить API не регистрируясь в системе, которая предоставляет API?

Лучший ответ:
Конечно можно!
1) Выучиться
2) Пройти собеседование и устроиться на работу в заведение, где хочется получить доступ к АПИ
3) Доработать до должности, где будет возможность получить доступ к проду
4) Пушишь в БД ключик и вуаля! Без регистрации и смс, да ещё и денег дадут.

Худший ответ:
можете взломать данный сервис (запрещено УК РФ)
Вопрос: Как найти майнер на linux, если по логам все хорошо?

Лучший ответ:
Майнер грузит CPU, пали процессы которые грузят проц, используй strace если нужно

Худший ответ:
Сделай sha1sum всех файлов на больном.
Подними второй с темже набором пакетов.
Проверь что отличается.
Определи из .deb оно или иначе.
Если иначе - то "ручками" смотри - мониторь порты и обращения к ip dns
ps: etckeeper тоже нет?
Вопрос: System.io mscorlib или system в C#?

Лучший ответ:
Не совсем понятно, зачем вам это. Когда вы пишете using System.IO в текущий скоуп добавляются сущности из всего System.IO, не важно из какой сборки (иными словами, со всех сборок сразу). В этом и смысл пространств имён в дотнете - они предствляют собой способ логического деления проекта и библиотек (в отличие от физического деления на сборки). Если вы не хотите подключать всё, подключите конкретный класс таким образом:using StreamReader = System.IO.StreamReader;

Худший ответ:
Пространства имен это по сути просто синтаксический сахар (ну и немного метаданных вроде), для .net это просто префиксы имен типов. Т.е. то, что выглядит как MyClass, находящийся в пространстве имен MyNamespace, для CLR является типом с именем MyNamespace.MyClass, поэтому MyNamespace.MyClass может быть в одной сборке, а MyNamespace.AnotherClass в другой.
Вопрос: Как реализовать модель конструктора?

Лучший ответ:
Я решал такую задачу на РСУБД, особо сложного в ней ничего нет
NoSQL я бы рекомендовал применять только если вы разрабатываете что-то гигантское, где необходимо горизонтальное масштабирование на много серверов. Сам по себе схема-лесс можно реализовать и на postgres или mysql с помощью типов json/jsonb.
Целостность данных на прикладном уровне вам придется обеспечивать "вручную" (т.е. писать эту логику) в обоих случаях, независимо от хранилища.

Худший ответ:
Я решал такую задачу на РСУБД, особо сложного в ней ничего нет
NoSQL я бы рекомендовал применять только если вы разрабатываете что-то гигантское, где необходимо горизонтальное масштабирование на много серверов. Сам по себе схема-лесс можно реализовать и на postgres или mysql с помощью типов json/jsonb.
Целостность данных на прикладном уровне вам придется обеспечивать "вручную" (т.е. писать эту логику) в обоих случаях, независимо от хранилища.
Вопрос: Как настроить среду delphi?

Лучший ответ:
Никак

Худший ответ:
Попробуйте "прилепить" окна с деревом обьектов, свойствами компонентов, и окно предупреждений к главной форме. Окно с компонентами "прилепить" не удастся.
Вопрос: Как разрабатывать сайты в облаке фрилансеру?

Лучший ответ:
Очевидно, что это git.
И я удивлен от ответов и комментариев. Похоже на троллинг, если честно. OnYourLips, очевидно всем, кто работает в веб-деве, 
что git - НЕ ЯВЛЯЕТСЯ ЗАМЕНОЙ веб-серверу или хост-площадке/VDS/VPS 
для работы над кодом. GIT - служит для синхронизации файлов проекта! Вот это точно 100%-ый троллинг!
Ставить тучу софта на тучу ПК - это тоже не вариант!
----------------------------------------------->>>>>> VDS+SSH <<<<<<
На VDS поднимаем всё, что необходимо: Денвер/XAMPP или VirtualBox, GIT, Vagrant, SSH и работаем через SSH.
1. Для разработки нужно: 
  1.1 или портативная скоростная DEV-флешка (xampp,lamp,vagrant) 
  1.2 или VDS+SSH.
2. Для синхронизации и хранения: SFTP или GIT на VDS (при работе в команде)PS: (как альтернатива) Денвер может ставиться на USB/HDD-флешку и запускаться с неё, про XAMPP - я не знаю: вполне возможно, что тоже может.
Про Vagrant - также нет информации на запуск с переносного сменного носителя, но тут в любом случае нужно USB3.0 и скоростную флешку + бэкап, например, в GIT, кстати!))

Худший ответ:
VPS+SSH+VNC, но если интернет медленный, то в VNC будет графика "тормозить", лучше RDP (от Microsoft).
Вопрос: Как передать значение переменной из App.vue в main.js?

Лучший ответ:
Сделайте код хонём.
Выносите авторизацию в отдельный компонент, как все нормальные люди. И хранилище vuex, для данных авторизации, тоже, кстати.

Худший ответ:
Используйте общий js модуль для сохранения и извлечения ключа и пропишите в нём сохранение (извлечение) в/из localstorage.
Вопрос: Где можно осуществлять продвижение конкурса по программированию?

Лучший ответ:
for gde in toster mail Хабрахабр Geektimes Вконтакте Фейсбук
do
    Программисты $gde все на конкурс!!!!
done

Худший ответ:
Там где много программистов.
Поищите тематические паблики в ВК, фейсбук или каналы в телеграм поговорите с ними насчёт рекламы, настройте таргетированную рекламу, чтобы тем, кто состоит в группах высвечивалась ваша реклама. Программисткие сайты типо хабра, тостера, типичного программиста.
Всякие geekbrains, сайты для изучения.
Вопрос: Как сделать так, чтобы при добавлении информации в базу использовались сразу все пользователи?

Лучший ответ:
INSERT INTO pm (to,author,time,title,content) 
SELECT id, :author, :sendtime, :title, :message
    FROM users
В insert ... select сам select может быть любым, лишь бы в результате его выполнения было нужное число колонок и их можно было привести к требуемым типам данных.

Худший ответ:
в to пишете 0, при выборке сообщений смотрите, если to имеет значение 0 то рассылаете всем пользователям сообщение.
Вопрос: Как сделать перенаправление в public в Laravel?

Лучший ответ:
Вообще-то по правильному указывать root в папку public.
А так вот вам .htaccess<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Худший ответ:
Для NGINX: В файле /etc/nginx/sites-available/project_name.conf изменить строку с параметром root на root /path/to/project/public, потом sudo service nginx restartUPD: project_name — имя проекта или доменное имя проекта :) (awesome_project.conf, example.com.conf, ...)
Вопрос: Deadlock, что за зверь, с чем едят?

Лучший ответ:
Судя по исходным данным, тут не коммиты с транзакциями писать надо, а просто почитать про составление sql-запросов. 
Запрос типаINSERT INTO `table2`
SELECT `type` , SUM(`salary` ) 
FROM `table1`
GROUP BY `type`UPDATE table2 AS t2 JOIN (
SELECT SUM( salary ) AS summary, 
TYPE FROM table1
GROUP BY TYPE
) AS t1 ON t1.type = t2.type
SET t2.summary = t1.summary WHERE t2.type = t1.type
решит вашу проблему.

Худший ответ:
https://ru.wikipedia.org/wiki/%D0%92%D0%B7%D0%B0%D...
поправьте код так, чтобы  ресурсы захватывались всегда в порядке а,б
или "Бери ложку и вилку сразу (WaitForMultipleObjects)"
Вопрос: Как создаются подобные меню (модальные?)?

Лучший ответ:
Как это вообще правильно назвать?full screen navigation

Худший ответ:
Я не вижу ничего военного, просто блок выше всех с z-index и пару анимаций на появление
Вопрос: Как вставить код с gist в публикацию на Хабре?

Лучший ответ:
В указанной публикации для вставки кода с Gist используется запись вида: <oembed>ссылка на https://gist.github.com/var-bin/</oembed>

Худший ответ:
К сожалению (или к счастью), emoji на сайте не вставляются. Гитхаб (на скрине) - это вставка через oembed.
Вопрос: Что может вызывать такой паттерн нагрузки CPU?

Лучший ответ:
Поставьте atop в режиме логирования - сможете пост-фактум посмотреть, какие процессы грузят процессор.

Худший ответ:
Поставьте newrelic, будет ответ через 1 час.
Вопрос: Как запретить прощупывание существования пользователей на моём Postfix'e?

Лучший ответ:
Настроить fail2ban

Худший ответ:
Запретить такие прощупывания нельзя.
А если честный отправитель ошибся в адресе получателя?
Есть еще проверка отправителя обратным вызовом(10% спама на ней отсеивается).
Вопрос: Онлайн-консультант для общения с посетителями чье соглашение необходимо?

Лучший ответ:
Больше бумаги - чище задница (с)
Давайте ссылку и туда и туда.
Ибо претензии в случае чего будут всё равно к Вам.

Худший ответ:
1. Сайт Ваш - данные собираете Вы. 
2. Данные с Вашего сайта уходят на сторону той же чатры - вы уже оператор персональных данных + передаете данные на третью сторону, значит, во-первых, нужна регистрация в РКН как оператора, а во-вторых - разрешение от пользователя на передачу его данных той же условной чатре.
3. "Проблема провайдера чата" - нихрена не работает. 
Итог: сайт Ваш - проблемы Ваши.
Вопрос: Какую вы знаете литературу о внутренностях С++?

Лучший ответ:
Советую по операционным сетям почитать книжки. Все-таки плюсы - компилируемый язык. С полной поддержкой указателей. И изучить хоть чуть-чуть язык ассемблера. Потом пореверсить свои приложения ( главное, простые, дабы не утонуть в листинге асма). Тогда будет понимание, что C++ - это по-сути своеобразный синтаксический сахар для машинного кода, придет и понимание всего всего, что там происходит, за исключенеим процесса компиляции. Во-всяком случае, так было у меня. 
Больше не возникают вопросы по поводу указателей, совсем.  Когда видишь, как при отключенном CRT коде классы разворачиваются в чистейший процедурный ассемблерный листинг - начинаешь удивляться насколько все просто в этой идее ООП. Просто взять и завернуть эти бесмысленные вызовы процедур во что-то более красивое.
P.S. Без CRT кода просто твой C/C++ код компилируется в то, что ты написал. Нет ни единой чужой строчки кода. Ты просто видишь, во что компилируется код и понимаешь что все компилируемые языки это просто упрощение жизни, а не изобретение чего-то нового. Все эти парадигмы все равно сводятся к языку ассемблера, какие бы они не были. Собственно, и интерпретируемые языки - это просто ассемблерный код, анализирующий текст и в зависимости от того че там написано выполняющий какие-то действия.
Но есть и минус. Придет полное непонимание интерпретируемых языков в плане работы с памятью. Будешь мыслить уже в контексте указателей. Я иногда реально жестко туплю, казалось бы, на простых элементах языка Python.

Худший ответ:
Advanced C and C++ CompilingLinkers and Loaders.
Да, на английском. Советую таки читать в оригинале:
а) меньше неточностей;
б) будете привыкать к терминологии, рано или поздно будете понимать быстрее чем в переводе;
в) не все книги переведены (сильно не все, особенно такие).
Вопрос: Border по методологии БЭМ тоже выносить в модификатор?

Лучший ответ:
Только если в макете бордер у элемента где-то есть, а где-то его и нет.
 Если бордер у этого элемента есть везде, то модификатор не нужен и наоборот.

Худший ответ:
Зависит от блока и box-sizing, вообще позиционирование в модификатор лучше не выносить, для нужного расположения блоков на странице используйте элементы обертки родительского блока или миксы.
Вопрос: Как лучше деплоить Angular + NodeJS REST приложение?

Лучший ответ:
Чисто в теории: 
1) Собираешь статику для фронта в бандлы 
2) Запускаешь nodejs сервер как демон с помощью PM2
3) Ставишь nginx, гуглишь конфиги как правильно заставить его отдавать статику для фронта, и перенаправлять запросы через прокси на сервер ноды

Худший ответ:
Всем спасибо.nginx - ключевой момент во всей истории, недостающее звено.
Буду пробовать.
Вопрос: Почему не работает команда «dump()»?

Лучший ответ:
похоже что вы что то забыли. 
В старой версии ядра есть функция mydump - документация
В новой версии ядра D7 появился аналог данной функции dump
D7 использует ООП, соответственно вам нужно либо подключить namespace \Bitrix\Main\Diag\Debuguse \Bitrix\Main\Diag\Debug;
либо вызывать \Bitrix\Main\Diag\Debug::dump()
Так же может пригодится полезная статейка про отладку

Худший ответ:
не работает этот метод, пишет
Call to undefined method Bitrix\Main\Diag\Debug::writeToFilee() (0)
Вопрос: SEO; не разводят ли меня, ребята, прямой сейчас?

Лучший ответ:
1. В коммерческих нишах - это важно, домен должен быть 2го уровня.
2. Это задача оптимизатора +копирайтера, но никак не дизайнера+верстальщика (итог работы которых - рабочий сайт согласно ТЗ).
3. Целесообразно, но вот будет ли трафик окупаться -- зависит от ниши и самого сайта. Если сайт г. -- то у него конверсия будет ниже плинтуса, и любой рекламный трафик будет дорогой (вернее, не сам трафик, а его результат - число заказов на определённый объем трафика). 
. 
. 
. 
Ну а теперь по существу. Вы сдали работу 6 лет назад. У вас в договоре написано что-то типа "сайт должен быть в топ 10 в яндексе и гугле по таким-то запросам в течение 6 лет после подписания акта сдачи-приемки работ"?
Если да -- думайте, что вам дороже, репутация или деньги на доработку сайта согласно ТЗ и договора.
Если нет -- то шлите заказчика в пешее эротическое, вы ему ничего не должны.

Худший ответ:
1) в общем случае второй уровень лучше воспринимается поисковиками нежели третий. Надо посмотреть конкурентов в нише и регионе, если у них второй уровень - надо делать второй тоже.
2) обычно это делается специалистами SEO. Ну вернее как делается - они пишут тз для копирайтера-рерайтера, проверяют результат и публикует на сайт.
3) есть различные стратегии рекламы и площадки для неё. Просто примите, что адвордс и поисковая выдачи - разные вещи с разной аудиторией и конверсией. Вас же не смущает, что люди из одной и той же компании используют отдельно группы вконтакте и рекламные щиты на въезде в город.
P. S. Если понимать цель создания сайта для организации, можно было бы все это учесть и получить дополнительную выгоду. Очень жаль, что программисты не думают о настоящей задаче своего продукта.
Вопрос: Как вызывать функцию у всех пользователей сайта?

Лучший ответ:
websocket либо long polling

Худший ответ:
Делайте аякс запрос раз в Х сек на сервер
Вопрос: Откуда можно выпаять SRAM память?

Лучший ответ:
SRAM используется там, где есть CPU, нужно хорошее быстродействие, компактность и простота (+ не нужно сильно много памяти).
Можно поискать в старых игровых приставках / компьютерах (GameBoy, NES)
Ещё можно глянуть в продвинутых музыкальных центрах, проигрывателях, принтерах... В общем, в относительно сложных старых устройствах. В современных уже скорей всего DRAM стоять будет.
Искать многоногие микросхемы типа таких.

Худший ответ:
Найти их довольно легко:
- в платах расширения старых маршрутизаторов;
- в некоторых старых маршрутизаторах (2611, например);
- в старых CD-магнитолах;
- в старых SFP-модулях;
- в старых телевизорах "с телетекстом".
Вопрос: Есть ли программа которая в один клик позволяет скрывать/показывать ярлыки на рабочем столе в Windows 10?

Лучший ответ:
Попробуйте вот эту программу.

Худший ответ:
Вы об этом?
Вопрос: По какой причине сайт резко может потерять позиции и как найти причину?

Лучший ответ:
Скорее всего поисковик обнаружил покупку ссылок

Худший ответ:
Добрый день.
1. Позиции не присваиваются раз и навсегда. По этому, какой-то +/- это нормально. Почему то на форумах всегда спрашивают - что делать если упали позиции? И почему то не спрашивают, когда позиции растут :)
2. Рейтинг донора постоянно (ежедневно) меняется и это влияет на количиство передаваемого веса, следовательно и на позиции.
3.Поисковики постоянно (почти каждый день) обновляют алгоритмы и проводят разные эксперименты и только о значимых из них они сообщают нам с вами. Выкатили обновление - посмотрели - не понравилось - откатили назад.
4.Смотрите в Консоли на всех версиях сайта есть ли сообщение о мерах.
5. Пингвин мог отключить влияние ссылок.
6. Конкуренты улучшили и обновили свой контент и количество обратных ссылок.
Еще особенности - в разных браузерах, на разных устройствах (даже в одно и то же время замера), в разных районах одного города - позиции будут разные.
Вопрос: Как сделать прямую оплату с карты в интернет магазине?

Лучший ответ:
Эльдорадо - оплата происходит на странице ВТБ.
РЖД - оплата происходит на странице Альфа-Банка.
Автор! Почему так ?...
.))

Худший ответ:
начните с https://kassa.yandex.ru/features/
требования у остальных систем мало отличаются в сторону смягчения
Вопрос: Как запустить приложение на версии Api меньше 21?

Лучший ответ:
Vector drawable работает с 21 апи нативно. Раньше - только с support library. Решение: https://developer.android.com/guide/topics/graphic...

Худший ответ:
Vector drawable работает с Api 21>.
Что бы работало на версиях ниже нужно указать:android {
   defaultConfig {
     vectorDrawables.useSupportLibrary = true
    }
 }
и использовать 
app:srcCompat="@drawable/ic_add"
Но при использовании Vector в background все еще не работает.
Я убрал добавление картинки из разметки, а присваиваю в коде:AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
Drawable backgroundDrawable = getResources().getDrawable(R.drawable.background_image);
view.setBackground(backgroundDrawable);
Вопрос: Как избавится от страха работы и прохождения собеседования?

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

Худший ответ:
Если не попробуешь, то точно ничего не получится
Вопрос: Актуально ли в настоящее время использование normalize.css?

Лучший ответ:
 Мне почему-то кажется что последние версии браузеров и так всё норм рендерят без использования всяких "нормализаторов"... 
Хреново вам кажется.

Худший ответ:
Я конечно могу ошибаться, но если использовать CSS lint, то при подключении файла сброса стилей он показывает кучу ошибок. Ошибки связаны с перегрузкой селекторов и падением производительности. Если оптимизация скорости загрузки сайта не является целью, то наверное можно использовать. Если есть задача увеличить скорость работы, то скорее всего это будет плохой практикой. Подробней можете прочитать здесь, если с английским все ОК: https://github.com/CSSLint/csslint/wiki/Rules#perf...
Вопрос: How array convert to nodelist?

Лучший ответ:
Ну блин, гениально.
У вас lis это... интрига... HTMLLIELEMENT. 
Чему удивлятся, если lis[I] = underfined?

Худший ответ:
Две итерации он проходит. 
На 3-ей lis[i] = undefined,- поэтому и выстреливает эта ошибка. 
[ul.techersRightPic, ul.techersRightPic, ul.techersRightPic, ul.techersRightPic]
2016-07-31 17:40:55.303 main.js:273 [li, li, li]
2016-07-31 17:42:16.088 main.js:263 [ul.techersRightPic, ul.techersRightPic, ul.techersRightPic, ul.techersRightPic]
2016-07-31 17:42:22.841 main.js:273 [li]
Попробовал в этой же строке добавить lis[0] в uls[0],- отработало штатно. Значит код сам по себе рабочий.  Отсюда: наиболее вероятная причина ошибки в индексам,- выход за пределы диапазона. Ставьте точку останова и смотрите на каком этапе код попробует выбрать недопустимые значения
Вопрос: Как убрать белую полосу под картинкой?

Лучший ответ:
Добавьте.slider__img {
    display: block;
}

Худший ответ:
display:block помог. Спасибо.
Вопрос: Безопасно ли подгружать конф для nginx из директории пользователя?

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

Худший ответ:
ну конечно же нельзя 
только на неделе же такая уязвимость нашлась в панели веста
Вопрос: C# Реализация методов работы со стеком на основе массива, в чем ошибка?

Лучший ответ:
Используйте готовый Stack
Прочитайте книгу 1-2.
бегло посмотрел:...
else  if (head % 2 != 0) //не нужен, достаточно else { .. }
...
public int Pop()//извлечение
        {
           
            return (stack[head]);
           // head--; -< надо снять коммент
        }

Худший ответ:
Делал не так давно задание по стеку на массиве, получилось более менее прилично вроде (можно без особых проблем реализацию IEnumerable прикрутить). Код. По заданию требовалось сделать это дело на VB.Net, хоть и писал на С#, исходников не сохранилось, но особой разницы и нет.
Еще рекомендую заглянуть на MS/Mono реализацию стека, там по сути тоже самое, но более навороченное.
Вопрос: Как реализовать серверную часть?

Лучший ответ:
Можно.

Худший ответ:
У Вас будет обновление в реальном времени? Если да - то только websocket + nodejs (либо весь зоопарк, который работает с ним пример)
Ajax будет создавать новый instance, собственно который и будет вызывать нагрузку.