Инструкция по лёгкому созданию REST веб-сервисов

Инструкция по лёгкому созданию REST веб-сервисов. В первой части расскажут, как использовать мастер NetBeans 8.0 для автоматической генерации REST-сервиса из базы данных, а также о необходимых HTML5, CSS и JS на клиентской стороне.

Координаты станций метро Москвы

GPS-координаты 195 станций метро г. Москва в формате json. Актуально на 23.10.2014

Читать полностью »

Утечка ресурсов в генераторах PHP

Очень интересный и полезный момент сегодня всплыл в комментариях на Хабре. В PHP 5.5, как известно, сделали поддержку функций-генераторов, по типу питоновских. Там раньше были итераторы, но с адовым синтаксисом (как всё в SPL), а теперь ввели оператор 'yield' и всё волшебным образом упростилось.

Например, можно написать такой генератор, читающий построчно файл:

function getLines($file) {
    f = fopen($file, 'r');
    while ($line = fgets($f)) {
        yield $line;
    }
    fclose($f);
}

'yield' означает «вернуть значение и продолжить с этого места при следующем вызове функции». Имея такой генератор, можно сделать вот такую печать файла: Читать полностью »

Генератор случайных чисел. Java 5

Как с помощью генератора случайных чисел от 0 до 5 сделать генератор случайных чисел от 0 до 7. Равномерное распределение

    package test;

    import java.util.Random;

    public class TestRandom {

            private static final Random r = new Random();

            private static final int[] result = new int[11];

            public static void main(String[] args) {
                    for (int i=0; i<100000; i++) {
                            result[getRandom7()]++;
                    }
                    for (int i=0; i< result.length; i++) {
                            System.out.println(i + " : " + result[i]);
                    }
            }

            private static int getRandom7() {
                    if (getNextRandom(3) != 3) {
                            return get5();
                    } else {
                            return(6 + getNextRandom(1));
                    }
            }

            private static int getNextRandom(int max) {
                    int tmp = get5();
                    if (tmp > max) {
                            tmp = getNextRandom(max);
                    }
                    return tmp;
            }

            private static int get5() {
                    return r.nextInt(6);
            }

    }

Читать полностью »

Вирус: X-connect. Как вылечить

Вирус: X-connect
Главный симптом — в папке сетевых подключений появляется новое vpn-подключение с названием вида X-connect (i-connect, v-connect, z-connect), которое обрывает сессии через 10-50 секунд после запуска.

К слову, лечится любым адекватным антивирусом со свежими базами. Но вот беда — юзеры не могут скачать обновления: чтобы получить свежие базы, надо удалить вирус, а чтобы удалить вирус, нужны свежие базы. Замкнутый круг. Как быть? Читать полностью »

Запрещаем копирование текста со страниц

Часто тексты со страниц по-просту воруют и публикуют на своем сайте, причем не проставляя ссылки на источник.
Можно отключать выделение текста для любого блока, например, для определенного div'а. Если поставить данный код для тега body, будет запрещено выделение всей страницы

В блок, в котором мы хотим запретить выделение текста необходимо добавить обработчик для javascript (используется для браузеров Internet Explorer)

onselectstart="return false"

и css-стили (используется для браузеров FireFox (на движке gecko), Safari (на движке KHTML))

-moz-user-select: none; //Firefox
-khtml-user-select: none; //Safari
user-select: none; //работает в css3

Для Браузера Opera необходимо писать дополнительную функцию preventSelection(); (листинг функции ниже)
Функция запрещает выделение во всем документе, кроме элементов input и textarea

Вызвать данную функцию

preventSelection(document);

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

Такой способ может помочь в защите текстов от людей, но никак не поможет от роботов (программ, которые скачивают страницы целиком)

Пример Читать полностью »

Юмор: Исходный код ядра Linux

#include <stdlib.h>
#include <stdio.h>
#include <cerr.h>

#include <bash.h>

#define INFINITE ~0u

int main(int argc, char *argv[]) {
    printf("Hello world!n");
    while(INFINITE) {
        printf("login: ");
        char login[8];
        scanf("%s", login);//buffer overflow, i have no beer for fix it
        printf("passsword: ");
        char pwd[8];
        scanf("%s", pwd);//wtf?! beer! beer! beer!
        if(0.25 > rand() / (float)RAND_MAX) {
             startBash(login);
        } else {
             printf("Login is incorrect!n");
        }
        if(0.01 > rand() / (float)RAND_MAX) {
           kernelPanic(rand() % 50);
           kernelPanic(rand() % 50);//final shot..DIE! or beer..
        }
    }
    return 0;
}

ps: смотрим в комменты )

Скачать видео с сайта video.oboz.ua

На первый взгляд задача кажется сложной и невыполнимой, однако это не так.

Две минуты серфинга в поисковиках дали мне ответ на этот вопрос, оказывается все проще простого.

Видео-файлы формата .flv лежат по адресу

http://video.oboz.ua/files/movies/(quality)/(id).flv

где

quality - качество видео-файла, меняется в диапазоне 1-6. Чем больше значение, тем выше качество
id - идентификатор видео-ролика. Чтобы определить нужно извлечь его, например, из кода для вставки на сайт.
Для понравившегося видео выбираем: "Ссылка на видео" и извлекаем id из функции getPlayer();

Читать полностью »

.htaccess

.htaccess

Программы, используемые в web-мастеринге

Для изготовления профессиональных страничек Вам придется профессионально изучить несколько профессиональных программ :).

Итак, какие же программы Вам понадобятся? Ниже я буду приводить конкретные категории программ с объяснениями - для чего они нужны. Читать полностью »