Pull to refresh
810
0
Владимир @tangro

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

Send message

Добро пожаловать на Евро-2012

Reading time1 min
Views4.8K

Как вы, возможно, знаете, на днях в Украине и Польше начался Чемпионат Европы по футболу 2012 (кстати, команда России уже успела выиграть у Чехии со счётом 4:1). Мы решили (на фоне всяких казусов), что можем сделать пребывание гостей в нашей стране чуть-чуть комфортнее и выпустили для них специальные бесплатные приложения под iOs, Android и Facebook. Ничего сверх-навороченного, просто информация о:

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

Читать дальше →
Total votes 38: ↑18 and ↓20-2
Comments9

Please come back to me in Casablanca

Reading time4 min
Views12K

Несколько недель назад Microsoft презентовал свою новую разработку — проект Casablanca. Для того, чтобы понять что это, нужно вернуться еще чуть дальше в прошлое, к прошедшей конференции Going Native 2012, где помимо обсуждения нового стандарта С++11 было сказано еще немало умных мыслей. Одна из них была в лекции Херба Саттера. Он заметил, что самой большой проблемой современного С++ является не всякие там сборщики мусора или синтаксис лямбда-выражений, а бедность стандартной библиотеки. Когда начинающий программист на Java или C# спрашивает у своего старшего коллеги, как ему послать\принять HTTP-запрос, распарсить XML\JSON, заархивировать\разархивировать ZIP-файл и т.д. — он получает конкретный, однозначный и работающий всегда ответ: «используй вот этот класс из стандартной библиотеки». Когда начинающий программист на С++ задаёт тот же вопрос — он слышит «ну, стандартных средств для этого нет, нужно или самому писать или вот есть какие-то библиотеки, но тут надо выбирать, тестировать, читать лицензии...». В результате мы имеем дикий зоопарк библиотек с разным уровнем производительности, часто паршивенькой кроссплатформенностью, кучу самописных велосипедов, трудности в переходе между проектами, потому что «раньше я использовал boost, а тут в проекте всё на Qt» и т.д. Херб Саттер высказал мысль, что основное, на чём следует сосредоточиться — это расширение стандартной библиотеки.

Так вот, Microsoft Casablanca — это первый набросок того, как это расширение могло бы выглядеть, что в него могло бы входить и как оно всё вместе могло бы работать. Никто пока не говорит о стандартизации Casablanca как расширения стандартной библиотеки С++, но уже сейчас его можно скачать в виде отдельной библиотеки (что-то вроде альфа-версии) и попробовать поизучать. Кроме того, Microsoft пропагандирует Casablanca как средство создания производительных сервисов для платформы Azure.
Читать дальше →
Total votes 72: ↑61 and ↓11+50
Comments35

Единственный способ

Reading time4 min
Views71K
Ральф вошел в помещение ангара №1 в 8:30 утра, как делал это ежедневно уже несколько лет. Его взгляд сразу же устремился к центру зала, где на постаменте, окруженный множеством приборов и паутиной кабелей, находился смысл его работы. Собственно говоря, не только его — миллионов людей по всему миру. Первый инопланетный корабль. Полтора десятилетия назад он совершил аварийную посадку и был частично поврежден, оставив, однако, весьма много материала для изучения. Настоящим чудом стало то, что политики и учёные после этого события не переругались, а смогли организовать эффективное изучение свалившегося с небес подарка. На реверс-инжиниринг корабля были брошены лучшие умы планеты. Ральф, возглавляющий группу изучения приборов связи, стоял в ангаре и в который раз любовался стремительной, похожей на стрелу в полёте, формой корабля. Он вспоминал всё, что случилось за последние годы.
Читать дальше →
Total votes 341: ↑305 and ↓36+269
Comments127

Как я не покупал монитор

