Search
Write a publication
Pull to refresh
46
0
Владислав Раструсный @FractalizeR

CTO

Send message

Моя библиотека для IT-менеджера

Reading time7 min
Views74K
С тех пор, как в институте появился предмет маркетинг, я прочёл несколько десятков книг, полезных для проект-менеджеров, стартаперов и руководителей компаний. Лучшие я собрал в небольшую библиотеку и хочу рассказать о них вам. Все эти книги заслуживают внимания и будут вам полезны. О многих вы уже слышали, часть упоминалась на Хабре, но, надеюсь, вы откроете для себя нечто новое из тех 22-х книг, о которых хочу рассказать.

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

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

Прослушивание мобильных телефонов и их защита

Reading time5 min
Views239K
Какие существуют варианты прослушивания разговоров по мобильному телефону, как можно обеспечить защиту от атак такого рода, и как абоненту определить, что, возможно, его телефон прослушивается? Из-за возникшей в последнее время целой волны скандалов шпионского характера, эти вопросы стают вновь актуальными. Журналисты обратились к операторам украинской мобильной связи с просьбой объяснить, как вести себя абоненту в таких случаях.

Поразительным оказалось то, что практически все операторы, куда обращались журналисты — просто не смогли дать ответы на поставленные вопросы. Единственной компанией, которая согласилась помочь, оказались представители «МТС Украина». Оператор Life :) — вообще не дал ответа на направленный запрос, а в «Киевстар» ответили, что не являются экспертами в таких вопросах, и что с такими вопросами нужно обращаться в специальные госслужбы (читайте, МВД, СБУ, и т.д.) В статье ниже была так же использована информация о прослушивании мобильных телефонов, полученная из публичных источников.
Читать дальше →

Как убеждать людей в сети: семнадцать малоизвестных джедайских трюков

Reading time11 min
Views307K


Хотите узнать, как на просторах интернета убеждать людей и получать от них желаемое?

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

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

Руководство по созданию стартапов, часть 8: нанимаем, управляем, повышаем и увольняем исполнительных директоров

Reading time10 min
Views30K
Часть 7



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

Определения: ИД – это лидер. Тот, кто выполняет функцию и несёт ответственность за систему внутри компании, которая вносит свой вклад в успех или неудачу. Разница между ИД и менеджером в том, что область деятельности ИД обширнее в плане организации, принятия решений и их исполнения. Менеджер может спросить, что ему делать. ИД должен знать это сам.
Читать дальше →

Трансдьюсеры в JavaScript. Часть первая

Reading time5 min
Views30K
Рич Хикки, автор языка Clojure, недавно придумал новую концепцию — Трансдьюсеры. Их сразу добавили в Clojure, но сама идея универсальна и может быть воспроизведена в других языках.

Сразу, зачем это нужно:

  • трансдьюсеры могут улучшить производительность, т.к. позволят не создавать временные коллекции в цепочках операций map.filter.takeWhile.etc
  • могут помочь переиспользовать код
  • могут помочь интегрировать библиотеки между собой, например underscore/LoDash могут уметь создавать трансдьюсеры, а FRP библиотеки (RxJS/Bacon.js/Kefir.js) могут уметь их принимать
  • могут упростить FRP библиотеки, т.к. можно будет выбросить кучу методов, добавив один метод для поддержки трансдьюсеров


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

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

BookTitres.com — изучайте языки по иностранной литературе в оригинале, слушая и читая

Reading time7 min
Views16K
Многие используют фильмы с субтитрами, чтобы слушать речь и одновременно читать. Хочу предложить альтернативу — слушать аудио книги и читать их текст с подстрочным переводом и доступом к каждой отдельной фразе. Они доступны онлайн на сайте BookTitres.com .

Самое интересное


Уже доступные для чтения книги вы можете найти в разделе "Слушайте и читайте" на сайте. Книга "Хоббит" закончена — это 11 часов аудио и 13800 фраз. Пройдя её полностью, вы ощутите заметное улучшение своего английского. Особенно, если будете повторять за чтецом каждую фразу. От других книг в основном сделаны несколько первых глав. Если хотите продолжения — ответьте на опрос и укажите желаемую книгу.

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

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

Input — новый шрифт для программирования

Reading time1 min
Views100K
Компания Font Bureau разработала новое семейство шрифтов Input, важнейшим из которых в данном случае для нас является шрифт Input Mono. Кириллица присутствует. Для персонального использования шрифты бесплатны.

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

Тренировка мозга и ее геймификация

Reading time5 min
Views41K

В статье попытаюсь рассмотреть два типа мышления и возможные варианты их тренировки и геймификации. Мышление по типу решаемой задачи можно разделить на так называемое продуктивное и репродуктивное.
Продуктивное, оно же творческое мышление характеризуется созданием чего то качественно нового, в контексте решения задач (problem solving) иcпользуется для решения сложных, до этого не решаемых человек задач. Репродуктивное же мышление наоборот, используется для задач у которых уже известна схема решения, и выполнение по сути зависит только от базовых когнитивных навыков человека.

Творческое мышление


Представим задачу стоящую перед творческим мышлением в виде абстрактной двухмерной плоскости, на которой где-то находятся несколько точек приемлемых решений. Перед человеком стоит проблема найти одну из таких точек-решений, но сложность состоит в невозможности перебрать все возможные варианты, поэтому в большинстве случаем на помощь приходит озарение. Классическая схема решения творческой задачи состоит из стадий
1) Подготовка — формулирование задачи
2) Инкубация — временное отвлечение от задачи
3) Озарение — появление интуитивного решения.
Читать дальше →

Знакомство с Content Delivery Network

Reading time9 min
Views87K
Содержимое: что такое CDN? История возникновения. Зачем она нужна? Кому она нужна, а кому нет? Порог вхождения, стоимость, издержки. Основные технологии.

CDN — сокращение от content delivery network, то есть “сеть доставки контента”. Чаще всего это множество серверов с специализированным ПО, которые ускоряют доставку (“отдачу”) контента конечному пользователю. Сервера расположены по всему миру таким образом, чтобы время ответа посетителям сайта было минимальным. Под “контентом” чаще всего подразумевают видео и статические элементы веб-сайтов (не требующие выполнения кода на сервере или запросов в базу данных, такие как css/js), но к “контенту” относятся и совсем неожиданные вещи — например, игры в Стиме (использует CDN для отдачи игр), обновления для операционных систем и т.д.



Немного истории

Резкий рост Интернета в середине 90-х привёл к ситуации, что сервера тех лет не могли в одиночку выдержать нагрузку (много ли может отдать могучий двухпроцессорный сервер на базе Pentium Pro на частоте в 266 МГц с 128 мегабайтами памяти?). Лимит производительности серверов и потребность во всё большей и большей производительности породила ныне забытые слова: “ферма серверов”, “иерархическое кеширование”… Айтишный новояз удивительно чувствителен к возрасту — и слова вроде “servers farm” или “information superhighway” сейчас ассоциируются с тёплыми ламповыми CRT-мониторами, а не с прогрессом. В ходе разработки и внедрения разных решений была замечена одна важная особенность: есть два типа контента — статический и динамический.
Читать дальше →

«Learning how to learn»: краткий обзор материалов курса

Reading time5 min
Views111K
Как учиться лучше и быть эффективнее: простые и полезные техники

Просмотрела курс на Coursera «Learning how to learn», который рассказывает, как лучше учиться, запоминать информацию и быть более эффективным, и составила список из 17 советов-приемов. Возможно, вы найдете их полезными.
Читать дальше →

SRP-6: аутентификация без передачи пароля

Reading time5 min
Views34K
Как и было обещано в соседней теме, где рассказывался велосипед, выкладываю описание алгоритма SRP RFC2945 — способе регистрации и аутентификации пользователей безопасным образом по небезопасному каналу. Вот только в процессе подготовки статьи я обнаружил более свежую версию протокола, SRP-6, вместе с реализацией, в связи с чем решил выбросить свои архаичные наработки по SRP-3, и просто дать ссылки на имплементацию новой версии.
Читать дальше →

GitHub's CSS

Reading time7 min
Views15K
[Прим. перев.]: предлагаю вашему вниманию перевод статьи Марка Отто, разработчика GitHub, бывшего разработчика Twitter, создателя самого известного CSS фреймворка Bootstrap. В этой статье он рассказывает о внутреннем устройстве CSS проектов GitHub.


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

Несколько фактов


Обзор нашего текущего состояния CSS:

  • В качестве препроцессора мы используем SCSS.
  • У нас есть более 100 отдельных исходных файлов стилей, которые мы компилируем перед выкаткой в продашн.
  • Исходники компилируются в 2 отдельных CSS файла (чтобы избежать проблемы с максимальным количеством селекторов для IE<10).
  • Эти 2 файла весят в сумме около 90 kb.
  • Мы не используюм какую-нибудь особенную «CSS архитектуру».
  • Для определения размера мы выбрали пиксели, но все же у нас есть немного «em-ов».
  • Мы используем Normalize.css, смешанный с несколькими нашими собственными стилями для сброса свойств.

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

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

Reading time11 min
Views291K


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

Быстрая морфология или файлы против MySQL

Reading time6 min
Views21K
image
Входе одного проекта мне пришлось создать сверхбыструю русскую морфологию. Около 50.000 слов в секунду на довольно слабом ноутбуке, что всего в 2-3 раза медленнее чем стемминг (обрезка окончаний по правилам), но значительно его точнее. Это данные по обычному диску, на SSD или виртуальном диске поиск происходит значительно быстрее.

Первоначальная версия была на MySQL, но перевод ее на файлы мне удалось добиться стократного увеличения производительности. О том когда и почему файлы быстрее MySQL я и расскажу в статье.

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

YaLinqo (LINQ to Objects для PHP) — версия 2.0

Reading time6 min
Views15K
Что-что?

LINQ — это штука, которая позволяет писать запросы, чем-то похожие на SQL, прямо в коде. LINQ to Objects, собственно, позволяет писать запросы к объектам, массивам и всему тому, чем вы оперируете в коде.

Это ещё зачем?

Если у вас есть база, то у вас есть любимый ORM (или любимый голый SQL — кому как по вкусу). Но иногда объекты приходят из веб-сервисов, из файлов, да и вообще тьма тьмущая объектов может требовать нетривиальной обработки: преобразование, фильтрация, сортировка, группировка, агрегация… Применить бы привычный ORM или SQL — но базы-то нет. Тут на помощь приходит LINQ to Objects, в данном случае YaLinqo.

Что умеет?

  • Самый полный порт .NET LINQ на PHP, со многими дополнительными методами. Всего реализовано более 70 методов.
  • Ленивые вычисления, текст исключений и многое другое, как в оригинальном LINQ.
  • Детальная документация PHPDoc к каждому методу. Текст статей адаптирован из MSDN.
  • 100% покрытие юнит-тестами.
  • Коллбэки можно задавать замыканиями, «указателями на функцию» в виде строк и массивов, строковыми «лямбдами» с поддержкой нескольких синтаксисов.
  • Ключам уделяется столько же внимания, сколько значениям: преобразования можно применять и к тем, и к другим; большинство коллбэков принимает на вход и то, и другое; ключи по возможности не теряются при преобразованиях.
  • Минимальное изобретение велосипедов: для итерации используются Iterator, IteratorAggregate и др. (и их можно использовать наравне с Enumerable); исключения по возможности используются родные похапэшные и т.п.
  • Поддерживается Composer, есть пакет на Packagist.
  • Никаких внешних зависимостей.

Что случилось?

Прошёл год, как вышел PHP 5.5 со всякими вкусностями типа генераторов и исправленных итераторов. Так как на моей совести самый полноценный порт LINQ на PHP, то я решил, что настало время его обновить и воспользоваться новыми фичами языка.

Что нового?

Приводим в порядок css-код. Опыт Яндекса

Reading time6 min
Views90K
Всем привет!

Я работаю над фронтендом огромного проекта — поисковой выдачи Яндекса. И у нас, как и у любого другого большого веб-проекта, есть огромное количество css-кода и немаленькая команда, которая с ним взаимодействует.

Когда много людей, используя разные инструменты, пишут и редактируют css, со временем этот css может получиться очень запутанным, неконсистентым и в целом начинает выглядеть плохо. Например, кому-то удобнее писать вендорные префиксы в одном порядке, кому-то — в другом, кто-то ставит кавычки вокруг url, кто-то — нет, а кто-нибудь фикся срочную багу к релизу мог бы, к примеру, написать position: relative в начале блока свойств, незаметив что где-нибудь внизу между color и box-shadow, уже есть position: absolute, и долго гадать, почему у него ничего не работает.



Но несмотря на то, что все пишут код по-разному, у нас в репозитории идеальный порядок: css-код полностью консистентен, и прекрасно выглядит. Весь.

Как мы этого добились, можно прочитать под катом.
Читать дальше →

OpenUI5 – новый javascript фреймворк от SAP

Reading time3 min
Views51K


Недавно произошло событие, которое незаслуженно осталось без внимания на Хабре. Компания SAP прислушалась к просьбам разработчиков и открыла код своего коммерческого фреймворка для создания веб приложений. Хотелось бы исправить это досадное упущение.
Читать дальше →

Полезные инструменты для разработки на Laravel

Reading time8 min
Views78K


Несколько месяцев назад наша компания решила выбрать корпоративный PHP-фреймворк, который мы бы использовали для большинства проектов. До этого у нас был целый зоопарк: Symfony, Zend Framework, Yii — кому что больше нравилось. После рассмотрения популярных фреймворков мы решили попробовать Laravel. Результатом нескольких обучающих дней стал конспект, в котором строится простенькое приложение, но так как подробный туториал уже присутствует на хабре, то я решил написать только о четырёх инструментах, которые будут полезны при разработке и о которых почему-то не упоминают в туториалах:

  1. Laravel IDE Helper Generator
  2. Laravel 4 Debugbar
  3. Faker
  4. Homestead
Читать дальше →

Как правильно сортировать контент на основе оценок пользователей

Reading time5 min
Views93K


В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.

Постановка проблемы


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

Неправильное решение №1

Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)

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

Завершилась битва в CodeCombat между 545 программистами

Reading time2 min
Views48K


На Хабре уже рассказывали про замечательную игру CodeCombat, которая помогает изучать Javascript в нескучной игровой форме. Но в битве Greed столкнулись отнюдь не новички, а настоящие профессионалы.

Во время соревнования 545 участников написали более 126 000 строк кода. Каждый потратил в среднем 10 часов на подготовку заданий, что соответствует 7,5 человеко-месяцам разработки. Обсчёт итога происходил на 673-ядерном кластере, который за один час просчитал результат всех 153 439 игр. Победители заберут призов на сумму более $40 000.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Chief Technology Officer (CTO)