Pull to refresh
0
0

User

Send message

Groupon'овые извращения

Reading time7 min
Views1.2K
imageКак вам известно, в прошлый четверг Groupon заполнила формуляр формата S-1, на первичный листинг ценных бумаг на американской фондовой бирже NASDAQ. Это событие было более чем ожидаемым, ведь компания, о которой пойдет речь, напоминает печь для наличности, у трубы которой несколько отдельных лиц и инвестиционных фондов греют руки. Информация, которой компании пришлось раскрыть SEC (комиссии по ценным бумагам), освещает интересные показатели того, как устроена кухня этой крайне агрессивной компании. Здесь есть на что посмотреть, с интересом, граничащим с недоумением.

И дело здесь даже не в том, что Groupon, по ее же заявлениям, растет на биологически-модифицированных дрожжах. Весь бизнес по продаже купонов сегодня начинает источать стойкий запах безвыходности, даже несмотря на очень крутые показатели роста: 13575% в приросте выручки по-сравнению с предыдущим годом, несмотря на то, что в текущем закрыт только первый квартал отчетности — компания уже успела «заработать» $644 миллиона. В прошлом году выручка компании росла темпом 22000%, сделав «прибыль» на уровне $713 миллионов.

И все бы ничего, если не принимать во внимание тот факт, что Groupon… до сих пор остается убыточной, в первую очередь из-за своей стратегии межконтинентального роста. В прошлом году в купонной печи было сожжено $456 миллионов, в первом квартале этого года — уже $147 миллионов. Не стоит даже ожидать, что минус в ближайшее время сменится плюсом. Как говорит CEO компании Эндрю Мейсон (Andrew Mason): «Мы агрессивно инвестируем в рост и тратим много денег на приобретение новых подписчиков». Около 54% операционных расходов связано с маркетинговыми действиями, остальные 46% приходятся на отделы продаж, где сегодня работает почти 3500 человек, по всему миру.
Читать дальше →
Total votes 209: ↑200 and ↓9+191
Comments87

API: добавлены новые и удалены старые

Reading time1 min
Views1.7K
Google провел весеннюю уборку(Spring cleaning for some of our APIs).

К сожалению 1 декабря 2011 будут удалены 11 API, а до этой даты будет ограничено кол-во запросов:
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments38

Вопросы с собеседования на должность «C# Developer»

Reading time2 min
Views5.7K
  1. Name ten c# keywords.
  2. What is a 'static' class?
  3. What is difference between overloading and overriding?
  4. Is multiple inheritance supported in .Net?
  5. Class inherits from two interfaces containing methods with the same signature. Is it possible to provide different implementations for these methods?
  6. What can be a root reference?
  7. How 'System.String' class differs from most of other classes?
  8. Will a 'finally' block be executed if there was no exception thrown?
  9. What is a satellite assembly?
  10. How 'protected' access modifier affects visibility?
  11. What does keyword 'mutable'?
  12. Can multiple catch blocks be executed?
  13. What does operator 'as' do?
  14. What does keyword 'final'?
  15. Can different access modifiers be applied on the getter and setter of a property?
  16. Can a class be prevented from being inherited?
  17. What is event?
  18. What is the difference between event and delegate?
  19. Are events synchronous or asynchronous?
  20. What does keyword 'safe'?
  21. Can interface members be private?
  22. What does keyword 'in'?
  23. What is the advantage of using 'System.Text.StringBuilder' class over 'System.String'?
  24. What is special about the declaration of relational operators?
  25. How 'public internal' access modifier affects visibility?
  26. Can a local variable get garbage collected before it becomes out-of-scope?
  27. What implementations of serialization are built in FCL? Where are they used?
  28. How 'protected internal' access modifier affects visibility?
  29. Can 'break' exit a finally block?
  30. How to apply attribute to method return value?
  31. What is the difference between C# class finalizer and C# class destructor?
  32. What is purpose of 'IDisposable' interface?
  33. Can an array be resized at runtime?
  34. Does the size of an array need to be defined at compile time?
  35. Can a destructor have access modifiers?
  36. What is smallest integer type to represent number not greater than 40 000?
  37. What do keywords 'sizeof' and 'typeof'?
  38. What is differece between 'sizeof' and 'Marshal.SizeOf'?
  39. What is array rank?
  40. What does keyword 'stackalloc'?
  41. What encoding uses 'System.String' class?
  42. What is boxing and unboxing?
  43. What is reflection?
  44. What is struct?
  45. What is multicast delegate?
  46. Does C# have “friendship”?
  47. What is the 'using' statement for?
  48. Can a struct have methods?
  49. Can a struct be inherited?
  50. Why do most event handlers use signature 'void(object, EventArgsDerivative)'?
Наблюдавшиеся результаты: от 12 до 30 правильных ответов.
Total votes 38: ↑23 and ↓15+8
Comments120

Рекомендации для начала карьерного роста

Reading time7 min
Views17K
По мотивам недавно прошедшей конференции в ЯрГУ 25 марта, на которую пришло уж очень немного народу, решил я написать небольшой мотивирующий пост для студентов и начинающих программистов/IT специалистов. Мою презентацию с доклада можно посмотреть на skydrive. Здесь же я постараюсь вкратце, на сколько это возможно, осветить этот доклад.

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

Ну и до нас не раз еще поднимали эту тему. Рекомендую читать и заряжаться всеми этими топиками.
Читать дальше →
Total votes 120: ↑110 and ↓10+100
Comments104

Сайт TrueCrypt сообщает о закрытии проекта и предлагает переходить на BitLocker

Reading time5 min
Views299K
imageРазработчики TrueCrypt ответили: сайт | твиттер
Разработчик TrueCrypt «David»: «Мы были счастливы, что аудит ничего не выявил. Мы усердно работали над проектом 10 лет, но ничего не длится вечно.»
Steven Barnhart: (перефразировано) разработчик считает, что форк навредит еще больше: «Исходный код в любом случае доступен, можете подглядывать» (The source is still available as a reference though). «Я спросил, и было очевидно в последнем ответе, что разработчики считают форк вредным, т.к. только они сами разбираются в коде». «Также он сказал, что никакого контакта с правительством, кроме когда ему предлагали „контракт на поддержку“, у него не было».
Разработчик TrueCrypt «David»: «Битлокер 'достаточно хорош' и Windows был основной целью разработки»
Цитируя разработчика: «Больше нет интереса».

TL;DR: «Новая» версия может только дешифровывать данные, и может содержать троян (хотя я и не нашел, но вы мне не верьте на слово). Бинарник подписан верным ключом разработчика. Все старые версии удалены, репозиторий тоже очищен.

На странице рассказывается о том, что разработка TrueCrypt была прекращена в мае этого года, после того, как Microsoft прекратила поддержку Windows XP, и что TrueCrypt более небезопасен и может содержать уязвимости.
Далее, на странице содержится подробная инструкция миграции с TrueCrypt на BitLocker.

На сайте есть также ссылки на бинарный файл TrueCrypt, которые ведут в раздел загрузок SourceForge, вместе с цифровой подписью. Этот файл подписан корректным (старым) ключом, а внутри него:
Читать дальше →
Total votes 163: ↑159 and ↓4+155
Comments323

Что делать, если вы застряли с Большой и Сложной Программистской Задачей?

Reading time5 min
Views8.4K
image

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

Когда я обратил на это внимание, я серьезно призадумался, взывая к собственной совести, чувству долга и гордости человека, который никогда не подводит себя и свою команду.

Со временем я выработал способ, позволяющий вернуть мне продуктивность в такой ситуации и суметь закончить непростую задачу. Этим опытом я и хочу поделиться.
Читать дальше →
Total votes 158: ↑145 and ↓13+132
Comments38

Упрощаем жизнь: сервис автораспаковки архивов на C#

Reading time2 min
Views6.3K
hateЭто, конечно, не статья, а небольшая путевая заметка, но тем не менее. Так получилось, что 99% архивов попадают на мой компьютер, чтобы быть тут же распакованными, дабы добраться до их содержимого. И если в маке сафари сам это делает за меня, то в windows приходится каждый раз нажимать пункт в контекстном меню.

В какой-то момент мне это безумно надоело и я написал простой сервис, который распаковывает все самостоятельно. Мне он показался удобным и я решил поделиться с народом.
Читать дальше →
Total votes 61: ↑52 and ↓9+43
Comments58

Сложно о простом или особенности Linq to objects

Reading time6 min
Views4.8K
LINQ to objects сейчас прочно вошел в нашу жизнь, победоносными шагами ступая по всему стеку .net приложений. В этой статье я бы хотел привести примеры нескольких не очевидных вещей, с которыми довелось столкнуться, работая с LINQ. Интересно — прошу под кат.
Читать дальше →
Total votes 62: ↑54 and ↓8+46
Comments10

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

Reading time3 min
Views95K

Некоторые замечания о времени

  • UTC: время на нулевом меридиане называется Всемирное координированное время, Universal Coordinated Time. Несовпадение акронима было вызвано необходимостью универсальности его для всех языков.
  • GMT: ранее вместо UTC использовалось среднее время по Гринвичу (Greenwich Mean Time, GMT), так как нулевой меридиан был выбран так, чтобы проходить через Гринвичскую королевскую обсерваторию.
  • Прочие часовые пояса могут быть записаны как смещение от UTC. Например, Австралийское восточное стандартное время (EST) записывается как UTC+1000, то есть время 10:00 по UTC есть 20:00 по EST того же дня.
Читать дальше →
Total votes 250: ↑237 and ↓13+224
Comments100

Прозрачное проксирование в I2P и Tor

Reading time2 min
Views40K
Всем привет!
Захотелось мне установить кеширующий прокси на основе Polipo, ну и заодно настроить прозрачное проксирование i2p и Tor. Из всех сервисов, которые есть в этих анонимных сетях(почта, торренты и прочее) я использую только веб, так что, скорее всего, вы не сможете использовать сервисы, которые используют не http протокол, если последуете по этой инструкции.
Есть у меня домашний сервер на Debian, который раздает интернет. Использовал TinyProxy в качестве распределителя на основе доменов, два демона polipo — один для кеширования интернета, второй для(в большей степени) преобразования socks5 в http прокси, чтобы прописать ее в TinyProxy, ну еще и кеширует Tor трафик отдельно; dnsmasq для резолва адресов .i2p и .onion(он у меня и до этого использовался и для DNS, и для DHCP).
Будем считать, что I2P и Tor уже настроены и работают.

                I2P (4444)
                /
LAN port — TinyProxy (8888) — Polipo-WAN (8123)
                \
                Polipo-Tor (8124) — Tor (9050)
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments18

Bitcoin. Как это работает

Reading time10 min
Views753K
О Bitcoin я узнал относительно недавно, но он меня сразу подкупил своей идеей p2p. Чем глубже я зарывался в их Wiki, тем больше проникался этой идеей. Ее реализация красива и элегантна с технической точки зрения.

Поиск хабра по Bitcoin выдает два топика. Но это скорее новости. По комментариям заметно, что у многих людей, особенно не знакомых с Bitcoin напрямую, возникает много вопросов насчет принципов его работы. Также много догадок, зачастую неверных. Чтобы как-то прояснить ситуацию, было решено написать эту статью.
Читать дальше →
Total votes 111: ↑99 and ↓12+87
Comments221

Знакомство с библиотекой шифрования libgcrypt

Reading time7 min
Views16K
Добрый день, хабрахабр!

imageВ процессе написания одной из своих программ мне понадобилось разобраться с библиотекой шифрование и де-шифрования текста. Я разобрался и теперь хочу поделиться накопленным опытом и знаниями с сообществом.

В данной статье речь пойдет о библиотеке libgcrypt.
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments12

Пишем плагин-диссектор для Wireshark

Reading time14 min
Views24K
imageWireshark — одна из незаменимых утилит для «прослушки» сети, при работе с сетевыми протоколами. В состав программы уже входит некое количество диссекторов1, которое помогают детально рассмотреть пакеты базовых протоколов. Но при работе над проприетарным протоколом компании Nortel я столкнулся с отсутсвием подходящего диссектора. А нужен он был как воздух. Выход был очевиден — написать свой. Что я и сделал.
Таким образом, имея небольшой опыт написания плагина «анатома» под Wireshark, я решил поделиться знаниями и опытом с сообществом. Ну и для себя записать, на случай, если в будущем понадобится.

Диссекция — лат. dissectio, от dissecare, рассекать
Читать дальше →
Total votes 74: ↑74 and ↓0+74
Comments18

Как устроен jQuery: изучаем исходники

Reading time6 min
Views58K

jQuery однозначно стал стандартом в индустрии веб-дева. Есть много отличных js-фреймворков, которые заслуживают внимания, но jQuery поразил всех своей лёгкостью, изящностью, магией. Люди пишут с использованием jQuery, люди пишут плагины для jQuery, люди даже пишут статьи про jQuery, но мало кто знает (особенно из новичков), КАК устроен jQuery.

В этой статье проведем небольшой экскурс во внутренности этого фреймворка и разберем, что внутри.
Статья рассчитана на базовые знания Javascript. Задумайтесь и, если вы знаете, как написать клон jQuery, то, скорее всего, вы тут не найдёте ничего нового. Остальным — добро пожаловать под кат

Читать дальше →
Total votes 212: ↑200 and ↓12+188
Comments40

Основы MPI для «чайников»

Reading time5 min
Views93K
Так вышло, что мне пришлось тесно столкнуться с изучением параллельных вычислений и в частности MPI. Пожалуй, направление это на сегодняшний день является весьма перспективным, так что хотелось бы показать хабраюзерам основы этого процесса.

Основные принципы и пример

В качестве примера будет использоваться расчет экспоненты (e). Один из вариантов ее нахождения — ряд Тейлора:
e^x=∑((x^n)/n!), где суммирование происходит от n=0 до бесконечности.

Данная формула легко поддается распараллеливанию, так как искомое число является суммой отдельных слагаемых и благодаря этому каждый отдельный процессор может заняться вычислением отдельных слагаемых.
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments29

Беззамочные алгоритмы: модель «сделай, запиши,(попытайся снова)»

Reading time4 min
Views2K
Реализованное нами в прошлый раз атомарное умножение является примером более общей модели, которую Реймонд назвал «сделай, запиши,(попытайся снова)».

for (;;) {
 // берём начальное значение общей переменной,
 // которую мы собираемся изменять
 oldValue = sharedVariable;

 ... берём начальные значения других параметров ...

 newValue = ... вычисляем новое значение, используя
                oldValue и копии остальных параметров ...

 // вместо Xxx может быть Acquire, Release, или ничего
 if (InterlockedCompareExchangeXxx(
            &sharedVariable,
            newValue, oldValue) == oldValue) {
  break; // запись удалась
 }

 ... удаляем newValue ...

} // попытаемся снова

Мы вычисляем новое значение, и затем вызовом InterlockedCompareExchange записываем его в общую переменную только в том случае, если её значение не изменялось. Если оно изменилось, значит другой поток нас опередил; в этом случае попытаемся выполнить операцию по-новой, с самого начала, — в надежде, что в следующий раз никто нас не «подрежет».
Читать дальше →
Total votes 40: ↑31 and ↓9+22
Comments20

Пять бесплатных инструментов для выбора цветовой схемы сайта

Reading time2 min
Views233K
Один из самых важных факторов при создании уникального и узнаваемого дизайна — цвет. Грамотный выбор цветовой схемы может определить успех или провал сайта. Когда посетитель бросает первый взгляд на веб-страницу, то выбранные вами цвета посылают ему мгновенное сообщение об этой странице. К счастью, существует много инструментов, которые помогут выбрать правильную цветовую схему. Вот пять лучших из них.
Читать дальше →
Total votes 148: ↑134 and ↓14+120
Comments41

Потоко-безопасная ленивая инициализация в C++

Reading time9 min
Views13K
Реймонд Чен написал занятную серию блогпостов о беззамочной синхронизации. Мне бы хотелось опубликовать эти заметки и для хаброчитателей. Данный пост — введение в серию, скомпилированное из трёх старых постов Чена.
  1. Ленивая инициализация встроенными средствами C++
  2. Беззамочная синхронизация
  3. Беззамочная потоко-безопасная ленивая инициализация


Ленивая инициализация встроенными средствами C++


Инициализация статических локальных переменных в C++ непотокобезопасна, причём намеренно!

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

Попытайтесь сами найти рейс-кондишн во фрагменте кода, который вычисляет результат некоторой функции «лениво» — при первом обращении, и затем сохраняет этот результат для последующих обращений.

int ComputeSomething()
{
  static int cachedResult = ComputeSomethingSlowly();
  return cachedResult;
}

(Примерно такой код советуют в популярном C++ FAQ, чтобы не зависеть от выбранного компилятором порядка инициализации глобальных статических переменных.)
Читать дальше →
Total votes 55: ↑49 and ↓6+43
Comments21

Рецепт универсального слушателя (listener)

Reading time6 min
Views51K
Я часто и много работаю со Swing и, как следствие — очень часто приходится создавать
слушателей самых различных видов и форм. Однако некоторые виды встречаются чаще других,
и ниже я приведу свой рецепт автоматизации их создания.
Возможно, предложенный мной подход не оригинален, но в литературе я его не встречал.
UPD: спасибо pyatigil за ссылку на статью, в которой описывается аналогичный подход, но немного в другом стиле.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments49

Пишем игру для Android c помощью AndEngine. Часть 2

Reading time6 min
Views11K
Всем привет!
Как и обещал, вторая часть статьи.
Во избежание недопонимания, перед прочтением ознакомьтесь с первой частью статьи.
Уже ознакомились? Тогда добро пожаловать под кат где я познакомлю читателя с игровыми объектами.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments4

Information

Rating
Does not participate
Registered
Activity