• Подборка полезных CSS рецептов, или чем мы занимаемся на голых пятницах

    • Tutorial


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

    Итак, представляем вашему вниманию сборку интересных и (надеемся) малоизвестных HTML и CSS-рецептов. Будем рады, если каждый из вас узнает что-то новое!
    Вперед!
    • +101
    • 90,4k
    • 75
  • Введение в D3

    • Tutorial

    D3.js (или просто D3) это JavaScript-библиотека для обработки и визуализации данных. Она предоставляет удобные утилиты для обработки и загрузки массивов данных и создания DOM-элементов. Эта заметка описывает работу с основными методами библиотеки, она подойдёт для изучения основ библиотеки и погружения в её логику и возможности.

    Для понимания статьи пригодятся знания JS, HTML и CSS.

    Читать дальше →
    • +55
    • 128k
    • 7
  • Освежение угрюмого интерфейса MantisBT


    MantisBugTracker makes collaboration with team members & clients easy, fast, and professional.
    Так написано на сайте разработчиков этого продукта. Mantis был разработан как аналог очень похож на Redmine (думаю все знают что это такое) и написан на php (благодаря чему прекрасно чувствует себя на всех php-хостингах и т.п.).
    Надо сказать, что продукт вполне меня устроил несколько лет назад в плане функционала: тут вам и email-уведомления, и time-трекинг и прочие штуки, которые мы видели в Redmine. Плюсом для меня так же являлось то, что Mantis не перегружен функционалом. Продукту уже несколько лет, он имеет не малую аудиторию и небольшую поддержку её стороны. Однако за все годы существования MantisBT его разработчики ни разу не задумывались об улучшении дизайна своего продукта. Более того долгий гуглинг (не убивайте за сленг) на тему обновления дизайна этого замечательного баг-трекера не дал удовлетворительных результатов. А дизайн в MantisBT, надо сказать, плохой. Очень плохой.
    Под катом много трафика и немного слов о том, как я улучшаю дизайн MantisBT делая его все более и более менее плохим (ух, масло масляное прямо).
    Читать дальше →
  • UI в Enterprise-приложении, или как мы делали удобную систему для создания карт

      Обычно мы рассказываем про то, как делаем внешние продукты или их отдельные фичи — сам 2ГИС, его графику и типографику или Этажи. При этом тема внутренних продуктов ещё ни разу не поднималась. Исправляем эту досадную оплошность на примере «Fiji» — продукта для отрисовки интерактивной карты.


      Читать дальше →
    • Решения разработки баз данных

      Добрый день! В процессе развития проекта приходится сталкиваться с проблемой производительности баз данных, т.к. объём данных растёт, и волей неволей выплывают проблемные участки.

      В данном посте описаны не очень удачные решения, которые незаметны на ранних стадиях проекта. И решения, которые могут в дальнейшем в разы повысить производительность.

      Пост больше рассчитан на более опытных разработчиков, которые уже возможно ищут решения, поэтому буду краток.
      Читать дальше →
    • PDFsharp and MigraDoc Foundation (Основы)

        Так как статья, из-за которой я получил инвайт куда-то пропала, хочу опубликовать ее снова.

        Ввиду небольшого количества бесплатных библиотек для работы с PDF в .Net а также недостаточного освещения их на русском языке хочу рассказать о работе с такой замечательной библиотекой как PDFsharp and MigradDoc
        Читать дальше →
        • +10
        • 13,6k
        • 4
      • SQL Server 2008: бэкапим с умом. Часть 1: Теория

        Добрый день, друзья. В этой статье я хотел бы рассказать, о чем стоит задуматься, прежде чем настраивать систему резервного копирования баз данных. Несмотря на то, что в первую очередь рассматривается использование данного подхода с MS SQL Server, принципы, изложенные здесь, легко проецируются на любую другую технологию. Ну что ж, поехали.

        Читать дальше →
      • Запускаем приложение 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
        • Создадим и настроим простой сайт, чтобы проверить работоспособность всей связки.

        Сразу под катом находится строчка для автоматического выполнения всей процедуры, описанной в статье.
        Читать далее...
      • Заметки о дизайне для разработчиков

        • Перевод
        Я разработчик. Я не дизайнер. У меня нет опыта работы дизайнером. Я никогда не читал книг о дизайне. И, тем не менее, годами я учился созданию веб-приложений и сайтов, которые бы выглядели профессионально.

        Под катом список вещей, которые, на мой взгляд, важны, чтобы набить руку в дизайне, когда за вашими плечами прошлое разработчика.

        DISCLAIMER: Оригинальная статья написана программистом, так что дизайнеры могут посчитать часть ниже написанного полной ересью, и это их право. ЦА статьи — разработчики, которым нужно заниматься дизайном.

        Читать дальше →
      • Дюжина логических задач с собеседований

          image

          Не знаю, как у вас, но у меня любимая часть интервью — логические задачи.
          Довелось пройти немало собеседований на вакансию разработчика, поэтому набралась небольшая коллекция.
          Спешу поделиться с вами!

          Некоторые задачи проще и широкоизвестные, другие заставляют хорошенько задуматься.
          Ответы пока что публиковать не буду, надеюсь, вы сами сможете всё решить.
          Предлагаю размять свой мозг…
          Читать дальше →
        • StackOverflow: 560 млн показов в месяц, 25 серверов

            StackOverflow опубликовал статистику посещаемости по всем сайтам StackExchange. На данный момент StackExchange занимает 54-е место в интернете по аудитории. На сайте зарегистрировано 4 млн пользователей, опубликовано 8 млн вопросов и 40 млн ответов. Посещаемость составляет 560 млн просмотров в месяц.

            Что удивительно, для работы StackOverflow хватает всего 25 серверов. Но поскольку нагрузка на ЦП составляет около 10-15%, то всю работу могли бы выполнять и 5 серверов.
            Читать дальше →
          • Обзор наиболее интересных материалов по анализу данных и машинному обучению №5 (7 — 21 июля 2014)


              Представляю очередной выпуск обзора наиболее интересных материалов, посвященных теме анализа данных и машинного обучения. Как всегда есть материалы по алгоритмам машинного обучения (в том числе Deep Learning). Несколько практических статей по популярному пакету для машинного обучения Scikit-Learn для Python. Есть статьи, посвященные практическому применению языка R. Некоторое количество материалов посвящено теме Data Engineering. Присутствуют интересные статьи про популярные проекты 'Google Brain' и 'Project Adam'.

              Читать дальше →
            • Как работает международный роуминг

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

              Об услуге


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

              Авторизация

              Первое действие, которое происходит при попытки зарегистрироваться в сети зарубежного партнера, – это проверка абонента на «валидность». Этим занимается VLR/MSC, в зоне действия которого находится MS. После того как гостевой VLR/MSC получит команду «Location Update» от MS, зная IMSI абонента, по MAP отправляет сообщение «Send Authentication Info» на HLR; он же в свою очередь проверяет, что MS и полученный IMSI действительны. Если проверка прошла успешно и абонент является «валидным», HLR отправляет IMSI в AUC. AUС генерирует триплет (SRES, RAND, Kc) и отправляет его в HLR, затем HLR отправляет эти данные на VLR/MSC, который обслуживает MS. После того как VLR/MSC получил эти данные, VLR/MSC посылает RAND на MS. Получив запрос RAND, MS подставляет полученный RAND и Ki(записан на SIM карте) и вычисляет SRES, который отправляет в VLR/MSC. Если SRES, полученный от MS, совпадает со SRES, полученным от AUC, тогда MS считается авторизованный.
              Читать дальше →
            • Обзор расширений Visual Studio для веб-разработчиков

              • Перевод
              На конференции //build/ у меня был доклад о Visual Studio Web Tools и расширении Web Essentials. Вы можете найти этот доклад онлайн на сайте Channel9. Во время доклада я использовал несколько расширений, которые будут полезными для любого веб-разработчика Visual Studio 2013. Ниже вы найдете список этих расширений.

              Web Essentials


              logoСайт: http://vswebessentials.com
              Загрузить: Web Essentials в галерее VS

              Это расширение команды ASP.NET и Web Tools, которое является неофициальной площадкой для тестирования и обкатки функций. Само расширение развивается opensource-сообществом. Web Essentials предлагает огромное число новых возможностей для веб-разработчиков, такие как компиляторы LESS/Sass/CoffeeScript, дополнительные возможности работы с кодом JavaScript/CSS/HTML/JSON, валидаторы, генераторы спрайтов изображений и многое другое.

              SideWaffle


              imageСайт: http://sidewaffle.com
              Загрузить: SideWaffle в галерее VS

              Очень вкусное дополнение для Visual Studio. Это отличный набор шаблонов, который содержит как шаблоны проектов, шаблоны элементов, так и сниппеты для широкого круга сценариев: от создания приложений Angular.js, проектов Nancy FX и до плагинов Browser Link, расширений Chrome и многого другого.
              Читать дальше →
              • +29
              • 36,3k
              • 7
            • Как я возил робота, чуть не поседел и залил кровью серверную

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


                Вот так выглядит ленточное хранилище (наше было поменьше) и библиотечный робот (наш такой же). Китаец в комплект не входит.

                Часть 1. Коробка


                Помню, стояли последние дни ноября. Уже думая об окончании рабочего дня, я планировал свой вечер, когда вдруг мне сообщили, что в славном сибирском городе N у нашего заказчика сломалась ленточная библиотека. Запчасть сразу же отправили транспортной компанией, но вот уже 3 дня, как она все еще была в пути. Транспортная компания невнятно объяснялась и хмыкала в телефон, а заказчик стал не в шутку нервничать. Прогнозы были неопределенные, поэтому было принято решение везти еще одну запчасть своими силами на самолете. Сотрудник склада вручил мне габаритную коробку весом килограмм десять, обклеенную штрих-кодами и стикерами, и радостно хлопнул меня по плечу со словами: «Только не вздумай в багаж сдавать — помнут».

                Коробка меня, безусловно, беспокоила, но не меньшее беспокойство мне внушал пакет с сухим молоком, который в последний момент мне вручил менеджер проекта. «У них там какие-то траблы с молочкой сейчас… из-за непогоды что ли… ребята местные просили 2 кг им привезти. Тебе ж не сложно?» — сказал он. По выражению его лица и характерному жесту ладони, как бы прикрывавшей мне рот, было ясно, как он сейчас хотел, чтобы я оказался сговорчивым или даже немым.
                Читать дальше →
              • Дайджест статей по анализу данных №3 (09.06.2014 —22.06.2014)


                  Добрый день, уважаемые читатели.
                  Пролетели 2 недели и пришло время нашей подборки материалов по анализу данных. Сегодняшний дайджест получился большим, и признаюсь често сам осилил не все, что в него попало. Но так как на вкус и цвет товарище нет, то я решил выложить всю подборку.
                  Итак, из сегодняшней подборки вы узнаете о том как использовать хранилища данных различных типов в одном проекте, посмотрите какими большими данными может обладать бизнес и как их анализ может ему помочь. Также в нашей подборке будет статья посвященная алгоритму FTCA, а также будет материал про сравнени различных алгоритмов машинного обучения.
                  Читать дальше →
                  • +42
                  • 19,3k
                  • 2
                • Несколько интересностей и полезностей для веб-разработчика #19

                    Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

                    DC.js



                    Библиотека позволяет создавать великолепные многоуровневые/масштабируемые кроссплатформенные графики и диаграммы с моментальным перерендерингом при пользовательском взаимодействии. За процесс визуализации отвечает знаменитая d3.js, а за анализ многомерных наборов данных crossfilter.js. Кстати кроссфильтр — проект небезызвестной компании Square.
                    chart.renderlet(function(chart){
                        // smooth the rendering through event throttling
                        dc.events.trigger(function(){
                            // focus some other chart to the range selected by user on this chart
                            someOtherChart.focus(chart.filter());
                        });
                    })
                    


                    Читать дальше →
                  • 10 главных выводов, которые я сделал за Год Изучения Продуктивности

                    • Перевод
                    Предисловие переводчика: В мире написано столько книг по личной эффективности и тайм-менеджменту, что берясь за этот перевод я безусловно задавал себе вопрос: «А есть ли здесь вообще что-то новое, ради чего эту статью стоит переводить, и главное читать»? Сначала мне казалось, что я ответил на этот вопрос «да», однако реальность оказалась несколько сложнее. 

                    Сейчас я думаю, что сказать что-то новое человеку, который прочитал хотя бы 2-3 книги по тайм-менеджменту и личной эффективности практически невозможно. Однако существует огромная пропасть между тему, что люди знают, и тем, что люди делают. Поэтому если у вас уже есть какой-то багаж знаний по личной эффективности, я советую вместо вопроса «это что-то, чего я не знаю?» задавать другие вопросы:

                    1. Согласен ли я с написанным?
                    2. Если да, поступаю ли я так?
                    3. Если нет, почему и что я могу сделать чтобы начать поступать правильно? 

                    Уверен, так статья принесет вам гораздо больше пользы.

                    Должен сказать, что я с огромным удовольствиям ходил по ссылкам в этой статье, особенно по тем, которые описывают эксперименты Криса (такие как переключение между 90-часовой и 20-часовой рабочими неделями). Поэтому я принял решение сохранить все эти ссылки в переведенной статье.

                    Также хотел бы сделать замечание для любителей красивого русского языка. Я довольно долго думал, менять ли «продуктивность»  на более близкие родному уху «производительность» и «личную эффективность», но в итоге решил оставить всё как есть – главным образом из-за невозможности использования одного и того же слова в разных контекстах.

                    В качестве последнего пожелания – это довольно длинная статья, поэтому читайте продуктивно: не переключайтесь между задачами в процессе чтения; делайте перерывы если ощущаете усталость и потерю концентрации; записывайте полезные мысли, не надеясь на память.

                    Приятного чтения!
                    Читать дальше →
                  • Про котиков, собак, машинное обучение и deep learning

                    image
                    «В 1997 году Deep Blue обыграл в шахматы Каспарова.
                    В 2011 Watson обставил чемпионов Jeopardy.
                    Сможет ли ваш алгоритм в 2013 году отличить Бобика от Пушистика?»


                    Эта картинка и предисловие — из челленджа на Kaggle, который проходил осенью прошлого года. Забегая вперед, на последний вопрос вполне можно ответить «да» — десятка лидеров справилась с заданием на 98.8%, что на удивление впечатляет.

                    И все-таки — откуда вообще берется такая постановка вопроса? Почему задачи на классификацию, которые легко решает четырехлетний ребенок, долгое время были (и до сих пор остаются) не по зубам программам? Почему распознавать предметы окружающего мира сложнее, чем играть в шахматы? Что такое deep learning и почему в публикациях о нем с пугающим постоянством фигурируют котики? Давайте поговорим об этом.
                    По заветам издателей Стивена Хокинга - без формул
                  • Видео-курс по Swift на русском языке

                      Здравствуй, Хабр!

                      Мы сделали видео-уроки по языку Swift на основе бесплатной книги The Swift Programming Language от Эппл.



                      Все 32 урока доступны на нашем сайте. Несколько уроков – под катом.
                      Читать дальше →