Pull to refresh
42
0
Винокуров Роман @Chaos_Code

User

Send message

RPG для обучения детей программированию на Java

Reading time2 min
Views126K

Java считается мало подходящим для того, чтобы стать первым языком программирования, в отличие от того же Pascal или Python, тем более для детей. Однако, это обстоятельство не остановило специалистов университета Калифорния (Сан-Диего) от любопытного эксперимента, который, по их словам, показал вполне успешные результаты — ими была разработана игра CodeSpell для обучения детей Java в ходе игрового процесса.

Игра представляет собой нечто вроде RPG от первого лица с довольно скромной на сегодня графикой и весьма типичным сюжетом. Игрок — волшебник в стране, населённой гномами, которые по некоторой причине утратили свои магические способности. Задача игрока — помогать гномам при помощи своей магии, которая представляет из себя Java-код, выполнение которого приводит к модификации предметов и влиянию на окружающий мир: левитация, полёты, уничтожение огнём и тому подобное. Игра «помогает» игроку различными способами, начиная от подсказок и заканчивая чем-то на подобие дополнения кода, так что раздражения по поводу заклинания на Java «как разрушить это препятствие» у школьников не должно возникнуть.

Игровой процесс — правда, урывками и без особого смысла — можно посмотреть на видео
Узнать подробности

Внедрение зависимостей в .NET

Reading time4 min
Views16K

Название оригинала: Dependency Injection in .NET
Автор: Марк Симан
Дата выхода: август 2013г.

В конце лета у нас выходит новая переводная книга «Dependency Injection in .NET» издательства Manning Publications. Хотим вашему внимаю представить перевод небольшого анонса.

Dependency Injection in .NET — это великолепное описание технологии внедрения зависимостей (DI), связанных с ней паттернов и нескольких важнейших фреймворков для такого внедрения. Симан проработал множество ресурсов (книг, журнальных статей, записей в блогах) и создал свой всеобъемлющий труд. Несомненно, автор опирается на массу самостоятельно проведенных исследований и собственный практический опыт в работе с внедрением зависимостей.
Читать дальше →

Использование паттернов проектирования в javaScript: Порождающие паттерны

Reading time5 min
Views76K
Привет, хабр!
С удивлением обнаружил отсутствие на хабре развернутой статьи о сабже, что немедленно сподвигло меня исправить эту вопиющую несправедливость.

В условиях когда клиентская часть веб-приложений становится все более толстой, бизнес-логика неумолимо переползает на клиент, а на суверенитет серверных технологий все более смело посягает node.js нельзя не задуматься о приемах проектирования архитектуры на javaScript. И в этом деле нам несомненно должны помочь паттерны проектирования — шаблонные приемы решения часто встречающихся задач. Паттерны помогают построить архитектуру, которая потребует от вас наименьших усилий при необходимости внести изменения. Но не стоит воспринимать их как панацею, т.е., грубо говоря, если качество кода «не фонтан», он кишит хардкодом и жесткой связью между логически независимыми модулями, то никакие паттерны его не спасут. Но если стоит задача спроектировать масштабируемую архитектуру, то паттерны могут стать хорошим подспорьем.
Но впрочем эта статья не о паттернах проектирования как таковых, а о их применении в javaScript. В первой части этой статьи я напишу о применении порождающих паттернах.
Читать дальше →

Tree View с «CRUD операциями», «drag and drop (DnD)» и «отложенной загрузкой» с использованием Dojo Tree, Entity Framework, SQL Server и ASP.NET MVC

Reading time11 min
Views13K
image

Введение

Dojo Toolkit это модульная JavaScript библиотека с открытым исходным кодом, предназначенная для облегчения быстрой разработки кросс-платформенных JavaScript/Ajax-ориентированных приложений и веб-сайтов, которая предоставляет некоторые действительно мощные возможности для пользовательского интерфейса. Компонент Dojo Tree обеспечивает полное, привычное, интуитивно понятное, развертываемое представление иерархических данных. Этот компонент поддерживает отложенную загрузку веток, что делает его хорошо масштабируемым для больших объемов данных. Dojo Tree отличный виджет для представления данных с отношениями «предок-потомок».

Эта статья показывает процесс создания дерева, поддерживающего «CRUD операции», «drag and drop (DnD)» и «отложенную загрузку». Чтобы создать такое дерево мы будем использовать Dojo Tree, Entity Framework, SQL Server и Asp .Net MVC.
Читать дальше →

«Про ИТ-стартапы и венчурное финансирование», или «Как я за булкой ходил»

Reading time5 min
Views26K
Рыбой и морем
Пахнет рыбак.
В булочной только
Не пахнет никак!

(по мотивам детского стихотворения)

От автора: ниже в художественной форме представлены мои собственные впечатления от процесса поиска венчурного финансирования для одного ИТ-стартапа. Все совпадения с реальными именами и компаниями — случайны, все выводы в результате прочтения этого текста — на совести читателя.

Однажды утром я вышел на улицу, чтобы купить к завтраку булку…
Читать дальше →

Как мы улучшали работу службы поддержки в Яндекс.Почте

Reading time6 min
Views54K
Яндекс.Почта очень быстро развивается: за последние два года её аудитория выросла почти в полтора раза — до более чем 18М человек в месяц. Чтобы такой рост был возможным, техническое развитие тоже должно идти очень быстро — каждую неделю мы выкатываем по два релиза с улучшениями и изменениями.

Но для того чтобы сделать хороший сервис, недостаточно работы с технической стороной — нужно наладить и организационную часть. В том числе быструю и эффективную службу поддержки.

В течение всего последнего года мы реализовывали проект по её реорганизации. О том, как мы его задумывали, какие метрики ставили и что получилось, мы и хотим сейчас рассказать.

Служба поддержки Яндекс.Почты
Читать дальше →

Коаны Гита

Reading time3 min
Views38K
По мотивам «Коанов Вима».

Тишина
Что-то одно, но хорошо
Только богам
Хобгоблин
Длинное и короткое

Тишина


Python-программистка передала свой файл ~/.gitconfig мастеру Гиту. Среди строчек кода было следующее:

[alias]
; Явное лучше подразумеваемового. Если мы хотим выполнить слияние,
; нам следует сделать это самим.
pull = pull --ff-only

Мастер Гит кивнул. «git pull origin master», — сказала программистка.
Читать дальше →

Асинхронные API и объект Deferred в деталях

Reading time11 min
Views22K
Большинство современных языков программирования позволяют использовать асинхронно выполняемые блоки кода. Вместе с гибкостью, получаемой при использовании асинхронного подхода, рискнувший его применить также получает более сложный для понимания и поддержки код. Однако, любое усложнение, с которым сталкиваются программисты, как правило, находит практическое решение в виде нового подхода или повышения уровня абстракции. В случае асинхронного программирования таким средством служит объект типа отложенный результат или deferred (англ. deferred — отложенный, отсроченный).

В статье будет рассказано о базовых подходах к возврату асинхронных результатов, функциях обратного вызова, объектах deferred и их возможностях. Будут приведены примеры на языке JavaScript, а также произведён разбор типового объекта deferred. Статья будет полезна программистам, начинающим постигать асинхронное программирование, а также знакомым с ним, но не владеющим объектом deferred.
Окунуться в мир асинхронного программирования

Связные списки в функциональном стиле

Reading time2 min
Views20K
Рассмотрим вариант реализации связных списков через замыкания.

Для обозначения списков будем использовать нотацию, похожую на Haskell: x:xs, где x — начало списка (head), xs — продолжение (tail).



В качестве языка реализации я выбрал JavaScript.

Конструируем список

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

Firefox: размер файла по ссылке, или через тернии к форку

