Pull to refresh
46
0
Boris Nagaev @starius

User

Send message

Высосанные из пальца стартапы, которые ничего не решают

Reading time9 min
Views46K
image

Иногда складывается такое впечатление, что сегодня у каждого уважающего себя хипстера-компьютерщика или гуманитария-затейника должен быть свой стартап. Желательно несколько. Иначе братва не поймет. Без приставки co-founder, co-executive, co-creator ты — никто. Лучше не иметь квартиры, чем не иметь стартапа. Бомжа, у которого нет своего угла, зато есть своё дело — все поймут и простят. Ещё и запишутся в ученики. А вот быть, как 5-10 лет назад, уже нельзя — прослывешь консерватором, который довольствуется малым. Парень, где твои мечты? Где твои аббревиатуры CTO и CEO?
Читать дальше →
Total votes 79: ↑61 and ↓18+43
Comments86

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

Reading time3 min
Views98K
1. Интро. Личное



Я готовлюсь к языковому экзамену IELTS (International English Language Testing System) — пожалуй, самому популярному
тесту на знание английского. Если хочется эмигрировать, найти работу в международной компании — диплом IELTS очень пригодится. Шкала оценок — от 0 (от испытуемого не удалось получить даже внятного мычания) до 9 (экcперт — испытуемый чертовски хорош и может устроиться даже редактором лондонской газеты).

Для учебы, например, в США, нужно не менее 6.5 баллов (бывает и 6, но не часто), для работы — 7 и выше. А для эмиграции, допустим, в Канаду — чем выше оценка, тем лучше. Мой прогнозируемый балл перед сдачей теста — 5.5. Значит, что я могу читать газеты, смотреть кино, вести беседы в знакомых ситуациях, писать ответы на письма. Но для работы в центральном офисе Гугла явно недостаточно.

Что же делать, чтобы подтянуть уровень языка? Конечно же, начать использовать его в своей жизни как можно чаще и больше. Например, читать книги на английском.
Далее
Total votes 90: ↑88 and ↓2+86
Comments109

Slack. Небольшой обзор отличного сервиса

Reading time3 min
Views372K


Некоторое время назад после волшебного пендаля под названием Tolstoy Summer Camp я начал пилить свой стартап.
Сначала у меня в команде было два разработчика и дизайнер. Потом один разработчик ушёл пилить свой проект. Затем появился другой разработчик. И всё бы ничего, но я сходил с ума от того что не мог найти простых и понятных средств ведения дел в таких маленьких компаниях как моя.
Я перепробовал тучу всяких Basecamp, Asana, Redmine, Trello, Мегаплан и прочих, массу мессенджеров в разных сочетаниях c он-лайн файлопомойками типа Dropbox и GoogleDrive — ничего мне не нравилось. «Ну, не то это всё, не то!».
Но, в конце-концов, решение было найдено.
Total votes 64: ↑55 and ↓9+46
Comments65

Лекарство тысячелетней давности оказалось эффективнее современных антибиотиков

Reading time2 min
Views39K
image

Исследователи из университета Бирмингема воспроизвели лекарство из древней медицинской книги, которое оказалось эффективным против метициллин-резистентного золотистого стафилококка (MRSA). Эти зловредные микроорганизмы вызывают тяжёлые заболевания,– сепсисы, пневмонии,- будучи при этом устойчивыми к большой группе антибиотиков.

Медицинская наука шла к текущему уровню постепенно. Чёткие научные методы стали появляться лишь в конце 19 – начале 20 веков, а раньше всё основывалось на эмпирических методах и практиках. Некоторые древние рецепты, например применение толчёной коры ивы (которая содержит салициловую кислоту) для снятия жара или коры хинного дерева (хинин) при лечении малярии, были научно подтверждены. Другие же – кровопускание по любому поводу, лечение ртутью или даже радием, были отвергнуты.
Читать дальше →
Total votes 39: ↑32 and ↓7+25
Comments20

