Pull to refresh
12
0
Сергей @JCHouse

Фронтенд разработчик

Send message

Выразительный JavaScript: Поиск и обработка ошибок

Reading time15 min
Views56K

Содержание




Отладка изначально вдвое сложнее написания кода. Поэтому, если вы пишете код настолько заумный, насколько можете, то по определению вы не способны отлаживать его.
Брайан Керниган и П.Ж.Плауэр, «Основы программного стиля»


Юан-Ма написал небольшую программу, использующую много глобальных переменных и ужасных хаков. Ученик, читая программу, спросил его: «Вы предупреждали нас о подобных техниках, но при этом я нахожу их в вашей же программе. Как это возможно?» Мастер ответил: «Не нужно бежать за поливальным шлангом, если дом не горит».

Мастер Юан-Ма, «Книга программирования».


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

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

Часто проблема возникает в тех ситуациях, возникновение которых программист изначально не предвидел. Иногда этих ситуаций нельзя избежать. Когда пользователя просят ввести его возраст, а он вводит «апельсин», это ставит программу в непростую ситуацию. Эти ситуации необходимо предвидеть и как-то обрабатывать.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments8

Курс пиксель-арта 3

Reading time4 min
Views87K
Это перевод публикации «Les Forges Pixel Art Course».

Часть 1: Правильные инструменты
Часть 2: Линии и кривые
Часть 3: Перспективы
Часть 4: Тень и свет
Часть 5: Палитры цветов
Часть 6: Сглаживание
Часть 7: Текстуры и размытие
Часть 8: Мир тайлов

Часть 3: Перспективы


Проблема перспективы в 2D играх, это вопрос который возникает часто, и это возможно то, почему так много любительских игр имеют множество противоречивостей в этой области. В частности эта часть адресуется к типичным перспективам в RPG, так что если вы ищете информацию о виде сбоку или от первого лица, вам следует поискать где-нибудь ещё. Это важно, помнить что перспектива — это «искусство представления трёхмерных объектов на плоской поверхности (в данном случае это ваш экран) как их увидел бы наблюдатель.»
Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments17

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

Reading time1 min
Views228K
Это довольно трогательная история, и мне кажется, ей самое место здесь. Потому что делать игры, это тоже очень важно. Итак, представьте: обычное игровое видео, размещенное на youtube. В комментариях обычное обсуждение и гвалт. Но среди них попадается комментарий от пользователя 00WARTHERAPY00, пишущего о том, что он продолжает играть в автосимулятор с покойным отцом.



Привожу вольный перевод комментария:
Ну, когда мне было 4 года, отец купил настоящий Xbox.
Читать дальше →
Total votes 312: ↑218 and ↓94+124
Comments60

С днем рождения, Элон Маск!

Reading time1 min
Views51K
«I would like to die on Mars; just not on impact».
image
Дата рождения: 28 июня 1971
Место рождения: Южная Африка
Образование: физика, экономика
Дети: 5
Книги, оказавшие влияние: «Автостопом по галактике» (Дуглас Адамс), «Основание» ( Айзек Азимов)
Компании: Zip2, X.com, PayPal, SolarСity, Tesla Motors, SpaceX, HyperLoop
Награды: бизнесмен года (2013, Fortune), CEO года (2013, The Wall Street Journal) и др.

Интервью (статьи на Хабре):
Интервью с Элоном Маском. Часть 1 — о том, как он хотел стать физиком, но стал предпринимателем
Интервью с Элоном Маском. Часть 2 — про массу, про Марс и про MBA

Экскурсия по SpaceX (2011)



Под катом самое свежее (вроде бы) видео интервью на английском:
Elon Musk: 5 Areas That Will Have the Most Important Effect on Humanity | Inc. Magazine
(кто найдет там что-нибудь интересное — пишите в комменты).
Читать дальше →
Total votes 100: ↑80 and ↓20+60
Comments21

Интервью с Элоном Маском. Часть 1 — о том, как он хотел стать физиком, но стал предпринимателем

Reading time4 min
Views122K
imageЭлон Маск, основатель и сооснователь таких компаний как PayPal, SpaceX, Tesla Motors, изучал физику в Пенсильванском университете. В первой части интервью, которое Маск дал Элене Левин, колумнистке издания Американского физического общества APT News, он рассказывает о том, как он использует мышление, основанное на принципах, какие преимущества ему дало изучение физики, и о том, почему он с гордостью называет себя нердом.

Левин: Недавно в одном интервью вы посоветовали людям, которые хотят заниматься инновационным бизнесом, «изучать физику и учиться думать, руководствуясь принципами, а не аналогиями». Можете подробнее рассказать, что вы имели в виду?

Маск: Физики были вынуждены разработать способ мышления, который позволяет понимать контринтуитивные элементы реальности. Вещи вроде квантовой физики не слишком интуитивны, и чтобы продвигаться в их изучении физики создали методику мышления, которая позволяет получать правильные ответы, даже если они совершенно неочевидны. А это требует огромного умственного напряжения. В повседневной жизни нельзя всё время руководствоваться принципами, это потребует слишком большого расхода умственной энергии. Так что большую часть жизни приходится действовать по аналогии, попросту копируя поведение других людей с минимальными вариациями. Но если вы пытаетесь стать первооткрывателем, изобрести что-то действительно новое, то вам придется перейти к мышлению, основанному на принципах, выявить самые фундаментальные истины в вашей отрасли, и выводить свою мысль из них. Это требует напрячь голову, и я могу привести пару примеров того, как это помогает в ракетостроении.
Читать дальше →
Total votes 102: ↑97 and ↓5+92
Comments17

Подбираем видеокарту под miniITX-систему

Reading time6 min
Views211K
Как-то передо мной встал вопрос о покупке своим детям игровой ТВ-приставки, но после некоторых раздумий решил собрать игровой компьютер размером как раз как эти самые приставки — т.е. формата miniITX. Во-первых, под PC игры стоят дешевле, во-вторых, на PC можно играть в игры для игровой консоли не предназначенные и которые на приставках никогда не выйдут. К тому же хотелось, чтобы машина совмещала в себе еще и функции медиа-сервера. Ну, т.е. деткам и в игрушки поиграть, и мультики/кино посмотреть.

В соответствии с этим мне необходима платформа с отдельным современным процессором типа Core i3/i5 и современной дискретной видеокартой. Остальное (жесткий диск, Wi-Fi адаптер, пульты, джойстики, оптический привод) по вкусу. Сказано — сделано.

Но, как оказалось, не все так просто. Последний раз я лез с отверткой в системный блок лет семь назад и как-то не очень ориентируюсь в современных «железных» форматах и технологиях. Как оказалось, сборка miniITX-компьютера оказалась нетривиальной задачей со своими подводными камнями. Забегая вперед, скажу, что мне пришлось докупать/менять ранее приобретенные комплектующие, поработать ножовкой и напильником и в итоге я собрал две мини-системы — детям игровую машину и себе рабочую станцию.
Как собрать miniITX-систему с первого раза
Total votes 24: ↑16 and ↓8+8
Comments53

Nook Simple Touch with Glow Light: Unboxing и краткий обзор

Reading time2 min
Views30K
Со времен первых читалок от Sony я следил за этим рынком краем глаза. От покупки сначала PocketBook а затем и Kindle меня отговаривала простая мысль, знакомая думаю многим — читать время выдается обычно в темном помещении и мобильный устройства с обычным жк-экраном бесспорно выигрывали. Пока не появился замечательный гаджет от Barnes&Noble.


Читать дальше →
Total votes 55: ↑44 and ↓11+33
Comments136

Homebrew: Менеджер пакетов для OS X

Reading time3 min
Views119K
Все менеджеры пакетов в Unix имеют определенные недостатки и большинство Linux-дистрибутивов пытаются по-разному эти недостатки обойти. В этом посте я расскажу про Homebrew — новый менеджер пакетов, нацеленный на простоту использования.

До Homebrew было несколько различных попыток создать эффективные пакетные менеджеры для OS X. Две наиболее популярные вылились в итоге в Fink и Macports, но у каждой из них все равно есть свои острые углы. В частности, в обоих создание своих пакетов или портов является черезчур сложным.

В Homebrew создавать новые пакеты и работать с ними проще пареной репы. Давайте посмотрим.
Читать дальше →
Total votes 38: ↑30 and ↓8+22
Comments51

Поиск работы за рубежом

Reading time6 min
Views104K
Судя по отзывам на мою предыдущую статью о процессе прохождения интервью, многие хаброколлеги интересуются, как лучше подготовиться к поиску работы на западе. Хочу поделиться моим опытом и дать ссылки, которые будут полезны тем, кто думает о переезде или просто хочет узнать, как это работает в другом мире. Статья ориентирована на среднестатистического разработчика ПО, так что если у вас блестящие навыки разговорного языка и превосходные знания нужных технологий и языков программирования, то многие советы можно пропустить.

Итак, вы задумались о поиске новой работы.
Читать дальше →
Total votes 86: ↑78 and ↓8+70
Comments21

Айтишник 60 уровня. Что дальше?

Reading time5 min
Views130K
У многих из нас есть родители или родственники, которые находятся в одном шаге от пенсии. Хотя мне еще только немного за 30, я предлагаю вам немного расширить кругозор и, может быть, что-то пересмотреть в своей жизни.



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

Да да, именно вы решили, потому что вы стареете именно потому, что вы этого ожидаете.

А главный бонус в том, что можно увеличить продуктивный период жизни в 2 раза, причем на приличные еще 30 лет(!) и более. Т.е. в 60 лет у вас будет 35-40 лет продуктивной жизни, а здесь я расскажу как эту продуктивность сохранить до 90 лет и более. Интересно?

Внимание! Возрастное ограничение 30+, ваша психика может пострадать.
Читайте пост на свой страх и риск!



Читаем подробный лайфхак.
Total votes 162: ↑120 and ↓42+78
Comments153

Всё, что вы хотели знать об областях видимости в JavaScript (но боялись спросить)

Reading time8 min
Views82K
У JS есть несколько концепций, связанных с областью видимости (scope), которые не всегда ясны начинающим разработчикам (и иногда даже опытным). Эта статья посвящена тем, кто стремится погрузиться в пучину областей видимости JS, услышав такие слова, как область видимости, замыкание, “this”, область имён, область видимости функции, глобальные переменные, лексическая область видимости, приватные и публичные области… Надеюсь, по прочтению материала вы сможете ответить на следующие вопросы:

— что такое область видимости?
— что есть глобальная/локальная ОВ?
— что есть пространство имён и чем оно отличается от ОВ?
— что обозначает ключевое слово this, и как оно относится с ОВ?
— что такое функциональная и лексическая ОВ?
— что такое замыкание?
— как мне всё это понять и сотворить?
Читать дальше →
Total votes 57: ↑47 and ↓10+37
Comments38

Голые пятницы #1

Reading time3 min
Views39K
голые пятницы

Всем доброго времени суток. Сегодня мы поговорим о том, как красиво оформить выделенный текст, совладать с отступами в кнопках, прокачать скролл в мобильных браузерах, скрестить цвет текста с цветом границ, а также рассмотрим интересные новые единицы измерения.
Поехали!
Total votes 72: ↑68 and ↓4+64
Comments22

Как сделать холдер для телефона своими руками

Reading time3 min
Views105K
Многие из нас любят что-то мастерить. Я, к примеру, в детстве любил выжигать по дереву и складывать оригами. Да и, судя по активности в хабе «DIY», многим пользователям хабра по душе что-то создавать.

На днях я навестил свою подругу—дизайнера и застал ее за интересным занятием. Она делала холдер для мобильного телефона СВОИМИ РУКАМИ. Более того, оказалось, это очень увлекательное занятие! Я напросился к ней на «мастер-класс», а после чего решил поделиться с вами своими впечатлениями. Для изготовления собственного холдера нам понадобились простые материалы, которые можно купить в ближайшем канцелярском магазине или просто найти у себя дома. Единственное «НО» — поликапролактон (да-да, не переживайте. Я тоже с первого раза не смог прочесть). Дабы не ломать языки и пальцы, будем называть его просто «термопластик». Помимо произношения названия с ним не было особых затруднений, т.к. его можно приобрести в любом строительном магазине, либо в магазине для творчества (в данной статье вы сможете подробнее узнать о поликапро..., в общем узнать о термопластике).

image
Читать дальше →
Total votes 83: ↑70 and ↓13+57
Comments83

Собеседование на должность JavaScript разработчика

Reading time4 min
Views287K


Недавно прочитал неплохой пост на тему поиска работы QA и подумал, что похожий пост был бы полезен для JavaScript разработчиков. В конечном счёте, веб движется вперед семимильными шагами, и соискателей на позицию JavaScript программиста хоть отбавляй (разумеется, хороших всегда меньше).
Читать дальше →
Total votes 126: ↑115 and ↓11+104
Comments313

CSScomb 3.0: красивый код одной командой

Reading time5 min
Views48K
На этой неделе вышла новая версия CSScomb — инструмента, который делает CSS-код красивым. О том, как «расчёску» используют в Яндексе, недавно писал Beyondtheclouds. Я же расскажу, что нового появилось в третьей версии и что делать, если базовой функциональности не хватает. Например, как написать свой плагин или даже постпроцессор.
Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments20

Лучшие способы использования Angular.js

Reading time9 min
Views54K

От переводчика:


Привет, Хабр! Мы мы продолжаем делится с сообществом полезными материалами о разработке и дизайне. В этот раз команда TrackDuck подготовили перевод статьи Jeff Dickey о Angular, которая нам очень понравилась и в свое время заставила пристальней присмотреться к Gulp. Эта статья будет полезна разработчиками, которые хотят сэкономить время на рутинных операциях и построить качественные процессы при разработке веб-приложений. Мы активно используем Angular для разработки собственного продукта для визуального комментирования веб-сайтов, поэтому готовы ответить в комментариях на интересующие вас вопросы!




Я использовал Angular в довольно большом количестве приложений и видел много способов структурирования приложений с использованием этого фрэймворка. Сейчас я пишу книгу о проектировании Angular приложений c использованием MEAN стека, и больше всего исследований я провел в этом направлении. В итоге я остановился на довольно оригинальной структуре приложения. Я считаю, что мой подход более простой чем тот, что предложил Burke Holland.
Прежде чем начать, я хотел бы рассказать о существующем подходе к реализации модульности в Angular.
Если вы разрабатываете продакшн решение на Angular - добро пожловать под кат!
Total votes 43: ↑32 and ↓11+21
Comments18

Функциональный JavaScript, Часть 1: Введение

Reading time3 min
Views26K

Введение


JavaScript мощный, но недопонятый язык программирования. Людям нравится говорить, что он является объектно-ориентированным языком программирования или является функциональным языком. Другим нравится говорить, что он не является объектно ориентированным или не является функциональным языком программирования. Некоторые скажут что он относится к обеим парадигмам или ни к одной из них — но, давайте отложим на пока этот спор в сторонку.
Читать дальше →
Total votes 48: ↑37 and ↓11+26
Comments15

Программируем для iPhone и iPad. 3-е изд

Reading time1 min
Views14K
image

Достаточно очевидно, что, несмотря на скорое полноценное наступление эпохи Swift, Objective C еще довольно долго не утратит актуальности. Поэтому вашему вниманию мы представляем еще одну книгу серии Head First: Программируем для iPhone и iPad. Название говорит само за себя — это традиционное для серии подробное и интересное пособие о том, как программировать на Objective C, проектировать интерфейсы, создавать приложения, работать с инструментами iPhone SDK (среда разработки, описываемая в книге — Xcode5). Вся информация подана в разговорной, ненавязчивой манере с большим количеством иллюстраций и юмора, что характерно для всех книг Head First. И пусть вас не пугает классический facepalm на обложке — повествование действительно доходчивое и увлекательное.
Читать дальше →
Total votes 23: ↑17 and ↓6+11
Comments23

Sentri: домашняя система безопасности для гиков

Reading time2 min
Views16K


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

Поэтому разработчики Sentri пошли немного другим путем, и добавили возможность интеграции в свою систему других умных устройств, включая всем известный термостат Nest, умный выключатель и розетку Wemo, не менее умную лампочку Hue и замок Lickitron. В общем, любители разного рода устройств могут быть довольны.



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

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments11

Разработка мобильных Javascript MVC приложений с Framework7, RequireJS и Handlebars

Reading time14 min
Views33K
Недавно передо мной стала задача разработки IPhone и Android приложения. Опыта разработки под IOS у меня ранее не было, да и хотелось написать один раз и запускать на обеих платформах. Соответственно был выбран был выбран Javascript и PhoneGap.

И если с языком я определился относительно быстро, то далее было много вопросов.
Хотелось сделать, что бы приложение максимально повторяло интерфейс IOS7 и было похоже на native по скорости работы. При этом с одной стороны не было желания использовать «монстров», на подобии dojo или jquery mobile. c другой стороны хотелось получить удобную модульную MVC структуру приложения.

В итоге в финал моего личного сравнения вышли:
Ionic framework: http://ionicframework.com/
Framework7: http://www.idangero.us/framework7/
Читать далее
Total votes 23: ↑23 and ↓0+23
Comments26

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity