Search
Write a publication
Pull to refresh
1
0
Mokaton @mokaton

Пользователь

Send message

Изучаем многопоточное программирование в Go по картинкам

Reading time8 min
Views79K

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

Сравнение открытых OLAP-систем Big Data: ClickHouse, Druid и Pinot

Reading time26 min
Views41K
ClickHouse, Druid и Pinot — три открытых хранилища данных, которые позволяют выполнять аналитические запросы на больших объемах данных с интерактивными задержками. Эта статья — перевод подробного сравнения, выполненного Романом Левентовым.

Спойлер

ClickHouse Druid или Pinot
В организации есть эксперты по C++ В организации есть эксперты по Java
Малый кластер Большой кластер
Немного таблиц Много таблиц
Один набор данных Несколько несвязанных наборов данных
Таблицы и данные находятся в кластере перманентно Таблицы и наборы данных периодически появляются в кластере и удаляются из него
Размер таблиц (и интенсивность запросов к ним) остается стабильным во времени Таблицы значительно растут и сжимаются
Однородные запросы (их тип, размер, распределение по времени суток и т.д.) Разнородные запросы
В данных есть измерение, по которому они могут быть сегментированы, и почти не выполняется запросов, которые затрагивают данные, расположенные в нескольких сегментах Подобного измерения нет, и запросы часто затрагивают данные, расположенные во всем кластере
Облако не используется, кластер должен быть развернут на специфическую конфигурацию физических серверов Кластер развернут в облаке
Нет существующих кластеров Hadoop или Spark Кластеры Hadoop или Spark уже существуют и могут быть использованы
А под катом — подробный рассказ о том, как Роман к этому пришёл.
Читать дальше →

Создание веб-приложения на Go в 2017 году

Reading time8 min
Views78K
Содержание

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


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

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

Лимиты Telegram bot API и работа с ними на Go

Reading time5 min
Views66K
Довольно часто на Хабре появляются статьи о написании бота для Telegram, которые в своем роде, если откинуть уникальность идеи, являются самым обычным туториалом на тему «как получить сообщение от Telegram, обработать его и отправить ответ пользователю». Однако ни в одной из статей, прочтенных мной (конечно же, не берусь утверждать, что прочел их все, но тем не менее) я не встретил упоминания о лимитах отправки сообщений пользователям и как с ними работать. Кого заинтересовал, прошу под кат.
Читать дальше →

Знакомство с Go — пишем граббер веб страниц с многопоточностью и блудницами

Reading time11 min
Views71K
Про язык Go от команды Google слышали, наверное, все. А вот пробовали далеко не все, и очень зря — общение с сусликами Go это море удовольствия, в чем я недавно убедился на собственном опыте.
Начинать знакомство с новым языком забавнее всего на жизненном примере, поэтому я, не долго думая, взял первую попавшуюся задачу “из жизни, самой первостепенной важности”:

Есть в интернете сайт http://vpustotu.ru на котором любой желающий может анонимно высказаться о наболевшем. Все высказывания (в дальнейшем буду называть их “цитатами”) сначала попадают в модерацию (аналог “бездны” башорга), где посетители могут оценить полет мысли и проголосовать за цитату в стиле “Ого!” или “Ерунда!”. На странице модерации (http://vpustotu.ru/moderation/) нам показывают случайную цитату, ссылки голосования и ссылку “Еще”, которая ведет на эту же страницу. Пощелкайте, это все очень просто.

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

В разделе модерации нет прямых ссылок на определенную цитату, единственный способ получить новую цитату – обновить страницу (или перейти по ссылке “еще”, что одно и тоже). Причем вполне возможны повторы, что легко обнаруживается после пары минут агрессивного кликинга.

Таким образом нужна программа, которая:

  • Должна последовательно обновлять и парсить (разбирать) страницу, записывая цитату.
  • Должна уметь отбрасывать дубликаты.


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

  • Должна останавливаться не только по команде, но и по достижению определенного числа “повторов”, например 500!
  • Так как это, скорее всего, займет некоторое время: необходимо уметь продолжить “с места на котором остановились” после закрытия.
  • Ну и раз уж все-таки это надолго – пусть делает свое грязное дело в несколько потоков. Хорошо-бы в целых 4 потока (или даже 5!).
  • И отчитывается об успехах в консоль каждые, скажем, 10 секунд.
  • А все эти параметры пускай принимает из аргументов командной строки!


Ну, вроде все понятно. Пусть программа ведет два файла – с цитатами и с некими хешами этих цитат, чтобы не повторяться, и перечитывает файл в начале каждого запуска. Ну а дальше в цикле разбирает страницу, выдергивая все новые и новые откровения, пока не получит ctrl-c по лбу или же не встретит определенное количество повторов. Задача ясна, план есть – поехали!
Читать дальше →

Как получить D-U-N-S number бесплатно

Reading time2 min
Views137K


D-U-N-S number — международный идентификатор юридических лиц. В России добровольно его добывают в одном случае: когда в AppStore нужно зарегистрировать компанию-разработчика.

Расскажем, как добыть этот номер бесплатно и сэкономить 12 240.
Читать дальше →

Внедрение технологии единого источника DITA в компании-разработчике ПО

Reading time7 min
Views14K
Здравствуйте! Меня зовут Елена Толмачева. В компании «ДоксВижн» я занимаюсь разработкой пользовательской документации.

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


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

PhoneGap vs. Cordova

Reading time2 min
Views54K
Многие ошибочно полагают, что PhoneGap это некая единая система. Однако, существует три различные платформы — Cordova (CLI), Phonegap (CLI) и PhoneGap Build. Каждая имеет свои особенности и мелкие вариации.
Читать дальше →

Быстрое кроссплатформенное HTML5 приложение на Framework7

Reading time10 min
Views80K
Задумываясь о разработке html5 приложения, многим сразу на ум приходит jQuery, или точнее jQueryMobile. И попробовав написать даже самое простенькое приложение используя jQueryMobile, очень легко разочароваться, так как производительность и отзывчивость получившегося html5 приложения куда ниже ожидаемого, и уж совсем его не сравнить с нативными приложениями.


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

Полный путеводитель по созданию лендингов, которые продают

Reading time16 min
Views79K


Мы продолжаем знакомить вас с лучшими статьями по веб-дизайну. Сегодня мы перевели свежую статью на Medium о создании эффективных посадочных страниц. Перевод выполнен «Я люблю ИП».

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

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

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

Интернет магазины доставляют правильно с помощью DaData.ru

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

Владельцы пяти интернет-магазинов рассказали мне, как как они используют Подсказки DaData.ru чтобы отправлять посылки без возвратов, упрощать формы оформления заказов и сегментировать клиентов.

Читайте, если вы владелец интернет-магазина или причастны к его разработке

36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql

Reading time5 min
Views116K
Сложилась ситуация, что участвую в проекте, который работает с достаточно большой нагрузкой. Как уже написал — 36 млн запросов в час. Я много чего прочитал и перепробовал за последний месяц, настраивая сервер; хотелось бы просто сжато и компактно выдать тезисно то, что работает хорошо в такой конфигурации.

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

У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Читать дальше →

Long Polling от А до Я своими руками

Reading time5 min
Views55K
Как реализовать long polling с помощью Nginx и Javascript в сети достаточно много материала. Но полного руководства я ещё не встречал. То возникают проблемы с компиляцией модуля под Nginx, то в браузере вертится иконка загрузки при long poll запросах. Под катом, полный материал как же все таки это сделать правильно.
Читать дальше →

Как IT-специалисту сохранить свои финансы?

Reading time5 min
Views205K
Не секрет, что ИТ-специалисты в наше время неплохо зарабатывают. Под «неплохо» подразумевается отсутствие необходимости жить в режиме «от зарплаты до зарплаты» и наличие возможности откладывать какие-то деньги.

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

Новый сенсорный материал для измерения деформации, влажности, температуры, давления… и что же дальше?

Reading time7 min
Views60K
Привет Хабра!
Так получилось, что я родился еще в Советском Союзе. Дело было в небольшом наукограде рядом с Москвой, в семье научных сотрудников. Рос в лучших традициях окончания советской эпохи, учился в обычной школе. Физика и математика давались мне легко, а вот гуманитарные науки не очень. В старших классах начал готовился к поступлению в институт, а по выходным копал картошку и собирал колорадских жуков, но сам мечтал быть бизнесменом и носить красный пиджак. Как и планировалось, я поступил в приличный технический ВУЗ, окончил его и получил специальность инженер-физик, как и мой отец. Но желание зарабатывать больше, чем родители у меня осталось. Поэтому карьера физика меня не радовала. И вот сейчас я работаю в инвестиционном бизнесе. Все бы ничего, но как-то мы разговорились с родителями о том, чем они сейчас занимаются. Оказалось, что спустя 20 лет работы, они пришли от теоретической науки к практической. И именно тут столкнулись с весьма банальной и простой проблемой – как из научного открытия сделать полезный и продаваемый продукт для потребителя? Но обо всем по порядку.

image

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

Работаю за random()

Reading time2 min
Views883

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


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

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



Ищут работу

sadgb впишется в несложный проект для iOS.
Sterhel хочет сделать сайт средней сложности музыкальной группе.
kievskii готов снять рекламный видеоролик.
TheHorse дарит до сорока часов чему-нибудь прикладному, алгоритмическому, графическому.
Artreaspekt рисует иконки за еду.
gleb_kudr строит организационные структуры и бизнес-процессы.
stardust_kid сверстает шаблон для Вордпресса или Тумблра.
Vitamon напишет что-нибудь на Джаве.
sledopit поадминит веб-сервера на базе GNU/Линукс.
andyceo напишет модуль для Друпала версий 6 или 7.
ForeverLive создаст музыкальное сопровождение к игре или видеоролику.
MadCat дарит до 20 часов тестирования за упоминание TestLab².
Yogo разработает настольное приложение или клиент на Джаве.

Ищут работников

MATPOCKuH нуждается в календаре.
alexeygrigorev ищет тимлида и дизайнера.
maashaa примет помощь дизайнера.
ganqqwerty приглашают дизайнера с уклоном в МедиаВики.

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

Что делать, если вам грозят 38 млрд. (или меньше) за нарушение авторских прав

Reading time5 min
Views11K
38 млрд. рублей! Этой суммы вполне бы хватило для закрытия внешнего долга — ну, например Албании. Оказалось — это ущерб, нанесенный известным отечественным и зарубежным компаниям.
Сумма фантастическая, особенно для супружеской пары с фамилией отличное от «Абрамович». Хочу заметить, что если все и далее пойдет по строгой букве закона, с буквальным трактованием и отсутствием вопросов суда к обвинению, то сумма может вырасти.
Читать дальше →

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

Reading time9 min
Views43K
Рано или поздно к каждому из нас приходит понимание необходимости в денежном «буфере» про запас. На чёрный день, так сказать. Кто-то может насобирать скромную сумму, ежемесячно откладывая по чуть-чуть с зарплаты, кому-то достался приличный «буфер» от дядюшки… Как бы то ни было, встаёт вопрос хранения имеющихся средств, а ещё лучше — их задействования! Совсем не хочется, чтобы имеющиеся деньги просто таяли вместе с инфляцией.
Не так давно я проводил опрос, с надеждой открыть что-то новое для себя и с целью узнать где хранят деньги уважаемые хабражители, пускают ли их «в дело». И, из результатов опроса и комментариев к нему, понял, что мне есть что рассказать по этому поводу.
Под катом небольшой обзор самых популярных инструментов для самых начинающих от инвестора-любителя :) Я вкратце расскажу о банковских вкладах, индексируемых депозитах, ПИФах, ПАММ и ТМА-счетах.
Вопросы мотивации на накопление средств и вопросы выбора валюты в данном посте не рассматриваются.
Читать дальше →

PCI DSS – как и зачем получать сертификат соответствия

Reading time7 min
Views93K
Привет, %username%!
Этот пост мы подготовили для тех, кто работает в сфере интернет-коммерции и планирует принимать (или уже принимает) платежи на собственном сайте. Мы расскажем о международном стандарте безопасности данных PCI DSS. Поговорим о его основных требованиях к информационной инфраструктуре, которая обеспечивает обработку и обеспечение безопасности данных банковских карт. Также мы рассмотрим основные причины прохождения сертификации и возможности, которые получает сертифицированная компания.
Подробности

Секрет высокой конверсии для интернет-магазинов

Reading time4 min
Views14K
Цель каждого интернет-магазина – заработать больше денег. Это в целом и понятно, для этого и создается любой коммерческий проект. А для того, чтобы зарабатывать больше денег, необходимо повышать продажи. Соответственно, в рассматриваемой сфере интернет-магазинов повышение продаж сводится либо к увеличению посещаемости сайта (как правило, путем увеличения бюджетов на рекламу), либо к повышению эффективности уже проводимой рекламы, то есть в рамках существующего бюджета. Результатом повышения эффективности рекламы станет увеличение коэффициента конверсии сайта при существующем уровне посещаемости. Тут тоже все понятно, можно сказать, что с основами уже разобрались! :)
Читать дальше →

Information

Rating
Does not participate
Registered
Activity