Reading time9 min
Views11K
Скриншот расширения Link Properties Plus
Вашему вниманию представляется небольшая история появления расширения Link Properties Plus и описание того, как работает его основная часть.
Расширение позволяет узнать размер, дату последнего изменения и некоторые другие свойства файла по ссылке (в том числе прямую ссылку после всех перенаправлений) без скачивания всего файла целиком. Если, конечно, все это сообщает сервер.
Читать дальше →

Прощай, Zen Coding. Привет, Emmet!

Reading time5 min
Views251K

Еще в 2009 году, image Сергей Чикуёнок опубликовал статью, в которой представил новый способ написания HTML и CSS кода. Этот революционный плагин, назывался Zen Coding, он помогал многим разработчикам на протяжении многих лет и в настоящее время вышлел на новый уровень.

Emmet, ранее известный как Zen Coding, является самым производительным и экономным во времени плагином для текстового редактора. Простые сокращения мгновенно расширяются в сложные фрагменты кода, Emmet превратит вас в более продуктивного разработчика.

Для тех, кто предпочитает смотреть, а не читать, вот видео любимых трюков автора.

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

Wikileaks отдыхает — ICIJ опубликовал исследование крупнейшей утечки данных об офшорных счетах сильных мира сего

Reading time2 min
Views86K


Пятнадцать месяцев назад анонимный источник передал в распоряжение Международного консорциума журналистов-расследователей (ICIJ) 2 500 000 файлов общим объёмом в 260 гигабайт, содержащих данные о финансовых транзакциях 130 000 организаций и частных лиц из 170 стран мира, которые использовали офшорные зоны для уклонения от налогов.

ICIJ объединяет журналистов крупных мировых изданий, ведущих расследования злоупотреблений представителей власти и крупного бизнеса. Исследование 30 лет истории офшорных транзакций, которое 86 журналистов из 46 стран вели больше года — самый крупный проект консорциума за всю его историю. По данным организации Tax Justice Network, сильные мира сего прячут в офшорных «райских уголках» планеты от 21 до 32 триллионов долларов.
Читать дальше →

Обзор ECMAScript 6, следующей версии JavaScript

Reading time6 min
Views99K
Для начала, ликбез и несколько фактов:
  • ECMAScript — это официальный стандарт языка JavaScript (Слово JavaScript не могло быть использовано, потому что слово Java являлось торговой маркой компании Sun) Т.е. JavaScript — это имплементация стандарта ECMAScript.
  • TC39 — комитет, развивающий стандарт ECMAScript и принимающий решения по включению фич в него.
  • ECMAScript стандартов много. Самый популярный из них — ECMA-262.
  • ECMAScript 5 — последняя редакция стандарта ECMA-262 (утвержден в 2009 году).
  • Предыдущие версии стандарта ECMA-262 были (совсем старые не упоминаю):
    • ECMAScript 3 — поддерживается большинством браузеров (утвержден в 1999 году).
    • ECMAScript 4 — не принят в виду слишком радикальных изменений в стандарте. Позднее в июле 2008 году в урезанном варианте (но все же намного богаче, чем ECMAScript 3) вылился в новый проект ECMAScript Harmony.

  • ECMAScript 6 (кодовое имя ECMAScript.next) должен утвердиться до конца 2013 года.


Итак, что же нас ждет в новой версии JavaScript?

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

Apple очищает WebKit от наследия Chromium

Reading time1 min
Views38K
Компания Apple осталась единственной крупной компанией, которая занимается разработкой Open Source движка WebKit. После ухода Google разработчики из Apple объявили о «весенней зачистке» и удалении из проекта ставшего ненужным кода, в том числе чужого JavaScript-движка V8.

В течение ближайших недель будут зачищены:
  • Нарушения иерархических представлений (layering violations) в WebCore/platform, где Page* или Frame* можно было передать функции
  • Supplementable и Supplement
  • #if USE(GOOGLEURL)
  • #if USE(V8)
  • #if !USE(JSC)
  • #if PLATFORM(CHROMIUM)
  • Skia
  • DOMFileSystem
  • WebLayer и его реализацию скроллинга
  • Функции #defines, которые не пользуются популярностью
Читать дальше →

