• Как я искал работу в славном городе Нью-Йорк

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

    Прежде чем уйти в детали – краткий обзор меня. Я – разработчик с примерно 10-летним стажем, пишу для .NET платформы. Первые семь лет я базировался в Санкт-Петербурге и 3 года назад переехал в штаты.

    Итак, поехали!
    Читать дальше →
  • OnePlus One — первый среди лучших

      Примерно 3 месяца китайская компания OnePlus, корни которой растут из Oppo, 23 апреля в Пекине анонсировала Android-коммуникатор One, сделавший ставку на сочетание первосортного оборудования, высококлассного программного обеспечения и более чем доступной цены. Наверное, почти каждый, кто интересуется новинками в мобильной индустрии знают о новом девайсе. Бешеный ажиотаж, огромное количество мыслей и впечатлений сразу появилось в Сети после выхода гаджета. Многие даже были готовы разломать свой смартфон за крутую новинку!



      Но чем же так интересен OnePlus One? Почему его называют убийцей флагманов? И где вообще это чудо приобрести? Давайте же вместе разберемся!
      А давайте-ка!
    • Мультитест мультиварок: что купить IT-шнику, если хочется плова и борща

        Нам неоднократно поступали предложения о тестировании мультиварок, но до определенного времени мы от них отказывались — ну что такого можно рассказать о мультиварке. Однако, предложения продолжали поступать, и примерно после 5-6 письма редакция Box Overview задумалась, и решили сделать не просто тест одной мультиварки, а глобальное тест-сравнение 8 мультиварок нижнего ценового сегмента от разных брендов.

        image

        В нашем тесте участвуют 8 мультиварок от компаний Vitek (VT-4209), Kitfort (KT-201), Scarlett (SL-MC411S01), Polaris (PMC 0527D), Rolsen (RMC-5500D), Redmond (RMC-250), Philips (HD2173) и Panasonic (SR-MHS181).

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

        • Translation
        Хотелось бы сказать, что Stack Overflow — масштабный проект, но это не так. Я имею ввиду мы добились многого, но я не могу назвать наш проект “большим”, ещё рано. Давайте я приведу в пример некоторые цифры — с какой нагрузкой мы имеем дело сейчас. Срез статистики за 24 часа от 12 ноября 2013 года. Это обычный будний день. Отмечу, что здесь представлена информация только по нашим собственным вычислительным мощностям, без CDN.


        Читать дальше →
      • Покупаем Nexus 5 через Google Play

        После успешного релиза смартфона Nexus 4 компании LG и Google вновь объединили усилия и анонсировали первый смартфон на основе самой свежей версии ОС Android — Android™ 4.4, KitKat®. Получивший новые характеристики смартфон Nexus 5 является самой тонкой и быстрой моделью в линейке устройств Google Nexus на сегодняшний день.

        Для жителей Соединенных Штатов Nexus 5 продается в 4 модификациях:
        • Nexus 5 (16 ГБ, черный) — 349$
        • Nexus 5 (32 ГБ, черный) — 399$
        • Nexus 5 (16 ГБ, белый) — 349$
        • Nexus 5 (32 ГБ, белый) — 399$



        На данный момент аппарат можно заказать в США. Но, к сожалению, для жителей СНГ раздел Устройства недоступен в Play Маркет'е. Поэтому просто положить товар в корзину, ввести адрес и оплатить — не получится. Но не будем отчаиваться и попытаемся обойти этот запрет. В статье я постараюсь максимально подробно рассказать о процедуре покупки и различных тонкостях. Начнём!
        Читать дальше →
      • Google официально анонсировала новый Nexus 5 и Android 4.4

          Итак, свершилось. Новый смартфон Nexus 5 уже успел полностью надоесть техногикам, так как он утекал в сеть во всех возможных и невозможных видах с сентября, а Google всё тянула резину с анонсом. Более того, неделю назад смартфон оказался прямо в официальном интернет-магазине Google, но затем был оперативно выпилен. Теперь карты окончательно раскрыты. Кроме того, официально доступны исходные коды новой операционной системы Android 4.4 Kit Kat с многочисленными улучшениями.
          Читать дальше →
        • Файл, который нужно закоммитить перед уходом с работы

          Немножко пятничного настроения в субботу. Я думаю, все видели этот код:

          image

          Но Aras Pranckevičius пошел еще дальше. Как написать код, который не так просто обнаружить?
          И если вначале идут простые примеры, то дальше начинается…
          Осторожно, чистое зло
        • Запускаем приложение ASP.NET MVC 4 на Ubuntu Server 12.04 + nginx

          Захотелось мне посмотреть, как работает реализация .NET на Linux. Решено было развернуть Ubuntu Server на нашем гипервизоре, установить свежий пакет mono и через nginx запустить ASP.NET MVC4 сайт.

          На официальном сайте mono готовый пакет для Ubuntu только 2-х летней давности. С этого момента начались поиски в сети путей осуществления задуманного. Результатом полученного опыта стал скрипт для автоматического развертывания на голой Ubuntu Server 12.04.3 или 13.04 всего необходимого для запуска сайтов ASP.NET MVC4:
          • Соберем из исходников и установим mono 3.2.1
          • Добавим monoserve скрипт в init.d для автоматического запуска сайтов и управления ими.
          • Установим nginx 1.4.1
          • Создадим и настроим простой сайт, чтобы проверить работоспособность всей связки.

          Сразу под катом находится строчка для автоматического выполнения всей процедуры, описанной в статье.
          Читать далее...
        • Непутевые заметки о ASP.NET MVC. Часть 1 (и единственная)

            В последнее время на Хабре часто начали появляться статьи о ASP.NET MVC. Однако в этой статье я бы хотел сделать несколько заметок по поводу построения приложений на вышеприведенном фреймворке: минимальный набор NuGet-packages (без которых грех начинать работу), логирование, подводные камни при использовании стандартных membership-, profile- провайдеров. И, напоследок, почему Web API из MVC 4 — то, что так долго мы все ждали.
            Поехали
          • Мой поиск работы C# программистом в Нью-Йорке

            imageЯ безработный! Теперь у меня будет время написать свою статью на Хабр! Эта мысль пришла ко мне значительно раньше страха перед предстоящими собеседованиями. Итак, мой контракт с инвестиционным банком в Нью-Йорке не был продлен, что явилось небольшой неожиданностью для меня. Мне предстояло съездить в давно запланированный отпуск и сразу по возвращению окунуться в процесс прохождения собеседований. После приятных мыслей о том, как много у меня теперь свободного времени на: домашний open source, Arduino и Хабр; стало приходить понимание, что прохождение собеседования — это отдельный навык, которого у меня нет. Я программист со стажем, работаю им со 2-ого курса, начинал с подработки на исследовательский институт, поработал 2 года в разработке игр, потом около 7 лет в компании, занимающейся аутсорсингом. Эта компания перевезла меня в Нью-Йорк и потом отпустила работать в тот самый банк. Последние серьезные собеседования я проходил 8 лет назад! Я постараюсь рассказать вам о том, каким я вижу процесс поиска работы С# WPF программиста в среде инвестиционных компаний Нью-Йорка. Здесь нет никакой морали — это просто моя история.
            Читать дальше →
          • Места распространения Android приложений


            В какой-то момент разработчику андроид приложений становится тесно в рамках одного магазина Google Play. И тогда он начинает задумываться о том, как бы еще донести до пользователей свои приложения. Оказывается, достаточно много вариантов это сделать.

            Перечислю те, которые попробовал сам. Сразу оговорюсь, что приложения у меня бесплатны, с рекламой внутри. С публикацией платных приложений разберусь, когда появятся достойные.
            Читать далее
          • KnockoutJS: Ajax grid view с нуля в 40 строк

              В последнее время на Хабре все больше упоминаний о KnockoutJS, и я не останусь в стороне от этого тренда.
              Сегодня я расскажу о том как сделать своими руками Ajax Grid View с фильтрацией и переходом по страницам написав, при этом, совсем немного кода.
              Начиная писать эту статью я чувствовал себя несколько неловко, да и сейчас ощущение не ушло. Все дело в том, что сама библиотека простая, паттерн MVVM простой, и рассказывать я буду простые вещи. Я уверен, что в ближайшее время Knockout получит достаточно большое распространение. А неловко мне от того, что уже через год-дугой кто-то наткнувшись на эту статью будет обескуражен простотой изложенного материала. Примерно так, как любой из вас сейчас, открывший статью о jQuery от 2007 года.

              Кто не испугался предполагаемого баяна, милости прошу под хабракат.

              Читать дальше →
            • Введение в CSS3 Multicolumn. Работаем с колонками

              • Tutorial
              apples

              Как расположить текст на странице в несколько колонок? И можно ли это делать автоматически? Наверняка, многие из тех из вас, кто занимается или занимался раньше веб-разработкой, сталкивались с такой задачей — и часто упирались в сложные решения, требующие хитрых стилей, либо применения дополнительных библиотек на JavaScript (см. например Columnizer-плагин для jQuery).

              Многоколоночная верстка контента (не путать с задачей общей многоколоночной верстки страницы, которая скорее ближе к проблеме расположения блоков по сетке) долго пробивала себе дорогу в мире веб-стандартов и, наконец-то, не просто достигла статуса Candidate Recommendation в виде соответствующего модуля CSS3 Multi-column Layout, но и получила достаточно широкую поддержку в браузерах: где-то с префиксами (-moz- или -webkit-) и где-то в актуальных (Opera 11.1+) и планируемых версиях (IE10+), причем сразу без префиксов.
              Читать дальше →
            • Введение в CSS3 Grid Layout. Работаем с сетками

              • Tutorial
              Update: Часть сведений в данной статье устарели. Рекомендую свежие материалы на css-live.ru.

              Введение


              intuition game grid

              Модуль CSS3 Grid Layout — это один из самых интересных, на мой взгляд, модулей в семействе CSS3. Официальная история модуля в виде черновика спецификации насчитывает сегодня чуть менее года. О предварительном анонсе еще с названием CSS Grid Alignment на TPAC 2010 Владимир Юнев писал еще в декабре 2010. Надо также отметить, что с чуть другим названием и несколько отличным синтаксисом, но с той же сутью, он был заявлен в качестве WD еще в 2007г. Сегодня работы по доводке модуля идут полным ходом, предварительная реализация уже есть в Internet Explorer 10 и есть надежда, что поддержка новых возможностей также появится в будущих версиях других популярных браузеров.

              Зачем нужен Grid Layout?


              Задача, которую решает модель CSS3 Grid Layout, очень проста и понятна любому веб-верстальщику (да и не только ему): предоставить удобный механизм расположения контента по виртуальной сетке.

              В отличие от старых табличных подходов, основанных на использовании table, здесь не замусоривается семантика документа и представление четко отделено от содержания. В отличие от различных вариаций блочной верстки со становящимися при сколь-нибудь сложной структуре безумными и многоэтажными float'ами в сочетании с вручную просчитанными отступами, здесь описание стилей становится тривиально простым и прозрачным. В отличии от абсолютного позиционирования с привязкой к координатам, здесь сохраняется гибкость. В отличие от популярных сегодня css/js-библиотек для разметки по сетке путем указания соответствующих классов (взять хоть те же bootstrap или yui css grids), здесь не замусоривается привязка классов.

              Сплошное удовольствие! Осталось только дождаться широкой поддержки :) Впрочем, если вы планируете делать приложения в стиле Metro для Windows 8 на html/js, ключевые возможности, описываемые в модуле CSS3 Grid Layout, уже работают — и можно двигаться вперед, используя удобные и практичные механизмы.
              Читать дальше →
            • Когда использовать Parallel.ForEach, а когда PLINQ

              • Translation

              Введение


              Обычно, при оптимизации программы для многоядерных компьютеров первым шагом является выяснение возможности разделения алгоритма на части, выполняющиеся параллельно. Если для решения задачи необходимо параллельно обрабатывать отдельные элементы из большого набора данных, то первыми кандидатами станут новые возможности параллельности в .NET Framework 4: Parallel.ForEach и Parallel LINQ (PLINQ)

              Parallel.ForEach


              Класс Parallel содержит метод ForEach, представляющий собой многопоточную версию обычного цикла foreach в C#. Подобно обычному foreach, Parallel.ForEach выполняет итерации над перечислимыми данными (enumerable), но с использованием множества потоков. Одна из более часто используемых перегрузок Parallel.ForEach выглядит следующим образом:
              
              public static ParallelLoopResult ForEach<TSource>(
              			 IEnumerable<TSource> source,
              			 Action<TSource> body)
              

              Ienumerable указывает на последовательность, по которой нужно выполнить итерации, а Action body задает делегат, вызываемый для каждого элемента. Полный список перегрузок Parallel.ForEach можно найти здесь.

              PLINQ


              Родственный с Parallel.ForEach PLINQ представляет собой модель программирования для паралелльных операций над данными. Пользователь определяет операцию из стандартного набора операторов, включающих в себя проекции, фильтры, агрегирование и т.д. Подобно Parallel.ForEach PLINQ достигает параллельности, разбивая входную последовательность на части и обрабатывая элементы в разных потоках.
              В статье выделяются различия между этими двумя подходами к параллельности. Разбираются сценарии использования, в которых лучше всего использовать Parallel.ForEach вместо PLINQ и наоборот.

              Выполнение независимых операций


              Читать дальше →
              • +67
              • 56.1k
              • 9
            • Анимированные баннеры на Javascript — это просто*

                *) На самом деле все равно сложно, но зато проще, чем было раньше.

                История началась с постановки задачи: нужно сделать анимированный баннер с примерно тридцатью объектами средствами HTML+javascript за один день. За день, конечно, баннер сделан не был, а был сделан за два усилиями трех человекодней. После выполнения задания осталась библиотека пакетной анимации, которую я назвал Scenario. О её доработанной версии я и хочу рассказать.

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

                Запуск сценария из любого места предельно прост:

                var newScenario = [...];
                $.scenario(newScenario, {
                    complete: function(time) {
                        alert('Готово!');
                    }
                });

                Осталось только разобраться, что писать вместо трех точек в примере :)
                Читать дальше →
              • Готовые решения на ASP.NET для создания веб-сайтов

                  Часто к платформе ASP.NET предявляют претензию об отсутствии готовых решений на основе которых можно стоить корпоративные сайты, форумы, блоги и т.д. и т.п. этом небольшом посте я привожу список самых популярных веб-приложений, написанных на ASP.NET, которые, к тому же, можно установить с помощью Web Platform Installer (WebPI).
                  Читать дальше →
                • Интеграция ASP.NET MVC 3 приложений с Facebook OAuth API. Часть 1: Авторизация

                    Зачем нужна авторизация на вашем сайте через Facebook?
                    На данный момент в социальной сети Facebook более 500 млн. пользователей. Многие сайты предоставляют возможность авторизироваться без дополнительной регистрации, где нужно заполнять много полей информации о себе. Если у вас есть аккаунт на Facebook, то вам достаточно войти на сайт используя его. Это экономит время, ведь регистрация нередко требует потратить минут 5-10.

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

                    Итак, приступим…
                    Читать дальше →
                  • CSS хаки

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