Как стать автором
Обновить
0
0
Соболев Юрий @yrisob

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

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

ClickHouse: очень быстро и очень удобно

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


Виктор Тарнавский показывает, что оно работает. Перед вами расшифровка доклада Highload++ 2016.

Здравствуйте. Меня зовут Виктор Тарнавский. Я работаю в «Яндексе». Расскажу про очень быструю, очень отказоустойчивую и супермасштабируемую базу данных ClickHouse для аналитических задач, которую мы разработали.

Пару слов обо мне. Я Виктор, работаю в «Яндексе» и руковожу отделом, который занимается разработкой аналитических продуктов, таких как «Яндекс.Метрика» и «Яндекс.AppMetrica». Я думаю, многие из вас пользовались этими продуктами и знают их. Ну, и в прошлом, и по-прежнему пишу много кода, а раньше еще занимался разработкой железа.
Всего голосов 53: ↑47 и ↓6+41
Комментарии19

7 причин, почему AngularJS крут

Время на прочтение2 мин
Количество просмотров35K
Достаточно вольный перевод заметки 7 reasons why angularJS rocks.

AngularJS
Я backend-разработчик и мир Javascript фреймворков для меня достаточно нов, хотя в последние полгода мой интерес к ним сильно растет. Причина проста: я считаю, что стек технологий REST + JSON + Rich JS все больше подходит для широкого круга веб-приложений. Такой подход помогает победить дерьмовую сомнительную концепцию MVC в серверных приложениях. Почему MVC можно считать вредным — это отдельная история, сейчас лучше поговорим об AngularJS.

Что в AngularJS особенного?
Читать дальше →
Всего голосов 34: ↑23 и ↓11+12
Комментарии34

Практикум AngularJS — разработка административной панели (часть 2)

Время на прочтение6 мин
Количество просмотров43K
В первой части был реализован базовый функционал админки на javascript-фреймворке AngularJS — загрузка данных из бэкенда, добавление/изменение записей. Во второй части мы рассмотрим реализацию сортировки таблицы и разбитию по страницам, удаление записей.

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

Практикум AngularJS — разработка административной панели

Время на прочтение12 мин
Количество просмотров137K
При создании сайтов часто возникает задача создания админки для редактирования контента. Задача, в общем, тривиальная, но сделать удобную админку не так-то просто.

Под удобством в первую очередь подразумевается возможность сортировки таблицы со списком материалов и работа без перезагрузки страницы. Если материалов в таблице становится много, то возникает задача разбивать её на страницы.

Всем известный jQuery-плагин tablesorter с tablesorterPager-ом и менее известный, но гораздо более функциональный DataTables хороши, но обладают некоторыми недостатками. Главный из них — сложность динамического добавления новых строк в таблицу (после добавления строки в таблицу, новая строка потеряется при следующем вызове сортировки). tablesorter вообще не даёт средств для добавления строки в свой кэш, DataTables предоставляет широкое и функциональное API для управления внутренним представлением таблицы, но это API довольно многословно и не очень гибко.

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

Сразу приведу, что получится в итоге (кликабельно):


Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии28

Откровенность API Telegram

Время на прочтение1 мин
Количество просмотров93K
Open!
Безопасность переписки уже стала широко обсуждаемой темой. Как вы знаете, в этой сфере широко известен написанный петербуржцами Telegram. Команда уверяет в 146% безопасности, но если вы уже пользовались этим мессенджером, знайте, как минимум названия ваших чатов уже скомпроментированы. На момент публикации уязвимость уже закрыта (что приятно, закрыли меньше чем за пятнадцать минут после репорта).
Суть такова
Всего голосов 149: ↑132 и ↓17+115
Комментарии28

Как мы превратили телефон в банковскую карту

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

Недавно мы приглашали владельцев HTC One принять участие в тестировании NFC платежей и теперь хотим поблагодарить всех, кто включился и поспособствовал развитию бесконтактных платежей в нашей стране. Сегодня приложение «Кошелек» уже стало доступно для всех владельцев HTC One и Philips Xenium W336 после обновления прошивки, а в ближайшее время им также смогут пользоваться обладатели HTC One Dual SIM, HTC One Max, HTC One SV, HTC Desire 500, HTC Desire 600 и Philips Xenium W8555.

В комментариях к предыдущему посту и хабродиалогах было много вопросов о том, как работает «Кошелек» и что нужно сделать, чтобы поместить в него банковскую карту или проездной билет, не снимая задней крышки телефона и не используя двухсторонний скотч. В данном посте я попробую ответить на эти вопросы и рассказать, как это работает.
Читать дальше →
Всего голосов 68: ↑47 и ↓21+26
Комментарии135

Rockbox для всех

Время на прочтение4 мин
Количество просмотров4.8K
Привет, Хабрахабр!

Открыл я тебя не так давно, но уже успел прочитать очень много интересного (здесь должна была быть конкретика, но ее было бы слишком много — потому ее здесь нет). И вот, наконец, решился и сам кое-что написать.

Примерно 8 месяцев назад разработчик из Польши Marcin Bukat (wodz) добавил в проект Rockbox начальную поддержку так называемого семейства чипов Rockchip RK27XX. Тогда, 8 месяцев назад, все, что умел Rockbox на этих устройствах (точнее даже всего лишь на одном из этих устройств) — запускаться и отображать текст на экране плеера. А как сейчас обстоят дела?
Но обо всем по порядку.
Всего голосов 27: ↑24 и ↓3+21
Комментарии17

Интерпретируем Go как Python, Ruby, Bash

Время на прочтение1 мин
Количество просмотров1.6K
#!/usr/bin/gorun

package main

func main() {
    println("Hello world!")
}

После чего:
$ chmod +x hello.go
$ ./hello.go
Hello world!
Дальше под катом: как поставить gorun и небольшой тайм-тест ...
Всего голосов 17: ↑8 и ↓9-1
Комментарии2

Эффективный или эффектный? Мастер-класс по созданию дизайна сайта

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


Эффективный или эффектный?

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

Какой сайт можно назвать эффективным? Для меня это тот, который решает поставленные задачи, способствует достижению поставленных целей. Несмотря на то, что звучит это крайне шаблонно и бюрократично — применимо это абсолютно к любому проекту. Во многом, эффективность сайта закладывается на этапе анализа и прототипирования. Об этом я и расскажу в первой части.
Читать дальше →
Всего голосов 52: ↑47 и ↓5+42
Комментарии15

Использование Python в многопоточном приложении на C++ и настоящая многопоточность в Python

Время на прочтение7 мин
Количество просмотров40K
Все более или менее знающие Python разработчики знают про такую жуткую вещь как GIL. Глобальный блокировщик всего процесса до тех пор пока Python выполняется в одном из потоков. Он даёт потоко-защищённость методами сравнимыми с садизмом, поскольку любая неявная блокировка в многопоточном приложении смерти подобна, всё что опиралось на параллельное выполнение, умирает в мучениях, раз за разом натыкаясь на блокировку GIL.
Известно что по сей день из-за этого скорбного факта программисты на C++ используют Python-обёртки по большей части лишь в однопоточных приложениях, а программисты на Python пытаются всех убедить, что им и так неплохо живётся.
Казалось бы, если поток порождён в C++, он не знает ни о каком GIL, используй Python без блокировок и радуйся. Радость разработчика однако закончится уже на втором потоке запросившем область глобальных переменных без блокировки.
Однако есть путь ведущий к светлому будущему!
Этот путь был изначально в таком языке как Perl, он же поддерживается в Си-API языка Python и я ума не приложу почему подобный механизм не включен в один из стандартных модулей Python! Способ по сути сводит использование различных под-интерпретаторов Python в разных потоках, причём используя свой GIL для каждого(!!!) без всякого шаманства и магии, просто последовательно вызвав несколько функций и стандартного набора Си-API языка Python!
Читать дальше →
Всего голосов 76: ↑72 и ↓4+68
Комментарии50

Еще раз о многопоточности и Python

Время на прочтение3 мин
Количество просмотров36K
Как известно, в основной реализации Питона CPython (python.org) используется Global Interpreter Lock (GIL). Эта штука позволяет одновременно запускать только один питоновский поток — остальные обязаны ждать переключения GIL на них.

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

Идея свежая, но имеет один существенный недостаток — она не работает…
Читать дальше →
Всего голосов 56: ↑56 и ↓0+56
Комментарии18

N+1 полезная книга для бизнеса: часть 3

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


Привет!
Прошлые два обзора полезных книг за 2010 и 2011 год собрали просто адовое количество закладок, поэтому я продолжу. Прошел ещё год, ещё около 250 прочитанных книг – и вот самые интересные под катом.

Кто сказал, что слоны не умеют танцевать? Возрождение корпорации IBM: взгляд изнутри (Герстнер Луис)


Отличная книга про то, как удалось восстановить IBM. То, что со стороны выглядело как бессистемное перемещение активов и последовательность приказов без особого смысла, через несколько лет начало складываться в единую систему.

Догнать зайца (Стивен Спир)


Отличная книга про дебаг производственных процессов. Одна из основных вещей – то, что все серьёзные проблемы возникают из-за сочетания некритичных багов. Есть примеры из американской ядерной программы, NASA и т.п. Я предлагаю прямо сейчас пойти и прочитать описание железнодорожного крушения на Каменской: один не отчитался, второй не проверил тормоза, третий зажал тангенту, четвёртый сорвал стоп-кран. Результат — катастрофа.
Читать дальше →
Всего голосов 66: ↑60 и ↓6+54
Комментарии43

Алгоритм Шеннона-Фано

Время на прочтение2 мин
Количество просмотров105K
Алгоритм метода Шеннона-Фано — один из первых алгоритмов сжатия, который впервые сформулировали американские учёные Шеннон и Фано, и он имеет большое сходство с алгоритмом Хаффмана. Алгоритм основан на частоте повторения. Так, часто встречающийся символ кодируется кодом меньшей длины, а редко встречающийся — кодом большей длины.
В свою очередь, коды, полученные при кодировании, префиксные. Это и позволяет однозначно декодировать любую последовательность кодовых слов. Но все это вступление.
Читать дальше →
Всего голосов 51: ↑45 и ↓6+39
Комментарии12

Информация

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