Pull to refresh
-2
0.1
Send message

51 Атрибут Хорошего С-кода (Хартия Си программистов)

Level of difficultyEasy
Reading time11 min
Views26K

Это не академические атрибуты из учебников. Это скорее правила буравчика оформления сорцов из реального prod(а). Некоторые приемы совпали с MISRA, некоторые с CERT-C. А кое-что является результатом множества итераций инспекций программ и перестроек после реальных инцидентов. В общем тут представлен обогащенный концентрат полезных практик программирования на С(ях).

Читать далее
Total votes 50: ↑45 and ↓5+52
Comments164

Организация IPAM и переезд с phpIPAM в NetBox: советы и подводные камни

Reading time21 min
Views14K

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments3

Must have книги для прокачки английского. Подборка от преподавателей

Reading time3 min
Views94K

Зона комфорта — это зло. Хоть и приятное, даже очень. Но зло. Особенно, если речь идет о саморазвитии и изучении языков. Если каждый день в работе использовать довольно простые лексику и грамматику с минимальными изменениями, есть большая вероятность, что вы начнете забывать всякие там Conditionals или Future Perfect. Конечно же, нужно поддерживать язык на должном уровне и развивать его, поэтому мы попросили наших преподавателей поделиться книгами, которые им в этом помогают. Так что готовьтесь к подборке для высоких уровней и не только!

Произношение


Ship or Sheep? An Intermediate Pronunciation Course

В этом пособии вы найдете неплохой тест, который покажет ваши слабые стороны (всякие там “сри” или “фри”). Даже если ничего подобного не обнаружится, учебник стоит пройти от начала до конца, и вот почему:
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments21

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

Reading time5 min
Views32K
С вами такое было, что сам с собой говоришь на безупречном английском, а вот с реальными людьми получаются какие-то рандомные слова? А с носителем языка вообще выходит какой-то треш, после которого хочется завернуться в одеялко и никогда больше не покидать свою квартиру! Хорошо, если под рукой Google Translate или какой-то словарик. А еще лучше, если вживую общаться не нужно.

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

Но расстраиваться не стоит, потому что мы подготовили для вас дельные советы, как преодолеть языковой барьер.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments53

Масштабируя TLS

Reading time17 min
Views15K


Хабр, это доклад с одного из «не главных» залов Highload++ 2016. Артём ximaera Гавриченков, технический директор Qrator Labs, рассказывает про прикладное шифрование, в том числе, в высоконагруженных проектах. Видео и презентация в конце поста — спасибо Олегу Бунину.

Приветствую! Мы продолжаем находиться на сессии про HTTPS, TLS, SSL и всё такое.
То, о чём я сейчас буду говорить — не какой-то туториал. Как говорил мой преподаватель в университете по базам данных, Сергей Дмитриевич Кузнецов: «Я не буду учить вас настраивать Microsoft SQL сервер — пусть это делает Microsoft; не буду учить вас настраивать Oracle — пусть это делает Oracle; не буду учить вас настраивать MySQL — делайте это сами».

Точно так же и я не буду учить вас настраивать NGINX — это всё есть на сайте у Игоря Сысоева. Что мы обсудим, так это некий общий взгляд на проблематику и на возможности для решения проблем, которые возникают при внедрении шифрования на публичных сервисах.
Total votes 53: ↑52 and ↓1+51
Comments35

Осваиваем Tarantool 1.6

Reading time17 min
Views14K


Евгений Шадрин (Sberbank Digital Ventures)


Отслеживая новости последних нескольких лет, можно заметить, что новые NoSQL-решения, какие-то релизы появляются чуть ли не каждые две недели. Конечно, многие из них не выживают, проигрывают конкуренцию, пропадают, но мир NoSQL пополняется новыми решениями очень часто.

На конференции есть как люди, которые никогда в жизни не использовали NoSQL, так и люди, которые больше пяти лет используют NoSQL в своих проектах, компаниях. Некоторые даже участвуют в open-source проектах. Их немного, но такие тоже есть.
Читать дальше →
Total votes 28: ↑23 and ↓5+18
Comments8

Tarantool: Хороший, Плохой, Злой

Reading time19 min
Views36K
image Многие слышали о NoSQL базе данных Tarantool, знают о том, что она умеет хранить данные в памяти, очень быстро их обрабатывает и обладает высокой производительностью. Тарантул был написан серьезными ребятами, которые обслуживают сервисы с сотнями тысяч запросов в секунду.

Система кажется сложной. Несмотря на российские корни, изначально даже не было документации на русском языке. Чем же может помочь этот мощный инструмент обычным парням — программистам и начинающим разработчикам? Остальные могут сразу посмотреть результат

Попробуем написать простой занимательный сервис, способный выдержать большую нагрузку. И никакого SQL!
Начнем!
Total votes 38: ↑35 and ↓3+32
Comments11

10 подкастов для изучения/продолжения изучения английского языка

Reading time5 min
Views186K
image

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

Подкасты – это звуковые аудиофайлы в стиле радиопередач в интернете Как правило, подкасты имеют определенную тематику и периодичность издания. Каждый человек, у которого есть смартфон, может прослушивать подкасты. Для прослушивания подкастов у владельцев Apple есть родное приложение, называется «podcasts». Android пользователи могут использовать приложение «Podcast Addict».
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments42

Для тех, кто хочет научиться воспринимать английский на слух

Reading time1 min
Views7.2K
Для того, чтобы научиться воспринимать иностранную речь на слух, нужно много слушать. Правда, толку от этого будет немного, если вы не будете понимать, что люди говорят. Важно, чтобы мозг устанавливал связи между словами и их звуковыми образами. Для этого нужно слушать с субтитрами и текстовками, и слушать то, что соответствует вашему уровню и то, что вы способны понять на родном языке.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments26

Английский язык. Проблемы изучения

Reading time4 min
Views18K
S7300002

Я думаю ни для кого не секрет, что существующая система преподавания не нацелена на быстрое и успешное изучение английского языка. Причина этой проблемы кроется за множеством факторов: репетиторы получающие большие деньги за час “помощи” вам, частные школы “делающие деньги”, устаревшие методы преподавания в учебных заведениях, авторы сотен книг очередных революционных методик “английский за 30 мин”, “железный занавес”, при котором родились большинство преподавателей. Обсуждение этой проблемы периодически всплывает на различных конференциях, но как говорится “а воз и ныне там”. Эта статья призвана помочь наверстать упущенные годы изучения языка.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments17

Как я потратил 1000 часов на изучение английского языка в 2016 году

Reading time21 min
Views174K


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

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

Эта статья — о том, как невозможное было сделано возможным, как в самом сердце магистратуры я проломил неприступную цитадель аудирования. Это бремя выпало на 2016 год. Я перепробовал множество различных учебных методик и расскажу вам о них во всех подробностях, по каким материалам я занимался и какие выводы делал. Эта статья — огромный склад опыта, и я надеюсь, что он будет вам полезен.
Читать дальше →
Total votes 57: ↑44 and ↓13+31
Comments135

Функциональное программирование для всех

Reading time33 min
Views352K

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

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

UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Читать дальше →
Total votes 188: ↑181 and ↓7+174
Comments151

Построение ментальной карты для усвоения материала

Reading time7 min
Views9K
image

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

В данном материале рассказывается о 3 различных методах создания ментальных карт. Какой из них наиболее актуален, зависит от ситуации.Что скрывается за этими словами?

Читать дальше →
Total votes 18: ↑11 and ↓7+4
Comments10

Четыре всадника Инфокалипсиса

Reading time7 min
Views45K
Наркоторговля, отмывание денег, терроризм и педофилия.

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

Термин играет на сходстве с библейскими персонажами. Четыре всадника Апокалипсиса — это катастрофы и катаклизмы, предваряющие второе пришествие Иисуса Христа и Страшного суда. Четыре всадника Инфокалипсиса тоже сеют разрушения и хаос, но в глобальной Сети. Делается подобное с согласия и одобрения миллионов людей.

Впервые термин «Четыре всадника» начал употреблять Тимоти Мэй примерно в 1988 году при обсуждении слабой распространённости криптографических инструментов среди обычных людей. В 1994 году термин звучит в его «Шифрономиконе», документе криптопанков, который описывает идеи и эффекты криптоанархизма. «Шифрономикон» оформлен в формате вопросов и ответов. В документе начала девяностых обсуждаются цифровые валюты, право на частную жизнь в Сети и биржи убийств.
Читать дальше →
Total votes 52: ↑48 and ↓4+44
Comments81

