Pull to refresh
61
0.6

Programmer

Send message

Go for IT. Часть первая

Reading time5 min
Views12K

Неуловимый Go.


Помните анекдот про неуловимого Джо? Именно восклицанием «Да кому он нужен!», прозвучавшим в форме вопроса "ЗАЧЕМ?", был встречен на Хабре релиз первой стабильной версии GO 1.

Именно на этот вопрос я хочу ответить циклом статей, оформленных в необычном для Хабра формате — в виде пошаговой совместной разработки действующего веб-проекта — с живым обсуждением и добавлением функционала. А чтобы вдвойне оправдать внесение цикла ещё и в хаб «Высокая производительность», мы поставим перед собой задачу создать не просто «хомяка», а проект, который наглядно продемонстрирует habri et orbi способность выдерживать значительные естественные нагрузки.

Вместо аперитива: реализация простейшего динамического веб-приложения на языке Go работает в 5-20 раз быстрее аналогичной Python-реализации. И всего в два раза уступает скорости отдачи статики Nginx-ом.

В рамках этого проекта, помимо самого языка Go, мы косвенно затронем и другие (относительно новые) технологии веб-разработки — HTML5, CSS3, Redis, MongoDB. Также я постараюсь вытащить из закутков долговременной памяти некоторые из трюков в области безопасности и экономии на спичках, коих накопилось много за полтора десятка лет работы в этой области. Устраивайтесь поудобнее, запасайтесь терпением и кофе — под катом «много букв», а ведь это только вводная часть :)
Читать дальше →

Project Glass — Очки будущего от Google или «почувствуй себя терминатором»

Reading time1 min
Views18K

Недавно появился данный ролик от группы Google[x] и думаю что он многих тут заинтересует.
Тут можно узнать подробнее а так-же написать о своих идеях и предложениях по этому проекту.

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

Для тех, кто пишет на языке Go

Reading time1 min
Views27K

Друзья!


В продолжении поста «Google выпустила финальную версию языка программирования Go 1» интерес получил логическое продолжение и наше робкое желание было услышано администрацией Хабра и с сегодняшнего дня у языка Go есть собственный блог хаб.

Пользуясь случаем, не могу не порекомендовать книгу «Learning Go»
Читать дальше →

Сервис для более эффективного пополнения запаса английских слов

Reading time2 min
Views49K
Добрый день!

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

image

Если коротко, работает он следующим образом.

1. Вы загружаете текст, который хотите прочитать. Это может быть URL статьи из интернета, книга или статья в pdf, doc, txt, ps или субтитры.

2. Система строит статистику слов и отображает слова, отсортированные по частоте употребляемости в тексте. Предварительно к словам применяется лемматизация (т. е. слова make и made будут считаться идентичными).

3. Вы отмечаете знакомые слова, а также слова, которые надо изучить.

4. Вы печатете слова, которые необходимо изучить, в удобном для вас формате (в том числе, с коротким англо-русским переводом, т. е. не полную словарную статью).

А теперь чуть подробнее

Google выпустила финальную версию языка программирования Go 1

Reading time1 min
Views6.5K
Вчера стало известно о том, что поисковый гигант выпустил финальную версию языка программирования Go 1, анонс о котором появился в 2009 году. Загрузить бинарные дистрибутивы языка для Linux, FreeBSD, Mac OS и Windows можно здесь. Язык выпущен под лицензией BSD.

Язык Go1, согласно команде его разработки, представляет из себя «попытку объединить скорость разработки динамических языков, таких как Python, с производительностью и безопасностью компилируемых языков, таких как C или C++» Справедливости ради, один из инженеров Google, занимающихся новым языком, признаёт, что экосистема языка ещё развита недостаточно — отсутствует IDE и набор поставляемых библиотек не очень большой, но, тем не менее, компания активно работает над улучшением ситуации.

Узнать подробности

Python vs Ruby

Reading time5 min
Views138K
Данная флеймообразующая статья призвана собрать в одном месте актуальную информацию по преимуществам Python над Ruby и Ruby над Python. Основываясь на собственном многолетнем опыте использования обоих языков, я постарался ограничить сравнение языками как таковыми и их стандартными библиотеками — сравнение web фреймворков, сред разработки и доступных библиотек не включены в статью, так как здесь и без меня немало копий сломано.
Читать дальше →

Замечание по move semantics при операторе return в C++11

Reading time3 min
Views16K
Бегло просматривая новый стандарт C++11, решил углубить свое понимание в теме rvalue references. Все, в принципе, замечательно, но есть подводные камни, а именно: некоторая потеря обратной совместимости с С++03.
Читать дальше →

Билл Гейтс о Стиве Джобсе в интервью Yahoo News (русский перевод)

Reading time1 min
Views118K
image

В одном из интервью каналу Yahoo News Билла Гейтса попросили прокомментировать отрывок из книги Уолтера Айзексона о Стиве Джобсе. А именно момент, как незадолго до кончины Стива Джобса, Билл пришел в его дом и они проговорили несколько часов. Предлагаем посмотреть этот отрывок из интервью с русским переводом от канала GTV. Перевод интервью полностью будет готов позже.

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

iPhone: MiTM-атака из кармана

Reading time3 min
Views93K
imageПриветствую, коллеги!
Традиционным устройством для проведения атаки на сети Wi-Fi, пожалуй, является ноутбук. Это обусловлено многими факторами: возможностью использования «специфичных» модулей Wi-Fi, наличием необходимого ПО и достаточной вычислительной мощностью. Поэтому «классическим» образом злоумышленника является человек в машине с ноутбуком и торчащей из окна антенной. Но развитие мобильных платформ не стоит на месте, и многие операции давно уже можно выполнять «из кармана».

Многие из нас пользуются «яблочными» устройствами на операционной системе iOS. И ни для кого не является секретом, что iOS является по-сути представителем *nix-семейства со всеми вытекающими из этого плюсами, в числе которых и возможность использовать многие классические pentest-приложения. Сегодня мне хотелось бы рассказать об инструментах для проведения простейшей классической атаки Man in the Middle на клиентов сети Wi-Fi с использованием метода arp poisoning.

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

Релиз GCC-4.7

Reading time1 min
Views4.8K
Сегодня ночью вышел долгожданный GCC 4.7, выпуск которого приурочен к 25-летию проекта.

Долгожданным этот выпуск является прежде всего для программистов C++, так как несет с собой обширную поддержку нового стандарта С++11.
Наиболее заметные нововведения

Пользовательские литералы в C++11

Reading time5 min
Views42K
Более полугода прошло с момента принятия стандарта C++11. В сети можно найти много материалов посвященных новому стандарту, однако большинство из них касаются самых простых возможностей, самых сладких. Я говорю о лямбда-функциях, системе автоматического выведения типов, новых спецификаторах, умных указателях и т.д. Да, это действительно интересные вещи и, можно смело сказать, они одни из самых полезных и часто используемых. Но на них свет клином не сошелся, и новенький C++11 предлагает нам не только их.

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

Загадочный язык программирования фреймворка Duqu определён

Reading time2 min
Views7.8K
Две недели назад специалисты «Лаборатории Касперского» обратились к сообществу с просьбой помочь определить язык программирования, на котором написана троянская программа Duqu. Обнаруженная в октябре 2011 года, она до сих пор ставила в тупик экспертов.

«Лаборатория Касперского» сначала обратились к экспертам по реверс-инжинирингу, но те ничем не смогли помочь. Ясно было, что язык программирования — определённо не C++, не Objective C, не Java, не Python, не Ada, не Lua и ещё не 30 других языков программирования, которые они проверили. После нескольких месяцев безуспешных попыток анализа оставалось только предположить, что ключевой фрагмент вредоносной программы написан на неком неизвестном языке.

Однако, благодаря помощи сообщества эту головоломку всё-таки удалось решить.
Читать дальше →

Smart pointers для начинающих

Reading time6 min
Views207K
Эта небольшая статья в первую очередь предназначена для начинающих C++ программистов, которые либо слышали об умных указателях, но боялись их применять, либо они устали следить за new-delete.
Читать дальше →

Запись разговоров на Android

Reading time3 min
Views316K
Я думаю, довольно многим хочется иметь возможность записывать собственные телефонные разговоры на своём смартфоне за 20 тысяч рублей. Задача вроде бы банальная, и вроде бы API Android’а позволяют это делать. Но почему запись не работает почти на всех устройствах без всяких шаманств и танцев с бубном?

Закон


Всё дело в том, что в некоторых странах запись является нелегальной и производители не тратят время на добавление такой возможности. Но как же быть тем, кто живёт в странах, где записывать разговоры не запрещено. Например, в России нет запрета на запись собственных телефонных разговоров, даже не нужно предупреждать собеседника о записи. Только прослушивать записи ваших разговоров имеете право только вы, т.е. если вы дадите прослушать запись третьему лицу, то это будет расцениваться, как нарушение 23-й статьи Конституции РФ.

Телефон


