Pull to refresh
102
0.4
Роман Смирнов @Source

Head of Elixir at Ecom.tech

Send message

Angular 2 Beta, обучающий курс «Тур героев» часть 1

Reading time6 min
Views60K

Часть 1 Часть 2 Часть 3 Часть 4


Вступление


Эта статья основана на документации Angular 2 и представляет собой перевод двух статей — Вступление и Редактор героя.


Используется Angular 2 release is beta.12.


Тур героев: обзор


Наш великий план — построить приложение для кадрового агентства героев. Даже героям нужна работа!


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

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

Пол Грэм, «Хакеры и художники», глава 5: «The Other Road Ahead», продолжение

Reading time28 min
Views10K
«Инвесторы и аналитики спрашивали нас о том, что мы запланировали на будущее. Нашим настоящим ответом было бы: «У нас вообще нет планов».»
— Пол Грэм, разработчик, инвестор, эссеист.



Сентябрь 2001
Оригинал — The Other Road Ahead
(За перевод спасибо Щекотовой Яне)

Читать первую часть главы.

Подход к делу


Иметь возможность выпускать программу незамедлительно — существенный мотиватор. Часто по пути на работу я думал об изменениях, которые мне хотелось внести в приложение, и вносил их в тот же день. Это также работало и для более крупных фич. Даже если на написание чего-то требовалось две недели (а на некоторых проектах и того больше), я знал, что смогу увидеть результат как только все будет реализовано.

Если бы мне приходилось ждать год до следующего релиза, я бы большинство таких идей отложил в долгий ящик, по крайней мере, на некоторое время. Дело в том, что, все-таки, идеи приводят к другим идеям. Вы когда-нибудь замечали, что, как только вы садитесь что-то написать, половина воплощенных в работе идей — это те идеи, которые посетили вас в процессе? То же самое происходит и с программами. Работа над реализацией одной идеи дает вам еще больше идей. Поэтому за откладывание вы заплатите не только задержкой в реализации своей идеи, но также и всеми идеями, к которым вы придете на данном этапе. На самом деле, откладывание препятствует появлению новых идей: как только вы начинаете размышлять о каком-то новом функционале, вы вспоминаете про свой «ящик» и думаете: «Но у меня же уже куча фишек для реализации в следующем релизе».

Все, что хотел

Reading time2 min
Views19K

Hotel – приют для localhost.


Запуск и управление всех ваших веб-проектов с одного адреса.


Больше, разных портов костылей.


Можно держать зоопарк портов для каждого проекта: 9000, 8000, 8080, 3000, 3001…
Или настраивать веб-сервер, править /etc/hosts файл или DNS для каждого проекта.
А еще помнить, как запускать девелоперский веб-сервер для каждого проекта:


  • gulp
  • gulp serve
  • gulp watch
  • ionic serve
  • browser-sync start --server --no-open --directory --files
  • http-server -p 9000
  • python -m http.server 8000
  • php -S localhost:8000
  • и так далее...

Сделать жизнь проще поможет hotel.


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

Как ухудшить производительность вашего приложения — типичные ошибки разработчиков

Reading time12 min
Views46K
Производительность считается одним из наиболее важных нефункциональных требований приложения. Если вы читаете эту статью, то, вероятно, используете приложение, например веб-браузер или программу для чтения документов, и понимаете, насколько велико значение производительности. В этой статье я расскажу о производительности приложений и о трех ошибках разработчиков, из-за которых не удается добиться высокой производительности приложений.


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

30+ кейсов: как скорость сайта влияет на конверсию

Reading time5 min
Views14K
Ускорение сайта
Корректное измерение конверсии сайта — непростая задача. А связь скорости сайта с конверсией — так вообще почти невозможная. По крайней мере, за последние 8 лет лишь немногие компании смогли корректно связать эти две величины: набралось чуть более 30 опубликованных кейсов. Мы аккуратно их все собрали, разложили по метрикам, нашли первоисточники и предлагаем вашему вниманию.

Внимание! В скорости сайта есть три основные метрики — время ответа сервера (TTFB), время отрисовки (DOMready) и время полной загрузки (onload). Часть исследований сфокусирована только на одной из метрик, а некоторые — вообще без этих метрик. Применяя результаты исследований (и предлагаемые методы) к вашему сайту, нужно четко понимать, о какой конкретно метрике (и ее улучшении) идет речь. Иначе проблемы вашего сайта не удастся соотнести с полученными результатами.
Читать дальше →

RxSwift шпаргалка по операторам (+ PDF)

Reading time41 min
Views140K


Заинтересовавшись темой функционального программирования я встал на распутье, — какой фреймворк выбрать для ознакомления. ReactiveCocoa — ветеран в iOS кругах, по нему вдоволь информации. Но он вырос с Objective-C, и хотя это не является проблемой, но все же в данный момент я в основном пишу именно на Swift, — хотелось бы взять решение изначально спроектированное с учетом всех плюшек языка. RxSwift же порт Reactive Extensions, имеющего долгую историю, но сам порт свежий и написанный именно под Swift. На нем я и решил остановиться.
Но специфика документации по RxSwift в том, что описание всех команд ведет на reactivex.io, а там в основном дается общая информация, руки у разработчиков не дошли еще сделать документацию именно для RxSwift, что не всегда удобно. Некоторые команды имеют тонкости в реализации, есть те, о которых в общей документации нет ничего кроме упоминания.
Прочитав все главы вики с RxSwift гитхаба, я сразу решил поразбираться с официальными примерами, тут то и стало ясно, что с RX такое не пройдет, нужно хорошо понимать основы, иначе будешь как мартышка с копипастом гранатой. Я начал разбирать самые сложные для понимания команды, потом те, что вроде понятны, но задав себе вопросы по ним я понял, что лишь догадываюсь на то как верно ответить, но не уверен.
В общем ничтоже сумняшеся я решил проработать все операторы RxSwift. Лучший способ что то понять в программировании — запустить код и посмотреть как он отработает. Затем учитывая специфику реактивного программирования — очень полезны схемы, ну и краткое описание на русском. Закончив сегодня работу, я подумал, что грех не поделиться результатами с тем, кто лишь присматривается к теме реактивного программирования.
Много картинок и текста под катом, очень много!
Читать дальше →

Почему стоит изучить Clojure?

Reading time17 min
Views150K

Что такое хороший язык программирования? Какими качествами и характеристиками он должен обладать? Ответ дать сложно. Вот одно из возможных определений: хороший ЯП должен хорошо решать возложенные на него задачи. Ведь ЯП — лишь инструмент в руках программиста. А инструмент обязан помогать нам в работе. В конце концов, это же и есть причина его создания. Разные ЯП стараются решать разные проблемы (с переменным успехом). Цель, которая ставилась при проектировании Clojure — сделать написанные нами программы простыми. И, как следствие, ускорить их создание, тестирование. А главное, уменьшить время на их понимание, изменение и сопровождение.
Читать дальше →

man!( Go => D ).concurrency

Reading time8 min
Views14K

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

Если вы уже наигрались с Go, устали от копипасты, ручного жонглирования мьютексами и всерьёз подумываете о приобретении протезов для рук, то позвольте предложить вашему вниманию перевод Tour of the Go с эквивалентным кодом на D и краткими пояснениями.


Часть первая. Основы.


Часть пятая. Сопрограммы.

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

Как и зачем я стал работать за компьютером стоя

Reading time4 min
Views183K


Ежедневно я работаю за компьютером 9–10 часов. Вплоть до прошлой недели я проводил все это время, сидя на своей вечно расширяющейся заднице.

В понедельник я отрегулировал свой стол для стоячего положения (фотография выше) и провел неделю, работая исключительно стоя. К сидению я теперь никогда не вернусь.
Читать дальше →

Я хочу, чтобы сайты открывались мгновенно

Reading time10 min
Views140K
Здравствуйте, меня зовут Александр Зеленин и я веб-разработчик. Я расскажу, как сделать так, чтобы ваш сайт открывался быстро. Очень быстро.


Я хочу, чтобы мой сайт открывался быстро

Объясняя необъяснимое. Часть 2

Reading time8 min
Views84K
Регистрация на конференцию PG Day’16 в разгаре, а мы продолжаем публиковать перевод статей Hubert Lubaczewski об explain и его основных компонентах.

В прошлый раз я писал о том, что показывает вывод explain. Теперь я хочу больше поговорить о разных типах «узлов» / операций, которые вы можете встретить в планах explain.

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

[ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

Reading time9 min
Views86K
Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
Читать дальше →

Объясняя необъяснимое

Reading time11 min
Views67K
Друзья, мы с радостью продолжаем публикацию интересных материалов, посвященных самым разнообразным аспектам работы с PostgreSQL. Сегодняшний перевод открывает целую серию статей за авторством Hubert Lubaczewski, которые наверняка заинтересуют широкий круг читателей.



Одна из первых вещей, которую слышит новоиспеченный администратор баз данных – «используй EXPLAIN». И при первой же попытке он сталкивается c непостижимым:

                                                        QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------
 Sort  (cost=146.63..148.65 rows=808 width=138) (actual time=55.009..55.012 rows=71 loops=1)
   Sort Key: n.nspname, p.proname, (pg_get_function_arguments(p.oid))
   Sort Method: quicksort  Memory: 43kB
   ->  Hash Join  (cost=1.14..107.61 rows=808 width=138) (actual time=42.495..54.854 rows=71 loops=1)
         Hash Cond: (p.pronamespace = n.oid)
         ->  Seq Scan on pg_proc p  (cost=0.00..89.30 rows=808 width=78) (actual time=0.052..53.465 rows=2402 loops=1)
               Filter: pg_function_is_visible(oid)
         ->  Hash  (cost=1.09..1.09 rows=4 width=68) (actual time=0.011..0.011 rows=4 loops=1)
               Buckets: 1024  Batches: 1  Memory Usage: 1kB
               ->  Seq Scan on pg_namespace n  (cost=0.00..1.09 rows=4 width=68) (actual time=0.005..0.007 rows=4 loops=1)
                     Filter: ((nspname <> 'pg_catalog'::name) AND (nspname <> 'information_schema'::name))

Что бы это могло значить?
Читать дальше →

Иван Григоров: «Для топовых багхантеров $25К в месяц — не проблема»

Reading time9 min
Views91K


Программы поиска уязвимостей всегда привлекают немало внимания со стороны хакеров и специалистов по безопасности. Ведь это легальный способ неплохо зарабатывать одними только поисками багов (при условии, что есть хороший опыт и голова на плечах). На днях нам представилась возможность взять интервью у багхантера Ивана reactors08 Григорова. Он лидер нашей программы Bug Bounty и занимает 11-е место в общем рейтинге платформы HackerOne.

Как начать искать баги? Может ли это быть единственным источником дохода? В каких Bug Bounty участвовать? Сколько зарабатывают багхантеры? И почему поиском уязвимостей особенно выгодно заниматься в кризис? Ответы на эти и другие вопросы читайте в нашем интервью.
Читать дальше →

DevTips: Советы веб-разработчику (1-16)

Reading time5 min
Views70K
Команда браузера Google Chrome проделывает огромную работу для того, чтобы разработчикам жилось лучше. Chrome DevTools — пример замечательного инструмента, сильно упрощающего отладку вашего веб-приложения. Но подчас не весь функционал этой системы виден с первого взгляда, поэтому Umar Hansa — программист из Лондона — описывает его на своем сайте, причем в весьма удобном формате: немного текста и короткий скринкаст. А мы, в свою очередь, решили сделать эти советы более доступными русскоязычной аудитории.

Содержание:
  1. Перенаправление порта позволит вам открывать локальные ссылки на мобильном устройстве
  2. Активация псевдо-классов DOM-элемента
  3. Повтор сетевого запроса при помощи cURL
  4. Запуск сохранённых блоков кода (сниппетов) на любой веб-странице
  5. Отслеживание изменений файлов через DevTools
  6. Простая запись действий страницы
  7. Поиск элементов DOM-дерева при помощи CSS-селекторов
  8. Копирование изображения в формате Data URI
  9. Переход к нужной строке при открытии файла
  10. Упрощенная навигация между правками
  11. Копирование ответа на сетевой запрос
  12. Работа с несколькими курсорами при редактировании скриптов
  13. Блочное выделение
  14. Быстрый мониторинг событий в консоли
  15. Доступ к выбранному DOM-узлу в консоли
  16. Отслеживание незавершенных сетевых запросов при помощи фильтра is:running

Продолжение: 17-32, 33-48.
Читать дальше →

Riak и Riak Search Yokozuna: Первое знакомство

Reading time9 min
Views8.1K


В статье в ознакомительных целях рассматривается процесс создания простого хранилища простых текстовых документов на базе Riak версии 2.1.1 и организация поиска по ним с помощью Riak Search (Yokozuna). В качестве клиентской библиотеки используется официальный клиент для Erlang.

Для начала представим, что у нас есть огромное количество таких документов:
  • title — заголовок;
  • body — содержимое;
  • tags — тэги;
  • created_at — время создания;
  • smiles — количество смайликов (плюсиков, лайков, как хотите)

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

Сводные данные о зарегистрированных доменах второго уровня в зоне .RU

Reading time3 min
Views16K
crawljob

Целью исследования являлось получение актуального списка всех активных доменов в зоне .RU, к 01.01.2016 зарегистрировано в которой было 5040277 имён. Приняли решение пройтись по каждому имени краулером и проанализировать результат.
Читать дальше →

«Продажа» технических идей заказчику

Reading time6 min
Views6.2K


Мы все помним, как в 2007 году первый iPhone произвел настоящую революцию в мире мобильных телефонов — был представлен очень удобный, красивый, полноэкранный смартфон. Журналы пестрели заголовками, какой прорыв совершил Apple — казалось бы, нет и не было ничего похожего на iPhone. При этом едва ли кто помнит сейчас такой телефон, как IBM Simon. На самом деле он был очень похож на iPhone — всю его переднюю панель занимал сенсорный экран. Так же, как у iPhone, у него была лишь одна механическая кнопка. Так же, как и в iPhone, в нем были разные приложения. Но, в отличие от iPhone, IBM Simon появился ещё в 1994 году, аж за 13 лет до iPhone! Так почему же мы хорошо помним появление первого iPhone и совсем забыли об IBM Simon, в котором были реализованы те же идеи, но намного раньше? Идея, на самом деле, была отличной. Но подана она была несвоевременно и не совсем в правильной «упаковке»: дизайн был далек от совершенства, цена была слишком высокой, целевая аудитория была не та и т. д.

Так как же «упаковывать» и «продавать» идеи так, чтобы они стали «айфонами», а не «саймонами»?
Читать дальше →

На рабочем месте за $5900 можно работать стоя, сидя и даже лёжа

Reading time1 min
Views21K


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

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

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

40 ключевых концепций информационных технологий доступно и понятно

Reading time16 min
Views161K
Представляю вашему вниманию перевод очень ёмкой, и в то же время достаточно краткой (для такого масштаба проблемы) статьи Карла Чео. Я решил, что очень хочу сделать её перевод практически сразу, как только начал читать, и очень рад, что в итоге сделал это.
Для того, чтобы сделать обучение более веселым и интересным, представляю вам перечень важных теорий и концепций информатики, объяснённых с помощью аналогий с минимальным количеством технических деталей. Это будет похоже на очень быстрый курс информатики для всех с целью просто дать вам общее представление об основных концепциях.

Важные замечания:
  • Пункты с неуказанным источником написаны мной самостоятельно. Поправьте меня, если вы заметите какие-то неточности. Предложите лучшую аналогию, если это возможно.
  • Заголовки ссылаются на соответствующие им статьи в Wikipedia. Пожалуйста, читайте эти статьи для более серьезных и детальных объяснений.
  • Аналогии — отличный способ объяснить материал, но они не идеальны. Если вы хотите по-настоящему понять перечисленные концепции, вам следует начать с фундаментальных азов и рассуждать, исходя из них.

Также зацените эту инфографику (вариант на русском), если вы просто начинающий программист.
Читать дальше →

Information

Rating
3,592-nd
Location
Россия
Works in
Registered
Activity