• Что такое grep и с чем его едят

      Эта заметка навеяна мелькавшими последнее время на хабре постами двух тематик — «интересные команды unix» и «как я подбирал программиста». И описываемые там команды, конечно, местами интересные, но редко практически полезные, а выясняется, что реально полезным инструментарием мы пользоваться и не умеем.
      Небольшое лирическое отступление:
      Года три назад меня попросили провести собеседование с претендентами на должность unix-сисадмина. На двух крупнейших на тот момент фриланс-биржах на вакансию откликнулись восемь претендентов, двое из которых входили в ТОП-5 рейтинга этих бирж. Я никогда не требую от админов знания наизусть конфигов и считаю, что нужный софт всегда освоится, если есть желание читать, логика в действиях и умение правильно пользоваться инструментарием системы. Посему для начала претендентам были даны две задачки, примерно такого плана:
      — поместить задание в крон, которое будет выполняться в каждый чётный час и в 3 часа;
      — распечатать из файла /var/run/dmesg.boot информацию о процессоре.

      К моему удивлению никто из претендентов с обоими вопросами не справился. Двое, в принципе, не знали о существовании grep.

      image

      Поэтому… Лето… Пятница… Перед шашлыками немного поговорим о grep.
      Читать дальше →
    • Индексы в PostgreSQL — 1

        Предисловие


        В этой серии статей речь пойдет об индексах в PostgreSQL.

        Любой вопрос можно рассматривать с разных точек зрения. Мы будем говорить о том, что должно интересовать прикладного разработчика, использующего СУБД: какие индексы существуют, почему в PostgreSQL их так много разных, и как их использовать для ускорения запросов. Пожалуй, тему можно было бы раскрыть и меньшим числом слов, но мы втайне надеемся на любознательного разработчика, которому также интересны и подробности внутреннего устройства, тем более, что понимание таких подробностей позволяет не только прислушиваться к чужому мнению, но и делать собственные выводы.

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

        В этой части мы поговорим про разделение сфер ответственности между общим механизмом индексирования, относящимся к ядру СУБД, и отдельными методами индексного доступа, которые в PostgreSQL можно добавлять как расширения. В следующей части мы рассмотрим интерфейс метода доступа и такие важные понятия, как классы и семейства операторов. После такого длинного, но необходимого введения мы подробно рассмотрим устройство и применение различных типов индексов: Hash, B-tree, GiST, SP-GiST, GIN и RUM, BRIN и Bloom.

        Индексы


        Индексы в PostgreSQL — специальные объекты базы данных, предназначенные в основном для ускорения доступа к данным. Это вспомогательные структуры: любой индекс можно удалить и восстановить заново по информации в таблице. Иногда приходится слышать, что СУБД может работать и без индексов, просто медленно. Однако это не так, ведь индексы служат также для поддержки некоторых ограничений целостности.
        Читать дальше →
      • Junior FPGA Design Engineer: как стать?

          Всем привет!

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

          Разработка под FPGA (ПЛИС) — это не просто какой-то язык. Это очень объемная область, с огромным количеством подводных камней и нюансов.

          В этой статье вы найдете:
          • список тем, которые должен освоить начинающий разработчик под FPGA
          • рекомендуемую литературу по каждой из тем
          • набор тестовых вопросов и лабораторных работ
          • классические ошибки новичков (и советы по исправлению)

          Добро пожаловать под кат!
          Читать дальше →
        • Как перезагрузить сервер?

            Abstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.

            Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.

            Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.

            В этой статье: что мешает серверу перезагрузиться и как ему помочь.

            Начнём с теории ребута.

            При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.

            Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится.
            Читать дальше →
          • Полный список флагов трассировки Microsoft SQL Server

              Microsoft SQL Server Флаги Трассировки


              Полный список Microsoft SQL Server флагов трассировки (359 флагов трассировки на текущий момент).


              ПОМНИТЕ: Будьте предельно осторожны с флагами трассировки, проверяйте их влияние в первую очередь в тестовой среде.

              Читать дальше →
              • +9
              • 17.3k
              • 8
            • Ежедневная работа с Git

              • Tutorial
              Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

              Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
              • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
              • будет ли менеджер и заказчик удовлетворён этим процессом?
              • будет ли легко работать разработчикам?
              • смогут ли новички быстро включиться в процесс?
              • можно ли процесс относительно легко и быстро изменить?


              Конечно, я попытаюсь рассказать обо всём по-порядку, начиная с основ. Поэтому, эта статья будет крайне полезна тем, кто только начинает или хочет разобраться с git. Более опытные читатели, возможно, найдут для себя что-то новое, укажут на ошибки или поделятся советом.

              Далее очень много букв случайным образом превратились в пост.
            • Обзор новых технологий в производстве источников питания

                Текущий месяц выдался удачным для разработчиков элементов питания. В различных источниках то и дело появляются новости о новинках в этой отрасли. Я решил собрать информацию о них и поделиться с вами. Под катом вас ждёт много различных технологий хранения энергии — от сахарных до квантовых.

                Читать дальше →
              • Структура белка: введение для айтишников

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

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

                Читать дальше →
              • Воскрешение ADOM



                  Томас Бискап запустил проект по сбору средств (на IndieGoGo) по воскрешению оригинальной roguelike-игры ADOM
                  Необходимое финансирование для разработки: $48K

                  Обещают:

                  • Стабильный релиз под Windows, Linux, MacOS, Amiga, NetBSD, FreeBSD (Android и iPad/iOS — в долгосрочных целях)
                  • Постоянный багфиксинг
                  • Балансировка внутриигровых систем и детализация мира
                  • Обновленный UI
                  • Тайловая графика
                  • Аудио эфекты и музыка
                  • Переписанное руководство пользователя
                  • Новый игровой контент


                  Читать дальше →
                • Ближайшее будущее аккумуляторных батарей

                  В последние годы все острее встает вопрос усовершенствования мобильных источников энергии — вопрос как глобальный, так и повседневный. Глобальная сторона заключается в том, что человечество, остро нуждаясь в энергии в любой её форме, выбрало в качестве свободноконвертируемой электрическую. Причина – относительно низкие потери при обратном переводе из электрической в любую другую, а так же низкие потери при передаче от точки выработки (электростанция) до стационарной точки потребления (э/розетка). Основным источником электроэнергии на сегодняшний день является сжигание на ТЭС невозобновляемого углеводородного топлива, которого с каждым годом все меньше, а цена всё выше. Основной вред окружающей среде наносят тем не менее не ТЭС, а двигатели внутреннего сгорания автомобилей, в виду компактности не столь эффективные и оснащенные не столь же хорошими системами очистки.
                  Все говорит, что работай автомобили на электротяге, наш мир стал бы намного чище, а жизнь со временем даже дешевле

                  Но вряд ли многие из нас, не считая борцов за зеленый мир, и даже считая оных, думают об этом каждый день. Гораздо чаще мы вспоминаем недобрым словом какой-нибудь значок на дисплее нашего ноутбука или телефона, увидев что пользоваться им осталось минут 20. И вопрошаем:”Ну когда же они сделают нормальную батарейку, а?”.
                  Читать дальше →
                • Искоренить Пиратство за 7 дней


                    В море синем, как в аптеке,
                    Всё имеет суть и вес -
                    Кораблю, как человеку,
                    Имя нужно позарез.
                    Имя вы не зря даёте,
                    Я скажу вам наперёд:
                    Как вы яхту назовёте,
                    Так она и поплывёт!
                    Как вы яхту назовёте,
                    Так она и поплывёт!
                    



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

                    В этой войне доблестные шпионы сражались на невидимом фронте с коварными разведчиками! Что то не так? Ах, да! Доблестными были именно разведчики, а шпионы были чертовски коварными! Игра слов или умысел пропагандистов?

                    Эта война давно закончилась, но опыт и эффективность ее пропагандистов никуда не делась. Сегодня их знания породили SOPA — Stop Online Piracy Act

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

                    1. Кто и когда решил назвать свободное распространение информации грязным термином «Пиратство» ?



                    2. Чем это грозит?



                    3. Что делать?



                    Всех кто задумался приглашаю под кат
                  • Опыт заказа в китайских интернет-магазинах

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

                        Я не знаю, видел ли кто-то из вас эту книгу, но это же жесть полнейшая.

                        image

                        — «Хвостик» после имени файла, отделяемый точкой, носит название расширения. Веб-дизайн, будучи синтетическим видом искусства, совмещает в себе:
                        > фотографии, которые существуют в виде файлов с расширением *.jpg (*.jpeg) или, значительно реже, *.gif (другие форматы графических файлов в Сети не применяются);

                        — Иногда полезно включить тэг [meta name=«generator» content="…"], чтобы показать, в какой программе сверстана страничка, поскольку это нередко помогает броузеру прочитать ту ахинею, которую накрутил визуальный редактор.

                        Читать дальше →
                      • Обзор систем для ведения домашней бухгалтерии

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

                          Если не оговорено отдельно, под «айфоном» подразумеваются все iOS-устройства. Комментарии к каждой программе я старалась давать по существу и для тех пунктов, которые не отражены в сравнительной таблице. Если в поле таблицы стоит звёздочка, то к данному значению есть комментарии в обзоре.

                          Общий момент — те программы, которые обновляют курс валют автоматически, делают это с finance.yahoo.com.
                          Читать дальше →
                        • Курс молодого Desire'вода

                          image
                          Написать подобную статью меня сподвигнул тот факт, что для человека, влившегося в стройные ряды Desire'водов, информация об платформе Android очень уж фрагментирована. С одной стороны платформа для всех Android устройств одна, с другой стороны для каждого устройства есть свои нюансы и тонкости. Кроме того информации на таких форумах как 4pda.ru и forum.xda-developers.com очень много, но как правило она размазана по всем темам. Приходится продираться сквозь сотни страниц в попытках извлечь ценные частицы информации.
                          Читать дальше →
                        • Ускорение загрузки Windows for fun and profit

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

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

                            Часто, интерфейс даже очень популярных Android-приложений спроектирован кое-как и складывается впечатление, что большинство разработчиков даже не слышало о User Interface Guidelines. Но следование рекомендациям не очень сложно, а иногда даже позволяет экономить время на разработку. Для того, чтобы показать, что это действительно так, я предлагаю пройтись по нескольким ключевым элементам проектирования интерфейса приложения на примере слегка продвинутого «Hello World».
                            Статья расчитана на начинающих Android-разработчиков. Исходный код можно скачать по ссылке в конце, а пояснения будут касаться:
                            • Создания всплывающего меню
                            • Проектирования окна настроек
                            • Работы с Nine-patch graphics

                            Читать дальше →
                          • Исследуем базы данных с помощью T-SQL

                            • Translation
                            Как dba и консультант по оптимизации производительности SQL Server в Ambient Consulting, я часто сталкиваюсь с необходимостью анализа узких мест производительности на экземплярах SQL Server, которые вижу первый раз в жизни. Это может быть сложной задачей. Как правило, у большинства компаний нет документации по их базам данных. А если есть, то она устарела, или же её поиск занимает несколько дней.

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

                            Если вы когда-нибудь пытались получить часть этой информации, с помощью GUI, я думаю вы будете приятно удивлены количеством той информации, которая, с помощью этих скриптов, получается мнгновенно.

                            Как и с любыми скриптами, сначала проверьте их в тестовом окружении, прежде чем запускать в продакшене. Я бы рекомендовал вам погонять их на тестовых базах MS, таких как AdventureWorks или pubs.

                            Ну, хватит слов, давайте я покажу скрипты!
                            Читать дальше →