Reading time5 min
Views12K
Захотел я тут к выходу Diablo III в порядке планового апгрейда купить себе монитор. И лучше хороший, чем плохой. Дюйма этак на 24, да на нормальной матрице. Вообще я товары покупаю в интернет-магазинах — там и цены хорошие, и характеристики честные, и вообще сплошь одни плюсы. Но вот монитор… В интернете куда ни плюнь — везде рассказы о «неправильном чёрном», «неравномерности подсветки», «эффекте кристаллизации», «охвате цветового пространства» и т.д. По цифрам в табличке и картинке фиг поймешь, как этот монитор на самом деле будет показывать. И решил я пойти посмотреть на них в живую.

Два с половиной магазина бытовой и компьютерной техники моего родного городка ничем меня не порадовали. Ну, я особо и не надеялся — благо до столицы час на электричке, так что можно на досуге прокататься и посмотреть. Что я и сделал. Заранее узнал, где есть магазины с мониторами — причём постарался захватить все категории:
  • крупные сети бытовой техники
  • чисто компьютерные магазины
  • офлайн-представительства интернет-магазинов
За день я обошел в сумме около 20 мест. Ни в одном магазине я не обнаружил ни мониторов, ни продавцов-консультантов. Вернее, были, конечно вещи и люди, которые пытались выдать себя за две вышеуказанные категории, но им это катастрофически не удавалось.
Читать дальше →
Total votes 219: ↑181 and ↓38+143
Comments238

Предложение по улучшению: переводы

Reading time1 min
Views2.7K
Вдохновлённый сегодняшним обновлением (и оперативностью последовавшего за ним багфикса), я хотел бы обратить внимание Хабра на еще одну давнюю беду интерфейса — обозначение топиков-переводов. Да, сейчас они выделяются значком image, но этого значка никто не видит, не замечает, не понимает и не одобряет. Вследствии чего возникают обвинения в плагиате, требования указания авторства, упрёки в непонимании интерфейса Хабра, слив топика\кармы автора\кармы обвиняющего, ненужные оправдания и глупые отгавкивания — в общем, сплошной негатив.
Это происходит фактически в каждом топике-переводе. Вот пару ссылок с примерами:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, (можно продолжать до бесконечности)

Предложение: давайте выделять топик-перевод явно, словом «перевод», которое можно писать так, как сейчас пишется «из песочницы».

Это не сломает общий дизайн сайта, потребует 15 минут на реализацию и сэкономит десятки человекочасов обливания друг друга грязью в комментариях.

Заранее спасибо.
Читать дальше →
Total votes 150: ↑144 and ↓6+138
Comments55

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

Reading time3 min
Views34K

Условия, которые питают креативных программистов, убивают менеджеров и маркетологов — и наоборот. Программирование — Великая Игра. Оно поглощает игрока полностью, включая и душу и тело. Если ты попался — то ты попался, и ничего уже больше не имеет значения. Когда ты в следующий раз вылезешь из своей берлоги, вполне могут обнаружиться лишние десять киллограммов, борода до колен и такое количество пустых коробок из-под пиццы вокруг, что уже, наверное, наступила весна? Но для тебя это всё не важно. Потому, что твоя программа работает, а код быстр и элегантен. Ты победил.
Читать дальше →
Total votes 263: ↑235 and ↓28+207
Comments84

Эпик фейл с рассылками у Evernote

Reading time1 min
Views1.9K
Заметил вот этот пост и тоже вспомнил один эпик фейл в рассылках, на этот раз от компании Evernote. В каждой рассылке есть ссылка «Отказаться от данной рассылки».



Прекрасная функция, не поспоришь. Вот только выглядит эта ссылка вот так:
lists.evernote.com/link.php?M=93041770&N=1408&L=7&F=H
И что удивительно и ужасно — поле «М» — это идентификатор пользователя и кликнув на эту ссылку мы получим страничку вида «Вы правда хотите отписаться?», на которой будет указана реальная почта данного юзера. Никаких там ключей, хешсум или чего-то еще в ссылке нету. В результате меняя циферку в поле «М» мы можем легко проитерироваться от нуля до «сколько-влезет» и получить базу почтовых адресов пользователей Evernote. Вот такая конфиденциальность.
Читать дальше →
Total votes 148: ↑127 and ↓21+106
Comments76

Результаты конкурса

Reading time3 min
Views15K
Итак, вот они результаты нашего последнего конкурса. Спасибо всем, кто принял участие.
В принципе, задачка была совсем не сложной (она такой и планировалась) и целых 56 человек с ней справились. Вот имена людей, которые сделали это первыми:



Под катом можно найти решение задачи и ссылки по теме.
Читать дальше →
Total votes 43: ↑36 and ↓7+29
Comments7

Разыгрываем 3 лицензии на Diablo III

Reading time1 min
Views22K
Итак, дата выхода Diablo III уже отмечена красным в календаре, игровой класс выбран, напарники найдены, а на работе взят отпуск? Если единственное, чего не хватает для счастья — это лицензии на саму игру, то вот он шанс её получить. Мы разыгрываем 3 лицензии на Diablo III и получат их первые трое, кто напишет в твиттер сообщение с определённым текстом и хештегом — куда уж проще, правда? Удачи всем!

Ах да! «А что же писать?» — спросите вы? Текст сообщения и хештег легко можно получить с картинки под катом. Срок конкурса — 2 суток с момента публикации данного топика. Имена победителей будут опубликованы в пятницу, 13-го апреля.
Читать дальше →
Total votes 36: ↑19 and ↓17+2
Comments26

Мир IT — это склеп

Reading time4 min
Views4.6K

Как велик и прекрасен мир информационных технологий! Каждые пару недель я читаю новости в духе «Уже существует 1 миллиард веб-страниц!», «У каждой группы детского сада „Алёнушка“ теперь есть свой сайт!», «IP адреса заканчиваются по третьему кругу!». Кругом школьникам раздают айпады, все африканские дети давно сидят на 100-долларовых ноутбуках, в продвинутой Европе в твиттер пишут голуби и мосты. В общем, информатизация захлестывает всё и вся, до самых тайных секретов сегодня буквально гуглом подать! Благодаря википедии можно не выглядеть дураком на форумах, социальные сети удачно замаскировали социопатов под экстравертов, для других задач тоже «есть своё приложение».
В интернете нынче можно и работать, и развлекаться. Интернет позволил пареньку из сибирской деревни работать над прошивкой адронного коллайдера, тысячи литературных талантов раскрылись благодаря ЖЖ, мир увидел своих героев на ютюбе. Неправда ли, прекрасно? Неправда.
Читать дальше →
Total votes 189: ↑130 and ↓59+71
Comments189

Хуки — это просто

Reading time7 min
Views133K


Хуки — это технология перехвата вызовов функций в чужих процессах. Хуки, как и любая достаточно мощная технология, могут быть использованы как в благих целях (снифферы, аудио\видеограбберы, расширения функционала закрытого ПО, логирование, багфиксинг) так и со злым умыслом (трояны, кряки, кейлоггеры). О хуках уже не раз писали и на Хабре и не на Хабре. Но вот в чём беда — почему-то каждая статья о хуках буквально со второго абзаца начинает рассказывать о «таблице виртуальных функций», «архитектуре памяти» и предлагает к изучению огромные блоки ассемблерного кода. Известно, что каждая формула в тексте снижает количество читателей вдвое, а уж такие вещи — так и вовсе вчетверо. Поэтому нужна статья, которая расскажет о хуках просто. Под катом нет ассемблера, нет сложных терминов и буквально два десятка строк очень простого кода на С++. Если вы давно хотели изучить хуки, но не знали с чего начать — начните с этой статьи.
Читать дальше →
Total votes 94: ↑84 and ↓10+74
Comments63

Таинственные знаки на полях — разгадка

Reading time3 min
Views21K
Итак, время для верного ответа на ранее опубликованную задачку. Спасибо всем поучаствовавшим. Первым же комментарием к посту была вывешена вот эта ссылка. Я, признаться, верил, что она появится не сразу и позволит чуть-чуть продлить интригу. Но Хабр есть Хабр и на каждую хитрую гайку тут найдется свой болт с левой резьбой — и это прекрасно, за то его и любим.

Однако не так был прост конкурс, чтобы его можно было выиграть одной лишь ссылкой на MSDN — там объясняются лишь знаки 1, 2, 3, 7 и 8. А вот что означают и чем друг от друга отличаются 4, 5 и 6 — в этом и была сама задача. К сожалению, многие посчитали первый комментарий верным ответом и отказались от дальнейшего участия. А зря. Прошу под кат.
Читать дальше →
Total votes 51: ↑37 and ↓14+23
Comments5

Таинственные знаки на полях

Reading time1 min
Views12K
Многие из вас, возможно, видели всякие загадочные знаки на полях. Нет, не те что на картинке слева :). Я имею в виду значки на полях редактора кода в Visual Studio. Наиболее известными являются иконки точки останова (Breakpoint) и закладки (Bookmark) . Но есть и другие. Я предлагаю небольшой конкурс: вот 8 значков, которые могут появиться на полях редактора кода в Visual Studio 2010 (без всяких плагинов). Первый, кто верно объяснит их все, получит от меня инвайт на Хабр.

Пишите ответы комментариями к этому топику, а у кого нету аккаунта на Хабре — пишите куда угодно и бросайте ссылку в твиттер с хештегом #VsMisterySigns — обещаю всё прочитать. Ответы удобно нумеровать в соответствии именам интовских переменных в коде. Срок приёма ответов — сутки с момента публикации. Объявление победителя — в течение суток по окончанию приёма ответов, развёрнутой статьей в этих же хабах.

P.S. Обратите внимание, №4 и №6 — это не глюк в задании, это разные значки, обозначающие разные вещи. Смотрите внимательно. Все претензии — к дизайнерам Visual Studio.

Upd. Дискуссия в твиттере поактивнее комментов. Дерзайте, друзья, у всех есть шансы.
Upd2. Ставки сделаны, ставок больше нет. Результаты.
Читать дальше →
Total votes 45: ↑26 and ↓19+7
Comments21

Skype теперь при видеозвонке иногда показывает рекламу вместо изображения собеседника

Reading time1 min
Views7.2K
Сегодня утром обновил Skype, который пообещал стать после этого еще лучше и удобнее, а через час сделал первый видеозвонок жене. И вот что увидел вместо её лица. Принципы, по которым эта реклама появляется или не появляется мне не известны. Из 3-ех попыток видеозвонка я видел рекламу на месте изображения собеседника все 3 раза.

P.S. Сижу за американским VPN — может быть дело в этом?
P.P.S. Нашел упоминание о рекламе тут. Там, однако, утверждается, что "… не будет внезапных всплывающих окон или кричащих баннеров в середине беседы."
Читать дальше →
Total votes 70: ↑62 and ↓8+54
Comments120

Тьюринговская трясина

Reading time4 min
Views5.8K
Бойтесь Тьюринговской трясины, в которой всё возможно, но ничего конкретного нельзя сделать просто.
Алан Перлис

Что такое Тьюринговская трясина? Это состояние, в котором программа становится столь могущественной, столь обобщенной, что усилия по решению с её помощью какой-либо конкретной задачи равны или превосходят затраты на написание с нуля программы, которая решает только данную задачу.
Читать дальше →
Total votes 127: ↑121 and ↓6+115
Comments42

Сборка библиотеки Microsoft Detours под Visual Studio 2008

Reading time1 min
Views12K
О прекрасной библиотеке Microsoft Detours тут уже писали. Её возможности и правда впечатляют, есть только одно но: библиотеку нужно собирать из исходников (что вообще не характерно для библиотек на платформе Windows и тем более для продуктов Microsoft). Более того, внятную инструкцию как это сделать найти трудно (я так и не смог), а штатный make-файл при сборке с помощью Visual Studio 2008 выдаёт кучу ошибок. Собрав наконец Detours, я решил написать (для себя — на будущее) инструкцию по сборке. Если кому-то она сэкономит пару минут — буду рад.
Читать дальше →
Total votes 10: ↑5 and ↓50
Comments9

Here be dragons

Reading time2 min
Views21K
Просматривая материалы конференции GoingNative 2012 (которую всем программистам на С++ очень советую посмотреть), я обратил внимание на один пример кода:

#include <iostream>
struct  S { int  n; };
struct  X { X(int) {} };
void f(void*) {
    std::cerr << "Pointer!\n";
}
void f(X) {
    std::cerr << "X! \n";
}
int  main() {
    f(S().n);
}

Сможете ли вы, не подглядывая в ответ, сказать, что напечатает эта программа и самое главное, почему?

Под катом — предположение разработчика Clang из Google о том, почему этот код работает так, как он работает. Еще раз, кто не уловил: разработчик компилятора С++ из Google не знает этого точно, у него всего-лишь есть предположение.
Читать дальше →
Total votes 74: ↑63 and ↓11+52
Comments53

1000 книг

Reading time1 min
Views5K
Я читаю в среднем 2 книги в месяц. Раньше было больше — сейчас не получается. Я, конечно, читаю еще прилично всякой там документации по работе, статей на Хабре, да и чего уж врать — и на анекдоты\новости разок в неделю могу попасть. Но вот Книг я читаю не более двух штук в месяц. У меня (как, наверное, и у Вас) есть большой список литературы, которую хочется прочесть. Я по-тихоньку по нему продвигаюсь. А иногда — срываюсь на мимо пролетающий бестселлер. А еще иногда читаю что-то по совету друзей\интернета. А иногда бывают завалы по работе и вообще неделями ничего не читаю. Ну, в общем, как все.
Читать дальше →
Total votes 110: ↑88 and ↓22+66
Comments108

В чём смысл?

Reading time2 min
Views13K
	SomeFunction()
	{
	    ...
	    if (false)
	    {
	        ...
	    }
	    ...
	}
	

Зачем может быть нужен блок if (false)?

Предположим, что:
  1. Это не ошибка и не забывчивость.
  2. if и false — это именно оператор условия и логическая ложь, а не какие-то хитрости с макросами\строками и т.д.

Пару вариантов ответа под катом. Желающие высказать свои идеи приглашаются мимо отгадки сразу в комментарии.
Читать дальше →
Total votes 120: ↑73 and ↓47+26
Comments107

Еще один рейтинг популярности языков программирования

Reading time1 min
Views17K
Я нашел еще один (очень простой) график, отражающий рейтинг языков программирования. Всё элементарно: по горизонтали — количество проектов на Github, по вертикали — количество вопросов на Stackoverflow.



Я позволил себе провести на этом графике две красные диагональные линии, чтобы показать как наглядно отделены друг от друга мейнстрим (C++, C#, Java, PHP, Javascript и т.д.), группа «альтернативного мировозрения» (Scala, Haskell, Erlang, Prolog, Lisp) и откровенный трэш (всё, что ниже). По-моему, проще некуда. Никаких там годовых колебаний в полтора процента, высчитанных по непонятным формулам.
Взято тут.

UPD: сорри за мини-троллинг со словом «трэш» — зато он породил весьма интересную дискуссию в комментариях. Всем высказавшимся — спасибо.
Total votes 228: ↑199 and ↓29+170
Comments216

Information

Rating
Does not participate
Location
Украина
Registered
Activity