Pull to refresh
0
0
Лянгузов Алексей @LeshaL

User

Send message

Подводные камни Bash

Reading time 32 min
Views 94K


В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


Читать дальше →
Total votes 143: ↑141 and ↓2 +139
Comments 63

DevOps — автоматизируй всё

Reading time 8 min
Views 82K
Целью статьи является дать основные представления о DevOps и практиках, используемых при этой методологии. Тут не будет сложных терминов, конкретных продуктов и road map внедрения DevOps, но, надеюсь, будет интересно ознакомиться.


Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Comments 13

Разработка Docker контейнеров с помощью системы многоцелевых сценариев Sparrow

Reading time 11 min
Views 7.4K

В этой статье я хотел бы рассказать как можно создавать сценарии сборки имиджей для Docker контейнеров с помощью системы многоцелевых сценариев Sparrow*.


Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Comments 67

Тест производительности: удивительно и просто

Reading time 15 min
Views 37K
Так сложилось, что последние полгода я активно занимался тестами производительности и мне кажется, что в этой области IT царит абсолютное непонимание происходящего. В наше время, когда рост вычислительных мощностей снизился (vertical scalability), а объем задач растет с прежней скоростью, проблема производительности становится всё острее. Но прежде, чем броситься на борьбу с производительностью, необходимо получить количественную характеристику.

Краткое содержание статьи:

Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 5

Язык шаблонов для универсального сигнатурного анализатора кода

Reading time 5 min
Views 8.2K

Процесс сигнатурного анализа кода в нашем проекте PT Application Inspector разбит на следующие этапы:


  1. парсинг в зависимое от языка представление (abstract syntax tree, AST);
  2. преобразование AST в независимый от языка унифицированный формат;
  3. непосредственное сопоставление с шаблонами, описанными на DSL.

О первых двух этапах было рассказано в предыдущих статьях «Теория и практика парсинга исходников с помощью ANTLR и Roslyn» и «Обработка древовидных структур и унифицированное AST». Данная статья посвящена третьему этапу, а именно: различным способам описания шаблонов, разработке специализированного языка (DSL) для их описания, а также примерам шаблонов на этом языке.


Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 6

Полный перевод Unix-коанов на русский язык

Reading time 16 min
Views 75K


Представляю на ваш суд ещё один перевод коанов о Мастере Фу на русский язык. В данный сборник вошли все коаны, на данный момент опубликованные на сайте Эрика Реймонда. Надо сказать, что сам Эрик личность весьма неординарная, но упоминания в данной статье стоящая. Помимо холиваров в списках рассылки всевозможных проектов за его авторством также несколько серьёзных трудов о Unix — в том числе и о сообществе, без которого экосистема современных открытых проектов не была бы возможной (полный список книг). Идея перевести коаны в очередной раз пришла мне в голову во время чтения одного из таких трудов, а именно «The Art of Unix Programming», поскольку многое из скрытого смысла коанов становится ясно только после прочтения очередной главы оттуда.

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

Итак
Total votes 126: ↑123 and ↓3 +120
Comments 65

Map/Reduce: решение реальных задач — TF-IDF

Reading time 6 min
Views 21K
Вчера я задал вопрос в своем ХабраБлоге — интересно ли людям узнать, что такое Hadoop с точки зрения его реального применения? Оказалось, интересно. Дело недолгое — статью я написал довольно быстро (по крайней мере, ее первую часть) — как минимум, потому, что уже давно знал, о чем собираюсь написать (потому как еще неплохо помню как я сам тыкался в поиске информации, когда начинал пользоваться Hadoop). В первой статье речь пойдет об основах — но совсем не о тех, про которые обычно рассказывают :-)

Перед прочтением статьи я настоятельно рекомендую изучить как минимум первый и последний источники из списка для чтения — их понимание или хотя бы прочтение практически гарантирует, что статья будет понята без проблем. Ну что, поехали?

Что такое Hadoop?




Ну скажите, какой смысл об этом писать? Уже не раз это проговаривалось, неоднократно начинали писаться посты на тему Hadoop, HDFS и прочая. К сожалению, обычно все заканчивалось на довольно пространном введении и фразе “Продолжение следует”. Так вот: это — продолжение. Кому-то тема, затрагиваемая в этой статье может показаться совершенно тривиальной и неинтересной, однако же лиха беда начало — любые сложные задачи надо решать по частям. Это утверждение, в частности, мы и реализуем в ходе статьи. Сразу замечу, что я постараюсь избежать написания кода в рамках этой конкретной статьи — это может подождать, а понять принципы построения программ, работающих с Map/Reduce можно и “на кошках” (к тому же с текущей частотой кардинального изменения API Hadoop любой код становится obsolete примерно через месяц).

Когда я начинал разбираться с Хадупом, очень большой сложностью лично для меня стало первоначальное понимание идеологии Map/Reduce (я предпочитаю писать это словосочетание именно так, чтобы подчеркнуть, что речь идет не о продукте, а о принципе). Суть и ценность метода станет понятна в самом конце — после того, как мы решим несложную задачу.
Читать дальше →
Total votes 46: ↑38 and ↓8 +30
Comments 18

ELK+R как хранилище логов

Reading time 3 min
Views 33K
В компании заказчика появилась необходимость в неком хранилище логов с возможностью горизонтального масштабирования. Исходя из начала задачи первая мысль — Splunk. К сожалению, стоимость данного решения уходила далеко за пределы бюджета заказчика.

В итоге выбор пал на связку Logstash + Elasticsearch + Kibana.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 25

Будущее гибкой разработки ПО

Reading time 14 min
Views 21K

Программное обеспечение проникает во все щели человеческого общества. Мы узнаем погоду через интернет, а не через обычный градусник за окном. Мы едем по новому адресу с навигатором, а не ищем квадрат G7 на странице 59. Мы включаем RunKeeper, когда катаемся на велосипеде, чтобы узнать среднюю скорость и похвастаться в твиттере. Мы используем софт каждый день. Наверное, бОльшую часть жизни мы уже проводим в обнимку с любимыми гаджетами и программным обеспечением, а не с любимым человеком.

Проблема в том, что никто не знает, как на самом деле писать классный софт быстро и правильно. Waterfall благополучно скончался на рубеже веков, а новые методы разработки (agile) пока не могут решить фундаментальные проблемы.
Узнать, что нам всем делать и как с этим жить
Total votes 190: ↑180 and ↓10 +170
Comments 81

Курс от Яндекса о том, что должен знать каждый разработчик, который хочет делать большие системы. Модное слово DevOps и другое

Reading time 5 min
Views 107K
Всю рутину, которую можно отдать роботам, нужно отдать роботам. Большие системы без этого невозможны. В разработке и тестировании очень много похожих задач, которые не требуют высокой квалификации, но отнимают много времени. Человек, который умеет обеспечить разработку, тестирование и деплой – это редкий специалист и его на количество страничек никак не масштабируешь.

В Яндексе тестировщику невозможно без автоматизации. Мы даже развиваем экспериментального робота, который способен брать на себя функциональное тестирование. В какой-то момент мы поняли, что не так много людей осознают, сколько сейчас есть возможностей работать не 12 часов, а головой. Собрав весь свой опыт в тестировании и деплое, мы открыли в питерском офисе Яндекса Школу автоматизации процессов разработки. У нас получилась школа, где каждый, кто пишет код, может получить базовый набор знаний о том, как собрать, запустить и поддерживать сервис в продакшене так, чтобы это стоило недорого.



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

Сейчас занятия закончились, и мы, как и обещали, выкладываем записи лекций, которые перемежаются с мастер-классами, для всех желающих. Понятно, что наш опыт и знания – не 42, но мы надеемся, что они принесут вам пользу.
Читать дальше →
Total votes 70: ↑67 and ↓3 +64
Comments 18

100 достойных компьютерных игр для DOS, появившихся в восьмидесятых и девяностых годах

Reading time 1 min
Views 57K
Во блоге «Geeks are Sexy» 30 июня была опубликована инфографика «List of Worthwhile DOS Games», первоисточником которой является одноимённая блогозапись во блоге «Information2Share» от 4 июня.

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

Сотня отобранных для инфографики компьютерных игр представлена в качестве матрицы 10×10 элементов, изображённых на чёрном фоне в форме дискет — вот уменьшенный пример:

[фрагмент]

Идите и глядите: «List of Worthwhile DOS Games» (4337×4762 пиксела, 7 793 317 байтов).

Читать дальше →
Total votes 66: ↑60 and ↓6 +54
Comments 154

Налоги в США. Часть 1. Введение, income tax, федеральный налог, налог штата, Social Security taxes

Reading time 7 min
Views 220K

Введение


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

В очередной раз наткнувшись на такое обсуждение, я спросил тут же в комментарии и даже задал соответствующий хабравопрос — народ, а может вместо того, чтобы беспорядочно спорить о налогах в США в куче разных топиков, давайте я напишу отдельный подробный пост на эту тему, и там и будем спорить? За этот комментарий и хабравопрос я получил изрядно кармы и хабрасилы, и, собственно, на этом можно было бы и остановиться ибо цель достигнута, муа-ха-ха. Однако, меня уже начинают спрашивать некоторые люди, где же обещанная статья, и судя по всему, отвертеться от написания поста мне не удастся…

Обсуждающие налоги в таких топиках делятся, как правило, на три заметные группы:

  • Те, кто о налогах в США знает мало, но хотел бы узнать побольше из первых рук, а так же задать в одном месте все интересующие вопросы и получить ответы всего за 0.99$ за один ответ!
  • Те, кто реально разбирается в предмете (в 90% случаев это люди, работающие и живущие в США). В обсуждениях участвуют обычно короткими репликами, так как вопрос сложный и расписывать все в деталях каждый раз лень и вообще дело неблагодарное.
  • Те, кто о налогах в США знает из разных сомнительных источников, вроде блогпостов диванных аналитиков, но мнение имеет.

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

В первой части я напишу про налоги вообще, про федеральный налог и налог штатов и как они вычисляются и про Social Security / Medicare tax.

Во второй части (coming soon) — про годовой цикл налогообложения и различные формы — W-2, W-4, 1040NZ и прочее и прочее.

В третьей части (coming soon) — про процесс подачи Tax Return, про сайты которые помогают заполнять здоровенные формы, про применение налоговых вычетов, и, ГЛАВНОЕ о налогах в США — если есть основания, как можно получить обратно существенную часть удержанных с вас налогов. Поэтому, читая этот пост, держите в голове — большинство людей платит существенно меньшие налоги, чем те, которые я тут вычисляю для примера без учета возможных вычетов.

Поехали.
Читать дальше →
Total votes 129: ↑122 and ↓7 +115
Comments 103

Non-WYSIWYG диаграммы в вики

Reading time 3 min
Views 4.6K
Диаграммы постоянно используются в технической документации, чтобы проиллюстрировать какую-либо мысль — многие факты проще изложить графически, чем текстом.



Я хочу поговорить о том, как вставлять диаграммы на страницы вики (под словом вики в этой статье подразумевается исключительно MediaWiki). Стандартный подход — хранить диаграммы в файлах внутри самой вики — имеет свои недостатки; о них — под катом. Я попробовал использовать Graphviz — инструмент, который сам рисует графы по заданным данным. Вот исходник картинки, с которой началась эта статья:

digraph A {
Feedback -> New_Assigned [dir="both"];
New_Assigned [label="New / Assigned"];
New_Assigned -> Rejected [dir="both"];
Reopen -> Rejected;
Reopen -> New_Assigned;
New_Assigned -> Resolved -> Testing -> Approved -> Closed;
Testing -> Closed;

{ rank=same; Feedback; Reopen; }
{ rank=same; Resolved; Testing; Approved; }
}

Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 15

Презентация средствами HTML5

Reading time 3 min
Views 14K
image
Обратил внимание, что в настоящее время программисты Google начали использовать новую форму представления своих презентаций.

Типичный пример, еще пример — мы видим фреймы, эффекты, изображения, общий стиль.

Несложный поиск привел к удобному шаблону, который при своей простоте позволяет создавать неплохие презентации с легко внедряемыми элементами
Читать дальше →
Total votes 114: ↑110 and ↓4 +106
Comments 40

Когда лицензионный контент не нужен

Reading time 4 min
Views 22K
Вчера вон там появилась блогозапись уважаемого forgotten о том, какою интересною была бы система безлимитного доступа к лицензионному контенту за фиксированную абонентскую плату, вносимую помесячно.
> 600
комментов
Многие из вас оставили там комментарии, посвящённые целому ряду животрепещущих вопросов, как-то: можно ли считать «пирата» ещё и «вором», а не то и «насильником»; каков был бы приемлемый размер такой абонентской платы (достаточно ли двухсот рублёв, или надобно полтыщщи); уместно ли хрустеть попкорном в кинотеатре во время просмотра; что случается, когда приходится разлочить беспроводной модем для работы под Линуксом или истребовать с парикмахера кучу деньжищщ за некорректную пострижку; похожа ли эта схема на ту, которою в своей деятельности руководствуется печально и мрачно известное нам РАО; способна ли такая система стать приемлемою на Камчатке, где за 64 kbps безлимита дерут астрономическую сумму (шесть тыщщ рублёв!); пожелает ли правоторговец вообще подсоединяться к этакой системе (не поощрит ли он тем самым своих конкурентов); возможно ли грабить и расшаривать стримы в торрентах парой-тройкой-другою движений мыши; будут ли правоторговцы делиться с авторами, и если да, то как; не достаточно ли концертов для вознаграждения исполнителей.
К сожалению, почти не была никем затронута тема более высокого качества нелицензионного контента по сравнению с лицензионным. Только TheShock вспомнил и привёл превосходную картинку о том, что правоторговцы в нагрузку к видеозаписям обожают «впаривать» и непропускаемые предупреждения о недопустимости копирования диска, и рекламу других фильмов, так что всё это неимоверно «достаёт» зрителя даже прежде, чем он приступит к просмотру желаемого фильма:

[картинка о раздражении зрителя видеозаписями, навязываемыми «в нагрузку»]

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

Читать дальше →
Total votes 380: ↑339 and ↓41 +298
Comments 398

Amazon запускает бесплатное хранилище файлов и музыки

Reading time 1 min
Views 989
Новый сервис Amazon Cloud Drive позволит пользователям бесплатно хранить 5 Гб данных, которые можно будет загружать через браузер или через stand-alone клиент для Maca и Windows. Основным сценарием использования Amazon считает хранение музыки, поэтому в дополнение выпущен Amazon Cloud Player (встроен в приложение Amazon MP3, пока доступен только на Android).

Единственное огорчение — на данный момент сервис не работает в Opera.

Еще подробности:

— Хранить можно не только mp3 или aac (DRM-файлы не загрузятся), но и видео, картинки и любые документы.
— Если вы покупали mp3 у Amazon — они не будут учитываться в размере хранимых файлов
— Если вы покупали альбомы у Amazon — вам накинут еще 20 GB на 1 год
— Пространство сверх 5 Гб можно будет докупать ($20 за 20Гб, $50 за 50 и $100 за 100, а еще $1000 за терабайт :)
Total votes 75: ↑70 and ↓5 +65
Comments 106

Загрузочный телефон

Reading time 1 min
Views 40K
У вас наверняка есть «обычный сотовый телефон», умеющий звонить, играть музыку с флеш-карты и прикидываться по случаю кардридером при подключении к «большому брату». Ну или был. Или есть у вашей второй половины/родителей/детей/бабушек/дедушек/etc. Вы никогда не думали использовать его более гиковским способом, чем просто средство связи? Я не имею в виду модификацию прошивок и получение консольного доступа к самому телефону, нет — все намного банальнее и интереснее одновременно.


рецепт приготовления
Total votes 342: ↑278 and ↓64 +214
Comments 133

Руководство для новичков в Twitter

Reading time 1 min
Views 435
Новичкам всегда сложно разобраться с новыми сервисами: английский язык, непонятные функции и настройки. До сегодняшнего дня Twitter был одним из таких сайтов. Но благодаря старанием нашей маленькой команды (из 2 человек) мы создали лучшую инструкцию для новичков в Twitter.

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

Во-вторых, это дизайн. Мы подошли к решению проблемы со всей любовью, организовали и отсортировали материал с лучшей степенью наглядности и читаемости. А какие замечательные картинки у нас получились!

И в-третьих, это та подробность с которой мы все описали. Мы не упустили ни одой детали поэтому новичок не запутается в освоении нашего руководства. А так же, мы ответили на все популярные вопросы, которые задают пользователи!

Нужна помощь в освоении Twitter? Тогда милости просим — Руководство для новичков в Twitter!
Total votes 39: ↑12 and ↓27 -15
Comments 11

Учитель Foo обсуждает графический интерфейс

Reading time 1 min
Views 416
Один из вечеров учитель Foo и Nubi проводили в компании программистов — те встречались, чтобы поучиться друг у друга. Один из программистов спросил Nubi, к какой школе принадлежит он и его учитель Foo. Презрение появилось на лице программиста, когда тот услышал, что они — последователи Великого Пути Unix.

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

Учитель Foo молча указал на луну. Собака поблизости залаяла на руку хозяина.

«Я не понимаю!» — сказал программист.

Учитель Foo продолжил молчать и указал на образ Будды, а потом — на окно.

«Что ты хочешь мне сказать?» — спросил программист.

Учитель Foo указал на голову программиста, а потом — на камень.

«Почему ты не можешь выразиться ясно?» — спросил программист.

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

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

В этот момент программист достиг просветления.



Подсказкой к пониманию этого откровения может быть другое короткое откровение: «Разум подобен собаке. Хозяин указывает на луну, но гавкает она на руку».

Перевод предыдущей части был опубликован более двух лет назад, надеюсь, теперь буду публиковать их чаще :)
Total votes 36: ↑18 and ↓18 0
Comments 32

Чему мы должны учить разработчиков нового программного обеспечения? Почему?

Reading time 11 min
Views 3.2K
Требуются существенные изменения в обучении компьютерной науке, для лучшего соответствия потребностям индустрии.

image
Компьютерная наука должна быть в центре развития систем программного обеспечения. В противном случае мы должны полагаться на индивидуальный опыт и практические методы, что в конечном итоге приведёт к менее продуктивным, менее надёжным системам, разработанным и поддерживающимся по неоправданно высоким ценам. Нам нужны изменения в образовании, которые позволят улучшить производственную практику.

Проблема

Во многих местах существует разрыв между обучением компьютерной науке и потребностями индустрии. Взгляните на следующую ситуацию:
Знаменитый профессор компьютерной науки (с гордостью): «Мы не учим программированию; мы обучаем компьютерной науке.»
Производственный менеджер: «Они не способны программировать.»

Во многом они оба правы, и не только на поверхностном уровне. Задача научного сообщества состоит не в том, чтобы обучать посредственных программистов, а индустрия не требует только «всесторонне развитых, высокообразованных мыслителей» и «учёных».

Другой профессор компьютерной науки: «Я не написал ни одной строчки кода.»
Читать дальше →
Total votes 53: ↑40 and ↓13 +27
Comments 47

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity