Новые статьи

Создаём бесплатный сайт на GitHub Pages при помощи Jekyll

Прочее  jekyll, github, github pages

В этой статье я расскажу как быстро и бесплатно создать сайт для своего блога, используя GitHub Pages и Jekyll. Для примера я создам клон своего же сайта, где можно будет размещать не только статьи, но и полезные коды, а также комментировать их. Пример сайта.
Продолжить

Рейтинг:  8  (За: 8 | Против: 0)
Добавлено: 12.04.2017 от aNNiMON

Комментарии (9)

Обобщения в Java (Java Generics)

Java  generics, обобщения, дженерики


Дженерики появились в Java 1.5 и призваны обезопасить код от неправильной типизации. Параметризируя класс, интерфейс или метод, можно добиться гибкости в переиспользовании алгоритмов, строгой проверки типов и упростить написание кода.

Без использования дженериков в код может пробраться ошибка типов:
  1. List list = new ArrayList();
  2. list.add("1");
  3. list.add("2");
  4. list.add(3);
  5.  
  6. String v1 = (String) list.get(0);
  7. String v2 = (String) list.get(1);
  8. String v3 = (String) list.get(2);

Здесь мы случайно добавили в список число 3, а затем берём из списка строки. Код скомпилируется, но вот при запуске будет выдан ClassCastException на последней строке.

Перепишем с использованием дженериков:
  1. List<String>

Продолжить

Рейтинг:  10  (За: 10 | Против: 0)
Добавлено: 30.03.2017 от aNNiMON

Комментарии (15)

Плагин javac или добавляем Extension Methods в Java

Java  javac, compiler, extension methods

Screenshot from 2017-03-22 21-32-47.png
В Java 8 появилась возможность писать плагины к компилятору javac. С их помощью можно получать управление на нужном этапе компиляции и производить дополнительные проверки или изменения. Каждый плагин имеет название и может принимать аргументы для настройки своей работы.

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


Настройка
Для реализации плагина нужно добавить в зависимости tools.jar, который находится в составе JDK.
  1. dependencies

Продолжить

Рейтинг:  4  (За: 4 | Против: 0)
Добавлено: 22.03.2017 от aNNiMON

Комментарии (3)

Оптимизация запросов MySQL

PHP/MySQL  mysql, запросы, оптимизация

Вчера я решил заняться оптимизацией запросов на сайте. После перехода с устаревшего модуля mysql на PDO скорость работы снизилась, а после обновления MySQL с версии 5.5 до 5.7 производительности не прибавилось. Это явно говорило о том, что с нашими таблицами и с запросами что-то не так.

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

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

Рейтинг:  10  (За: 10 | Против: 0)
Добавлено: 25.02.2017 от aNNiMON

Комментарии (17)

Различие между arr и &arr – как в C определить размер массива без sizeof

Прочие языки  c, си

Hey folks, Long time no C.
Обычно в C мы находим длину массива arr так:

  1. int n = sizeof(arr) / sizeof(arr[0]);

Здесь мы получаем размер массива в байтах; затем происходит деление этого размера на размер каждого элемента в массиве. Давайте попробуем избавиться от sizeof.

Никто из вас никогда не задавался вопросом насчёт разницы между arr и &arr? Это не одно и то же.

1 из 3Давайте проверим это выведением адресов этих двух указателей

[pr=Теперь
Продолжить

Рейтинг:  4  (За: 6 | Против: 2)
Добавлено: 13.02.2017 от kalterfx

Комментарии (9)
<< 1 ... 20 21 22 23 24 ... 49 >>

Мы в соцсетях

tw tg yt gt