Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как в WordPress вывести первый пост отдельно от всего?

Лучший ответ:
Не сильно знаток WP, но в документации все есть - wp get recent posts, нет?<h2>Recent Posts</h2>
<ul>
<?php
	$args = array( 'numberposts' => '1' );
	$recent_posts = wp_get_recent_posts( $args );
	foreach( $recent_posts as $recent ){
		echo '<li><a href="' . get_permalink($recent["ID"]) . '">' .   $recent["post_title"].'</a> </li> ';
	}
	wp_reset_query();
?>
</ul>
https://codex.wordpress.org/Function_Reference/wp_...
ps почему из общего цикла не взять первый пост, который отправится в шапку, а остальные в сетку? Зачем отдельный запрос делать?

Худший ответ:
Хреново описал мысль. Попробую вариант №2 с примером кода. Есть вот такое, уже свёрстано:<?php get_header(); ?>

→ А вот сюда надо вывести первый пост. ←

<div class="grid-wrap">
   <div class="masogridnry">

↓ Стандартный вывод постов без самого последнего, он должен быть вверху. ↓

      <?php if( have_posts() ): while( have_posts() ): the_post(); ?>
      <a href="<?php the_permalink(); ?>" class="link-<?php the_ID(); ?>">
        <div class="post">
          <h1><?php the_title(); ?></h1>
        </div>
      </a>
      <?php endwhile; ?>

      <?php else: ?>
        <p>Ничего нет, что странно.</p>
      <?php endif; wp_reset_query(); ?>

   </div><!-- /.masonry -->
</div><!-- /.grid -->

<?php get_footer(); ?>
Текстом и стрелками отметил то, что есть и куда что нужно вытащить в виде одного поста. Получается делать нужно два цикла, как и предлагает Aleksey Solovyev (если я его комментарий и пример кода правильно понял)? С чего вообще подступиться к такой задаче?
Вопрос: А что это у меня все хромоподобные браузеры со вчерашнего дня перестали работать?

Лучший ответ:
Видимо ключевое слово здесь - MICROSOFT WINDOWS XP 
Наверное в обновление внесли правку, несовместимую с этой неподдерживаемой ОС.
torchbrowser.kayako.com/Knowledgebase/Article/View...

Худший ответ:
у меня два -webkit- и оба работают , с него и пишу
Вопрос: Как определить 10 самых часто встречающихся чисел в Excel?

Лучший ответ:
Если не писать код на VB, то алгоритм такой:
 скопировать, удалить дубликаты, применить функцию счётесли, отсортировать.

Худший ответ:
Если не писать код на VB, то алгоритм такой:
 скопировать, удалить дубликаты, применить функцию счётесли, отсортировать.
Вопрос: Есть ли разница между эмулированным ПК и обычным?

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

Худший ответ:
веб - это песочница, доступ из которой к реальному оборудованию сильно ограничен, но есть дыра в безопасности - webgl (доступ к видеокаселератору), а так как в виртуальной машине (если не используется gpu passthrough) видеокарта эмулируется, то можно запросить эту информацию и сравнить с ожидаемым для десктопа (вопрос исследования но принципиальная возможность есть)
Например virtualbox выдает наименование видеокартыllvmpipe (LLVM 6.0, 128 bits)а на хост системеANGLE (NVIDIA GeForce GTX 1060 3GB Direct3D11 vs_5_0 ps_5_0)
Вопрос: Как составить сценарий тестирования на проникновение?

Лучший ответ:
Вы не можете пользоваться методом белого ящика, пока не выполните пентесты по черному и не напишите отчет. Так мне нужно повариться в этой теме, если я нажму кнопку в программе, она просканирует и выкинет список уязвимостей, знаний у меня не прибавится Вы же сами прекрасно понимаете что у Вас так же не прибавится знаний, если Вам напишут список уязвимостей перечисленных систем. Но если Вам "религия" не позволяет нажать на кнопку, вы можете вооружится списком всех уязвимостей (например cve) и ручками сваять пайлоад для каждой. И не забывайте, что сначала Вы работаете с черным ящиком, Вам надо выудить максимум информации о системе, и основываясь на своих предположениях пытаться отыскать уязвимость.  Каждая полученная крупица информации как раз и будет одним из следующих пунктов сценария. Я думаю уместным будет сначала все же нажать на кнопку автотест.

Худший ответ:
Метод тестирования черного ящика + Kali linux, который имеет много плюшек для тестирования безопасности
Вопрос: Какие посоветуете материалы для изучения Android development?

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

Худший ответ:
Изучать надо как раз по книгам. Начать можно с "Head First. Программирование для Android" Гриффитсов, а углубить чтением "Android. Программирование для профессионалов" Харди и Филлипса.
Вопрос: Донесение информации до подчиненных. Какой агрегатор информации посоветуете?

Лучший ответ:
А можно и правильнее всего всех перевести на электронную почту

Худший ответ:
Можно создать конференцию
Вопрос: Как получить id счетчика Яндекс Метрики?

Лучший ответ:
var id = Ya.Metrika.counters()[0].id;
Поковырял, оказывается есть массив счетчиков.
ид счетчика на сайте с включенным вебвизором:var id = Ya.Metrika.counters().filter(x => x.webvisor)[0].id;

Худший ответ:
есть еще объект window.Ya._metrika.counters c id => counter
Вопрос: Нормально ли читать книгу выпущенную 6 лет назад по питону (Лутц)?

Лучший ответ:
Можно, большая часть инета до сих пор на 2.7 сидит.

Худший ответ:
Почему бы и нет. Примеры и вообще книга основаны на Python 3-ей версии (3.0), при этом большинство примеров рабочие и на версии 2.Х (в книге 2.6).
Для основ книга хорошая и вполне актуальная. Если питон понравится, то проблемой не будет дополнить знания из новый версий.
Вопрос: Не были бы вы против, если на вашем сервере стоял..?

Лучший ответ:
Левый софт на моих серверах?
Всегда мечтал о таком <-heavy sarcasm

Худший ответ:
Не были бы вы против, если бы вам в вашу любимую пиццу однажды положили в 3 раза больше перца, не предупредив?
Вопрос: Насколько актуален jQuery?

Лучший ответ:
1) Он устарел по той причине, что его возможности уже реализованы в JS 
2) Когда надо склепать быстрый лендос со слайдером slick, я использую jQuery. Когда нужно что-то по серьезнее - зависит от задачи, как замена Vue
3) Нет, осваивайте JS, а jQuery сам придет, ничего в нем сложного нет, по мере работы будете разбираться, копаясь в документации.

Худший ответ:
Все зависит от задачи. Если к примеру вы работайте с высоко высоконагруженными проектами, для разработки крупной сети, jquery использовать не стоит  , ибо там и так нагрузки хватает. А если вы создаете лендинг на заказ, есть смысл его использовать по несколько причин
1) Быстрее код написать на jQuery
2) Есть множество плагинов что использует jquery(Mask, Popup, Sliders )
3) При грамотной разработке, минификации и оптимизации скорость загрузки с Jquery и без, будет незаметной
Но если проект серьезнее и в будущем он будет много дополняться лучше отказаться от jQuery
Вопрос: Чем занимается model в Spring MVC?

Лучший ответ:
Model в Spring MVC предназначен для передачи данных между контроллером и представлением.

Худший ответ:
В model хранятся бизнес сущности. Например, классы с маппингом на таблицы БД. Их вы можете использовать в классах с бизнес логикой
Вопрос: Как по простому сделать такую штуку?

Лучший ответ:
Редирект на главную с параметром в URL &showPopup=true
В JS проверить если есть данный параметр, то показать popup

Худший ответ:
На пыхе через location переадресацию
Вопрос: Есть ли индивидуальный курс по весртке?

Лучший ответ:
Берем свою разумную цифру и идем на фриланс
Если сумма меньше 10 уе, то учимся самостоятельно

Худший ответ:
Поищите тут https://geekbrains.ru/ ментора себе.
 За разумную сумму конечно же... может и найдется.
Вопрос: Как улучшить безопасность Windows 10 Home?

Лучший ответ:
Дополнительно - в качестве DNS указать сервера яндекса, или аналогичных служб.
Поставить адблок на браузер.
Включить стандартную защиту системных файлов и настроить бэкап системы, чтобы можно было восстановиться в любой момент.
Бэкап обязательно делать под другой учетной записью.
Администратор и пользователь не должны иметь доступа к папке бэкапа.

Худший ответ:
Встроенный антивирус неплох. Делает свое дело молча и решительно )))
Однако есть пользователи которые запускают шифровальщики сами и на вопрос "Хотите ли уничтожить все свои файлы?" всегда отвечают ДА!
Из моей практики неплохо показал себя NOD32 в режиме молчаливой паранойи. Стоит совсем недорого. По логам вижу как он блокирует попытки скачать/запустить очередной сюрприз. В общем на 90% я доволен. Иногда он начинает блокировать нужные сайты из за сертификатов безопасности. Решается обновлением, пинком админу того сайта или внесением нужного сайта в белый список.
И все таки защить пользователя от желания выстрелить себе в ногу не поможет никакая защита. Только резервная нога. Как тут правильно написали к бекапу должен быть запрещен доступ всех пользователей кроме специального оператора бекапа.
Вопрос: Как лучше выполнять SQL?

Лучший ответ:
Хранимая процедура имеет уже скомпилированный  план запроса (в MS SQL, Sybase это точно так).
Теоретически, если запрос сложный,  хранимая процедура будет быстрее на время, которое требуется оптимизатору  чтобы построить план.
Но практически, на единичных запросах, видимой разницы не будет.

Худший ответ:
Одинаково.
Вопрос: Какие сетки лучше использовать Flex или Grid?

Лучший ответ:
Не совсем корректно полностью сравнивать Flexbox и Grid как противоборствующие стороны. Наиболее оптимально вообще использовать их вместе. Grid-разметка для позиционирования основных блоков страницы. Flexbox-разметка для позиционирования элементов внутри блоков Grid-разметки.

Худший ответ:
Рекоммендую новую технологию GRID, поддержка браузеров уже на высокос уровне, вот кстати довольно хороший урок по основам Grid CSS https://youtu.be/agmgl-ElC8A
Вопрос: Как определить месторасположение пользователя и источник, посредством которого оно было найдено(gps, wifi, ip)?

Лучший ответ:
По ip лучше точно не определить.
Вообще ip я думаю штука не для место-положения.
Разные базы данных показывают один и тот же ip в другие регионы, и это можно легко понять.
Например я купил ноутбук и пользовался им неделю в Москве, потом перешёл в Санкт-Петербурге.
Большинство баз данных будут показывать  что я нахожусь в Москве...
Надеюсь поняли в чём суть.

Худший ответ:
HTML5 geolocation API углубляйтесь как оно работает может что и выйдет. Есть ли у них метод который показывает источник или используя косвенные данные по которым можно ли определить источник. Определить что дынные на основе ip достаточно таки легко. Нужно знать какая база ип для этого используются и сверить полученыe данные с ней для определенного ип если кординаты совпадают скорей всего это определения по ип.
Вот может поможет https://developer.mozilla.org/ru/docs/Web/API/Geol...Firefox включает поддержку обнаружения вашего местонахождения на основании информации о вашем WiFi, используя Google Location Services. В соглашении между Firefox и Google утвержден обмен данными, включая точку доступа WiFi, токен доступа (что-то похожее на 2-недельные cookie), и пользовательский IP адрес. Для дополнительной информации, пожалуйста, ознакомьтесь с Политикой Конфиденциальности Mozilla и Политикой Конфиденциальности Google, которые подробно объясняют, как эти данные могут быть использованы.
Вопрос: Зачем IT гиганты используют много несвязанных доменов?

Лучший ответ:
Поместив HTML, XML, SVG и т.д. и т.п. файл на домене usercontent.google.com  можно 
манипулировать куками домена google.com и фишить. Поэтому пользовательский контент всегда отдается с отдельных sandbox-доменов.
Так же с отдельных доменов обычно отдается статический контент, это позволяет использовать CDN и упрощает управление кэшированием.
Отдельный домен обычно используется для PTR-записей (например 1e100.net). Для PTR часто нужна двойная валидация, т.е. PTR должна разрешаться в имя и имя обратно в тот же IP.  При этом на одном IP может хоститься много доменов и быть установлено много сертификатов, включая вайлдкарды. И наоборот, один домен может хоститься на многих IP. Чтобы исключить прямое обращение к хосту по "неожиданному" для него имени в своем домене, обычно используются PTR записи в нейтральном домене.  Кстати исторически принято использовать именно домены в .net. Google так же использует 1e100.net как нейтральный домен для подписи транзитных писем, раньше для этого использовался собственно домен google.com и это приводило к забавному багу, позволявшему подделывать подписи на письмах от google.com, я рассказывал о нем на PHDays 2014.
Географические домены исторически используют для организации региональных датацентов и ускорения доступа, например yahoo.jp физически расположен в Японии.

Худший ответ:
Поищите случай, как используя гитхаб-пейджес товарищ уводил токены от гитхаба
Почитайте как работают куки для поддоменов
Вопрос: Как подключиться по SSH к серверу в другой сети через компьютер-посредник?

Лучший ответ:
Прямой или обратный ssh тунель

Худший ответ:
способов много:
rdp на тачку, с неё ssh
vpn на тачку, с неё ssh
любой rd (teamviewer , etc) на тачку, с неё ssh
Самый простой - правило NAT на тачку, которая выступает в роли шлюза. NAT пробросит ssh на сервер.
Вопрос: Как разделить экран пополам для ввода с Android устройств?

Лучший ответ:
что ж. 
для начала Input - https://docs.unity3d.com/ScriptReference/Input.html
про половины экрана есть два варианта
1) невидимые кнопки  (удобно потом менять позицию и размер)
2) отследить координаты нажатия мышки (тача)
1) вариант. читайте про Canvas и вообще примеры работы с ним 
https://unity3d.com/ru/learn/tutorials/s/user-inte...
собственно сделать две Button и в событие OnClick проставить требуемое. 
(просмотрите уроки - станет понятно, очень все тривиально)
проблемно будет если вы захотите ставить сразу несколько пальцев на экран - юнити обычно просто берет среднюю позицию. 
2) вариант не такой гибкий в плане правки позиций), но куда проще в плане доработок и свои придумок.
приблизительно так.private Rect leftPart = new Rect(0, 0, Screen.width / 2, Screen.height);
    private Rect rightPart = new Rect(Screen.width / 2, 0, Screen.width / 2, Screen.height);
    // Update is called once per frame
    void Update () {

        if(Input.GetMouseButton(0))//touch works too
        {
            if(leftPart.Contains(Input.mousePosition))
            {
                //jump
            }
            if(rightPart.Contains(Input.mousePosition))
            {
                //force
            }
        }
возможно придется под мультитач переделывать (https://docs.unity3d.com/ScriptReference/Input.Get...
по сути брать не позицию мышки, а позицию тача.

Худший ответ:
Коротко про 1 вариант из прошлого ответа: https://youtu.be/QnT-2KxVvyk?t=302
Вопрос: Насколько кооперативен mining pool?

Лучший ответ:
Это инструмент нормального вероятностного распределения.За год хористы консолидированно намайнят больше солистов?Больше намайнит тот у кого мощность больше.
При равной мощности намайнит больше тот, кому больше повезет.
Чем больше мощности оборудования, тем меньше влияние удачи.
К примеру на вашей мощности по статистике вы должны в среднем майнить один блок в год, и получать за это 50монет.
Т.е этот блок если повезет вы найдете через неделю, а если не повезет, то через 150лет, но в среднем один блок в год.
Мелкий пул с мощностью в 100раз больше вашей в среднем будет майнить один блок в 4дня.
Т.е он может найти блок через минуту, а может через несколько месяцев, но в среднем один блок в 4дня.
Крупный пул с мощностью в 10000раз больше вашей в среднем будет майнить один блок за 40минут.
Т.е он может найти блок за одну секунду, а может за несколько дней, но в среднем за 40минут.
В результате в первом случае вы скорее всего вообще не доживете до получения блока.
Во втором случае вы получите первые монеты в ближайшем обозримом будущем, но не скоро.
В третьем случае вы стабильно будете получать свои монеты раз в неделю.
Вот и вся разница.
Майнинг название говорящее, изначальный смысл майнинга это поиск крупиц золота в тоннах пустой породы.
Так и здесь.

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

Лучший ответ:
https://learn.javascript.ru/event-delegation
А вот банальный пример метода on (только для классов, но суть от этого не меняется).
https://jsfiddle.net/01yswvcc/

Худший ответ:
$(body).on('click', '.name-class', (e) => {...});
Этот код вешает обработчик только на body. По клику на body проверяется соответствует ли target селектору (в данном случае '.name-class'), если да - выполняется функция.
Вероятно, реализовать такое можно используя тот же принцип: по клику проверять соответствуют ли элементы некоему условию, выполнять функцию в случае соответствия.
Вопрос: Возможно ли установить несколько, а точнее разные дистрибутивы ОС Linux на один жесткий диск?

Лучший ответ:
Для знакомства вполне подойдет виртуальная машина.

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

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

Худший ответ:
У меня в слепом наборе используются максимум 4 пальца. Остальные используются для нажатия различных комбинаций клавиш
Вопрос: Мини-столик для клавиатуры и мышки?

Лучший ответ:
Мини-столики, которые вы приложили к вопросу для активной работы с мышью и клавиатурой не предназначены никак.
Адекватным решением будет что-то вроде вот такого:
https://gagadget.com/announce/26177-kompyuternyij-...
Здесь хотя бы есть куда локти поставить, чтобы руки не висели в воздухе.

Худший ответ:
У меня было 2 подобных столика, оба закинул в кладовку. Они жутко неудобные, руки не куда положить, разве что только как подставка для ноутбука, рука на мыши будет на диване. Уже лучше за столом.
Вопрос: Где и как начать фрилансить разработки под Android?

Лучший ответ:
Шерстить биржи в поисках мелких заказов на пару часов, или до 100 долларов по flat price. Мелкую задачу проще отдать грамотному разработчику, чем ждать пока крупная компания раскрутит свою бюрократическую машину.
Там нужно конкурировать с индусами и китайцами, но с ними нужно бороться качеством. Для начала - качеством cover letter. Напишите, как именно будете решать задачу. Никаких шаблонных писем!
А потом от меньшего к большему, плюс наработается опыт как вообще организовывать свою работу. Вряд ли удастся сразу же справиться с крупным проектом.
Упорство и труд - и все получится.

Худший ответ:
Киберфорум.
Вопрос: Этично ли при работе над проектом избавляться от посредников?

Лучший ответ:
Я охреневаю. Все такие крутые бизнесмены, судя по комментариям, только денежные отношения и похрену этика.
Этика бизнеса - это не сферический конь в вакууме, это набор устоявшихся, неписаных правил, взаимодействия участников  процесс. Сюда -же относятся и понятия репутации, имени фирмы, истории марки, и т.д., т.е. большая часть нематериальных активов, которые имеют вполне реальную финансовую оценку.
Кидать посредников - плохо. Это удар по Вашей репутации, в перспективе потеря какого то кол-ва заказов, и принятие на себя не свойственных Вам функций. 
Да, Вы срубили сейчас чуть больше бабла, но потом этот посредник к Вам с заказом больше никогда не придет. Еще 5-10 таких заходов и Вы получите определенную репутацию хоть и в узких кругах.
Посредников, конечно, надо давить, торговаться,  ограничивать в их хотелках, и договариваться. Ничего не поделаешь - это коммерция. Но кидать, на мой взгляд, себе дороже.

Худший ответ:
Только вот далеко не факт ,что студия отдала бы доделывать тебе. Это рынок и бизнес. Никто никому ничего не должен ,того что не прописано в договоре.
Вопрос: RDP «Произошла внутренняя ошибка» Что мне делать?

Лучший ответ:
Автор, если проблема решена, зачем умалчивать как и что делали?

Худший ответ:
Проблема решена!  Произошла внутренняя ошибка RDP, решаем за минуту pyatilistnik.org/internal-rdp-error-occurred
Вопрос: Как написать свой заголовок в консоле linux?

Лучший ответ:
Я нагуглил это за вас https://4skill.ru/nastrojka-privetstviya-konsoli-u...

Худший ответ:
См. /etc/issue
Вопрос: Если ли существенная разница между 1600 и 4000 DPI обычному юзеру?

Лучший ответ:
У меня мышка 12000 DPI и 4k монитор (3840x2160). Поставил себе фиксированный DPI 2000 для большинства задач. Не могу представить для чего может понадобиться 12000.
Но есть другой аспект. Более высокий DPI часто означает более качественный сенсор, а это и точность воспроизведения движений, и скорость реакции, и возможность подъема грызуна без сдвига курсора и прочие плюшки.
Если в игры не играете - большой разницы нет, если же играете во что-то что требует точности движений - разница есть и существенная (перешел с Logitech G602 на Corsair M65 Pro RGB).

Худший ответ:
тут от разрешения моника зависит и если обычный то разницы и не увидишь 
если же 3840x2160 то бери 4к dpi
мыши к экрану в основном и подбирают
Вопрос: Как работать в Yii2 со слешем в конце URL?

Лучший ответ:
Добрый вечер.
Попробуйте такие настройки.'urlManager' => [
      'enablePrettyUrl' => true,
      'showScriptName' => false,
      'suffix' => '/',
      'normalizer' => [
          'class' => 'yii\web\UrlNormalizer',
          'normalizeTrailingSlash' => true,
          'collapseSlashes' => true,
       ],
// остальные настройки urlManager
]
Или просто добавьте только настройку 'suffix' => '/',

Худший ответ:
то есть если запросы посылает фронт, то все работает?
тогда в чем смысл париться из-за того, что у кого-то левого что-то не работает?
Вопрос: Как настроить маршрутизацию, чтобы через VPN шёл трафик только для RDP?

Лучший ответ:
Просто снимаете галочку "Использовать основной шлюз в удаленной сети" в свойствах впн соединения. Весь трафик будет ходить как обычно, и просто появится доступ к ip адресу RDP сервера.

Худший ответ:
Возникла такая же необходимость - чтобы можно было подключиться по rdp к станции на windows, а она была подключена к интернету через openVPN, соответственно доступ из локальной сети при активации VPN пропадал.
Помогло - Свойства сетевого подключения vpn, вкладка Сеть, заходим в Протокол интернета версии 4, кнопка Дополнительно, там Основные шлюзы, добавить и указать локальный адрес роутера который в инет смотрит (в моем случае 192.168.0.1)
Вопрос: SPA и REST API — как грамотно построить аутентификацию?

Лучший ответ:
Думаю jwt аутентефикации хватит с головой.
Вот тут написано хорошо обо всех токенах и как они работают.
https://auth0.com/blog/refresh-tokens-what-are-the...

Худший ответ:

Вот здесь проверенный и рабочий метод. Никаких сессий! 
Только проверка "протухания" токена и его обновление(обмен!) в "прозрачном" режиме.
Вопрос: Можно ли заниматься фрилансом с моим стеком?

Лучший ответ:
На нищебродской типа kwork.ru попробуйте. Платить не надо. 
Вам сейчас надо проверить свои скилы в области продаж и менеджмента. Все остальное на десятом месте.

Худший ответ:
На upwork, конечно
Вопрос: За какой взяться проект,тоесть создать себе задачу для практики дабы изучить PHP язык?

Лучший ответ:
Начните с echo("Здрасьте, мир");

Худший ответ:
Самые стандартные примеры это гостевая книга или блог.
Если надо чуть посложнее: попробуйте написать крстики-нолики или морской бой. И да, для начала можно файлы вместо БД.