Pull to refresh
21
0
Константин Куцылло @trikadin

Javascript-разработчик

Send message

Миллион партиклов. Часть 1

Reading time6 min
Views22K
imageХочу рассказать как я создавал, и потом переводил собственную систему частиц на GPU. Как я наивно думал просто будет сделать (мол чо там, двигать частицы, тююю). На самом деле о нюансах, возникающих при реализации, можно говорить очень много и долго, поэтому далее я расскажу только об решении проблем «узких» мест.

История вопроса


Заказчик разрабатывает динамические музыкальные фонтанные комплексы, которые управляются через dmx контроллеры по сценарию. Редактор сценариев он сделал самостоятельно. Но на практике создавать сценарии оказалось неудобным, потому что для того, чтобы видеть как получается нужно иметь целиком построенный и запущенный фонтан. Кроме того, если вдруг дизайнеру хореографу захотелось добавить дополнительные сопла для фонтана — то этого сделать уже практически невозможно. Поэтому заказчик захотел обзавестись модулем для моделирования фонтанов, чтобы хореограф мог без настоящего фонтана разрабатывать сценарии. В целом у меня вышло что-то в таком духе: вот видео того что было смоделировано Hawaii50.wmv, а вот то, что вышло в реале после конструирования фонтана: H5OClip.wmv
Читать дальше →
Total votes 90: ↑86 and ↓4+82
Comments35

Чем заменить гарнитуру? Обзор стильных наушников

Reading time6 min
Views74K


Долгое время я пользовался гарнитурой не только в связке с телефоном, но и с плеером. Как оказалось, в iPod Classic открывается возможность диктофонной записи, если подключить гарнитуру. Примерно через год фирменные ушки Apple пришли в негодность, равно как и телефонные наушники. Я приобрёл Razer Moray +, про которые писал Boomburum. Наушники неплохие, но у них практически отсутствуют верхи и низы. Да, для игр и телефонных разговоров этого достаточно, а вот чтобы полноценно насладиться произведениями Баха, всё-таки, не хватает. Увы, но и эти наушники сломались через год. Пришло время выбирать новую гарнитуру. Недолго думая, я подобрал 4 пары неплохих наушников с немного различными характеристиками и ценами. Их обзор и представляю на ваш суд.
Читать дальше →
Total votes 68: ↑48 and ↓20+28
Comments133

Facebook признал, что разработка мобильных приложений на HTML5 была ошибкой

Reading time2 min
Views53K
Буду краток, господа, так как хочу лишь донести до вас на мой взгляд достаточно интересное событие: Facebook отказывается от разработки мобильных приложений на HTML 5 и переходит на нативную разработку под каждую платформу.
Марк Цукерберг в свой речи признался, что стратегия разработки HTML 5 приложений не оправдала себя. Он признал, что использование HTML 5 было самой большой ошибкой компании, а итогом стало лишь потерянное время. Как он выразился, «We just were never able to get the quality of it we wanted...» — «мы так и не смогли добиться от приложений такого качества, которое хотели бы». Он не говорит, что HTML 5 — это плохо. Это лишь констатация факта, что в конкретной ситуации данная технология не смогла решать поставленные задачи на должном уровне.

Заинтересовавшиеся могут ознакомиться с более полным текстом тут (текст на английском).
Читать дальше →
Total votes 97: ↑79 and ↓18+61
Comments149

Разбираем до основания ультрабук Lenovo IdeaPad U300s

Reading time3 min
Views120K
Неделю назад я решил сделать профилактическую чистку ультрабуку Lenovo IdeaPad U300s. Казалось бы, в чем проблема – взял отвертку и вперед. Но при ближайшем рассмотрении обнаружилось, что видимых винтов у этой модели нет. Под отодранной наобум резиновой ножкой обнаружилось пустое место. Учитывая, что никаких инструкций по разбору U300s в Сети найти не удалось, я аккуратно приклеил ножку обратно и поехал к товарищу-ремонтнику. Результаты нашей встречи оказались настолько познавательными, что материала набралось на целый пост.

image
Читать дальше →
Total votes 77: ↑64 and ↓13+51
Comments60

Легкий способ провалить тестирование

Reading time3 min
Views17K
Иногда тестирование не приносит нужного результата. То есть работа кипит, фичи проверяются, баги чинятся, даже какая-то статистика собирается, но после релиза оказывается, что продукт напичкан дефектами, как подсолнух семечками, — и пользователи, что характерно, плюются.
Кто виноват? Все виноваты, конечно, — и руководители, и программисты, и аналитики, но они сами пусть учат свои уроки.
Ну и тестировщики.
Тоже.
Виноваты.
Да?
Да. И дело часто не в технических каких-то проблемах, а во вполне человеческих. Нет, бывает, конечно, что восстание машин ломает все планы, или что изначально планы были невыполнимы. Но даже и в не форс-мажорной ситуации у тестировщика достаточно способов провалить тестирование, работая в поте лица.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments23

Креативное использование веб-шрифтов

Reading time14 min
Views33K

С помощью CSS-магии мы можем создавать красивые типографические эффекты и забыть о использовании изображений, в большинстве случаев. В этой статье мы создадим ряд симпатичных примеров веб-типографики, используя плагин jQuery — lettering.js, а также различные приемы CSS. В некоторых примерах мы также добавим переходы при наведении курсора мыши, чтобы сделать их немного более интерактивным.
Читать дальше →
Total votes 100: ↑94 and ↓6+88
Comments27

АВЛ-деревья

Reading time9 min
Views404K
Если в одном из моих прошлых постов речь шла о довольно современном подходе к построению сбалансированных деревьев поиска, то этот пост посвящен реализации АВЛ-деревьев — наверное, самого первого вида сбалансированных двоичных деревьев поиска, придуманных еще в 1962 году нашими (тогда советскими) учеными Адельсон-Вельским и Ландисом. В сети можно найти много реализаций АВЛ-деревьев (например, тут), но все, что лично я видел, не внушает особенного оптимизма, особенно, если пытаешься разобраться во всем с нуля. Везде утверждается, что АВЛ-деревья проще красно-черных деревьев, но глядя на прилагаемый к этому код, начинаешь сомневаться в данном утверждении. Собственно, желание объяснить на пальцах, как устроены АВЛ-деревья, и послужило мотивацией к написанию данного поста. Изложение иллюстрируется кодом на С++.

Читать дальше →
Total votes 69: ↑62 and ↓7+55
Comments50

Как обойтись без капчи?

Reading time2 min
Views130K
К сожалению, на многих сайтах без особой необходимости используют капчи. Хотя можно побороть спам и незаметными для пользователя способами. Особенно, капчу больно видеть на небольших коммерческих сайтах в форме обратной связи, поскольку, капча заметно снижает конверсию таких сайтов. Для больших сайтов, которые могут специально спамить, такие методы не применимы. Однако, в большинстве случаев, без капчи можно обойтись

Читать дальше →
Total votes 159: ↑137 and ↓22+115
Comments187

История об аспирантуре в США. Часть 1: Поступление

Reading time10 min
Views96K
На Хабре периодически попадаются истории о том, как люди едут учиться за границу. Не так давно писали о получении магистра в США и я наконец решился описать свою историю о том, как я попал в аспирантуру и начал делать PhD, а также мой опыт летнего интерншипа в исследовательской лаборатории Mitsubishi Electric, ну и просто пару слов об образовании постсоветском и зарубежном.
Правда пишу я с немного корыстной целью — завлечь сюда нескольких будущих аспирантов для работы над одним интересным проектом. Так что, если вам интересно и особенно если есть желание попасть в аспирантуру в США, добро пожаловать под кат.
Читать дальше →
Total votes 75: ↑61 and ↓14+47
Comments33

Создание фреймворка для Canvas: объекты и мышь

Reading time4 min
Views8K


Среди вопросов на счёт Canvas чаще всего звучали вопросы по внутренностям фреймворков — как понять, что мышка находится над элементом, как это реализовано в фреймворках. В топике мы реализуем подобный Canvas фреймворк на базе AtomJS.

Читать дальше →
Total votes 80: ↑73 and ↓7+66
Comments16

История аварии: как один ЦОД стоял 8 часов

Reading time7 min
Views74K

Часть проверки после аварии: тепловизионное обследование машинного зала

Эта история произошла с ЦОДом одной компании уже довольно давно, все последствия аварии устранены, плюс выполняются доработки, исключающие повторение ситуаций. Тем не менее, отчёт о происшедшем, полагаю, будет интересен и тем, кто занимается дата-центрами, и тем, кто любит почти детективные IT-истории.

Ожидалось плановое отключение электричества. В дата-центр приходило две линии, владельцы ЦОДа заранее знали о ситуации, подготовились и провели все необходимые тесты. Всё что было нужно – просто перейти на дизели по стандартной процедуре.

Читать дальше →
Total votes 102: ↑97 and ↓5+92
Comments68

Unix как IDE: Файлы

Reading time5 min
Views29K
Одной из важных особенностей IDE является встроенная система управления файлами. Она должна включать в себя как базовые возможности, такие как переименование, удаление перемещение, так и более специфические для разработки: компиляция и проверка синтаксиса. Вдобавок было бы удобно оперировать группами файлов для поиска по размеру, расширению или по маске. В этой первой статье я покажу несколько вариантов использования инструментов, знакомых любому пользователю Linux, для работы с группами файлов в проекте.
Читать дальше →
Total votes 85: ↑66 and ↓19+47
Comments35

