Как стать автором
Обновить
0
0
Ярость Топора @rageOfAxe

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

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

JSCS: JavaScript Code Style

Время на прочтение3 мин
Количество просмотров59K
Когда девять месяцев назад я написал для себя маленькую консольную утилиту, я и не подозревал, что вскоре она превратится в серьёзный и единственный в своём роде инструмент, которым будут пользоваться даже такие известные всем команды, как jQuery, Bootstrap, Angular. Сейчас, когда я пишу эту статью, у моего проекта на гитхабе 1010 звёздочек, и мне очень радостно думать о том, что так много людей смогли с помощью моей придумки сделать свою работу удобнее.

История этого проекта началась с моей личной боли.

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

Читать дальше →
Всего голосов 126: ↑121 и ↓5+116
Комментарии118

Пузырьковая сортировка и все-все-все

Время на прочтение5 мин
Количество просмотров626K

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

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

image: пузырьки

Сделать первый шаг в изучении сортировок
Всего голосов 116: ↑104 и ↓12+92
Комментарии35

GameDev как хобби

Время на прочтение7 мин
Количество просмотров51K
Работая в программистом в области никак не связанной с играми я вдруг решил написать мобильную игру. Не зная ни инструментов, ни технологий и специфики разработки. Какой она получилась? Какие выводы я для себя сделал и может ли геймдев быть хобби – всё под катом.

Читать дальше →
Всего голосов 56: ↑49 и ↓7+42
Комментарии41

Обучение онлайн

Время на прочтение1 мин
Количество просмотров34K
Для изучающих Ruby / Rails, будет полезно ознакомиться с подборкой бесплатных онлайн курсов, туториалов и интерактивных занятий, посвященных языку программирования Ruby и фреймворку Ruby on Rails.

Читать дальше →
Всего голосов 47: ↑39 и ↓8+31
Комментарии13

Введение в TDD «на пальцах» (Rails + Rspec)

Время на прочтение4 мин
Количество просмотров45K
Лично для меня, довольно тертого разработчика, процесс внедрения TDD был непростым и местами тернистым.

Вкратце законспектирую, поскольку порог входа в тестирование действительно выше, чем просто сесть и писать код на RoR. Сделаю несколько, как написали бы пиндосы, highlights.
image

Теоретически процесс TDD должен выглядеть так:



1. Написали падающий тест, прогнали rspec, убедились что тест не проходит (красный)

2. Написали кусок кода, прогнали rspec, убедились что тест проходит (зеленый)

3. Отрефакторили, убедились что все хорошо и тесты не падают.

4. Отправили код в продакшн

Читать дальше →
Всего голосов 38: ↑28 и ↓10+18
Комментарии9

Russian Design Cup: как сделать профессиональное портфолио за 45 дней

Время на прочтение5 мин
Количество просмотров20K
Многие интересные истории начинаются со слов «А что, если…» Так почти два года назад мне пришла в голову мысль: «А что, если собрать людей, занимающихся решением интересных практических задач в дизайне, и предложить им поделиться опытом со всеми, кому хочется попробовать силы в проектировании взаимодействия, графическом и информационном дизайне?» Компания, в которой я работаю, поддержала эту идею. На предложение войти в жюри откликнулось 4 отличных дизайнера и прошлой осенью мы провели первый Russian Design Cup. В этом посте я коротко расскажу об итогах 2012 года и о том, что вас ждёт этой осенью.


Читать дальше →
Всего голосов 48: ↑41 и ↓7+34
Комментарии23

Бесконечные неповторяющиеся текстуры с помощью мозаики Вана

Время на прочтение4 мин
Количество просмотров48K


С текстурами вечно какие-то проблемы! То оказывается, что нельзя взять любую фотку и налепить на модельку. То на стыке текстур появляются швы, которые замучаешься заглаживать. То вроде уже и загладил всё, но глаз, этакий проказник, всё равно замечает повторяющиеся узоры и рушит иллюзию.

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

Как же быть? Есть один трюк — непериодические мозаики. Они лишены проблемы повторяемости и достаточно просты в реализации. Одну из таких мозаик придумал китайский математик Ван Хао в 1961 году. Элементы этой мозаики можно представить в виде прямоугольников с разноцветными гранями. Но чтобы понять принцип её работы, надо сначала разобраться в классическом методе заполнения площадей текстурами.
А классический метод таков...
Всего голосов 99: ↑99 и ↓0+99
Комментарии25

Мошеннические методы монетизации в free-to-play играх

Время на прочтение11 мин
Количество просмотров136K
Примечание переводчика: После публикации статьи с автором связался коммерческий директор из King.com, создателя Candy Crush Saga, и прояснил несколько моментов, после чего автор добавил пару замечаний. Добавленные абзацы отмечены курсивом.

Принудительная монетизация


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

Согласно исследованиям, добавление даже одной промежуточной валюты между потребителем и реальными деньгами, например «игровых самоцветов» (премиальная валюта), делает потребителя гораздо менее подготовленными к оценке стоимости сделки. Лишние промежуточные предметы, я называю их «наслоения», делают для мозга оценку ситуации очень сложной, особенно под напряжением.

Этот дополнительный стресс часто подаётся в форме того, что Роджер Дики из Zynga называет «весёлыми мучениями». Приём заключается в том, чтобы поставить потребителя в очень неудобное или неприятное положение в игре, а потом предложить ему убрать эти «мучения» в обмен на деньги. Эти деньги всегда замаскированы в слоях принудительной монетизации, поскольку потребитель, столкнувшийся с «реальной» покупкой, скорее всего не поведётся на трюк.
Читать дальше →
Всего голосов 138: ↑131 и ↓7+124
Комментарии76

Не AdMob-ом единым. Обзор интересных рекламных сетей и не только

Время на прочтение9 мин
Количество просмотров67K
При разработке игр или приложений у каждого девелопера возникают вопросы о монетизации. Естественно сразу же приходит на ум AdMob, хотя таких систем намного больше, и возможно, в некоторых случаях имеет смысл даже отказаться от него. Ведь баннерная реклама обычно достаточно навязчива и “бьет наугад”, куда интересней более персонализированная реклама, в таком случае и рекламодатель, паблишер и самое главное конечный пользователь останутся в выигрыше.
Мы составили список необычных рекламных систем, которые могут помочь разработчикам в монетизации их приложений. А также краткий обзор услуг и цен для рекламодателей.

Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии25

Тёмные паттерны: интерфейсы, предназначенные для обмана

Время на прочтение6 мин
Количество просмотров114K

Гарри Бринул (Harry Brignull) — независимый дизайнер пользовательских интерфейсов из Лондона с кандидатской по когнитивной науке. Он также известен как создатель сайта Тёмных паттернов, предназначенного, по его словам, «перечислению и осмеянию веб-сайтов, использующих обманчивые интерфейсы пользователя». Данная статья основана на презентации, которую он показывал в Мюнхене в апреле на Search Marketing Expo.

Статья переведена и опубликована с согласия автора.

Когда Apple выпустила iOS 6, одной из новых фич была не слишком анонсируемая компанией система рекламного отслеживания Identifier for Advertisers (IDFA). Она присваивает каждому устройству уникальный идентификатор, использующийся для слежения за активностью браузера и создания таргетированной рекламы. IDFA анонимен, но неприемлем для людей, заботящихся о приватности.

К счастью, Apple реализовала возможность отключения фичи.
Читать дальше →
Всего голосов 132: ↑131 и ↓1+130
Комментарии115

Эстафета из 50-ти квайнов

Время на прочтение2 мин
Количество просмотров106K


Квайн — компьютерная программа, которая выдаёт на выходе точную копию своего исходного текста. Японский рубист Юсукэ Эндо (Yusuke Endoh) создал нечто невероятное. Quine Relay — программа на Ruby, которая генерирует код программы на Scala, которая генерирует код программы на Scheme, которая генерирует… и так далее на 50-ти языках программирования, пока программа на REXX снова не генерирует изначальный код на Ruby.
Читать дальше →
Всего голосов 245: ↑237 и ↓8+229
Комментарии120

Непрактичные сортировки – бессмысленные и беспощадные

Время на прочтение7 мин
Количество просмотров103K
image

А что это мы всё об умных да об эффективных алгоритмах? А давайте эту тоскливую осеннюю пятницу развеем чем-нибудь контрпродуктивным!?

Представляю Вашему вниманию ТОП-5 самых нетрадиционных сортировок всех времён и народов.

Младопрограммистам такое полезно показывать в дидактических целях. Всех остальных как минимум позабавит.
Начнём
Всего голосов 95: ↑82 и ↓13+69
Комментарии54

Язык программирования J. Взгляд любителя. Часть 2. Тацитное программирование

Время на прочтение8 мин
Количество просмотров13K
Предыдущая статья цикла Язык программирования J. Взгляд любителя. Часть 1. Введение

Вопрос: Если функции изменяют данные, а операторы изменяют функции, тогда кто изменяет операторы?
Ответ: Кен Айверсон
Chirag Pathak


В J используется идея тацитного (от слова «tacit», неявный) программирования, не требующего явного упоминания аргументов определяемой функции (программы). Работа в тацитном подходе происходит, как правило, с массивами данных, а не с отдельными их элементами.
Интересно заметить, что тацитное программирование было открыто Бэкусом еще до APL и реализовано им в языке FP. Среди современных языков, поддерживающих такой подход, (кроме, естественно, J) можно назвать Форт и другие конкатенативные языки, а также Haskell (за счет point-free подхода).

1. Глаголы


Определим наш первый глагол. Для удобства, можно считать, что глагол – это функция с аргументами, заданными по умолчанию. Открываем интерпретатор J, вводим

	neg =: -
Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии10

А знаете ли Вы, что возвращает .getClass()?

Время на прочтение2 мин
Количество просмотров109K
Я думаю, почти любого Java разработчика когда-то спрашивали на собеседовании: «Какие есть методы у класса Object?»
Меня, по крайней мере, спрашивали неоднократно. И, если в первый раз это было неожиданностью (кажется, забыл про clone), то потом я был уверен, что уж методы Object'а-то я знаю;)

И каково же было мое удивление, когда спустя несколько лет разработки я наткнулся на собственное незнание сигнатуры метода getClass()

Под катом пара слов про Class, .class, .getClass и, собственно, сюрприз, на который я наткнулся.
Читать дальше →
Всего голосов 42: ↑37 и ↓5+32
Комментарии56

Кроссдоменный postMessage или как браузеры поддерживают стандарты

Время на прочтение3 мин
Количество просмотров17K
Во время прикручивания облачных хранилищ к скрипту для бэкапа, встала необходимость использовать OAuth 2 авторизацию, для использования с разными облачными API. В принципе с самой авторизацией никаких сложностей не возникло, но проблема возникла в немного неожиданном месте.

Учитывая аудиторию использующую софтину, было решено отказаться от поддержки древних браузеров, и всё затачивалась под современные браузеры, использующие HTML5, которые казалось бы уже вполне неплохо и одинаково поддерживают страндарты.

Но, не тут-то было…
Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии4

Я знаю, что ты знаешь, что я знаю, что ты знаешь…

Время на прочтение3 мин
Количество просмотров31K
Вольный перевод одного из ответов с mathoverflow. Ответ, в принципе, такой самодостаточный и интересный, что вполне может быть прочитан и без усвоения сути вопроса. Поэтому, если по каким-либо причинам вы застопорились на прочтении вопроса, я вам советую перейти сразу к ответу.

Вопрос

Иногда в жизни бывают ситуации, которые описываются предложениями типа: «я знаю, что ты знаешь, что я знаю… что-то». Представьте себе, что вы испекли вишневый пирог и положили его остывать на подоконнике, а я потом втихаря его съел. Приведем список все более и более сложных предложений, которые все ближе и ближе подводят нас к полному знанию о происходящем. Например,

: «Я знаю, что вы испекли пирог и положили его остывать на подоконник; но вы не знаете, что я знаю». В таком случае, если я съем пирог, то об этом скорее всего никто и не узнает.

: «Я знаю, что вы испекли пирог и положили его остывать на подоконник; вы знаете, что я знаю; но я не знаю, что вы знаете, что я знаю». Если я съем пирог, то это может привести к довольно к щекотливой ситуации для меня.

: «Я знаю, что вы испекли пирог и положили его остывать на подоконник; вы знаете, что я знаю; я знаю, что вы знаете, что я знаю; но вы не знаете, что я знаю. что вы знаете, что я знаю». В таком случае после того как я съем пирог у меня останется надежда вывернуть ситуацию так, что вы не узнаете о моем преступлении.


Для маленьких значений , я еще могу вообразить, как при переходе от предложения к действительно меняется суть происходящего. Но я совершенно не могу вообразить, как, скажем, переход от к может повлиять на мою стратегию действий после того, как я съем пирог.

Есть ли какие-либо ситуации в жизни, будь-то реальные или искусственные, где переход от к для больших значений может реально повлиять на стратегию действий? А что насчет ? Как такие ситуации моделируются в математике?
Ответ
Всего голосов 59: ↑50 и ↓9+41
Комментарии65

2 «простых» вопроса по джаве

Время на прочтение3 мин
Количество просмотров64K

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

Когда-то давно на хабре была пара статей как не надо писать на java с интересными задачками по java.
Часть 1, Часть 2
Они очень интересные, но, к сожалению, автор не стал продолжать.

Представляю вашему вниманию еще 2 задачки (на большее не хватило сил. Оказывается, писать статьи не так-то просто.)

В конце статьи, разумеется, будут ответы с разъяснениями, а также дополнительные задания для самых сильных.
Читать дальше →
Всего голосов 47: ↑36 и ↓11+25
Комментарии52

Как правильно выставлять счета

Время на прочтение6 мин
Количество просмотров48K


Выставить счет иностранному клиенту — непростая задача для молодого бизнеса. Ошибки, неточности и “неуверенный” английский — все это вызовет недоверие. Ошибаться нельзя.

Чтобы вам было с чего начать, мы сделали перевод статьи о том, каким должен быть правильный счет. В конце вы найдете ссылку на скачивание 10 шаблонов инвойсов на английском языке.

Мы будем рады, если это поможет вашему бизнесу стать глобальнее.

Переведено в Alconost.
Читать дальше →
Всего голосов 57: ↑48 и ↓9+39
Комментарии4

Геолокация – как на нас зарабатывают

Время на прочтение4 мин
Количество просмотров57K
Хотим мы этого или нет, но сбор информации о наших перемещениях приобретает промышленные масштабы. Гаджеты стали нашими незаменимыми спутниками, а одновременно, и маячками, пишущими нестираемую истории всех наших передвижений.

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

Так как же используется данная информация? Если отбросить разговоры о всемирном заговоре и тотальной слежке, то самым распространенным является предоставление геотаргетированной рекламы. Т.е. рекламы, которая доставляется в нужное время и в нужное место. Например, зная, где вы сейчас находитесь, можно отправить рекламное сообщение: “Только сегодня и только для вас, три суши по цене двух!”, и указать суши-бар, который находится как раз на пути вашего следования.
Читать дальше →
Всего голосов 26: ↑20 и ↓6+14
Комментарии34

Готовим web-приложение под зоопарк версий Android

Время на прочтение9 мин
Количество просмотров27K
Совсем недавно и достаточно неожиданно для самого себя я оказался ответственным за разработку программки для Android. Но ни под Android, ни вообще на Java мне ранее писать не приходилось. Нужно было сделать web-приложение, вроде phonegap и прочих, которое почти полностью работает в компоненте браузера. И все это под версии 2.2 — 4.3 (SDK 8 — 18).

О некоторых выкрутасах Android и костылях под них с точки зрения человека, впервые это все увидевшего, я и хотел бы рассказать. Надеюсь, вышло без HelloWorld, «OMG! Java», и т.п.

Поворот экрана/смена ориентации
Network unreachable
Грузим локальные ресурсы
Мост между Java и JavaScript

Самое интересное с последним пунктом
Всего голосов 33: ↑26 и ↓7+19
Комментарии16

Информация

В рейтинге
Не участвует
Откуда
Искитим, Новосибирская обл., Россия
Зарегистрирован
Активность