В некоторых устройствах ядро не содержит нужного драйвера, в некоторых устройствах запись отключена в системных библиотеках. Поэтому на этих телефонах запись не работает ни в одной из десятков программ в Market’e. Оно и не удивительно, ибо все они пишут разговоры одним и тем же способом. Но на некоторых телефонах запись работает без всяких танцев с бубном, например, на Samsung Galaxy S II. Но не на каждой прошивке, например, на Android 4 ICS запись уже не работает, видимо, Samsung посчитал, что пользователям она не нужна и убрал её.
Читать дальше →

Аннотации в JAVA: обзор синтаксиса и создание собственных

Reading time4 min
Views263K
Статья ориентирована больше на новичков, или тех, кто еще не работал с данным механизмом в языке. Я постараюсь рассказать, что это такое, зачем они нужны, и как можно самому создавать удобные для себя аннотации.

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

Документация по Grab — библиотеке для парсинга сайтов

Reading time2 min
Views34K
Я ранее уже рассказывал на хабре о Grab — библиотеке для парсинга сайтов и о Spider — асинхронном модуле для парсинга. Рад сообщить, что я наконец-то дописал документацию по Grab. Я решил писать всё на русском языке т.к. на английском языке мне труднее выражать мысли. На деле писанины получилось гораздо больше, чем представлялось в начале, но я таки описал практически все функции библиотеки. Я решил просто вставить сюда, оглавление, кликайте на интересный раздел и читайте о возможностях Grab:
Читать дальше →

Лаборатория Касперского просит помощи сообщества

Reading time1 min
Views1.4K
Куда-то с хабры пропали ссылки. Их запретили, да? Значит я сейчас сделаю что-то нехорошее…

Лаборатория Касперского просит помощи сообщества:
«Мы хотели бы обратиться к сообществу разработчиков и попросить любого, кто знает средства разработки, языки или компиляторы, генерирующие подобный Фреймворку код, связаться с нами или оставить комментарий к посту.»

UPDATE: Ребята, мопед не мой! Нет смысла присылать догадки мне в письма — я даже передать не смогу…

Обзор конференции Going Native'2012

Reading time7 min
Views3.6K
Недавно завершилась конференция GoingNative’2012, организованная компанией Microsoft. Она проходила 2 и 3 февраля в Редмонде, и главной темой был C++11. Мне показалось, что это замечательное событие недостаточно полно освящено, и захотел исправить ситуацию.
«C++11 feels like a new language» Bjarne Stroustrup
«We’re all learning C++11» Herb Sutter
«We broke every single book on the planet, and we broke every single programmer on the planet» Herb Sutter

Герб Саттер во вступительном слове посвятил конференцию Деннису Ритчи, создателю языка C, и ключевому разработчику операционной системы UNIX.

Это очень важное событие для сообщества С++, где выступали и отвечали на вопросы люди, ставшие легендами в мире C++, во многом определяющие его развитие. Доклады очень интересные, и я вынес для себя много нового. Дальше идёт обзор всех докладов и сессий вопросов и ответов.
Читать дальше →

Контролируем коммиты в SVN под Windows

Reading time2 min
Views9.9K
Работая с svn нередко появляются моменты, когда во время коммита твой рабочий каталог становится неактуальным. При этом приходится обновлять свою локальную копию из репозитория и составлять коммит по-новой. Хорошо когда коммитить нужно всё, а если нужны лишь три файла из ста? В таком случае приходится по новой искать свои файлы. Хотя TortoiseSVN и упрощает жизнь в таких случаях, бережно сохраняя комментарий, но всё равно, время, потраченное на обновление каталога и получение дерева с удаленного SVN сервера не вернуть. Создатели TortoiseSVN упростили нам жизнь ещё больше, создав небольшую утилиту, речь о которой и пойдет в данной статье – CommitMonitor.
Читать дальше →

Создание гибридного Qt Quick и C++ приложения

Reading time6 min
Views31K
Добрый день, %username%!

Небольшая предыстория:

Некоторое время назад делал знакомому лабораторную, тематика которой – код Хэмминга. Программа представляла собой обыкновенное Qt приложение с минимальным набором контролов. Сдача прошла успешно, прошло некоторое время, и его теперь другу необходимо тоже сдать лабораторную на эту же тематику. Ту же программу, очевидно, сдавать нельзя. Тут возникает вопрос – как сделать программу с тремя кнопками и двумя текстбоксами непохожей на предыдущую? Мне в голову пришла мысль переписать интерфейс с помощью Qt Quick, а логику и расчеты программы оставить в С++, а заодно и рассказать интересующимся людям, как я обычно делаю подобные вещи. По Qt Quick не так много литературы, тем более на русском, так что очень надеюсь, что данная статья будет полезна и интересна.
Читать дальше →

Information

Rating
2,452-nd
Registered
Activity