Учим английский дешево и эффективно

Reading time9 min
Views160K
Английский можно выучить дешево, иногда даже бесплатно. В этой статье я расскажу про личный опыт: какой софт и ресурсы в Интернет оказались максимально эффективными для меня, и как ими правильно пользоваться.

Если вы не готовы тратить на английский хотя бы 2 часа в день, то дальше можно не читать.
Читать дальше →
Total votes 45: ↑40 and ↓5+35
Comments135

Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженном проекте

Reading time12 min
Views38K

Аникин Денис (danikin, Mail.Ru)


Денис Аникин

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

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



Там можно делать запросы, там есть транзакции, индексирование, таблицы, устойчивые, более-менее надежные хранилища. На самом деле, базы данных – это более удобно, чем файлы.
Total votes 71: ↑66 and ↓5+61
Comments56

Современная операционная система: что надо знать разработчику

Reading time22 min
Views67K

Александр Крижановский (NatSys Lab.)


Александр Крижановский

Нас сегодня будет интересовать операционная система – ее внутренности, что там происходит… Хочется поделиться идеями, над которыми мы сейчас работаем, и отсюда небольшое вступление – я расскажу о том, из чего состоит современный Linux, как его можно потюнить?

По моему мнению, современная ОС – это плохая штука.




Дело в том, что на картинке изображены графики сайта Netmap (это штуковина, которая позволяет вам очень быстро захватывать и отправлять пакеты сетевого адаптера), т.е. эта картинка показывает, что на одном ядре с разной тактовой частотой до 3 ГГц Netmap позволяет 10 Гбит – 14 млн. пакетов в сек. отрабатывать уже на 500 МГц. Синенькая линия – это pktgen – самое быстрое, что, вообще, есть в ядре Linux’а. Это такая штуковина – генератор трафика, который берет один пакет и отправляет его в адаптер много раз, т.е. никаких копирований, никакого создания новых пакетов, т.е., вообще, ничего – только отправка одного и того же пакета в адаптер. И вот оно настолько сильно проседает по сравнению с Netmap (то, что делается в user-space показано розовой линией), и оно вообще где-то там внизу находится. Соответственно, люди, которые работают с очень быстрыми сетевыми приложениями, переезжают на Netmap, Pdpdk, PF_RING – таких технологий море сейчас.
Читать дальше →
Total votes 102: ↑94 and ↓8+86
Comments51

Как думать на SQL?

Reading time8 min
Views610K
Надо “SELECT * WHERE a=b FROM c” или “SELECT WHERE a=b FROM c ON *” ?

Если вы похожи на меня, то согласитесь: SQL — это одна из тех штук, которые на первый взгляд кажутся легкими (читается как будто по-английски!), но почему-то приходится гуглить каждый простой запрос, чтобы найти правильный синтаксис.


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


SELECT members.firstname || ' ' || members.lastname
AS "Full Name"
FROM borrowings
INNER JOIN members
ON members.memberid=borrowings.memberid
INNER JOIN books
ON books.bookid=borrowings.bookid
WHERE borrowings.bookid IN (SELECT bookid
  FROM books
  WHERE stock>(SELECT avg(stock)
    FROM books))
GROUP BY members.firstname, members.lastname;

Буэ! Такое спугнет любого новичка, или даже разработчика среднего уровня, если он видит SQL впервые. Но не все так плохо.


Легко запомнить то, что интуитивно понятно, и с помощью этого руководства я надеюсь снизить порог входа в SQL для новичков, а уже опытным предложить по-новому взглянуть на SQL.

Читать дальше →
Total votes 54: ↑48 and ↓6+42
Comments166

7 правил написания технической документации мирового класса

Reading time12 min
Views80K

Введение


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

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

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

Итак — эти 7 правил:
  1. Скука убивает
  2. Прежде чем начать, выясните точно для себя, какие действия вы ожидаете от читателя, осилившего ваш труд
  3. Пишите в соответствии с правильно сформированной структурой
  4. Избегайте неоднозначных местоимений
  5. Ясность = иллюстрации + слова
  6. Когда имеете дело с понятиями, концепциями и т.п., используйте логическую иллюстрацию и пример
  7. Не опасайтесь переделок

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

Information

Rating
3,536-th
Registered
Activity