Авторизация через китайские соцсети

Reading time3 min
Views48K
Любой нормальный сайт\приложение нынче позволяет зарегистрироваться, используя аккаунты третьих служб. И если по англоязычным\русскоязычным информации более чем достаточно, то по китайским (в русском сегменте Интернета) — кот наплакал. Между тем, помимо того, что это около 700 млн пользователей интернета, это еще и более 5 млн китайцев, посетивших Россию в 2014 году и около 500 тысяч китайцев, оставшихся в России на временное\постоянное проживание — в первую очередь студентов. Так как интеграция китайцев в местное общество всегда проходит со скрипом, они предпочитают пользоваться программным обеспечением, знакомым с детства — таким, как интернет-мессенджер QQ.

В этой статье я хотел бы осветить процесс интеграции логина через QQ в мобильных приложениях и на веб-сайтах. Это очень просто. Расскажу на примере нашего приложения для платформы Android:


Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments9

Как легко расшифровать TLS-трафик от браузера в Wireshark

Reading time2 min
Views157K
Многим из вас знаком Wireshark — анализатор трафика, который помогает понять работу сети, диагностировать проблемы, и вообще умеет кучу вещей.

image

Одна из проблем с тем, как работает Wireshark, заключается в невозможности легко проанализировать зашифрованный трафик, вроде TLS. Раньше вы могли указать Wireshark приватные ключи, если они у вас были, и расшифровывать трафик на лету, но это работало только в том случае, если использовался исключительно RSA. Эта функциональность сломалась из-за того, что люди начали продвигать совершенную прямую секретность (Perfect Forward Secrecy), и приватного ключа стало недостаточно, чтобы получить сессионный ключ, который используется для расшифровки данных. Вторая проблема заключается в том, что приватный ключ не должен или не может быть выгружен с клиента, сервера или HSM (Hardware Security Module), в котором находится. Из-за этого, мне приходилось прибегать к сомнительным ухищрениям с расшифровкой трафика через man-in-the-middle (например, через sslstrip).

Логгирование сессионных ключей спешит на помощь!


Что ж, друзья, сегодня я вам расскажу о способе проще! Оказалось, что Firefox и Development-версия Chrome поддерживают логгирование симметричных сессионных ключей, которые используются для зашифровки трафика, в файл. Вы можете указать этот файл в Wireshark, и (вуаля!) трафик расшифровался. Давайте-ка настроим это дело.
Читать дальше →
Total votes 83: ↑82 and ↓1+81
Comments22

Задачи по алгоритмам

Reading time4 min
Views45K
Добрый день. На первом курсе бакалавриата Академического университета читается годовой курс алгоритмов. Каждая лекция сопровождается семинаром, на котором мы разбираем алгоритмические задачи. Практические семинары проходят в небольших группах. В этом семестре я читаю лекции и веду практику у одной из групп.

Сегодня хочу поделиться с Вами двумя задачами с этих семинаров.

Задача 1. На прямой даны n отрезков, нужно выбрать максимальное по размеру подмножество непересекающихся.

Задача 2. На окружности даны n дуг (отрезков), нужно выбрать максимальное по размеру подмножество непересекающихся.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments36

Mycelium Entropy — девайс для создания бумажных биткоин-кошельков

Reading time2 min
Views7.3K
Mycelium Entropy — это самый безопасный способ создать бумажный биткоин-кошелек и сохранить Ваши сбережения в биткоинах. Представляет из себя маленькое USB-устройство в форме флешки, которое может генерировать биткоин ключи и адреса и распечатывать их через принтер (paper wallet). В отличии от всех других биткоин-кошельков, которые используют псевдослучайный генератор случайных чисел, данный девайс использует источник аппаратной энтропии, что делает его намного более безопасным к атакам полного перебора (bruteforce). Создать кошелек очень просто, нужно выполнить всего лишь два действия — вставить USB-флешку в принтер и отправить на печать.

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments5

Плохо документированные особенности Linux

Reading time8 min
Views66K
Привздохнув, произнесла:
«Как же долго я спала!»
image Когда-то, впервые встретив Unix, я был очарован логической стройностью и завершенностью системы. Несколько лет после этого я яростно изучал устройство ядра и системные вызовы, читая все что удавалось достать. Понемногу мое увлечение сошло на нет, нашлись более насущные дела и вот, начиная с какого-то времени, я стал обнаруживать то одну то другую фичу про которые я раньше не знал. Процесс естественный, однако слишком часто такие казусы обьединяет одно — отсутствие авторитетного источника документации. Часто ответ находится в виде третьего сверху комментария на stackoverflow, часто приходится сводить вместе два-три источника чтобы получить ответ на именно тот вопрос который задавал. Я хочу привести здесь небольшую коллекцию таких плохо документированных особенностей. Ни одна из них не нова, некоторые даже очень не новы, но на каждую я убил в свое время несколько часов и часто до сих пор не знаю систематического описания.

Все примеры относятся к Linux, хотя многие из них справедливы для других *nix систем, я просто взял за основу самую активно развивающуюся ОС, к тому же ту, которая у меня перед глазами и где я могу быстро проверить предлагаемый код.

Обратите внимание, в заголовке я написал «плохо документированные» а не «малоизвестные», поэтому тех кто в курсе прошу выкладывать в комментариях ссылки на членораздельную документацию, я с удовольствием добавлю в конце список.
Читать дальше →
Total votes 103: ↑102 and ↓1+101
Comments104

16 месяцев функционального программирования

Reading time16 min
Views67K
Предлагаю читателям «Хабрахабра» перевод статьи «16 Months of Functional Programming». Все мои замечания будут выделены курсивом.

В этой статье я хочу поделиться с вами моим опытом в функциональном программировании. Я чувствую, что в целом за прошедшие 16 месяцев стал лучше разбираться в информатике и компьютерах, чем за предыдущие 10 лет и всё это благодаря моему погружению в Scala и мир функционального программирования. Причина по которой функциональное программирование побуждает вас к постоянному развитию заключается в том, что каждую задачу необходимо переосмысливать заново. Порой невозможно поверить в то, что большинство стандартных задач могут быть решены иным путём и — бум! — функциональный подход предлагает лучшее решение и это шокирует.
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments97

Программа курса и материалы по Scala

Reading time14 min
Views48K
Добрый день.

Меня зовут Головач Иван, я практикующий Java Tech Lead с опытом в программировании 10+ лет (Java EE, J2ME, C, C++, M-language, Delphi), который перешел на Scala.

Я подготовил и прочитал как обычные курсы по программированию (Java Core + Junior Java Developer), так и спецкурсы (Multicore Programming for JVM (раз и два)).

В данный момент я стартую спецкурс по Scala и в этом топике хочу поделиться материалами, которые я нашел наиболее интересными/информативными (курс готовился более года).
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments32

О самообразовании в IT

Reading time2 min
Views6.9K
Ни для кого не секрет, что в современном мире ритм жизни таков, что из-за плотного рабочего графика мы имеем очень мало времени на семью, на дом и на образование. Отсутствие достаточного времени на последнее лишает нас возможности учиться и работать одновременно.

Однако есть выход — самообразование, о чём мы сейчас расскажем.
Читать дальше →
Total votes 13: ↑7 and ↓6+1
Comments5

CxxMock — Mock-объекты в C++

Reading time5 min
Views19K
Если вы верите в Agile и разработка через тестирование для вас является нормой, а не какой-то непонятной практикой, но наверное столкнулись с такой нехорошей проблемой как организацией тестирования объектов которые используют другие объекты через интерфейсы на C++.

Если для .NET есть замечательная библиотека Rhino.Mocks, которой достаточно «скормить» интерфейс и вы получаете возможность программирования поведения методов интерфейса прямо в модульном тесте. То для С++ все сильно сложнее, так как нет замечательного рефлекшена который позволяет строить код во время исполнения. И приходится писать объекты-заглушки вручную. И в случае изменения интерфейса приходится не только обновлять все классы в приложении но обновлять весь набор «одноразовых» классов заглушек реализующих интерфейс которые применяются в тестах.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments6

Разыменовывание нулевого указателя приводит к неопределённому поведению

Reading time6 min
Views53K
Silent NULL (Разыменовывание нулевого указателя приводит к неопределённому поведению)
Ненароком я породил большую дискуссию, касающуюся того, допустимо ли использовать в Си/Си++ выражение &P->m_foo, если P является нулевым указателем. Программисты разделились на два лагеря. Одни уверенно доказывали, что так писать нельзя, другие столь же уверенно утверждали, что можно. Приводились различные аргументы и ссылки. И я понял, что нужно внести окончательную ясность в этот вопрос. Для этого я обратился к экспертам Microsoft MVP и разработчикам Visual C++, общающимся через закрытый список рассылки. Они помогли подготовить эту статью, и я представляю её всем желающим. Для нетерпеливых: этот код не корректен.
Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments193

Пять ошибок анонимности, которые стоили главе Silk Road свободы

Reading time4 min
Views54K
Дело Росса Ульбрихта наглядно показывает, как пренебрежение несколькими банальными мерами защиты собственной анонимности может вылиться в огромный срок тюремного заключения. Владельца подпольной биржи по продаже наркотиков Silk Road признали виновным по всем пунктам. Похоже, за решёткой ему предстоит провести от 30 лет до всей оставшейся жизни. И этого можно было избежать.

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

Всего было допущено пять основных ошибок. Глупость некоторых из них поражает, но их легко понять — скорее всего, излишняя самоуверенность накапливалась годами.

Bitcoin. Анонимность биткойнов часто сравнивают с анонимностью передачи наличных денег. Но это не совсем корректное сравнение: абсолютно все транзакции находятся в публичном доступе. Некоторые веб-сайты (к примеру, Blockchain.info) позволяют легко отслеживать транзакции на любом кошельке.
Читать дальше →
Total votes 83: ↑80 and ↓3+77
Comments70

JavaScript. Вопросы на собеседовании

Reading time3 min
Views136K
Не так давно озадачился поиском работы, в связи с чем посетил n-нное количество собеседований и услышал много интересных вопросов. По сети гуляет много статей с вопросами по JS, поэтому постараюсь выбрать вопросы, которые ещё не видел. Здесь нет вопросов типа Что такое замыкание?, Наследование в JavaScript или Сделайте ajax запрос на VanillaJS. Кстати советую поискать ответы на эти вопросы, прежде чем читать статью :) Под катом вопросы типа «с подвохом». Вряд ли какой-то из них попадётся вам, но, надеюсь, статья настроит вас на «подвоховое» мышление, и напомнит некоторые скользкие места и подводные камушки javascript.
Читать дальше →
Total votes 93: ↑60 and ↓33+27
Comments158

Ликвидация Ассоциации пользователей криптовалют в РФ

Reading time5 min
Views28K
В конце 2013 года группа энтузиастов криптовалют решила самоорганизоваться для более конструктивного взаимодействия и диалога с регулирующими органами Российской Федерации. В декабре 2013 прошло первое собрание учредителей, на котором было принято решение о создании некоммерческой организации — Ассоциации пользователей криптовалют.

Как цели мы себе поставили объединение операторов крипотовалют и консолидацию мнений для взаимодействия с регуляторами РФ, а также помощь в организации правового регулирования в области криптовалют. Также планировалось взаимодействие с аналогичными зарубежными ассоциациями для изучения лучших практик и обмена опытом.
Читать дальше →
Total votes 55: ↑49 and ↓6+43
Comments113

Указатели, ссылки и массивы в C и C++: точки над i

Reading time10 min
Views611K
В этом посте я постараюсь окончательно разобрать такие тонкие понятия в C и C++, как указатели, ссылки и массивы. В частности, я отвечу на вопрос, так являются массивы C указателями или нет.

Обозначения и предположения


  • Я буду предполагать, что читатель понимает, что, например, в C++ есть ссылки, а в C — нет, поэтому я не буду постоянно напоминать, о каком именно языке (C/C++ или именно C++) я сейчас говорю, читатель поймёт это из контекста;
  • Также, я предполагаю, что читатель уже знает C и C++ на базовом уровне и знает, к примеру, синтаксис объявления ссылки. В этом посте я буду заниматься именно дотошным разбором мелочей;
  • Буду обозначать типы так, как выглядело бы объявление переменной TYPE соответствующего типа. Например, тип «массив длины 2 int'ов» я буду обозначать как int TYPE[2];
  • Я буду предполагать, что мы в основном имеем дело с обычными типами данных, такими как int TYPE, int *TYPE и т. д., для которых операции =, &, * и другие не переопределены и обозначают обычные вещи;
  • «Объект» всегда будет означать «всё, что не ссылка», а не «экземпляр класса»;
  • Везде, за исключением специально оговоренных случаев, подразумеваются C89 и C++98.


Указатели и ссылки


Указатели. Что такое указатели, я рассказывать не буду. :) Будем считать, что вы это знаете. Напомню лишь следующие вещи (все примеры кода предполагаются находящимися внутри какой-нибудь функции, например, main):

int x;
int *y = &x; // От любой переменной можно взять адрес при помощи операции взятия адреса "&". Эта операция возвращает указатель
int z = *y; // Указатель можно разыменовать при помощи операции разыменовывания "*". Это операция возвращает тот объект, на который указывает указатель

Читать дальше →
Total votes 70: ↑48 and ↓22+26
Comments73

10 сайтов для поиска работы в Европе

Reading time2 min
Views321K
Поиск работы – задача не из простых, особенно в текущих неблагоприятных экономических условиях. Европейский ресурс Tech.eu в честь запуска своего сервиса по поиску работы подготовил список из десяти сайтов, которые помогут вам подыскать себе место под европейским солнцем, если вы, по какой-либо причине, желаете уехать на заработки в ЕС.
Завожу трактор
Total votes 26: ↑23 and ↓3+20
Comments35

Что каждый программист должен знать про оптимизации компилятора

Reading time17 min
Views79K
Высокоуровневые языки программирования содержат в себе много абстрактных программистских конструкций, таких как функции, условные операторы и циклы — они делают нас удивительно продуктивными. Однако одним из недостатков написания кода на высокоуровневом языке является потенциальное значительное снижение скорости работы программы. Поэтому компиляторы стараются автоматически оптимизировать код и увеличить скорость работы. В наши дни логика оптимизации стала очень сложной: компиляторы преобразуют циклы, условные выражения и рекурсивные функции; удаляют целые блоки кода. Они оптимизируют код под процессорную архитектуру, чтобы сделать его действительно быстрым и компактным. И это очень здорово, ведь лучше фокусироваться на написании читабельного кода, чем заниматься ручными оптимизациями, которые будет сложно понимать и поддерживать. Кроме того, ручные оптимизации могут помешать компилятору выполнить дополнительные и более эффективные автоматические оптимизации. Вместо того чтобы писать оптимизации руками, лучше бы сосредоточиться на дизайне архитектуры и на эффективных алгоритмах, включая параллелизм и использование особенностей библиотек.

Данная статья посвящена оптимизациям компилятора Visual C++. Я собираюсь обсудить наиболее важные техники оптимизаций и решения, которые приходится применить компилятору, чтобы правильно их применить. Моя цель не в том, чтобы рассказать вам как вручную оптимизировать код, а в том, чтобы показать, почему стоит доверять компилятору оптимизировать ваш код самостоятельно.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments4

Information

Rating
Does not participate
Registered
Activity