Архив за 11 апреля 2012 - 4

Сдвиги
Продолжу рассказы о том, как программисты ходят по краю, даже не подозревая об этом. Поговорим об операциях сдвига <<, >>. Принципы работы операторов сдвига очевидны и многие программисты даже не знают, что их использование согласно стандарту Си/Си++ может приводить к неопределенному или к неуточненному поведению (undefined behaviour/unspecified behavior).
Читать полностью »

Доброго времени суток, уважаемые читатели.
Сегодня будет рассказ о прошедшей в марте международной студенческой школе JASS. Текст поста я готовил совместно со своим другом, который тоже в ней участвовал.

В начале февраля мы узнали про возможность поучаствовать в международной русско-немецкой школе для студентов JASS-2012 (Joint Advanced Student School), которая проводится у нас в городе вот уже в восьмой раз. Об этом нам рассказал Александр Куликов — координатор Computer Science Центра (студентами которого мы являемся, также эта новая площадка для обучения уже упоминалась в одной из заметок на Хабре), преподаватель СПбАУ НОЦТН РАН и ПОМИ и просто очень талантливый и увлеченный своим делом человек. Школа состояла из двух тематических курсов — курса по эффективным алгоритмам для работы над строками (Design of Efficient String Algorithms) и разработки современных мобильных приложений (Usability Engineering & Ubiquitous Computing on mobile devices).
Читать полностью »

Доброго времени суток, уважаемые читатели.
Сегодня будет рассказ о прошедшей в марте международной студенческой школе JASS. Текст поста я готовил совместно со своим другом, который тоже в ней участвовал.

В начале феврале мы узнали про возможность поучаствовать в международной русско-немецкой школе для студентов JASS-2012 (Joint Advanced Student School), которая проводится у нас в городе вот уже в восьмой раз. Об этом нам рассказал Александр Куликов — координатор Computer Science Центра (студентами которого мы являемся, также эта новая площадка для обучения уже упоминалась в одной из заметок на Хабре), преподаватель СПбАУ НОЦТН РАН и ПОМИ и просто очень талантливый и увлеченный своим делом человек. Школа состояла из двух тематических курсов — курса по эффективным алгоритмам для работы над строками (Design of Efficient String Algorithms) и разработки современных мобильных приложений (Usability Engineering & Ubiquitous Computing on mobile devices).
Читать полностью »

ВАКханалия

imageВ течение последних 5-6 лет в России полным ходом идет реформа системы подготовки научно-педагогических кадров высшей квалификации (т. е. аспирантов и докторантов). Одним из элементов этой реформы является обеспечение прозрачности процесса защиты диссертации. Казалось бы, сделано было много — но каков результат? Несмотря на все заявления чиновников от образования и науки, жизнь показывает, что говорить о каких-то положительных результатах вряд ли возможно. Авторефераты, размещаемые в Интернете, все равно почти никто не читает. Количество некачественных диссертаций не уменьшилось, а наоборот, увеличилось. Система «Антиплагиат», на внедрение которой были затрачены немалые суммы, не оправдала возлагаемых на нее надежд. Казалось бы: самое время одуматься, проанализировать допущенные ошибки и наметить пути их исправления. Но вместо этого реформаторы решаются на еще одну радикальную меру.

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

OpenStreetMap: три новых руководящих лицензионных соглашения
TarzanASG обратился ко мне с просьбой проанализировать три новых руководящих лицензионных соглашения OSM (CT, ODbL и DbCL) и описать, как они соотносятся с невозможностью отчуждения права на имя.

Как всем известно OpenStreetMap заявила, что с апреля 2012г переходит с существующей лицензии Creative Commons CC-BY-SA 2.0 на лицензию Open Database License (ODbL) и Database Contents License (DbCL).

Причины данного перехода связаны, прежде всего, с тем, что Creative Commons CC-BY-SA 2.0 не могла полностью удовлетворять потребности при создании и распространении OpenStreetMap, так как Creative Commons CC-BY-SA 2.0 была единой лицензией на любые материалы (данные и сведения), размещаемые на OpenStreetMap.

Почему произошло такое разделение?

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

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

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

Что нам делать с картинками в оформлении?

Да, сейчас все браузеры научились хорошо масштабировать сайты. Нажал Ctrl, покрутил скроллом, и твой сайт в том размере, как тебе удобно. Но если растровую картинку 30 на 80 пикселей увеличить в трое, красоты это не прибавит.

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

Я вижу 2 принципиальных решения:

1. Использование разных файлов под конкретное разрешение, JS определяет размер экрана, предлагает определенный файл CSS, который в свою очередь подгружает нужные картинки.

2. Переход на векторную графику в оформлении сайта.

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

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

Доброго времени суток. Хочу рассказать вам о полезности ssh-логгеров.
В качестве серверной системы я предпочитаю использовать FreeBSD. И, как правило, устанавливаю termlog – системная утилита для логгирования ssh-сессий всех пользователей. К сожалению, сейчас в 9 версии termlog помечен как broken, потому что utmp был признан устаревшим и заменен на utmpx, поэтому termlog работает максимум только на 8 версии с небольшой правкой исходников:
Файл fileops.c, функция snp_setup

+       logname[rindex(logname,'/')-logname] = 'D';
         sm->fp= fopen(logname, "w");

Будем все же надеяться, что termlog перепишут для 9-й версии, потому что это очень полезная утилита. И вот почему. Однажды на тестовом сервере, который имел dyndns адрес и использовался для экспериментов, я установил termlog и создал пользователя test с паролем test, на котором проверял работу termlog, после чего благополучно забыл об этом пользователе. Спустя некоторое время, я обнаружил записанную ssh-сессию пользователя test, о котором кроме меня никто не знал:
Читать полностью »

Обзор IP телефонов Digium

Еще совсем недавно Digium объявил о выпуске собственных IP телефонов, прошло всего пару недель и они приехали к нам в Россию.

Напомню, что серия телефонов включает в себя следующие модели:

  • D70 Самый «продвинутый» вариант с огромным дисплеем, поддержкой шести линий и 10 клавиш быстрого набора (BLF). А также встроенная дополнительная LCD панель сможет отобразить информацию в реальном времени об имеющихся контактах их статусе, состоянии и т.п. А с помощью кнопок перехода, Вы сможете расширить список до 100 абонентов.
  • D50 Телефон среднего уровня. Четыре линии и 10 выносных клавиш контактов. Отличие от модели D70 в том, что дисплей не интерактивен и надписи заносятся по старинке — карандашом. Телефон будет идеален для тех, кто проводит большое количество времени за разговорами.
  • D40 Телефон начального класса с двумя линиями. Лучшее соотношение цена / качество.

По функционалу телефоны идентичны: поддерживаются: PoE, технология HD Voice, и отличаются лишь наличием дополнительной панели расширения. Считаю, что имеет смысл сделать обзор самой дорогой модели, а аналогию с бюджетным вариантом Вы проведете самостоятельно.

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

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

Способов это сделать довольно много:
— может сам сервис изачально придуман с возможностью отказоустойчивости — его можно запустить на нескольких серверах и клиент сам найдет рабочий из списка;
— можно наворотить кластер средствами операционной системы;
— можно придумать что-то с виртуализацей (тот же кластер, только вид сбоку);

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js