• Ускорение загрузки Windows for fun and profit

      image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

      Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
      Под катом много однообразных картинок и немножко унылого текста
    • 1000+ часов видео по Java на русском

      • Tutorial
      Добрый день.
      Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
      1. Java Core
      2. Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
      3. Multicore programming in Java.


      Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

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

      (GolovachCourses.com)


      Здесь собраны несколько вариантов записи моего курса Java Core.
      Модуль #1 (Procedural Java):
      Набор июль 2013: #1, #2, #3, #4
      Набор апрель 2013: #1, #2, #3, #4
      Набор февраль 2013: #1, #2, #3, #4
      Набор январь 2013: #1, #2, #3, #4
      Набор октябрь 2012: #1, #2, #3, #4.
      Читать дальше →
      • +102
      • 1166k
      • 38
    • Хитрые задачи по Java

        Совсем недавно я сдал OCA Java SE 7 Programmer I. За время подготовки успел решить огромное количество задач и извлечь из них много тонких моментов языка. Самые интересные и ловкие — сохранял на будущее. И вот у меня накопилась небольшая личная коллекция, лучшую часть которой я здесь и опишу.

        В замечательной статье Знаешь ли ты JAVA, %username% и её второй части автор тоже поделился опытом после подготовки. Однако я пришёл к выводу, что могу добавить что-то своё. Так и зародилась эта статья.

        Читать дальше →
      • Видео-курс по JavaScript на русском языке

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

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



          Первая лекция: Введение в JavaScript, немного истории, числа (тут есть ошибка: функция toFixed округляет значения).



          Остальное – под катом.
          Читать дальше →
        • Подготовка к экзамену Oracle Java SE 7 Programmer II (1Z0-804)


          Приветствую уважаемых хабражителей и Java-программистов!
          Cтатья посвящена подготовке к сдаче экзамена Oracle Java SE7 Professional с кодовым номером 1Z0-804. Про это на Хабре уже было написано множество постов (например здесь, здесь, тут, здесь, здесь, тут, тут, и вот тут), поэтому постараюсь не повторяться и дополнить заметками о том что наиболее часто встречалось, важными нюансами, которые на мой взгляд были пропущены или недостаточно хорошо освещены в указанных статьях, и вообще в общедоступной литературе (сразу отмечу, что материал не претендует на полноту, здесь я лишь старался обозначить каверзные вопросы с экзамена и лаконично изложить некоторые сложные вещи). Так же поделюсь своими соображениями насчет того, по каким материалам лучше готовиться. С первого раза экзамен сдать не получилось, поэтому начал сохранять для себя различные заметки, где записывал всё что мне казалось сложным или трудно-запоминаемым. Которыми теперь и решил с вами поделится. Заранее прошу проявить понимание, если вы вдруг заметите ошибку, недочёт или очепятку — пишите в комментарии.

          Читать дальше →
        • React: javascript-фреймворк от Facebook

            Странно, что на Хабре до сих пор не писали о React — простом javascript-фреймворке от Facebook для создания веб-интерфейсов с переиспользуемыми компонентами.

            В статье я опишу только концепцию фреймворка в общих чертах. С пошаговым описание разработки демо-приложения неплохо справляется tutorial, в котором создается виджет для комментариев, подобный Disqus, правда, выглядящий несколько попроще, а именно, так:

            Смотреть
          • Про Linux — для любознательных Windows-пользователей



              Так уж получилось, что даже на Хабре многие имеют очень смутное представление о семействе OS Linux.

              Цель данной статьи – максимально популярным языком рассказать про особенности и отличия Linux от Windows для тех, кто вообще не имел с ним дела.

              Я уже не один год свободно пользуюсь Archlinux, загружая винду лишь «на поиграться». Данная статья рассказывает о вещах, которые я выяснил эмпирическим путем, тыкаясь словно слепой котенок. Если бы в свое время мне попалась бы именно такая информация именно в такой форме — это сэкономило бы мне как минимум 2 года, в течение которых я переходил с Windows на Linux.

              Станиславский заинтригован!
            • Введение в Spring Frameworks: Spring MVC

              Привет, Хабр.

              Это моя первая статья.Прошу сильно молотком не бить.

              Сегодня, этим сообщением начнется мой цикл статей о фреймворках Spring.

              Я не буду вдаваться в тонкости теории, здесь на хабре достаточно статей об этом. Предпочитаю практику.
              Тем не менее, стоит напомнить, что работать со Spring Framework можно как с помощью xml-конфигурации, так и с помощью аннотаций. Также, ничего не мешает комбинировать оба подхода.
              Лично я предпочитаю работать с аннотациями, чего и вам советую. Поэтому все примеры, которые я буду приводить, будут использовать аннотации.
              Читать дальше →
            • Подборка инструментов для фронт-энд разработки

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

              Картинки кликабельны.

              Form builder


              Формы являются очень важной частью любого веб-сайта, но их верстка может занять продолжительное время. Этот очень удобный инструмент, поможет вам создать красивую веб-форму очень быстро.
              image
              Читать дальше →
            • Книги, которые должен прочитать Java программист: от новичка до профессионала

              • Перевод

              Книги, которые должен прочитать Java программист: от новичка до профессионала


              [Примечание переводчика: термины градации «профессионализма» оставлены англоязычные в связи с трудностью их адекватного перевода на русский и несовпадением с привычными Junior-Middle-Senior-Lead. Перевод достаточно вольный — если знаний языка хватает, то лучше читать оригинал, как и советует автор. Оба языка для меня не родные, так что про ошибки сообщайте в личку — исправим. Здесь и далее в квадратных скобках примечания переводчика]

              Я заметил, что в последние месяцы я рекомендую одни и те же книги как новичкам, так и опытным разработчикам. Поэтому я решил составить список этих книг. Они составили мне неплохую компанию в процессе моего роста от новичка до сегодняшнего уровня (какой-бы он не был :) )
              Читать дальше →
            • Прекратите скручивать!

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

              Дальше много текста, фотографий, разборок. Ну все как обычно
            • Continuous Integration для Android

              После реализации пары проектов под Android, стало понятно, что, несмотря на их небольшие размеры и кажущуюся простоту, без автоматизированных сборок и тестирования не обойтись. Родилось желание получить следующие возможности:
              • unit тестирование,
              • интеграционное тестирование,
              • тестирование интерфейса,
              • тестирование этих типов тестов на различных версиях Android и конфигурациях девайсов,
              • рассылка по email в случае сломанного билда;
              • таже не помешает автоматическая сборка релизов.
              Читать дальше
            • Apache Maven — основы

                После публикации топика о Maven в комментариях возникли вопросы о том, как начать с ним работать, с чего начать, как составлять файлы pom.xml, откуда брать плагины и т.п. Данный топик будет своего рода getting started или f.a.q.
                Поехали!
              • Выводы по SQL injection



                  Я знаю, что тема SQL инъекций уже всем набила оскомину.

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

                  О том, как не допустить инъекций была уже масса статей — повторять не буду — сводится все к нескольким банальнейшим пунктам практики:
                  Читать дальше →
                • Сети для самых маленьких. Часть пятая. ACL и NAT

                  • Tutorial


                  Продолжаем развитие нашей маленькой уютной сети Лифт ми Ап. Мы уже обсудили вопросы маршрутизации и стабильности, и теперь, наконец, выросли для подключения к Интернету. Довольно заточения в рамках нашей корпоративной среды!
                  Но с развитием появляются и новые проблемы.
                  Сначала вирус парализовал веб-сервер, потом кто-то притаранил червя, который распространился в сети, заняв часть полосы пропускания. А ещё какой-то злодей повадился подбирать пароли на ssh к серверу.
                  А представляете, что начнётся, когда мы подключимся к Интернету?!
                  Итак, сегодня:
                  1) учимся настраивать различные списки контроля доступа (Access Control List)
                  2) пытаемся понять разницу между ограничением входящего и исходящего трафика
                  3) разбираемся с тем, как работает NAT, его плюсы, минусы и возможности
                  4) на практике организуем подключение к Интернету через NAT и увеличим безопасность сети, используя списки доступа.

                  Читать дальше →
                • Пересмотрите старые проекты для Android 4.0. Часть вторая

                    Совсем недавно я публиковал топик, в котором рассказывалось о коде, который работал в Android 2.3, но перестал работать в Android 4.0. Несколько человек написали лично на почту, поблагодарили за информацию и просили продолжить подобные публикации. На этот раз поговорим об ActionBar. У одного пользователя возникла проблема с кодом, который работал на Android 3.0, но опять перестал работать на Android 4.0.
                    Читать дальше →
                  • Маленькие хитрости Java. Часть 2

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

                      Buffered Streams

                      //медленно
                      InputStream is = new FileInputStream(file);
                      int val;
                      while ((val = is.read()) != -1) {
                      }
                      //быстро
                      InputStream is = new BufferedInputStream(new FileInputStream(file));
                      int val;
                      while ((val = is.read()) != -1) {
                      }
                      

                      Казалось бы — очевидная истина, неправда ли? Но как показал чужой код и опыт собеседования кандидатов, часть разработчиков определенно не понимает в чем преимущество буферизованных стримов. Кто до сих пор не разобрался — метод read() класса FileInputStream:
                      public native int read() throws IOException;
                      

                      Согласитесь, каждый раз делать системный вызов, чтобы считать один байт несколько расточительно. Собственно для того, чтобы избежать этой проблемы и были созданы оболочки-буферы. Все что они делают — при первом вызове системного read() считывают несколько больше (в зависимости от указанного размера буфера, котрый по умолчанию равен 8 кб) и при следующем вызове read() считывают данные уже из буфера. Прирост производительности — на порядок. Системные вызовы, на самом деле, это не всегда плохо, например:
                      System.arraycopy(src, srcPos, dest, destPos, length);

                      В случае копированния массива — системный метод будет гораздо быстрей реализованного на java. И еще — считывайте данные порциями, а не по байтам, это тоже позволит прилично сэкономить.
                      Читать дальше →
                    • Android Development Tutorial. Часть 1/?

                      • Перевод
                      Ларс Вогель — евангелист Eclipse.
                      Под катом Вы обнаружите перевод его статьи, которая описывает процесс создания Android-приложений с помощью Eclipse. Используется Eclipse 3.6, Java 1.6 и Android 2.3 (Gingerbread).
                      Часть 2
                      Читать дальше →
                    • Произносим правильно

                        Из знакомых мне айтишников очень немногие стараются правильно произносить английские слова. Конечно, привычнее произносить C++ как «си-плюс-плюс», а не «си-плас-плас» или «опен-бэ-эс-дэ», а не «оупэн-би-эс-ди».
                        Но когда «echo $value;» читают как «ечо валуй» — это уже не смешно. Другой человек вас может просто не понять, особенно иностранец.

                        В топике представлен небольшой список «сложных» слов, которые часто произносят неправильно.
                        Ориентироваться лучше не на мою (весьма приблизительную) транскрипцию, а на аудио.

                        ♫ — прослушать произношение в словаре
                        ► — прослушать произношение на youtube

                        Начнем с названий:
                        ABBYY аби
                        Adobe эдоуби [əˈdəʋbɪ]
                        Apache эпэчи [əˈpætʃiː] от «a-patchy»
                        Asus офиц. э́сус
                        амер. э́йсус

                         
                        BenQ бенкью
                        Cisco сискоу [ˈsɪskoʊ]
                        EBay ибэй
                        Eee PC и писи
                        Ethernet изэрнэт [ˈiθərˌnɛt]
                        Itanium айтэйниум [aɪˈteɪniəm]
                        Juniper джу́нэпэр [ˈdʒunəpər]
                        LaTeX лэйтех
                        лэйтек
                        латех
                        латек
                        [ˈleɪtɛk]
                        ['leɪtɛx]
                        [ˈlɑːtɛx]
                        [ˈlɑːtɛk]
                        Linux офиц. линэкс
                        вар. линукс
                        [ˈlɪnəks]
                        [ˈlɪnʊks]

                         
                        Mac OS X мэк оу-эс тэн
                        MySQL офиц. май-эс-кью-эл
                        вар. май-сиквел
                        как «My Ess Que Ell», см. оф. сайт
                        nginx энджин-икс (от engine-x)
                        PuTTY пати [ˈpʌtɪ] см. оф. сайт
                        Qt кьют [kyut] см.
                        TeX тех
                        тек
                        [ˈtɛx]
                        [tɛk]
                        не «текс»
                        XBox 360 экс-бокс фри сискти
                        Xen зен [ˈzɛn]
                        Xeon зион
                        Xerox зирокс [ˈzɪərɒks]
                        Xilinx зайлинкс [ˌzaɪliːŋks]
                        ZyXel рус. зайксел
                        амер. зайзел
                        см.


                        Аббревиатуры:
                        GNU гну вар. гню
                        GWT гвит [ˈɡwɪt]
                        ICANN айкэн
                        IEEE ай-трипл-и как «I triple E»
                        ISO айсо
                        PNG пинг [ˈpɪŋ] как «ping», см. спецификацию
                        PXE пикси [ˈpɪksi]
                        RUP рап
                        SCSI скази ['skʌzi]
                        SOAP соуп [soʊp]
                        SQL эс-кью-эл [ˈɛsˈkjuˈɛl] неофиц. «сикуел»
                        SWF свиф [ˈswɪf] см. спецификацию
                        WYSIWYG визивиг [ˈwɪziˌwɪg]
                        XAML зэмл [ˈzæməl]
                        XUL зул [ˈzuːl]
                        Yii длинное «и» [ji:]

                        Обычно аббревиатуры произносятся по правилам английского языка: API — эй-пи-ай, PCMCIA — пи-си-эм-си-ай-эй, OpenBSD — оупен-би-эс-ди и т.д.

                        Обычные слова дальше