Как написать игру

Reading time4 min
Views89K
image
Такой заголовок был выбран с умыслом, намеренно, чтобы когда человек, впервые задумавшийся о том, что сейчас он сделает свою MMO за пару месяцев с друзьями, вбив эти слова в гугл, попал сюда, прочитал и осознал что такое разработка игры.
Читать дальше →
Total votes 159: ↑94 and ↓65+29
Comments91

Интервью с Чарльзом Уэзереллом, автором книги «Этюды для программистов»

Reading time2 min
Views29K
Не секрет, что не одно поколение программистов зачитало до дыр книгу «Этюды для программистов» Чарльза Уэзерелла, оригинал которой на английском вышел аж в 1978.



Книга содержит 27 “этюдов”. Каждый этюд – это законченная содержательная задача для обучающихся программированию. Удивительно, книге более 30 лет, но любой из этюдов может быть до сих пор использован по назначению. Сам, будучи фанатом книги, до сих пор храню родной бумажный вариант русского издания, а относительно недавно таки приобрел оригинал на английском.

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

Волею судеб, недавно у меня появилась возможность связаться с Чарльзом и взять у него интервью.
Читать дальше →
Total votes 76: ↑67 and ↓9+58
Comments15

Самый ценный совет по программированию, который я получил

Reading time1 min
Views15K
«Год или два, с момента начала работы в Bell Labs, я работал в паре с Кеном Томпсоном над интерактивным графическим языком, разработанным Джерардом Хольцманом (Gerard Holzmann). Я печатал быстрее, поэтому я сидел за клавиатурой, а Кен стоял позади меня. Мы работали быстро, и когда компилятор выдавал ошибку, я рефлективно начинал закапываться в проблему, изучая стек вызовов, вывод программы, запускал отладчик и так далее. Но Кен просто стоял рядом и думал, игнорируя меня и код, который мы только что написали. Вскоре я заметил закономерность: Кен зачастую понимал, в чем проблема, раньше меня и произносил: „Я знаю, что не так“. Обычно он был прав. Я понял, что Кен выстраивал ментальную модель кода и, когда что-то ломалось, это была ошибка в модели. И думая о том, как эта проблема могла возникнуть, он выяснял, в каком месте модель была неверна или где наш код мог неправильно эту модель отразить.
Читать дальше →
Total votes 254: ↑187 and ↓67+120
Comments135

Как я сам научился программировать за 8 недель

Reading time3 min
Views567K
Для многих, кто никогда не программировал, обучение программированию кажется невероятно сложной задачей. Как бы то ни было, спасибо тому огромному количеству ресурсов, которые недавно стали доступны в Интернет и являются бесплатными — самообучение программированию никогда еще не было таким простым.

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

Ниже я описал простой путь от ничего не зная о разработке программного обеспечения до обладания рабочим прототипом за восемь недель, который примерно повторяет шаги, которые я выполнил.
Читать дальше →
Total votes 133: ↑90 and ↓43+47
Comments92

Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами

Reading time3 min
Views291K
Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.
Читать дальше →
Total votes 103: ↑90 and ↓13+77
Comments64

Нахождение максимальной общей подпоследовательности

Reading time6 min
Views44K
В настоящей статье я хотел бы сделать обзор популярных алгоритмов для решения задачи нахождения максимальной общей подпоследовательности или LCS (longest common sequense). Так как акцент сделан на обучении, а не на реальном использовании, в качестве языка для реализации выбран Python, что позволит сократить количество кода и сконцентрироваться на основных идеях.
Читать дальше →
Total votes 68: ↑64 and ↓4+60
Comments20

Getters & Setters в IE5+

Reading time2 min
Views2.3K
Вот этим навеяло habrahabr.ru/blogs/javascript/66242

Вопреки расхожему мнению ИЕ все таки умеет назначать аксессоры, правда только в VB, чего для некоторых задач вполне достаточно.

<script language="vbscript">
' Объявляем класс, экземпляр которого в последствии будем использовать из яваскрипта
Class Accessor
  Public Property Let hook(val)  ' объявляем сеттер для свойства hook класса Accessor
   MsgBox val
  End Property
End Class

Dim access ' объявление переменных в VB обязательно
Set access = New Accessor  ' создаем экземпляр класса Accessor
</script>

<script language="jscript">
// т.к. у VB и JS общее пространство имен, можно вполне использовать созданный ранее access
access.hook = 'ololo';
</script>


* This source code was highlighted with Source Code Highlighter.


Другими словами аксессоры есть в VB, VB есть во всех IE и пространство имен VB и JS общее, можно пользовать.
Кроссбраузерный пример
Total votes 44: ↑31 and ↓13+18
Comments10

Information

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