Обновить
0
@Ryfinread⁠-⁠only

Пользователь

Отправить сообщение

Вперед за новыми впечатлениями: 10 научно-фантастических романов

Время на прочтение4 мин
Охват и читатели33K
image

Мы надеемся, что эти книги очаруют вас. Они имеют одну общую особенность — эти романы стоят того, чтобы их прочесть. Любители фантастики, запасайтесь кофе и печеньками — и вперед за новыми впечатлениями в неизведанные галактики!
Читать дальше →

Подальше от обыденной реальности: фантастические романы, которые стоит прочитать

Время на прочтение4 мин
Охват и читатели143K
image

Фантастика как жанр заставляет читателей и писателей выйти за пределы разумного, дать волю своему воображению и отправиться в неизведанные миры. За это мы и любим этот жанр. RoboHunter этой осенью предлагает с головой погрузиться в мир научной фантастики.
Читать дальше →

Бот для сапера с изюминкой

Время на прочтение8 мин
Охват и читатели62K
Наверное у многих такое бывает: на работе нечего делать, или нужно подумать перед выполнением очередной задачи, да или попросту нет ничего вкусненького к чаю, тогда рука автоматически тянется к мышке и начинает играть в сапера. И вот в порыве очередного приступа саперомании меня посетила мысль о том, что я уже не думаю, как раньше, где расположены мины, а просто на автомате по выработанному алгоритму тычу по полю, ломая мышку. А раз я действую по алгоритму, без особых творческих усилий, то можно написать бота, который будет играть вместо меня, наверняка внимательнее и быстрее.
Читать дальше →

15 тривиальных фактов о правильной работе с протоколом HTTP

Время на прочтение7 мин
Охват и читатели251K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →

Работа с базой данных SQLite с помощью обертки SQLitePCL

Время на прочтение6 мин
Охват и читатели27K

SQLite это кроссплатформенный (Windows, iOS, Android, Python, Mono и др.) движок базы данных с открытым исходным кодом. Он поддерживает множественные таблицы, индексы, триггеры и представления.
Поддерживаются ACID транзакции (Atomicity/Атомарность, Consistency/Согласованность, Isolation/Изолированность, Durability/Надежность).
SQLitePCL – это библиотека Portable Class Library с открытым исходным кодом, доступным по адресу https://sqlitepcl.codeplex.com/, которая позволяет работать с базами SQLite единым образом и в .Net приложениях и в WP, Windows Store, UAP, а также Android/iOS (с помощью Xamarin). Другими словами, это обертка/wrapper библиотеки C, которая упрощает разработку и экономит время. Обертка довольно новая. Ранее для приложений .Net и Windows Store можно было использовать обертку sqlite-net.
Читать дальше →

Добавляем гамбургер в меню приложения Windows 10

Время на прочтение4 мин
Охват и читатели30K


Осталось несколько дней до выхода десятки, а Visual Studio 2015 уже доступна для разработчиков. Одним из новых XAML контролов стал SplitView. Этот контрол подобно контейнеру Grid остается невидим до тех пор, пока в нем ничего не размещено.

Давайте разберем пример создания меню с кнопкой гамбургером на основе SplitView. Основное предназначение SplitView это как раз упрощение навигации. Фактически, этот контрол заменяет собой Charm Panel, которая все еще работает в Windows 10 приложениях, но впоследствии использоваться не будет. Он хорошо сочетается с Navigation Framework, представленным еще в Silverlight приложениях и доступным теперь в Windows UWP.
Читать дальше →

Как мы за 24 часа построили конструктор Telegram-ботов, а потом половину выкинули и переписали

Время на прочтение9 мин
Охват и читатели44K
Все началось 20.06, когда я увидел в твиттере популярного блогера Варламов этот твит:

image
В тот же момент я подумал: ведь мессенджер вообще и Telegram в частности это идеальный способ взаимодействия с клиентом. Зачем нам приложение, чтобы доставлять последние новости если это можно просто прислать их в чат?

Зачем вам приложение для заказа такси, когда вы можете написать в чат любимому оператору такси «хочу такси в Домодедово от м. Южное через 35 минут» — и такси заказано. Зачем вам приложение для заказа из кафе, когда можно написать в чат «хочу двойной эспрессо и бейгл с осетром» — и осталось только послать свой адрес. Таких примеров использования чата может быть огромное множество.

В тот же день я написал небольшой пост в клубном новостном сообществе TJournal, где предложил в рамках предстоящего хакатона AngelHack написать продукт и создать демонстрационного бота: для подписки на новости и уведомления из этого сообщества. Через четыре дня Павел Дуров официально запустил поддержку ботов, а еще через две недели мы победили на AngelHack в номинации от IBM с проектом Leecero. Под катом большая история…


Читать дальше →

Рентабельный код 2: крадущийся DDD, затаившийся CQRS

Время на прочтение20 мин
Охват и читатели52K

Трем программистам предложили пересечь поле, и дойти до дома на другой стороне. Программист-новичок посмотрел на короткую дистанцию и сказал, «Это не далеко! Это займет у меня десять минут». Опытный программист посмотрел на поле, немного подумал, и сказал: «Я мог бы добраться туда за день». Новичок посмотрел на него с удивлением. Гуру-программист посмотрел на поле и сказал. «Кажется минут десять, но я думаю пятнадцати будет достаточно». Опытный программист рассмеялся.

Программист-новичок двинулся в путь, но в течение нескольких мгновений, начали взрываться мины, оставляя после себя большие ямы. От взрывов он отлетал назад, и ему приходилась начинать сначала снова и снова. У него ушло два дня чтобы достичь цели. К тому же он весь трясся и был ранен, когда пришел.

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

Гуру программист пустился в путь, и пошел прямо через поле. Целеустремленно и прямо. Он достиг цели всего за десять минут.
«Как тебе это удалось?» — спросили двое других — «Как ты умудрился не зацепить ни одной мины?»
«Легко» — ответил он. «Я не закладывал мины на своем пути».

Как ни прискорбно, придется признать – мы сами закладываем себе мины. В первой части я подробно разобрал основные риски в разработке ПО и описал технологические и методологические способы ослабления этих рисков. За прошедший год я получил множество комментариев, основной смысл которых сводился к следующему: «все круто, но с чего начать и как все это будет выглядеть в реальном мире». Действительно, первый текст носит скорее теоретический характер и представляет собой каталог ссылок. В этой статье я постараюсь привести как можно больше примеров.
Читать дальше →

Битва «Слушатель vs Посетитель» на стадионе antlr4

Время на прочтение6 мин
Охват и читатели16K
Посещать или слушать? Дело вкуса – не более. Или нет?
Предыстория.

Разобрав исходный текст, на выходе образовалось дерево:

image

Само по себе дерево не имеет ни какого смысла, оно “Деревянное”, смыслом и какой либо ценностью обладает результат анализа (обхода) этого дерева. Для тех кто не готов напрягаться и писать самописные сани по спуску с дерева (например, меня) в antlr4 добавлена возможность получить анализатор почти бесплатно.

1. Visitor


Классика — поведенческий шаблон проектирования. При обходе узлов определяется метод обрабатывающий текущий тип узла, после чего метод вызывается и вот конкретно здесь начинается разработка, а именно анализ пришедшего поддерева.

2. Listener


Новшество, появившееся в четвертой версии. Поведение этого класса уже далеко не классическое (Observer или Publish/Subscribe). В классическом исполнении наблюдается менеджер который оповещает подписчиков о наступлении событий. Поведения рассматриваемого слушателя больше похоже на работу инспектора. Инспектор перед проверкой узла делает заметку “Я проверяю Х узел”, далее идет обход потомков узла, после обхода, которых можно сделать “Заключение о результатах обхода узла Х”.
Читать дальше →

Видеозаписи семинара CLRium #2

Время на прочтение1 мин
Охват и читатели11K
Добрый день! Не так давно прошла серия семинаров CLRium по новейшим технологиям и редко-раскрываемым темам CLRium #2. Мы собрали у себя в залах около 740 человек, что для нас является — фантастическим результатом. Сегодня хотелось представить вам свежие видеозаписи семинара и ссылки на репозитории спикеров:

День 1:

Ссылки с привязкой ко времени:

Читать дальше →

Что нам стоит Cache построить?

Время на прочтение11 мин
Охват и читатели25K

Написано не мало хороших статей на тему «Что, как и где кешировать». Так почему же ещё раз мусолить эту тему? А потому что тема достаточно важная, а многие, пока не столкнуться с конкретными проблемами, не считают нужным с ней разбираться. Так что аудитория, на которую я рассчитываю, это те, кто к моменту выхода уже существующих статей были в них не заинтересованы, но сейчас интерес есть, и они не пройдут мимо.

Я постараюсь кратко осветить основные моменты организации кеширования, после чего рассмотрю новшества .Net Framework 4.0, которые должны упростить жизнь разработчиков (речь пойдёт о In-memory кеше вне ASP.NET инфраструктуры).
Читать дальше →

Простое суффиксное дерево

Время на прочтение12 мин
Охват и читатели83K
ДеревоСуффиксное дерево – мощная структура, позволяющая неожиданно эффективно решать мириады сложных поисковых задач на неструктурированных массивах данных. К сожалению, известные алгоритмы построения суффиксного дерева (главным образом алгоритм, предложенный Эско Укконеном (Esko Ukkonen)) достаточно сложны для понимания и трудоёмки в реализации. Лишь относительно недавно, в 2011 году, стараниями Дэни Бреслауэра (Dany Breslauer) и Джузеппе Италиано (Giuseppe Italiano) был придуман сравнительно несложный метод построения, который фактически является упрощённым вариантом алгоритма Питера Вейнера (Peter Weiner) – человека, придумавшего суффиксные деревья в 1973 году. Если вы не знаете, что такое суффиксное дерево или всегда его боялись, то это ваш шанс изучить его и заодно овладеть относительно простым способом построения.
Читать дальше →

Унифицируем поведение LINQ to IEnumerable и LINQ to IQueriable в части работы с null значениями. Пример ExpressionVisitor

Время на прочтение4 мин
Охват и читатели11K
Ни для кого не секрет, что хотя LINQ позиционируется как универсальный язык запросов к коллекциям разного происхождения (как коллекциям в памяти, так и различным удаленным источникам данных, например, базам данных), однако на деле результаты одинаковых запросов получаются разными в зависимости от того, к какой коллекции был запрос. В частности, при наличии null в свойстве Property1 используемом в выражении в методе .Select(c=>c.Property1.Property2) можно получить как NullReferenceException, так и null в качестве результата.
Пример решения проблемы

Как я проходила собеседования в Яндекс: мой непростой, но успешный опыт

Время на прочтение7 мин
Охват и читатели252K
Уже чуть больше полугода я работаю в поиске Яндекса релиз-инженером. И чуть ли не с первого рабочего дня хочу написать о том, как отзывалась на вакансию, как проходила собеседования, что мне в этом процессе понравилось, а что — не очень. Но сначала я входила в курс дела, а потом каждый день в моей работе появлялись такие интересные задачи, что я даже не была готов отвлечься от них на этот рассказ.

Вопрос для внимательных: сколько модулей отломится от корабля на старте?


А еще год назад у меня в жизни была вроде бы похожая, но в то же время совсем другая ситуация — времени на хобби не хватало, задач было много, но они не приносили мне никакого удовольствия. В итоге я решилась на перемены. На самом деле, эта позиция в Яндексе не была первой, которую я рассматривала. За то время, которое прошло до моего первого рабочего дня, я освежила в голове очень много тем. И перед финальным собеседованием мне пришлось взяться ещё за несколько. Сейчас я понимаю, какие ошибки совершила в этом процессе, поэтому хочу поделиться своим опытом с вами. Буду рада, если кому-то это будет полезно. Хочу сказать, что это не официальные рецепты от рекрутеров Яндекса, а только мои собственные выводы. В конце поста я поделюсь списком литературы, которая мне помогла в подготовке, и еще добавлю те источники, которые считаю полезными, оглядываясь назад.

Читать дальше →

Curiosity у подножия горы Шарпа

Время на прочтение4 мин
Охват и читатели17K
Purhump Hills 1100

За минувшие полгода, марсоход практически не продвинулся в своем пути по Марсу, но существенно продвинулся в его изучении. Ученые NASA продолжают следовать завету, данному бюджетным чиновникам: больше изучать и меньше гулять, да и место попалось благодатное.
Читать дальше →

Бильярдный бот: история создания

Время на прочтение21 мин
Охват и читатели28K
Привет, хабрахабр! Эта статья посвящена подробному описанию процесса создания бильярдного бота, который без участия человека играет в игру pool billiard и принимает решения, зарабатывая очки. Статья будет полезна и интересна людям, увлекающимся созданием ботов и программированием.


Читать дальше →

DevCon Digest #2. Погружаемся в ASP.NET

Время на прочтение3 мин
Охват и читатели13K


Приветствую! Мы продолжаем серию тематичных подборок материалов по темам конференции DevCon. Если в прошлый раз мы погружались в материалы, связанные в целом с .NET, то сегодня мы посмотрим глубже в сторону серверных технологий, а точнее – новый ASP.NET.
Читать дальше →

Некоторые аспекты логирования ASP.NET-сайта

Время на прочтение16 мин
Охват и читатели22K
Здравствуйте!

Сегодня я расскажу, как сделаны некоторые аспекты логирования в сайте, в разработке которого я принимаю участие.

Сайт написан на ASP.NET MVC 5 и Web API 4, для логирования используется библиотека NLog, сайт хостится в облаке Амазона. Записи лога пишутся в три места (target по терминологии NLog): в файловую систему (подпапку Logs папки App_Data, в которую разрешается доступ на запись при стандартных настройках деплоя Amazon Elastic Beanstalk), на сервис logentries и в БД. Записи лога за день ведутся в отдельный файл, в названии которого указывается текущая дата.
Читать дальше →

Пишем с нуля квест на ASP.NET 5 (vNext) и Angular.js

Время на прочтение8 мин
Охват и читатели47K
С выходом новой версии ASP.NET хочется попробовать, какая же она на практике. А для того, чтобы не писать еще один чатик\соц. сеть\блог..., для пилотного проекта выберем логический квест — и фреймворк посмотрим, и поиграть можно.
Результат:
сорсы на гитхабе для тех, кому интересно поиграться с новым ASP.NET
линк на квест для тех, кому интересно что получилось или потратить свое время на еще один логический квест.

Читать дальше →

Чтобы распознавать картинки, не нужно распознавать картинки

Время на прочтение18 мин
Охват и читатели238K
Посмотрите на это фото.



Это совершенно обычная фотография, найденная в Гугле по запросу «железная дорога». И сама дорога тоже ничем особенным не отличается.

Что будет, если убрать это фото и попросить вас нарисовать железную дорогу по памяти?

Если вы ребенок лет семи, и никогда раньше не учились рисовать, то очень может быть, что у вас получится что-то такое:
Осторожно, тяжелые гифки

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность