Pull to refresh
0
@cspread⁠-⁠only

User

Send message

Биохакинг сна: подтверждённые наукой советы

Reading time11 min
Views291K


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

Создавая Ivideon: от идеи к успешной реализации 2.0

Reading time14 min
Views22K


С тех пор как создание успешной глобальной компании стало делом моей жизни, я прочёл много книг и статей, посвящённых чужому опыту в этом вопросе.
Одним из советов, который тонкой нитью проходил через все истории успеха или провала, является простая мысль — не делайте ставку на гиков при создании массового продукта. Гики это отличные ребята, но самая капризная аудитория. Их легко получить в пользователи вашего нового продукта, так как их интересует всё самое новое, но их сложно удержать. Потребности гика почти всегда не совпадают с запросами массового пользователя. Поэтому очень скоро они начнут выказывать недовольство продуктом, требуя всё более изощрённых функций, которые обычному пользователю вообще ни к чему. В итоге попытки доработать продукт приводят к тому, что он становится слишком сложным для простого пользователя. Это одна из ловушек, куда часто попадают неудавшиеся стартапы.
Мы знали об этой ловушке. Поэтому когда два года назад завели блог на Хабре, ресурсе, посвящённому по большей части гикам (в хорошем смысле этого слова, в конце концов, я и сам гик), мы рассчитывали, что он позволит нам привлекать увлеченных программистов в нашу команду, но никак не пользователей…
А оказалось, что Хабр помог нам существенно увеличить нашу клиентскую базу.
Читать дальше →

Методология Kanban: введение

Reading time4 min
Views307K
Добрый день!

Одним из моих профессиональных интересов, как координатора команды тестировщиков, являются методологии разработки программного обеспечения. В настоящее время все большую популярность приобретают так называемые Agile-методологии, в особенности Scrum и Kanban. На «раcпиаренных» терминах играют недобросовестные «тренеры», семинары и сертификации («сертифицированный Scrum-мастер», «сертифицированный Product owner» и т.д.) растут как на дрожжах.

С большой силой приходит и большая ответственность — техника безопасности в AngularJS

Reading time3 min
Views19K
image

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

Стартап шаг за шагом: первая бизнес-модель

Reading time5 min
Views73K


Мы продолжаем цикл статей о том, как построить стартап, — рассказываем о каждом шаге на собственном примере. Мы уже описали, как придумать идею и как собрать команду, теперь поговорим о бизнес-модели.
Читать дальше →

Пишем бота для онлайн-игры на JavaScript с применением AOP

Reading time5 min
Views103K

Если вы как и я любите онлайн игры, но не любите тратить на них сильно много времени, добро пожаловать под кат. Мы не будем обсуждать боты это хорошо или нет, а просто разберем как можно для конкретной онлайн игры сделать бота. Он будет не тупо клацать по кнопке по таймауту, а будет реагировать на события в браузере. Это мы сделаем с помощью Аспектно-ориентированного программирования (далее AOP). Для примера я выбрал полюбившуюся хабром игру Пернатск.
Читать дальше →

Метапрограммирование с примерами на JavaScript

Reading time15 min
Views43K
Эта статья, еще одна попытка переосмысления метапрограммирования, которые я периодически предпринимаю. Идея каждый раз уточняется, но в этот раз удалось подобрать достаточно простых и понятных примеров, которые одновременно очень компактны и иллюстративны, имеют реальное полезное применение и не тянут за собой библиотек и зависимостей. В момент публикации я буду докладывать эту тему на ОдессаJS, поэтому, статью можно использовать, как место для вопросов и комментариев к докладу. Формат статьи дает возможность более полно изложить материал, чем в докладе, слушатели которого, не освобождаются от прочтения.

UPD: Обновленная видеоверсия статьи на Youtube (лекция записана в Киевском политехническом институте 18 апреля 2019 года в рамках курса «100 видео-лекций по программированию»):

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

Как я возил робота, чуть не поседел и залил кровью серверную

Reading time13 min
Views211K
Это история одного из самых запомнившихся случаев в моей инженерной практике. По понятным причинам я поменял имена, места и некоторые узнаваемые детали, чтобы нельзя было точно определить заказчика и других участников истории.


Вот так выглядит ленточное хранилище (наше было поменьше) и библиотечный робот (наш такой же). Китаец в комплект не входит.

Часть 1. Коробка


Помню, стояли последние дни ноября. Уже думая об окончании рабочего дня, я планировал свой вечер, когда вдруг мне сообщили, что в славном сибирском городе N у нашего заказчика сломалась ленточная библиотека. Запчасть сразу же отправили транспортной компанией, но вот уже 3 дня, как она все еще была в пути. Транспортная компания невнятно объяснялась и хмыкала в телефон, а заказчик стал не в шутку нервничать. Прогнозы были неопределенные, поэтому было принято решение везти еще одну запчасть своими силами на самолете. Сотрудник склада вручил мне габаритную коробку весом килограмм десять, обклеенную штрих-кодами и стикерами, и радостно хлопнул меня по плечу со словами: «Только не вздумай в багаж сдавать — помнут».

Коробка меня, безусловно, беспокоила, но не меньшее беспокойство мне внушал пакет с сухим молоком, который в последний момент мне вручил менеджер проекта. «У них там какие-то траблы с молочкой сейчас… из-за непогоды что ли… ребята местные просили 2 кг им привезти. Тебе ж не сложно?» — сказал он. По выражению его лица и характерному жесту ладони, как бы прикрывавшей мне рот, было ясно, как он сейчас хотел, чтобы я оказался сговорчивым или даже немым.
Читать дальше →

Трудный путь новичка в топ 5 русского App Store

Reading time5 min
Views5K
Приветствую всех. Являясь большим поклонником продукции одной известной фруктовой компании, решил попробовать свои силы в разработке под iOS. И вот хочу поделиться своим опытом и трудностями, с которыми я столкнулся, во время написания и публикации своего, фактически первого, приложения в App Store. Может быть, мой опыт окажется кому то полезным. А трудностей было предостаточно. В процессе публикации в App Store приложение было 2 раза отклонено и третий раз висело 6 дней в статусе «In Review». В итоге моя настойчивость победила, приложение опубликовали и оно попало в пятерку русского App Store в категорию Top Free iPhone Navigation Apps. И так все по порядку.
Читать дальше →

Продавать много: принципы устройства отдела продаж

Reading time3 min
Views16K
image

Дорогие друзья!

Рады снова приветствовать вас.

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

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

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

Дауншифтинг для программиста? Камбоджа, опыт выживания и опыт жизни

Reading time7 min
Views237K
image

Привет, уважаемые читатели. Сразу скажу, что я немного странный человек и мой опыт приемлем далеко не для всех и часто сталкиваюсь с непониманием, как со стороны близких, так и со стороны абсолютно незнакомых людей. Речь пойдет о том, как я бросил всё и уехал с 300$ в кармане в новую для себя страну, казавшуюся мне чем-то диким и непознанным. В обсуждении одного из постов я вскользь упомянул о моем опыте и меня попросили написать подробнее.
Читать дальше →

5 уроков для разработчиков высоконагруженных систем

Reading time4 min
Views41K
С 2010 года мы разрабатываем сервис для организации совместной работы и управления процессами. Сейчас в нашей системе Pyrus работают тысячи организаций и десятки тысяч пользователей. За 4 года мы наработали неплохой опыт обеспечения надежности и хотим поделиться им с вами.
Читать дальше →

Хочешь жить — умей вертеться. История компании CDNvideo

Reading time8 min
Views19K
В основе любой работы должны лежать принципы. Мы с самого начала используем «принципы успеха» основателя Panasonic Коносуке Мацусита из одноименной книги. Его взгляд отличается от всего, чему учат западные бизнес-гуру, и мне кажется, что у нас в России работают именно советы знаменитого японца.

Главное, чему учит Мацусита — все возможности для бизнеса можно найти прямо у себя под носом. Надо найти инвесторов и клиентов для нового бизнеса? Поспрашивай у своих друзей в «Одноклассниках». Нужно сделать выбор — государственный грант или частные инвестиции? Нет проблем, возьми и то, и другое. Не успел собрать денег на старт бизнеса? Ничего страшного, поработай на более удачливых конкурентов — пережди кризис.
Читать дальше →

Секрет древней игры го. Почему компьютер до сих пор не обыграл человека?

Reading time5 min
Views162K

Реми Кулом (слева) с компьютерной программой Crazy Stone против гроссмейстера Норимото Ёды

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

У классической игры с 2500-летней историей очень простые правила, но компьютерные программы даже близко не могут подобраться к победе над лучшими гроссмейстерами, пишет Wired.
Читать дальше →

Как я сделал Wi-Fi весы, ниоткуда не уволился, а про жизнь вообще молчу

Reading time20 min
Views199K


Из заголовка нетрудно видеть, что на это приключение меня сподвигло банальное стремление сплагиатить заголовок парней из Madrobots. А это ведь действительно было приключение: одна только история с затянувшейся покупкой INA125U настолько занудна, что может свести с ума кого угодно, кроме меня. Впрочем, возможно, я кое-чего о себе до сих пор не знаю.

Итак, весы. Я, как обычно, сделал все неправильно. А именно — не стал даже смотреть на то, что умеют делать типичные на текущий момент развития интернета вещей представители этого отряда, так сказать, скалярных. Поэтому мои весы умеют раздельно взвешивать трех разных особей человека (меня, жену и сферического гостя в вакууме), а также — пятерых кошачьих. Результаты озвучиваются близлежащим смартфоном и публикуются в табличке Google.

Ну а теперь — о том, как это сделать, имея на руках весы из ИКЕА, операционный усилитель TI INA125, Arduino Pro Mini, преобразователь Serial — Wi-Fi HiLink HLK-RM04, немного прочей рассыпухи и здоровенное шило в заднице.
Читать дальше →

Облачная копипаста – открытые исходники

