Size: a a a

Библиотека программиста

2016 March 22
Библиотека программиста
Переслано от Библиотека программи...
источник
Библиотека программиста
Переслано от Библиотека программи...
Курс «Введение в логику» от Hexlet

#fundamental@proglibbot

Классическая логика является формальной основой для 99% современной математики. Понимание принципов логики — обязательно для настоящего программиста.

1. Базовые понятия
2. Представление функций
3. Самая сложная логическая задача
4. Предикаты и кванторы
5. Теории: интуиции
6. Парадоксы и заключение
источник
Библиотека программиста
Переслано от Библиотека программи...
источник
Библиотека программиста
Переслано от Библиотека программи...
Советы по оптимизации кода на С++

#cpp@proglibbot

Как правило, язык C++ используют там, где требуется высокая скорость работы. Но на C++ без особых усилий можно получить код, работающий медленнее какого-нибудь Python/Ruby. Именно подобным кодом оперируют многочисленные сравнения Any-Lang vs C++.

Вообще, оптимизация бывает трех типов:

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

Специально заниматься оптимизацией готового кода следует только после того, как проект закончен и используется. Как правило, оптимизация потребуется только в небольшой части проекта. Поэтому сначала нужно найти места в коде, которые съедают большую часть процессорного времени. Ведь какой смысл ускорять код, пусть даже на 500%, если он отнимает только 1% машинного времени? И следует помнить, что, как правило, гораздо больший выигрыш в скорости дает оптимизация самих алгоритмов, а не кода. Именно про данный ее вид говорят: «преждевременная оптимизация — зло» (с).

Второй тип оптимизации — это изначальное проектирование кода с учетом требований к производительности. Такое проектирование не является ранней оптимизацией.

Третий тип даже не совсем оптимизация. Скорее это избегание неоптимальных языковых конструкций. Язык C++ довольно сложный, при его использовании частенько нужно знать, как реализован используемый код. Он достаточно низкоуровневый, чтобы программисту пришлось учитывать особенности работы процессоров и операционных систем.

Ссылка на статью https://habrahabr.ru/company/mailru/blog/279449/
источник
Библиотека программиста
Переслано от Библиотека программи...
Частые ошибки разработчиков, которые могут повлиять на производительность программ на Java.

#java@proglibbot
источник
Библиотека программиста
Переслано от Библиотека программи...
источник
Библиотека программиста
Переслано от Библиотека программи...
Подборка материалов по C++

#cpp@proglibbot

Краткий курс компьютерной графики: задание карт нормалей в касательном пространстве
https://habrahabr.ru/post/279143/

Введение в концепцию шаблонов на С++
http://www.tutorialspoint.com/cplusplus/cpp_templates.htm

Вопросы и ответы от Бьёрна Страуструпа по С++17
http://goo.gl/RkHB5N

С++ exception handling под капотом или как же работают исключения в C++
Часть 1. https://habrahabr.ru/post/279111/
Часть 2. https://habrahabr.ru/post/279151/
Часть 3. https://habrahabr.ru/hub/cpp/page2/

Новая экспериментальная фича С++: tadpole operators
https://goo.gl/WIF6ba

Как заставить функцию С++ возвращать не одно значение, а сразу несколько
http://goo.gl/2J6yyH

Разъяснение разницы между тремя способами хранения данных в C++: используя стек, кучу и пул
https://bulldozer00.com/2015/09/14/stack-heap-pool/
источник
Библиотека программиста
Переслано от Библиотека программи...
источник
Библиотека программиста
Переслано от Библиотека программи...
Серия уроков по работе с Gulp.js

#javascript@proglibbot

Gulp.js — потоковый сборщик проектов на JS. Речь пойдет об установке, настройке сборщика, работе с плагинами, удобном запуске локального сервера и заливке готового проекта на хостинг с помощью сборщика.

1. Работаем с CSS.
2. Автоматическое добавление префиксов.
3. Работа с таблицами стилей.
4. Боремся с кэшированием или ревизии подключаемых файлов.
5. Структура проекта, wiredep, bower.
6. Сборка и деплой проекта.
источник
Библиотека программиста
Переслано от Библиотека программи...
источник
Библиотека программиста
Переслано от Библиотека программи...
Приемы объектно-ориентированного проектирования. Паттерны проектирования (2016)
Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес

#oop@proglibbot #design_patterns@proglibbot #book@proglibbot

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

Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ориентированное проектирование.
источник
Библиотека программиста
Переслано от Библиотека программи...
источник
Библиотека программиста
Переслано от Библиотека программи...
Конфигурирование, сборка и установка ядра Linux

#linux@proglibbot

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

Причины, по которым может возникнуть необходимость в сборке ядра системы. В каких случаях это необходимо делать обязательно.
1) Получение исходных кодов ядра. Версии. Развёртывание файлового дерева исходных кодов.
2) Сбор информации о системе, для которой предназначено ядро.
3) Конфигурирование ядра из начальной конфигурации "в состоянии поставки", и используя в качестве основы гарантированно рабочую конфигурацию предыдущей версии.
4) Модули, модульная архитектура ядра Linux.
5) Компиляция и сборка ядра.
6) Установка нового ядра автоматически и "вручную".
7) Конфигурирование начального загрузчика для использования нового ядра.
8) Рестарт системы под управление нового ядра. Проверка работоспособности.
источник
Библиотека программиста
Переслано от Библиотека программи...
источник
Библиотека программиста
Переслано от Библиотека программи...
Linux. Системное программирование (2016)/ Linux System Programming (2013)
Автор: Роберт Лав

#linux@proglibbot #book@proglibbot

Роберт Лав стоит у истоков создания операционной системы Linux. Он внес существенный вклад в создание ядра Linux и настольной среды GNOME.
Данная книга представляет собой руководство по системному программированию для Linux, справочник по системным вызовам Linux, а также подробный рассказ о том, как писать более быстрый и умный код. Роберт Лав четко разграничивает стандартные функции POSIX и специальные службы, которые предлагаются лишь в Linux. Во втором издании вы изучите эту операционную систему как с теоретической, так и с прикладной точки зрения.

К посту прикреплена полная книга на английском языке.
Приобрести книгу на русском можно по ссылке
http://www.ozon.ru/context/detail/id/31934003/
источник
Библиотека программиста
Переслано от Библиотека программи...
источник
Библиотека программиста
Переслано от Библиотека программи...
Курс «Введение в Javascript» от Hexlet

#javascript@proglibbot

1. Введение. Числа
2. Строки. Объекты. Прототипы.
3. Функции. Замыкания.
4. Наследование
5. Массивы
6. Регулярные выражения
7. Сравнения, var, eval и заключение
источник
Библиотека программиста
Переслано от Библиотека программи...
источник
Библиотека программиста
Переслано от Библиотека программи...
Подборка материалов по веб-разработке

#web@proglibbot

Библия фронтэндщика: огромный список ссылок на всевозможные ресурсы по фронтэнду
https://github.com/dypsilon/frontend-dev-bookmarks

Пример нестандартной сетки из шестиугольников на CSS с помощью свойства clip-path
http://codepen.io/tstoik/pen/qZEZJp

SlideOut — библиотека для создания бокового выпадающего меню
https://github.com/mango/slideout

Помощь верстальщику. Конвертер PSD в CSS — когда лень верстать по готовому макет
http://css3ps.com/
источник
Библиотека программиста
Переслано от Библиотека программи...
источник