Search
Write a publication
Pull to refresh
1
0
Send message

10 советов фрилансерам, как расставлять приоритеты задачам

Reading time9 min
Views27K
Вы когда-нибудь задумывались: «А сколько стоит пароход построить?”, “А сколько — дизайн-макет сделать?”, “А из чего складывается такая цена?»

Пароход — штука архисложная; его стоимость — это цена на материалы (металл, пластик и что там ещё нужно), оплата труда рабочих верфи, амортизация на износ оборудования, оплата инженерных изысканий и так далее и тому подобное…

А что с дизайн-макетом? Из чего складывается его цена? Ну, допустим, вложим в стоимость “амортизацию оборудования” — деньги на ПК и ПО, которые регулярно нужно обновлять. А что ещё? Остается, собственно, только оплата труда дизайнера-верстальщика. А как её рассчитать? Тут способов два: либо оплата за человеко-часы (сколько времени потратил — столько и оплатили); либо другой более распространенный подход — сдельная оплата (т.е. оценил бриф-ТЗ на макет, прикинул его сложность, назвал стоимость).

Что в первом случае (прямо), что во втором (косвенно), стоимость будет зависеть от времени, которое вы тратите на свою работу. А из чего складывается это время? Есть факторы внутренние: мотивация, навыки работы, муза, в конце концов… Они подвластны лишь вашей силе воли, тут дза-дзен и прочее самосовершенствование вам в помощь. Но остаются ещё и факторы внешние: от обстановки в рабочем кабинете до методологии, по которой вы работаете, — и с ними всё интереснее…


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

Образовательный сериал про вопросы маркетинга и продаж в студии/агентстве

Reading time2 min
Views7.2K
Привет, Хабр. В прошлом году мы запустили два бесплатных образовательных видео-курса (раз и два) про вопросы маркетинга, продаж и управления студией/агентством. Они были тепло восприняты зрителями, в том числе, многими хабра-пользователями — спасибо вам за это!

А сейчас, после полугода подготовки, мы запускаем новый бесплатный образовательный проект — "Digital-сериал" про вопросы маркетинга и продаж на агентском рынке, который мы разработали совместно с коллегами из UMI.CMS.

image

В этот раз мы превзошли сами себя — и за полгода подготовили реально большой пул полезных материалов. Наш проект разбит на 5 сезонов, в которые вошли 17 эпизодов (два больших текстовых материала, 9 видео-лекций и 6 эпизодов с экспертами рынка). Мы очень старались не пересекаться по темам с предыдущими проектами — и разработать новый контент, который будет полезен веб-студиям и digital-агентствам.

Мы будем выкладывать сезоны постепенно, как и полагается сериалу — а сейчас анонсируем премьерный первый сезон:
Читать дальше →

Анонс новых возможностей Typescript 1.4

Reading time3 min
Views13K
Выпустив версию Typescript 1.3, мы сфокусировались на усовершенствовании системы типов и добавлении функционала ECMAScript 6 в TypeScript. Давайте рассмотрим некоторые новые возможности, которыми вы сможете пользоваться в новой версии.

Все описанные в статье вещи уже реализованы в мастер-ветке нашего репозитория на Github — вы можете выкачать ее и попробовать их уже сейчас.



Новые возможности позволяют более аккуратно и легко работать с переменными, которые имеют различный тип во время исполнения. Они сокращают количество мест, где нужно явно указывать тип, проверять его или использовать тип any. Авторы типизирующих файлов (.d.ts) могут также использовать эти возможности для описания внешних библиотек. Те, кто следят за развитием компилятора, могли заметить, что мы сами тоже ими пользуемся.
Читать дальше →

Мобильные телефоны и тотальная слежка АНБ: как это работает

Reading time6 min
Views141K
image

Имя Эдварда Сноудена последние два года регулярно мелькает в новостях по теме информационной безопасности. Благодаря разоблачениям этого бывшего сотрудника американских спецслужб все уже слышали, что Агентство национальной безопасности (АНБ, NSA) обладает возможностями тотальной мобильной слежки за гражданами. Но как именно устроена эта слежка, мало кто знает. В данном обзоре мы собрали некоторые подробности о технологиях, которыми пользуется NSA — и не только оно.

Одна из первых неприятных новостей от Сноудена касалась подрыва доверия к технологиям криптозащиты. В рамках секретного проекта АНБ под названием Bullrun была получена возможность обхода многих систем шифрования – но не за счёт взлома, а за счёт эксплуатации закладок, специально оставленных производителями по требованию АНБ. А в некоторых случаях вендоров просто обязали сдавать агентству шифровальные ключи. Таким образом, были дискредитированы многие стандарты безопасности, считавшиеся надёжными и применявшиеся в крупном бизнесе и государственных организациях.
Читать дальше →

Как организовать отправку push-уведомлений на айфон

Reading time5 min
Views21K
В Surfingbird мы используем пуш-уведомления, чтобы сообщать нашим пользователям срочные новости и просто информировать их об интересных материалах за день. Уже в первые недели тестов пуши показали свою огромную эффективность в плане увлечения ретеншена. Этому есть логичное объяснение – телефон у пользователя всегда с собой, в метро, в туалете, на совещаниях и т. д. Когда юзеру приходит пуш, все его внимание концентрируется на этом уведомлении.

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

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

Путь разработчика: истории о моих фееричных провалах, часть 2

Reading time6 min
Views35K
Всем привет, с вами снова Delfuego FM, и я наконец-таки созрел, чтобы выложить вторую часть статьи! Вследствие неоднозначной реакции на первую часть, была предпринята попытка выложить вторую на geek times, и… она успешно провалилась. Поэтому придётся совершить небольшой хабрасуицид и выложить её прямо тут! Итак, поехали!..

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

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


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

Выразительный JavaScript: Рисование на холсте

Reading time23 min
Views126K

Содержание




Рисование — это обман.
М.К.Эшер


Браузеры позволяют нам рисовать графику разными способами. Проще всего использовать стили для расположения и расцветки стандартных элементов DOM. Так можно добиться многого, как показал пример игры из предыдущей главы. Добавляя частично прозрачные картинки узлам, мы можем придать им любой нужный вид. Возможно даже поворачивать или искажать узлы через стиль transform.

Но такое использование DOM – не то, для чего он создавался. Некоторые задачи, типа рисования линии между двумя произвольными точками, крайне неудобно выполнять при помощи обычных элементов HTML.

Есть две альтернативы. Первая – SVG, масштабируемая векторная графика, также основанная на DOM, но без участия HTML. SVG – диалект для описания документов, который концентрируется на формах, а не тексте. SVG можно встроить в HTML, или включить через тег <img>.

Вторая альтернатива – холст (canvas). Холст – это один элемент DOM, в котором находится картинка. Он предоставляет API для рисования форм на том месте, которое занимает элемент. Разница между холстом и SVG в том, что в SVG хранится начальное описание форм – их можно в любой момент сдвигать или менять размер. Холст же преобразовывает формы в пиксели (цветные точки растра), как только нарисует их, и не запоминает, что эти пиксели из себя представляют. Единственным способом сдвинуть форма на холсте является очистить холст (или ту часть, которая окружает форму) и перерисовать её на другом месте.
Читать дальше →

Внедрение программного продукта. Особенности работы бизнес-консультанта. Часть III. Финальная

Reading time18 min
Views25K
Недостаточно только получить знания, надо найти им приложение. Недостаточно только желать, надо делать.

Гёте

Читателям моей серии статей о работе бизнес-консультанта в малом и среднем бизнесе, я хочу напомнить, что в прошлых статьях я рассказал:

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

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

Выразительный JavaScript: Проект: Игра-платформер

Reading time22 min
Views47K

Содержание




Вся наша жизнь – игра.
Иэн Бэнкс, «Игрок»


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

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

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

Многоликие функции Swift

Reading time16 min
Views43K
Русский перевод очень полезной статьи Natasha Murashev The Many Faces of Swift Functions.

Хотя у Objective-C синтаксис выглядит несколько странно, по сравнению с другими языками программирования, синтаксис метода — прост и понятен. Вот небольшой экскурс в прошлое:

+ (void)mySimpleMethod
{
    // метод "класса"
    // нет параметров
    // нет возвращаемых значений
}

- (NSString *)myMethodNameWithParameter1:(NSString *)param1 parameter2:(NSNumber *)param2
{
    // метод "экземпляра"
    // первый параметр - типа NSString указатель, 
    // второй параметр  - типа NSNumber указатель
    // должен вернуть значение типа NSString указатель
    return @"hello, world!";
}


В противоположность этому, синтаксис Swift выглядит в большинстве случаев также, как и в других языках программирования, но временами он может быть более сложным и запутанным, чем в Objective-C.

Прежде чем я продолжу, я хочу прояснить разницу между «методами» и «функциями» в Swift, так как я повсеместно буду использовать оба этих термина в этой статье. Вот определение «методов», данное в книге Apple «Swift Programming Language»:

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

Краткий конспект по языку JavaScript

Reading time15 min
Views114K
Я —.NET разработчик. Но в последнее время всё чаще сталкиваюсь с JavaScript. Причём, процентах в 50 случаев я что-то на нём пишу, в остальных 50 — разбираюсь с чужим кодом, да ещё и прошедшим через минификацию, а иногда и обфускацию. В этой статье захотелось поделиться теми моментами, которые мне показались важными для понимания языка и эффективной работы с ним. Тут не будет ничего нового или неизвестного для людей, уже имевших дело с языком, и не будет чего-то такого, чего нельзя найти в других источниках. Для меня статья будет полезна как способ лучше разобраться в предмете, для читателей, я надеюсь, — как повод освежить знания.

Брендан Айк упоминал, что JavaScript был создан за 10 дней. Думаю, идея вынашивалась дольше. Как бы то ни было, язык получился и с тех пор только набирает популярность. Особенно после появления AJAX.

JavaScript — язык со слабой динамической неявной типизацией, автоматическим управлением памятью и прототипным наследованием.

JavaScript состоит из трёх обособленных частей:

  • ядро (ECMAScript),
  • объектная модель браузера (Browser Object Model или BOM),
  • объектная модель документа (Document Object Model или DOM).


В статье, в основном, пойдёт речь о ядре. Конечно, в примерах кода будут использоваться элементы DOM и BOM, но заострять на них внимание не буду.
Читать дальше →

Размышления о стандартной библиотеке JavaScript. Core.js

Reading time64 min
Views105K
Один пацан писал все на JavaScript, и клиент, и сервер, говорил что нравится, удобно, читабельно. Потом его в дурку забрали, конечно.
— С просторов интернета

К чему это я? Занятная штука — JavaScript. Основа современного web и на фронтэнде альтернатив как таковых не имеет.

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

Ванильная стандартная библиотека JavaScript, в целом, неплоха. Это не только стандартная библиотека по спецификации языка ECMA-262 актуальных версий — от 3 до черновика 6. Часть API вынесена в отдельные спецификации, например, API интернационализации ECMA-402. Многие возможности, без которых сложно представить JavaScript, например, setTimeout, относятся к web-стандартам. Консоль не стандартизована вовсе — приходится полагаться на стандарт де-факто.

Вот только не такая уж она и стандартная — везде разная. Есть старые IE, в которых из коробки мы получаем стандартную библиотеку ES3 90-бородатого года даже без Array#forEach, Function#bind, Object.create и консоли, и есть, например, Node.js, на которой многие уже вовсю используют возможности грядущего ES6.

Хочется иметь универсальную, действительно стандартную библиотеку, как на сервере, так и в любом браузере, максимально соответствующую современным стандартам, а также реализующую необходимый функционал, что (пока?) не стандартизован. Статья посвящена библиотеке core.js — реализация моих соображений по поводу стандартной библиотеки JavaScript. Кроме того, эта статья еще и шпаргалка по современной стандартизованной стандартной библиотеке JavaScript и заметки о её перспективах.

Содержание, или что получим на выходе:


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

Reveal для всех!

Reading time2 min
Views11K


Здравствуйте, Хабровчане !
Я расскажу как я реализовал Circual Reveal анимацию из Lollipop, опустив порог до Gingerbread.

В Lollipop появились нативные классы HardwareCanvas, RenderNodeAnimator для более плавной анимации и отрисовки, на нем построена Ripple и Reveal анимация. Теперь многие элементы рисуются и анимируются на уровне железа.

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

Использование RequireJS в приложениях AngularJS

Reading time6 min
Views17K
При написании больших JavaScript-приложений одна из самых простых вещей, которую можно сделать, это разделить код на несколько файлов. Это улучшает поддерживаемость кода, но увеличивает шансы потерять или ошибиться со вставкой тега script в главный HTML-документ. Отслеживание зависимостей затрудняется с ростом числа файлов проекта. Эта проблема присутствует в больших AngularJS приложениях до сих пор. У нас есть целый ряд инструментов, которые заботятся о загрузке зависимостей в приложении.

В этой статье мы рассмотрим, использование RequireJS с AngularJS для упрощения загрузки зависимостей. Мы также рассмотрим, как использовать Grunt для генерации файлов, содержащих модули RequireJS.
Читать дальше →

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №134 (10 — 16 ноября 2014)

Reading time6 min
Views37K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


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

Несколько интересностей и полезностей для веб-разработчика #33

Reading time5 min
Views53K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Walkway.js и Vivus.js




Вы видели этот великолепный лэндинг посвященный анонсу Sony PlayStation 4? Обратите внимание на анимацию SVG объектов состоящих из контуров. Они словно рисуются художником в режиме реального времени. Отныне этот эффект можно легко повторить с помощью Walkway и Vivus. Обе библиотеки максимально просты в использовании и применимы только для path элементов, поскольку принцип их работы основывается на взаимодействии с CSS свойством strokeDashoffset. Хоть и у Walkway значительно больше звезд на Гитхабе, зато Vivus предоставляет несколько вариантов отрисовки: Delayed, Async и OneByOne.

//Walkway
var svg = new Walkway('#test');

svg.draw(function() {
  console.log('Animation finished');
});

//Vivus
new Vivus('my-svg-id', {type: 'delayed', duration: 200}, myCallback);

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

Дайджест продуктового дизайна, август-октябрь 2014

Reading time27 min
Views13K
Уже четыре с половиной года я публикую регулярные обзоры свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-июль 2014.

Дайджест продуктового дизайна, август-октябрь 2014

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

npm для простых смертных

Reading time5 min
Views650K


Эта статья предназначена для тех, кто не очень дружит с Node.js, но хочет использовать приложения вроде Grunt, Gulp и тому подобные. Процесс работы с этими приложениями подразумевает редактирование файла package.json и использование команд npm, так что понимание принципов работы npm поможет вам справиться с трудностями.
Читать дальше →

Выразительный JavaScript: JavaScript и браузер

Reading time9 min
Views47K

Содержание




Браузер – крайне враждебная программная среда

Дуглас Крокфорд, «Язык программирования JavaScript» (видеолекция)


Следующая часть книги расскажет о веб-браузерах. Без них не было бы JavaScript. А если бы и был, никто бы не обратил на него внимания.

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

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

Доведите пользователя до… конца воронки

Reading time3 min
Views14K
Понимание того, что движет пользователем, является одной из ключевых задач при разработке интерфейса приложения или дизайна ресурса. К счастью, Блюма Вульфовна Зейгарник предоставила в наше распоряжение довольно мощный рычаг, который нашел крайне эффективное применение в электронной коммерции.

Блюма Вульфовна Зейгарник — гештальт-психолог и психиатр, которая внесла значительный вклад в создание экспериментальной психологии как науки. В 1927 году она обнаружила, что задачам, которые не были завершены по тем или иным причинам, уделяется значительно больше внимания, чем тем, которые имели логичное окончание. Сегодня это явление носит название «эффект Зейгарник».

Ниже представлены несколько примеров того, как этот эффект используется в современном веб-дизайне:
Читать дальше →

Information

Rating
Does not participate
Registered
Activity