Reading time2 min
Views13K
В один прекрасный день меня достала необходимости периодически набирать на экранной клавиатуре телефона тексты вроде логинов и паролей. При этом, как оказалось, своё состояние я описал вслух: “Вот бы было клёво нажать на Ctrl+C на компьютере, а потом в телефоне Ctrl+V”.
“Ну тыж программист” – напомнила одна из наших тестровщиц. “Не хватает программы, так напиши!”.

И программа для копирования содержимого буфера обмена с компьютера была написана. Несколько знакомых начали пользоваться ей с удовольствием, нашли баги, были советы… но большинство более дальних знакомых (и незнакомых) выразили недоверие. Мол, “я скопипастю пароль, а ты его к себе утащишь. Или сервак твой взломают…” Не доверяют люди. И правильно делают, наверное, доверие ещё надо заслужить. Поэтому с сегодняшнего дня исходники программы открыты всем и каждому!
Скриншоты, технические подробности, ссылка на гитхаб.

Замыкания в Javascript [Часть 1]

Reading time15 min
Views59K
Перевод статьи Ричарда Корнфорда Javascript Closures.

  • Введение
  • Разрешение имен свойств объектов
    • Присваивание значений
    • Чтение значений

  • Разрешение имен идентификаторов, контексты исполнения и цепь областей видимости
    • Контекст исполнения
    • Цепь областей видимости и свойство [[scope]]
    • Разрешение имен идентификаторов

  • ...

Введение


Замыкание
Замыкание — это выражение (обычно функция), которое может иметь свободные переменные, вместе со средой, которая привязывает эти переменные (т.е. “замыкает” это выражение).

Замыкания относятся к наиболее мощным особенностям ECMAScript (javascript), но они не могут быть применены должным образом без понимания. Несмотря на то, что их легко создать, даже случайно, их создание может иметь пагубные последствия, в частности, в некоторых относительно распространенных окружениях браузеров. Чтобы избежать случайных столкновений с недостатками и использовать преимущества замыканий, необходимо понимать их механизм. Это сильно зависит от роли цепи областей видимости в разрешении имен идентификаторов (identifier resolution) и от разрешения имен свойств в объектах.

Самое простое объяснение замыкания в том, что ECMAScript допускает вложенные функции, определения функций и функции-выражения (function expressions) внутри тел других функций. И эти вложенные функции имеют доступ ко всем локальным переменным, параметрам и функциям, находящихся внутри их внешней функции (внешних функций). Замыкание образуется, когда одна из этих вложенных функций становится доступной вне той функции, в которую она была включена, таким образом, она может быть выполнена после завершения внешней функции. В этот момент она все еще имеет доступ к локальным переменным, параметрам и внутренним декларациям функций (function declarations) своей внешней функции. Эти локальные переменные, параметры и декларации функций (изначально) имеют те же значения, которые были во время завершения внешней функции и могут взаимодействовать с внутренней функцией.

К сожалению, правильное понимание замыканий требует понимания механизмов, которые стоят за ними, и немало технических подробностей. Хотя некоторые из алгоритмов, определенных в ECMA 262, затронуты в начале последующего объяснения, большинство не могут быть опущены или просто приведены к упрощенному виду. Если вы знакомы с разрешением имен свойств объектов, то можете пропустить этот раздел, но только люди, уже знакомые с замыканиями, могут позволить себе пропустить последующие разделы и прямо сейчас перестать читать и вернуться к их использованию.
Читать дальше →

User experience design: как построить сайт для клиентов, а не для себя

Reading time8 min
Views76K
В конце апреля я делал доклад на РИФ 2012 про этапы проектирования пользовательского интерфейса. Так как видео нет, попробую представить доклад в виде слайдов с моими комментариями.

UX

Я расскажу как процесс разработки сайта или приложения выглядит с точки зрения дизайнера. Как вы сможете только за счет интерфейса улучшить впечатление пользователя от вашего стартапа.

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

Сказ о том, как я инвестиции искал

Reading time4 min
Views90K
«Инвестиции русских венчурных фондов не нужны тебе»
Так мог бы сказать джедай Йода

Есть у меня мобильное приложение в App Store, которое вначале было написано для эксперимента, а потом уже переросло в полноценный проект. Проект приносил прибыль, об инвестициях я и не помышлял, дорабатывал приложение, выпускал апдейты, прога подымалась в ТОПе App Store, деньги капали. Все текло неторопливо и размеренно. Первым «змеем искусителем» стал Аркадий Морейнис, который прислал мне письмо с предложением поучаствовать в программе акселератора Plug and Play Russia.
Читать дальше →

Как мы не заработали миллион на приложении для iPhone

Reading time5 min
Views61K

Эта статья о самых главных ошибках четырех backend разработчиков, которые решили заработать денег на приложении для iPhone не имея никакого опыта в разработке мобильных приложений и тем более их продвижении.

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

Ошибка #1 — Идея


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

Вывод: в следующий раз сначала очень серьезный анализ рынка, потом поиск людей готовых купить идею, и только потом продукт.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity