Pull to refresh
38
0
Mike Iceman @Quiz

User

Send message

минилинукс

Reading time3 min
Views8.2K
Лирическая часть

Кто из нас в детстве не разбирал игрушки, чтоб посмотреть, что же там такое внутри. Я не был исключением. Прошло всего несколько лет, и одной из игрушек стал линукс. Из абстрактного желания «сломать и посмотреть» оно формализовалось в несколько вполне конкретных задач, одной из которых стала найти некую отправную точку — минимальное нечто, которое бы грузилось и давало шелл. Пару раз я начинал собирать lfs, но до конца так и не дошел. Прочел несколько статей про разработку embedded, но там все было чересчур серьезно и по-взрослому: после предложений сооружать окружение для кросс-компиляции под различные архитектуры и удаленной отладки в панике отключал интернет. Пересмотрел несколько mini-livecd, но все они или мегадревние (ядро 2.4 и ниже) или обязательно с графикой и DE, что никак не вписывалось в мое представление об идеальном минидистре для опытов.
И вот не так давно я случайно узнал, что то, что я ищу, называется initramfs и лежит у меня под носом.
Читать дальше →
Total votes 93: ↑92 and ↓1+91
Comments47

У thepiratebay появился свой гимн

Reading time1 min
Views726
Теперь у пиратов есть свой гимн, о чем они радостно и рассказывают на первой странице трэкера.

Шведский артист Моnтт Mardié решил что Пиратской Бухте необходима песня, гимн. И он его создал!
Читать дальше →
Total votes 80: ↑54 and ↓26+28
Comments55

phpThread: нити в PHP? Запросто

Reading time2 min
Views2.2K
Если вы хотите научиться писать многопоточные приложения на PHP или здорово упростить себе жизнь — статья для вас.

Раньше для этих целей я пользовался либо запуском несколько копий скрипта, либо же использовал pcntl на более низком уровне, чем хотелось бы. Это, а от части и Java-идеология работы с потоками, побудили меня к написанию пакета phpThread.
Читать дальше →
Total votes 75: ↑61 and ↓14+47
Comments78

Пособие: Красивая и удобная выпадающая панель для входа/регистрации

Reading time2 min
Views3.4K
Помните мою выпадающую панель для входа/регистрации, реализованную с помощью Mootools 1.2? Я подумал, что её можно было бы улучшить как с точки зрения дизайна, так и с точки зрения функциональности, и я это сделал! Но с этого времени уже на jQuery.

screenshot and demo
Читать дальше →
Total votes 81: ↑73 and ↓8+65
Comments49

SOAP, генерация прокси класса

Reading time2 min
Views6.6K
Преамбула:

SOAP — протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался, в основном, для реализации удалённого вызова процедур (RPC), а название было аббревиатурой: Simple Object Access Protocol — простой протокол доступа к объектам. Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур. Официальная спецификация последней версии 1.2 протокола никак не расшифровывает название SOAP. SOAP является расширением протокола XML-RPC.


Итак, делаем proxy-class
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments17

Стоит ли паниковать?

Reading time1 min
Views772
Этот сайт можно считать некоторым продолжением или, точнее, вариацией на тему воплощения уязвимости современных браузеров описанной в этих двух топиках. Мопед, в данном случае, не мой; у автора просто нет тут регистрации.

Пару дней назад в сети появился ресурс с призывом подписать петицию разработчикам браузеров. У всех браузеров есть небольшая проблема с хранением конфиденциальной информации. Startpanic.com эту лазейку и использует.

Нажав на кнопку Старт на сайте система определит, на каких сайтах вы были. Также вы сможете узнать, где бывают ваши друзья, отправив им специальную ссылку.
image
Отличная возможность кого-то напугать, а кого-то сделать параноиком ;)
Total votes 95: ↑79 and ↓16+63
Comments159

Россия II: великаны и малыши програмстроя

Reading time1 min
Views737
Простите великодушно, что повторюсь. В предыдущем тексте я писала о том, что российским студентам, изучающим высшую математику и философию, проще побеждать в олимпиадах, чем участвовать в разработке программных систем промышленного масштаба. Воспитанные в восьмидесятых годах прошлого века в школах Ершова и Звенигородского преподаватели программирования хорошо развивают в своих сегодняшних учениках навыки решения проблем. Чему они учат не так хорошо, так это практическим навыкам работы в больших распределённых проектах, умению писать связные тексты, мягкости общения, стратегическому планированию, управлению процессами и людьми. Ну и ничего, научимся как-нибудь самостоятельно по книжкам и по Хабру.

Далее я коснусь трёх основных моделей ведения бизнеса, которые мне нравятся. Читать дальше про стратегии ИТ компаний →
Total votes 73: ↑60 and ↓13+47
Comments58

PHP: новые функции по работе с массивами (array_replace, array_walk_recursive и array_diff_assoc)

Level of difficultyMedium
Reading time2 min
Views66K
Итак, в феврале 2009 г. в языке PHP появились новые функции для работы с массивами: функции array_replace, array_walk_recursive и array_diff_assoc, что упрощает работу с массивами и сравнение их элементов.

Остановимся на каждой функции и дадим примеры их использования.

Читать дальше →
Total votes 215: ↑207 and ↓8+199
Comments414

Базовый css-шаблон

Reading time1 min
Views4K
Вечером знакомый попросил быстро сделать ему основу для его блога. Даже не сверстать макет, а сделать именно основу.

Так как я сижу без работы и становится скучно, решил безвозмездно посодействовать. Что получилось, смотрите под ниже.
Читать дальше →
Total votes 128: ↑99 and ↓29+70
Comments76

Введение в gen_fsm: Банкомат Erlybank

Reading time9 min
Views4.9K
Предыстория
Введение в Open Telecom Platform/Открытую Телекомуникационную Платформу(OTP/ОТП)
Введение в gen_server: «Erlybank»

Это вторая статья из серии «Введение в OTP». Рекомендую вам прочитать первую статью, в которой говорится о gen_server и закладываются основы нашей банковской системы перед тем, как читать эту. Если вы быстро схватываете, можете посмотреть завершенную версию сервера и двигаться дальше.

Сценарий: Мы поставили ErlyBank сервер заказчикам, и они остались очень довольны. Но на дворе 21 век, и они хотят также безопасный и простой в использовании банкомат, поэтому они попросили нас расширить наш сервер и создать программное обеспечение для банкомата. Пользовательские аккаунты должны быть защищены 4-цифровым ПИН-кодом. В банкомате можно залогиниться с помощью ранее созданного аккаунта, сделать депозит или снять деньги со счета. Делать красивый интерфейс не требуется, этим занимаются другие люди.

Цель: Сначала мы расширим сервер, добавив поддержку ПИН-кода для аккаунтов и авторизации через ПИН-код. Потом мы будем использовать gen_fsm чтобы создать бэкенд банкомата. Проверка данных будет проводиться на стороне сервера.
Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments4

CSS Sprites 2.0

Reading time5 min
Views1K
После публикации серии статей на тему использования, ненужности и даже автоматизации CSS Sprites, после многодневного анализа текущего положения вещей удалось собрать некоторый набор наиболее часто возникающих проблем при использовании CSS Sprites и методов их решения. Также далее рассматривается прикладной способ по автоматизации создания CSS Sprites для произвольного проекта.

Обзор технологии


CSS Sprites, на самом деле, — всего лишь расширенное использование технологии background, заложенной еще в спецификации CSS1. Все, до чего додумалось прогрессивное человечество за эти годы — это множественный фон у элементов (как он будет совместим с концепцией CSS Sprites еще придется проверить). Основные свойства, которые мы используем для задания фонового изображения.
  • background-image — основная «рабочая лошадка». Именно за ней будущее в виде data:URI, который в конце концов победит CSS Sprites. Но произойдет это нескоро.
  • background-repeat — вторая не менее важная составляющая при использовании фонового изображения. Ведь задавая no-repeat для данного свойства, мы намеренно подчеркиваем, что допустимо использование CSS Sprites для «склейки» изображений (по умолчанию используется repeat).
  • background-position — «волшебная палочка» для CSS Sprites, позволяющая спрятать или показать определенные части фонового изображения.

Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments15

Новая бизнес модель + новая функциональность: нормальное состояние стартапа

Reading time3 min
Views829
Совсем недавно я в статье о презентации стартапов писал о том, что бизнес-моделей три: «реклама», «подписка», «транзакции». Но на то они и инновации, чтобы смело выходить за рамки существующего. И новый релиз Comindwork выходит сразу с двумя важными изменениями: в способе оплаты и в функциональности. Этот пост — пример того, как смелость помогает в бизнесе. Я хочу чтобы пост был источником вдохновения для других людей, которые стартуют свои проекты. Плюс, чистая радость и пиар :))
Читать дальше →
Total votes 26: ↑20 and ↓6+14
Comments41

В корзине нет товаров? Положим туда изюминку!

Reading time2 min
Views4.4K
Сейчас я на простом примере продемонстрирую одну их наших «микроинтерфейсных» находок.

Если товар добавлен в корзину, то вопрос с содержимым блока снимается. Пишем, сколько там товаров, на какую сумму, даем ссылку на оформление заказа.
Читать дальше →
Total votes 137: ↑119 and ↓18+101
Comments107

Интерактивная обучающая онлайн-игра «Осваиваем нотную грамоту и лады на грифе гитары».

Reading time1 min
Views14K
На прошлой неделе в рамках проекта Гитара.By — Белорусский гитарный сайт, была запущена интерактивная обучающая онлайн-игра, которая призвана помочь начинающим гитаристам в освоении этого замечательного и всеми любимого инструмента.

image



Основная задача игры: помочь гитаристу быстро, эффективно, наглядно и в игровой форме преодолеть «нотный барьер» и приобрести навык быстрого нахождения ладов на грифе гитары.
Читать дальше →
Total votes 87: ↑80 and ↓7+73
Comments126

Ускоряем выборку произвольных записей MySQL

Reading time3 min
Views33K
Последнее время оживилась публика с вопросом случайной выборки из таблицы. Решений по оптимизации полно, и нового сейчас я вам наверное ничего не покажу, просто напомню про основные методы оптимизации — упрощение запроса и индексацию. Без предисловий про фриленсеров, сразу к делу ;)

Читать дальше →
Total votes 59: ↑50 and ↓9+41
Comments22

Многоуровневое дерево с маркерами (только HTML, CSS, без Javascript)

Reading time5 min
Views23K
Многоуровневое дерево с маркерами (только HTML, CSS)До того как заняться верской гитарных аккордов (статьи 1,2,3) я столкнулся с необходимостью сделать человеку на сайте меню-дерево. Рисовать не хотелось вообще, поэтому я взял старый добрый HTML с CSS и начал делать это дерево, начал с простого одноуровневого, а позже сделал многоуровневое с маркерами, которое и представлю.

Позже это дерево дало мне плоды в виде habrahabr.ru/blogs/css/53792
Читать дальше →
Total votes 107: ↑105 and ↓2+103
Comments81

PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)

Reading time2 min
Views2.7K
Очень простая, но полезная библиотека PHP_Exceptionizer позволяет преобразовывать нотисы (E_NOTICE), предупреждения (E_WARNING) и т. д. в исключения PHP.

// Где-то в начальном коде инициализации скрипта.
error_reporting(E_ALL);
if (<is debug mode active>) {
    $exceptionizer = new PHP_Exceptionizer(E_ALL);
    // И оставьте эту переменную, чтобы она не удалялась до окончания 
    // скрипта. Удаление переменной вызовет отключение PHP_Exceptionizer.
}
...
// Далее можно ловить нотисы как исключения:
try {
    echo $undefinedVariable;
} catch (E_NOTICE $e) {
    echo "Notice raised: " . $e->getMessage();
}
...
// Если вы ловите E_WARNING, то поймаете и E_NOTICE тоже:
try {
    echo $undefinedVariable;
} catch (E_WARNING $e) {
    echo "Warning or better raised: " . $e->getMessage();
}
...
// А можно и не ловить, тогда нотис вызовет завершение программы.
echo $undefinedVariable;

Читать дальше →
Total votes 68: ↑49 and ↓19+30
Comments97

Кросс-доменные запросы в Opera UserJS

Reading time3 min
Views1.5K
В отличие от расширения Greasemonkey в мозилле, Опера не предоставляет аналога функции GM_xmlhttpRequest для кросс-доменных запросов (XDR). Это, понятное дело, сильно ограничивает возможности и сферу применения UserJS. Используя XDR, например, можно реализовать Last.fm-скробблер для различных онлайн-проигрывателей музыки (типа vkontakte.ru или MySpace).

Однако кросс-доменные запросы можно заставить работать в Опере с помощью трюков с iframe'ами и window.name транспортом. Под катом я покажу как это сделать и предъявлю простую библиотеку, реализующую все колдовство.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments30

Information

Rating
Does not participate
Location
Калининград (Кенигсберг), Калининградская обл., Россия
Date of birth
Registered
Activity