Почему хороший разработчик радуется дефектам?

Reading time2 min
Views23K
Не так давно я прочитал вот эту статью и понял, что я действительно благодарен дефектам. Да, никто их не любит. Да, все считают, что без них все равно дело не обойдется. Да, время на исправление дефекта практически невозможно оценить и тяжело контролировать. И при всем этом, я действительно считаю, что дефекты принесли мне много добра.
Читать дальше →

M в MVC: почему модели непоняты и недооценены (перевод)

Reading time14 min
Views75K
(статья очень старая, по поднятые в ней вопросы актуальны по сей день и регулярно поднимаются в различных обсуждениях)

Многие из вас наверняка заметили, что я пишу книгу о Zend Framework. Недавно я закончил черновики двух глав: «Архитектура приложений на Zend Framework» и «Понимая Zend Framework». В первой главе объясняется архитектурный шаблон Model-View-Controller (MVC) и причины, по которым он стал стандартом де-факто для веб-приложений. Во второй исследуется связь MVC с компонентами Zend Framework, их структурой и взаимодействием.

Завершив обе главы я осознал, что большую часть времени описывал модель и ее фактическое отсутствие в Zend Framework. На самом деле ни один веб-фреймворк не предлагает нам полноценную модель (по причинам, которые я объясню чуть позже). И ни в одном из них не дается внятного объяснения этому обстоятельству. Вместо этого они последовательно связывают понятие модели с родственным, но не идентичным понятием доступа к данным, что изрядно всех запутывает.

Эта сторона фреймворков никогда не привлекала особого внимания. И все же именно она лежит в основе целого класса проблем в тех приложениях, которые пытаются использовать MVC по образу и подобию фреймворков для веб-приложений. Более того, попытки донести идею модели до других разработчиков нередко напоминают битье головой о стену. Я не хочу сказать, что все разработчики тупые или не понимают саму идею, просто никто из них (вне зависимости от того, работают они с PHP или нет) не связывает модели с той областью, которая наделяет их смыслом — принципами объектно-ориентированного программирования.
Читать дальше →

Firefox: приватные вкладки, разные API и расширения, не требующие перезапуска

Reading time12 min
Views20K
Расширение Private Tab
Речь пойдет о моем расширении Private Tab для Firefox и SeaMonkey: некоторые подробности реализации – и конкретно этого, и расширений, не требующих перезапуска (aka restartless), вообще.

Расширение добавляет приватные вкладки, для которых не будет сохраняться история и будет использоваться отдельный набор cookies.

К сожалению, попытки написать по-простому приводят к многочисленным отвлечениям от основной темы, так что на выходе получилась некая солянка на тему написания расширений. С другой стороны, совсем без отвлечений понятно будет только тем, кому все это уже не нужно.
Несколько сумбурно, но зато в логическом порядке. Надеюсь, так понятнее.
Читать дальше →

Как работать с большей продуктивностью

Reading time3 min
Views43K
Когда-то я начинал работать, и меня вполне устраивала моя производительность. Но после, когда начались проблемы, связанные с потерянными клиентами, сбежавшими партнёрами, играющими в молчанку поставщиками из-за забывчивости, необязательности, или несвоевременного выполнения дел, у меня возникло желание что-то поменять в своём отношении к работе.

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

Всё нижеприведённое справедливо для меня, директора небольшой минской аутсорсинговой компании, но и вполне может оказаться применимо для широкого круга лиц: менеджеров, админов, кодеров, верстальщиков, дизайнеров, да кого угодно.


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

Как быстро найти баги, мешающие релизу

Reading time2 min
Views16K
Достался мне в управление проект, который из-за не выстроенных процессов его контроля и мониторинга, находился в весьма плачевном состоянии. Я не буду перечислять полный список проблем и всех предпринятых для их решения шагов, так как хочу поделиться опытом именно быстрого нахождения багов, исправления которых скорее всего будет достаточно, чтобы зарелизить и сдать продукт клиенту.

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

Решение

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity