Хотел бы предложить на суд общественности алгоритм для карточной игры, который исключает “шулерство”. Т.е. расклад игры генерируется участниками совместно, а “вскрытие” конкретной карты может производится только для одного игрока.
Роман @Expellee
User
Изучить Github за 15 минут
1 min
127KTryGit — интерактивный обучающий курс по Github в стиле Codecademy. Курс состоит из 25 мини-уроков, которые знакомят пользователя с базовыми понятиями и основными командами git, при этом ученик своими руками вводит команды в консоль, смотрит результат и читает сопровождающие надписи с объяснением происходящего.

Вот таким в будущем должно стать обучение в школах!
Конечно, 15-минутное введение не заменит полноценного учебника. Для обучения можно рекомендовать бесплатную книгу Pro Git и видеокурс Getting Git.

Вот таким в будущем должно стать обучение в школах!
Конечно, 15-минутное введение не заменит полноценного учебника. Для обучения можно рекомендовать бесплатную книгу Pro Git и видеокурс Getting Git.
+137
Три нестандартных типа чисел в JavaScript и две библиотеки
1 min
9.2KВ JavaScript по умолчанию есть один тип чисел — Number. Хотя он конечно делится на Int и Float, хотя выражается это в немногом (например, в функциях parseInt — parseFloat).
При этом большие числа (и Int и Float) укорачиваются, а дроби приводятся к десятичным и округляются. И то и другое не всегда хорошо, так что появились библиотеки, которые предлагают новые классы для необычных чисел.
При этом большие числа (и Int и Float) укорачиваются, а дроби приводятся к десятичным и округляются. И то и другое не всегда хорошо, так что появились библиотеки, которые предлагают новые классы для необычных чисел.
+28
О прямоугольных координатах и гексагональных сетках
4 min
29KДумаю, никому не нужно объяснять, насколько широко в играх (и не только) используются гексагональные сетки. Как для заданной шестиугольной ячейки найти координаты ее центра и вершин — достаточно очевидно. Обратное же преобразование (т.е. поиск ячейки, в которую попала данная точка с координатами x и y) уже не столь тривиально. О нём и пойдет речь в данном топике.
+62
Алгоритм проведения IT собеседования
4 min
59KВ сегодняшнем посте я хочу обсудить тему — эффективного IT собеседования.
Она родилась из комментария к одному из моих прошлых постов: «Было бы здорово почитать развернутый рассказ про то, как собеседовать людей.» Собственно, сказано — сделано!
Проведение себеседования также тривиально, как этот кубик рубик, если конечно вам не важен результат.

Каждый человек проходил интервью или собеседования, какие-то из них были интересными, какие-то не очень. Примеров того как не надо делать или как это делается в идеале, я приводить не буду.
Продолжаю свой стиль изложения — максимум конкретики, использования и практики. Вся философия будет в комментариях или личных сообщениях.
Если вам эта тема интересна и есть чем поделится с хабрачитателями — прошу под кат.
+ Бонус в конце статьи.
Она родилась из комментария к одному из моих прошлых постов: «Было бы здорово почитать развернутый рассказ про то, как собеседовать людей.» Собственно, сказано — сделано!
Проведение себеседования также тривиально, как этот кубик рубик, если конечно вам не важен результат.

Каждый человек проходил интервью или собеседования, какие-то из них были интересными, какие-то не очень. Примеров того как не надо делать или как это делается в идеале, я приводить не буду.
Продолжаю свой стиль изложения — максимум конкретики, использования и практики. Вся философия будет в комментариях или личных сообщениях.
Если вам эта тема интересна и есть чем поделится с хабрачитателями — прошу под кат.
+ Бонус в конце статьи.
+25
MongoDB: производительность запросов на диапазонах
3 min
16KTranslation
Если вы путешествовали по территории индексов MongoDB, вы возможно слышали принцип: Если ваши запросы содержат сортировку, то добавте сортированное поле в конец индекса который используется в этих запросах.
Во многих случаях когда запросы содержат условия равенства как например {“name”: “Charlie”}, принцип который выше очень полезен. Но что о нем можно сказать со следующим примером:
Эта связка является не эффективной, хотя принцип соблюдается. Потому что тут есть ловушка в которую вас может привести этот принцип.
Ниже мы рассмотрим причины возниконвения этой ловушки и к концу статьи вы будете иметь новое правило которое будет вам помогать при индексировании.
Во многих случаях когда запросы содержат условия равенства как например {“name”: “Charlie”}, принцип который выше очень полезен. Но что о нем можно сказать со следующим примером:
Запрос:
db.drivers.find({"country": {"$in": ["A", "G"]}).sort({"carsOwned": 1})
Индекс:
{"country": 1, "carsOwned": 1}
Эта связка является не эффективной, хотя принцип соблюдается. Потому что тут есть ловушка в которую вас может привести этот принцип.
Ниже мы рассмотрим причины возниконвения этой ловушки и к концу статьи вы будете иметь новое правило которое будет вам помогать при индексировании.
+17
В погоне за идеей
10 min
4.8K
Приветствую тебя, Хабр. В этой статье я бы хотел уделить несколько абзацев текста такой, актуальной нынче, теме, как стартапы (думаю, уже не за горами то время, когда само это слово станет у нас синонимом чего-нибудь неприличного). Но даже это еще не все. Я осмелюсь покуситься на самое-самое святое для стартапера, на его начальную Идею. Попытаюсь понять, стоит ли она все-таки хоть что-то, и существует ли какой-нибудь метод, не очень зависящий от эмоций, чтобы была возможность как-то конструктивно работать с этими идеями.
Многое, о чем я буду говорить, будет похоже на откровения капитана, а какие-то высказывания, возможно, могут кому-то показаться окрашенными в назидательный тон (хотя я никоим образом этого не хотел). Заранее прошу у читателей отнестись к тексту снисходительно, т.к. всё, что вы прочтете ниже, лишь изложение мыслей автора вслух по теме, и ничего больше.
+53
Знакомство с Active Scaffold
3 min
5.7KTutorial
Всем доброго дня! Я вам хочу поведать о замечательном геме (плагине) для Ruby and Rails (практически не нашёл упоминаний о нём на хабре).
Цель данного плагина — предоставить удобный типовой интерфейс «из коробки». С добавлением, удалением, правкой, поиском, сортировкой и всё это с ajax (или без него).

Делается такое чудо, как на рисунке, в несколько простых шагов:
1. Кидаем строчку в Gemfile
2. Устанавливаем gem'ы
3. Подключаем стили и скрипты
4. Прописываем в целевом контроллере
Всё! Дальше Active Scaffold сам подхватит соответствующую модель (в примере — Stuff), разузнает о её колонках в таблице БД и связанных моделях, выберет 15 (по умолчанию) первых записей согласно настройкам default_scope в модели (если задано) и представит вам. Так же заодно (кроме отображения HTML) предоставит вам API в форматах JSON и XML.
Цель данного плагина — предоставить удобный типовой интерфейс «из коробки». С добавлением, удалением, правкой, поиском, сортировкой и всё это с ajax (или без него).

Делается такое чудо, как на рисунке, в несколько простых шагов:
1. Кидаем строчку в Gemfile
gem 'active_scaffold'
2. Устанавливаем gem'ы
bundle install
3. Подключаем стили и скрипты
/* В /app/assets/stylesheets/application.css.scss
*= require active_scaffold
*/
// В /app/assets/javascripts/application.js
//= require active_scaffold
4. Прописываем в целевом контроллере
class StuffsController < AuditorController
active_scaffold :stuff
end
Всё! Дальше Active Scaffold сам подхватит соответствующую модель (в примере — Stuff), разузнает о её колонках в таблице БД и связанных моделях, выберет 15 (по умолчанию) первых записей согласно настройкам default_scope в модели (если задано) и представит вам. Так же заодно (кроме отображения HTML) предоставит вам API в форматах JSON и XML.
+10
Как создать свой Color Picker на Javascript?
3 min
28KRecovery Mode
Я знаю что в сети много подобных скриптов на разный вкус и цвет. Но мне захотелось написать свой с нуля и первое что я сделал полез в Гугл искать алгоритм создания(сolor picker). В итоге я был разочарован так как не нашел нечего кроме готовых скриптов, наверно поэтому после того как я разобрался и написал свой color picker, я решил поделится своим опытом в его написание.
Так как я пишу на чистом js без библиотек (не считая той которую я пишу сам:)) в данном посте будет толькохардкор чистый javascript.
Что нужно знать что бы написать cp (сокращенно color picker):
Так как я пишу на чистом js без библиотек (не считая той которую я пишу сам:)) в данном посте будет только
Что нужно знать что бы написать cp (сокращенно color picker):
- Основы Drag'n'Drop
- Немного разбираться в Canvas (на нем будет рисоваться шкала оттенков Hue)
+16
Web-разработка на node.js и express. Изучаем node.js на практике
5 min
121KПредисловие
Пришла мне в голову смелая мысль, взяться за написание туториала по разработке на node.js (что-то наподобие ruby.railstutorial.org). Так как я первый раз берусь за подобный труд то для для меня очень важен любой фидбэк. Нужно это — не нужно. Что стоит убрать а на чем остановиться подробнее, в общем любая конструктивная критика. Надеюсь что дело пойдет и вам понравится, в этом случае по мере написания буду выкладывать главы на хабр.
Вступление
Приветствую, перед вами небольшой учебник по практической разработке на node.js, с использованием фреймворка express. Я с большим энтузиазмом отношусь к node и сопутствующим технологиям. Node.js в первую очередь привлекает свежестью в подходах к разработке, смелостью и драйвом.
О том, что такое node.js вы можете прочитать на http://nodejs.org/, если коротко — то это серверная платформа, для выполнения javascript. Так же мы будем использовать express, web-фреймворк построеный на концепции middleware (о том, что это такое, поговорим поподробнее чуть позже)
В процессе изучения мы познакомимся с различными аспектами web-разработки, такими как использование системы контроля версий, автоматическое тестирование и так далее. В результате по ходу изучения мы разработаем вполне рабочее web-приложение (простенький аналог твиттера)
Хочется отметить, что очень большое влияние на меня оказал railstutorial, это лучшее пособие по web-разработке, которое я встречал, и мне очень хотелось бы создать нечто подобное для node.js.
+52
Современное школьное образование, часть 3
7 min
12KПервая часть про различные уровни сложности школьных задач.
Вторая часть про типы видео-лекций.
В этой части я хочу обсудить технологии школьного интернет-образования. Под школьным образованием я подразумеваю такое, при котором за успеваемостью ученика необходимо как-то следить. В качестве примеров будут рассмотрены:
● khanacademy.org Гигант в этой отрасли.
● eftsh.ru Электронная ФТШ, проект при МФТИ.
● 100ege.ru Портал по подготовке к вузовским олимпиадам, ЕГЭ и ГИА.
● interneturok.ru и univertv.ru являются архивами лекции, но на данный момент отсутствует функционал взаимодействия с учеником.
● dnevnik.ru Всероссийская бесплатная школьная образовательная сеть.
Вторая часть про типы видео-лекций.
В этой части я хочу обсудить технологии школьного интернет-образования. Под школьным образованием я подразумеваю такое, при котором за успеваемостью ученика необходимо как-то следить. В качестве примеров будут рассмотрены:
● khanacademy.org Гигант в этой отрасли.
● eftsh.ru Электронная ФТШ, проект при МФТИ.
● 100ege.ru Портал по подготовке к вузовским олимпиадам, ЕГЭ и ГИА.
● interneturok.ru и univertv.ru являются архивами лекции, но на данный момент отсутствует функционал взаимодействия с учеником.
● dnevnik.ru Всероссийская бесплатная школьная образовательная сеть.
+28
Продвижение в интернете – сферический конь в вакууме или почему оно не работает
7 min
43K
Прелюдия
Все они описывают ситуации в общем случае или как в известной шутке про сферического коня в вакууме, в то время как на деле все выходит
Игра называется «найди десять отличий». Наше воображение мы назовем «Сферический конь в вакууме», а суровую действительность обозначим вопросом «Почему оно не работает?». А оно, как вы уже, наверное, догадались, не работает в 90% случаев. А это значит ровно то, что 90% времени, потраченного нами на образование и самообразование, потрачено впустую.
+81
Ищем вместе с Гуглом
1 min
1.8KTranslation
… краткий курс для будущих мастеров поиска в интернете
Курс «Ищем вместе с Гугл» — это бесплатный онлайн курс по развитию навыков поиска в Интернет для решения повседневных задач.
Подробности
Курс «Ищем вместе с Гугл» — это бесплатный онлайн курс по развитию навыков поиска в Интернет для решения повседневных задач.
- 6 презентаций по 50 минут
- Интерактивные практические задачи
- Возможность совместной работы с использованием Google Groups, Google+ и Hangouts on Air
- При успешном завершении итогового теста выдается сертификат
+5
Как создать систему бизнес-аналитики и не наломать дров
5 min
25KДля правильного принятия бизнес-решений необходимо владеть наиболее полной и подробной информацией о состоянии дел в компании. Но нередко такая информация ограничена годовыми да квартальными отчётами.
Этого, безусловно, мало. Для эффективного анализа на предприятиях часто внедряют системы бизнес-аналитики (англ. business intelligence, далее — BI-системы). Сегодня мы хотим поделиться несколькими советами, которые могут помочь при создании BI-системы в вашей компании (и которые помогли бы нам самим год назад).

Этого, безусловно, мало. Для эффективного анализа на предприятиях часто внедряют системы бизнес-аналитики (англ. business intelligence, далее — BI-системы). Сегодня мы хотим поделиться несколькими советами, которые могут помочь при создании BI-системы в вашей компании (и которые помогли бы нам самим год назад).

+57
Триггеры — спасители
5 min
103KУже много статей в интернете есть про sql триггеры, но добавлю еще одну с адекватными примерами, что бы закрепить материал для тех, кто «в теме» и что бы лучше понять материал тем, кто только начал постигать «дзен sql». Заодно и создам дискуссию по теме.
Сразу оговорюсь, что мое мнение — это только мое мнение, оно порой сильно категорично. В силу ряда причин приходится работать с высоконагруженными сайтами и сложными веб-приложениями.
Сразу оговорюсь, что мое мнение — это только мое мнение, оно порой сильно категорично. В силу ряда причин приходится работать с высоконагруженными сайтами и сложными веб-приложениями.
+30
Работа и аспирантура в Швейцарии
3 min
21KЗдравствуйте, дорогие хабравчане. Так вышло, что около полугода назад у меня получилось устроиться на работу в Швейцарии, в швейцарскую федеральную политехническую школу (EPFL) в Лозанне. К текущему моменту накопилось множество различных впечатлений, о которых я и хочу рассказать.
+103
+40
FLAC-декодер на Javascript
1 min
6K
Демо
JavaScript уже так могуч, что браузер декодирует звук, потребляя менее 5% ресурсов CPU. Можно представить, какие крутые звуковые редакторы, миксеры и прочие аудиоприложения появятся в вебе в ближайшее время.
+81
FuckItJS: принудительное исполнение JavaScript-кода
1 min
2.1KАмериканский веб-разработчик Мэтт Даймонд (Matt Diamond) написал библиотеку JavaScript под названием FuckItJS. Если вставить в код метод FuckIt, то он заставит исполняться самый плохой скрипт, «нравится это компилятору или нет».
В общем, FuckItJS работает так: из скрипта вырезаются все строчки, на которые выскочили ошибки. Процесс повторяется, пока скрипт (или что там от него осталось) не проходит компиляцию без ошибок. Чтобы выжить в этом жестоком мире, FuckItJS перезагружается после каждой итерации.
В общем, FuckItJS работает так: из скрипта вырезаются все строчки, на которые выскочили ошибки. Процесс повторяется, пока скрипт (или что там от него осталось) не проходит компиляцию без ошибок. Чтобы выжить в этом жестоком мире, FuckItJS перезагружается после каждой итерации.
+61
CoffeeScript: Подробное руководство по циклам
11 min
32KTutorial

Как известно, CoffeeScriptпредлагает несколько иной набор управляющих конструкций, нежели JavaScript.
Не смотря на то, что разработчики языка максимально упростили грамматику и дали подробное описание всех инструкций, сделать более или менее нестандартный цикл для многих остается большой сложностью.
+35
Information
- Rating
- Does not participate
- Location
- Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity