Как стать автором
Обновить
0
0
Олег @qazwsx

Разработчик Ruby on Rails / Go / Swift

Отправить сообщение

Многопоточность в Python: очевидное и невероятное

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров29K

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

Изначально я планировал что это будет простая и короткая заметка, но пока готовил и тестировал код нашел интересный неочевидный момент связанных с внутренностями CPython, так что не спешите закрывать вкладку, даже если вы уверены что вы знаете о потоках в Python всё :)

Читать далее
Всего голосов 44: ↑41 и ↓3+38
Комментарии16

Борьба за рентабельность, или Как поддерживать стабильную прибыль на уровне 20% от оборота

Время на прочтение7 мин
Количество просмотров2.6K

Всем привет! Я Дмитрий Ластовкин, заместитель CEO в AGIMA. Сегодня я расскажу, как мы «укрощаем» рентабельность и какие для этого используем инструменты. Эту статью мы писали вместе с Сергеем Кожемякиным, нашим CEO. Она будет полезна руководителям агентств и всем, кто участвует в финансовом планировании.

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии0

Воркшопы по выявлению требований к IT-проектам: как и зачем их проводить?

Время на прочтение13 мин
Количество просмотров21K
image

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

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

Какие здесь могут возникнуть трудности?

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

Что делать?

Из всего разнообразия техник по сбору требований стоит выделить одну, которая нацелена на решение подобных проблем (проблем масштабных проектов со множеством заинтересованных лиц и конфликтующих требований), — это воркшоп по сбору требований, о нем мы и хотим вам рассказать.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии16

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

Время на прочтение7 мин
Количество просмотров51K

Когда твой парень - fullstack


Когда твой парень — fullstack


Работая программистом и проживая в пяти минутах ходьбы от офиса, крайне тяжело успеть «отойти» от работы, отойдя от работы.


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


Как бы не так!


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


И вот однажды она приходит к тебе и торжественно заявляет:
— Я готова! Готова учиться программированию! Давай!


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


О том, как я, не имея никакого практического опыта в обучении, решил ввести в программирование человека, объяснившего, что «ты же умный» и «всё у нас получится», расскажу под катом.


Добро пожаловать!

Читать дальше →
Всего голосов 76: ↑50 и ↓26+24
Комментарии309

Пол Грэм. Все статьи на русском. Два года спустя

Время на прочтение8 мин
Количество просмотров28K
«Лучший способ писать — это переписывать»
— Пол Грэм, «The Age of the Essay»

image

Первую подборку на русском всех статей Пола Грэма (а их 176) меня вдохновили сделать ребята из tceh.com (60 переводов).
Вторую — Edison Software (125 переводов).
ТретьюФилтех-акселератор (134 перевода и еще несколько в процессе).
На четвертую… уже закончатся эссе Грэма, буду переводить его Twitter (там, кстати, много полезного).

Недавно я подключился к проекту, цель которого содействовать «филантропическим стартапам» (это такие, которые «за добро во всем мире», типа GNU/Linux, Wikipedia и WebArchive). Я вношу свои 5 копеек подборкой самых полезных концептуальных/теоретических материалов про стартапы и стартаперское (хакерское) мировоззрение.

А для тех, у кого все же стартап, а не ICO:

До 16 января 2018 идет прием заявок, предакселератор PhilTech.
С 5 по 23 февраля будет акселерация «по-полной».
С 19 по 25 мая — финальный интенсив в Москве.

Есть время подучить матчасть, особенно для CEO.

Кто такой Пол Грэм?
Если вы хоть как-то связаны со стартапами у вас возник такой вопрос, то вам обязательно под кат.

Подборка из серии «добавить в избранное и читать по одному эссе в день».
(хватит на полгода, кстати)
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии8

Пошаговое руководство по написанию сервиса для Kubernetes

Время на прочтение14 мин
Количество просмотров21K

От автора. Уже пятый декабрь подряд в блоге GopherAcademy самые разные представители Go-сообщества делятся своим опытом в рамках специальной предрождественской серии постов. В этом году я тоже решила предложить свою статью, написанную по мотивам первой части нашего с Игорем Должиковым мастер-класса по микросервисам. На Хабре небольшую часть этого руководства мы уже рассматривали ранее.


Если вы когда-либо пробовали Go, вы знаете, что писать сервисы на Go очень просто. Нам нужно буквально несколько строк кода для того, чтобы можно было запустить http-сервис. Но что нужно добавить, если мы хотим приготовить такое приложение в продакшн? Давайте рассмотрим это на примере сервиса, который готов к запуску в Kubernetes.


Все шаги из этой статьи можно найти в одном теге, или вы можете следить за примерами статьи коммит за коммитом.

Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии6

Мастер-класс «Почему Стив Джобс любил шрифты» (Алексей Каптерев)

Время на прочтение19 мин
Количество просмотров216K


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




Шутка, написанная гарнитурой Times, на 10 % смешнее той, что написана гарнитурой Arial. Почему? Чёрт знает. Лучшее объяснение, которое я видел: юмор ассоциируется с агрессией, с остротой, с остроумием — а Times выглядит более острым, чем Arial.


Ещё один любопытный эксперимент, в котором участвовало 45 тыс. человек. Заходишь на сайт, тебе показывают статью Дэвида Дойча, британского физика. В статье автор пишет, что сегодня очень трудно внезапно умереть. Например, от инфекционного заболевания или в уличной драке. Лет сто назад это случалось намного чаще. Главный вывод статьи — сейчас мир безопасен как никогда. В среднем, конечно, ведь где-то постоянно идут локальные военные конфликты.

Всего голосов 196: ↑194 и ↓2+192
Комментарии100

Наследование таблиц в Postgresql с Ruby On Rails

Время на прочтение8 мин
Количество просмотров12K

Мигрируем на Postgres Inheritance


Что это и зачем нужно?


Предположим у вас есть крупное новостное издание, у которого много разных типов материалов.


Для каждого типа материала существует своя модель: Topics::Article, Topics::Online, Topics::NewsItem и так далее. У них будут одинаковыми большинство полей, такие как заголовок, обложка, текст, авторы. Различие только в нескольких специфичных полях, уникальных для каждого типа топика.


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


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

Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии11

Оформляем красиво «битые» картинки

Время на прочтение3 мин
Количество просмотров41K
Предлагаю вашему вниманию вольный перевод статьи "Styling Broken Images" с сайта bitsofco.de.

«Битые» картинки выглядят ужасно.

image

Но они не всегда должны так выглядеть. Мы легко можем применить CSS к элементу (тегу) img, чтобы улучшить его внешний вид — сделать его куда более привлекательнее, чем как он выглядит по умолчанию.

Если вам наскучили дефолтные уведомления о «битых» картинках, милости прошу под кат.
Читать дальше →
Всего голосов 59: ↑42 и ↓17+25
Комментарии32

Вёрстка писем: 60 полезных ресурсов, руководств и исследований

Время на прочтение3 мин
Количество просмотров111K


В нашем блоге на Хабре мы часто пишем о создании почтовых рассылок — верстке HTML и CSS, работе с plain-text сообщениями и описываем интересные эксперименты. Сегодня мы представляем вашему вниманию список из 60 полезных ресурсов, туториалов и исследований о работе с email.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии4

Иллюзия времени

Время на прочтение13 мин
Количество просмотров33K

Мой дедушка был часовщиком. Когда я был ребенком, я мог подолгу сидеть возле его большого деревянного стола, наблюдая за тем, как он собирает все эти механизмы, состоящие из десятков мельчайших деталей. Все его терпение, решительность и точность, которые он вкладывал в каждую деталь своих механизмов всегда восхищали меня.
Читать дальше →
Всего голосов 36: ↑28 и ↓8+20
Комментарии13

400 потрясающих бесплатных сервисов

Время на прочтение16 мин
Количество просмотров718K

Рад представить дополнение оригинального списка из 300 потрясающих бесплатных сервисов. Автор оригинальной статьи Ali Mese добавил ещё +100 новых сервисов, которые помогут найти все — от источников вдохновения и редакторов фотографий до создания опросов и бесплатных иконок.

И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные веб-сайты

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly: Конструктор веб-сайтов.
  • Layers: Создание сайтов на WordPress (new).
  • Bootstrap Zero: Самая большая коллекция бесплатных шаблонов Bootstrap (new).
  • Landing Harbor:  Продвижение мобильного приложения c помощью бесплатного лендинга (new).
Читать дальше →
Всего голосов 108: ↑89 и ↓19+70
Комментарии38

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

Время на прочтение28 мин
Количество просмотров186K
Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

Читать дальше →
Всего голосов 96: ↑89 и ↓7+82
Комментарии38

Балансировка 70 тысяч запросов в секунду на HighLoad++

Время на прочтение5 мин
Количество просмотров39K

Библиотека докладов


Это не просто статья — это целая библиотека докладов про внутреннее устройство тех или иных крупных и высоконагруженных проектов. Все эти доклады звучали на конференциях HighLoad++ и РИТ++ за последние несколько лет.


Читать дальше →
Всего голосов 43: ↑38 и ↓5+33
Комментарии11

С чего начать новичку в Go

Время на прочтение2 мин
Количество просмотров160K
Если вы решили попробовать замечательный язык Go, но не знаете с чего начать, вам прямая дорога в этот пост, где я постарался перечислить все необходимые для новичков ресурсы.
Читать дальше →
Всего голосов 56: ↑50 и ↓6+44
Комментарии50

Каждой ветке по хосту c помощью capistrano

Время на прочтение3 мин
Количество просмотров6.2K
Думаю многим знакомо понятие «борьба за staging», когда все разработчики одновременно за день до релиза хотят поделиться своими наработками, чтобы тестировщик их проверил как можно скорее и не пришлось всю ночь править баги, да? Кому интересно посмотреть как мы решаем данную проблему для RoR-проектов с помощью Capistrano прошу под кат.


Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии8

Обзор платежных агрегаторов для приема платежей

Время на прочтение24 мин
Количество просмотров336K
image Если вы владелец интернет-магазина и хотите, чтобы покупатель мог оплатить товары удобным ему способом, у вас есть два пути: подключать и настраивать оплату для каждой платежной системы отдельно — мучиться с интеграцией, подписанием договоров… либо сделать все быстро и без лишней волокиты — воспользоваться услугами компании, которая является платежным агрегатором. При выборе последнего варианта вам понадобится подписать всего один договор, а ваш покупатель сможет выбрать удобный ему способ оплаты из десятков доступных. Это и оффлайн способы, и электронные кошельки и, конечно же, оплата банковской картой. Платежных агрегаторов множество.

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

Чем же платежные агрегаторы отличаются друг от друга, и на что стоит обратить внимание?


Каждую компанию было решено рассмотреть по десяти параметрам. Ниже приведено детальное описание параметра и почему на это стоит обратить внимание.
Читать дальше →
Всего голосов 42: ↑38 и ↓4+34
Комментарии50

Разработка через тестирование в iOS

Время на прочтение11 мин
Количество просмотров26K

Содержание:


  • Разработка через тестирование – что это?
  • Три закона TDD
  • Примеры применения
  • Преимущества и недостатки
  • Литература и ссылки


Разработка через тестирование – что это?


Разработка через тестирование (Test-driven development) — техника разработки программного обеспечения, которая определяет разработку через написание тестов. В сущности вам нужно выполнять три простых повторяющихся шага:
— Написать тест для новой функциональности, которую необходимо добавить;
— Написать код, который пройдет тест;
— Провести рефакторинг нового и старого кода.

Мартин Фаулер



Читать дальше →
Всего голосов 18: ↑12 и ↓6+6
Комментарии10

Прием уведомлений от внешних сервисов, или зачем был сделан Hooksler

Время на прочтение5 мин
Количество просмотров7.4K
В последнее время большую популярность приобрел сервис для командной коммуникации Slack. Из коробки он имеет немалое количество интеграций с различными сервисами + довольно удобное внешнее API. Но при всем при этом на бесплатных аккаунтах есть ограничение в 5 интеграций. Прицепили мы github, newrelic + пару досок с trello и все, количество их закончилось. Можно использовать универсальный Incoming WebHook, но он само собой имеет свой формат и никак не совместим с другими сервисами. Но программист не был бы программистом, если бы не решил эту задачу.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Actor Open Messaging Platform от разработчика Telegram

Время на прочтение1 мин
Количество просмотров19K
Всем привет!

Наша команда недавно выпустила небольшой продукт — открытую платформу для создания мессенджеров — Actor Messaging Platform.



Всего за несколько дней после запуска мы оказались на главной Hacker News (кто из разработчиков не читает — зря), на Reddit и собрали больше 600 звезд на GitHub от разработчиков со всего мира. У нас появилось небольшое сообщество, участники которого помогают друг друге в работе и улучшении продукта. Один из участников уже реализовал несколько важных вещей, необходимые Актору. Например, достаточно высококачественные звонки.
Читать дальше →
Всего голосов 33: ↑24 и ↓9+15
Комментарии67
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность