Записи с меткой "кодинг"


Выпадающее многоуровневое меню. CSS + javascript

Теоретическая задача: на Javascript создать единый код для обработки многоуровневых меню, выпадающих в любом направлении (слева/справа или снизу/сверху). Т.е. решить не частную задачу, а общий случай. Вообще задача изначально носила практический характер. Нужно было прикрутить менюшку к одному коммерческому проекту, причем времени на разработку не было. Пошарился в инете, найденные решения меня не устроили. Либо заточены под один вид меню, либо ограничения по уровням. Нашел даже совсем экзотический вариант, на дли-и-и-инном css-управлении. Все-таки пришлось делать свое, универсальное.

Ассемблер. Начало

В который раз пытаюсь освоить ассемблер и не знаю, на сколько меня хватит. Какими путями я опять пришел к нему, не буду рассказывать. Скажу просто - "надо" :) Вооружившись Гуглем и отбрасывая все, что на данный момент мне не нужно, принял за старт архив рассылки О. Калашникова "Ассемблер? Это просто! Учимся программировать (2001)". Есть еще одноименная книга, но мне пока достаточно chm-файла с выдержками из нее. Внимание! В этом архиве рассылка неполная! За продолжением нужно лезь на соответствующие сайты.

Метки: asm, кодинг

Сброс параметров запуска Access

Получил заказ: нужно переделать отчет в готовом проекте Access. Вроде бы ничего сложного, но разработчик через параметры запуска проекта скрыл все менюшки и окно базы данных. Т.о. добраться до исходников невозможно.. почти. Немного погуглив нашел старый vbs-скрипт, качующий с сайта на сайт. Чтобы больше не искать, размещаю его здесь. Может пригодится еще.

Метки: MS Office, кодинг

"Правильный" multi_curl в PHP

Мне нужно было разобраться, как именно работают функции curl_multi_*, представленные в PHP, почему так разнятся примеры не только в инете, но даже в справке PHP, что на самом деле происходит. CURL в PHP - это инкапсуляция настоящих функций библиотеки и еще некоторых других. При этом PHP использует не все функции libcurl, да и справка оставляет желать лучшего. Дабы не тыкать вслепую пимпы на клаве, перебирая варианты чужого кода, я решил постичь истинный смысл функций мульти-cURL и их параметров.

Метки: PHP, кодинг

Неблокирующее чтение текстового файла

На работе возникла практическая задача: в логе прокси-сервера найди записи по фильтру. Лог - это обычный текстовый файл, так что наиболее простое программное решение - читать его построчно через pascal-функции Reset() и Readln(). Накидал программку, обкатал ее на копии файла, все прекрасно. Но такую прогу нельзя применить к текущему логу, т.к. функция Reset() блокирует файл на запись. Решением стало применение функций WinAPI для чтения файла. В итоге у меня получился аналог функций Паскаля для построчного чтения файла через WinAPI.

Метки: Delphi, кодинг

Откуда в PChar "мусор"

Неудачное сочетание двух функций в Delphi 7 стоило мне нескольких часов жизни и много нервов. Зато мне удалось наконец поймать непредсказуемый PChar за хвост. Я и раньше сталкивался с необъяснимыми косяками, корнями идущими из бардака в pchar-переменных. Но сколько я об этом ни читал, сколько не копался - смысл не доходил. Теперь же я на 90% уверен, что точно знаю, чего ожидать от этого типа.

Метки: Delphi, кодинг

Fix: Приложение не было запущено, поскольку оно некорректно настроено

При запуске программы получается ошибка "Приложение не было запущено, поскольку оно некорректно настроено". Очень полезная инфа, нефиг сказать :) Далее в этом же сообщении предлагается переустановить приложение. Итак, почему вдруг на чистой машине с только что установленной WinXP перестала работать любимая игра или программулина?

cURL - ключ от всех дверей

Речь пойдет о библиотеке cURL (aka Client URL, libcurl) и ее использовании в PHP. Об этом уже много всего написано, поэтому я не буду проводить ликбез. Я расскажу о тех возможностях библиотеки, которые мне особенно доставляют. Не знаю, с какими благими намерениями создавал это чудо Daniel Stenberg, я использую ее в корыстных целях :)

Метки: PHP, кодинг

Кроссбраузерное печенье (cookie)

Есть как минимум два языка программирования, способных управлять cookie - PHP и Javascript. Есть множество браузеров, поддерживающих работу с печеньками. И есть проблема: удаление этих самых cookies может выполняться по-разному, в зависимости от языка/браузера. В этой статье я расскажу о своих изысканиях и кроссбраузерном подходе к манипуляциям с cookie.

Упаковщик Javascript: зачистка js-файла

Задача: удалить однострочные/многострочные комментарии, tab-отступы, пустые строки в js-скрипте. Так же нужно учесть, что в коде возможны экранированные back-slash и кавычки. После всего удалить переносы строк, чтобы получится весь код в одной строке. Разбить код на строки заданной длины.

Я не знаю, зачем последнее действие, но все "обфускаторы" так делают =-). Приведенный в статье скрипт я считаю упаковщиком, потому что он уменьшает вес конечного файла, а еще - мне так больше нравится :) Зачем все это нужно, я уже писал здесь. В двух словах: этот скрипт чистит js-файлы для загрузки на сервер.

Кодировки

Мои сайты сделаны в кодировке windows-1251, включая БД. Возникла необходимость получить файл в кодировке UTF-8 (собираю dump-файл базы). Как оказалось, преобразование из одной кодировки в другую - задача не тривиальная. В этой статье я попытаюсь разложить по полочкам, что к чему. Поле деятельности: Apache/2.2.15 (Win32) PHP/5.3.5. Во внимание беру только две кодировки, UTF-8 и Windows-1251 (aka cp1251), но многое из сказаного относится к преобразованиям в любых кодовых страницах.

Метки: PHP, кодинг

Пересчет часового пояса с учетом летнего времени на PHP

Понесло меня по теме времени :). Не нашел, где разместить эту php-функцию, поэтому оформляю, как новую запись. Применение функции: передаем ей UTC-значение времени (timestamp) и нужный часовой пояс (число), получаем timestamp-время в указанном поясе с учетом летнего/зимнего времени.

Метки: PHP, кодинг

Временной сдвиг в phpMyAdmin

Продолжаю тему "временных аномалий" в MySQL :) У меня с хостером разные часовые пояса: у него - GMT+3:00, а на моих сайтах GMT+8:00 (об этом на сайтах скрипты заботятся). Добавлять новости на сайт это не мешает, т.к. время пишется через mysql-функцию now() (текущее значение времени). Проблема появляется, когда мне нужна синхронизация записей с локальной копией БД. Делаю следующее: через phpMyAdmin экспортирую БД в файл - dump.sql, потом загружаю его на своем (местном) сервере MySQL. После такой синхронизации я получаю разницу во времени в 5 часов в каждой записи, где вообще есть время. Покопался и нашел причину! :)

Метки: MySQL, кодинг

Работа со временем в PHP/MySQL

Ничто не постоянно, даже время :) Особенно если речь идет о времени в PHP/MySQL. Когда я первый раз столкнулся с проблемой преобразования времени в PHP, я долго копался в мануалах и инете, но ни как не мог поймать суть. В итоге я все же нашел свою ошибку, все подробно для себя описал в txt-файле и забыл. Сейчас (спустя полтора года) опять возникли запарки, поднимаю текстовик.. и ничего не могу разобрать. Пришло время систематизировать записи про время (вот такой каламбурчик ;))

Метки: MySQL, PHP, кодинг

Упаковщик CSS: зачистка css-файла

Упаковщик не в смысле архивации, а в смысле чистки css-файлов от пустых строк и комментариев. Слово "упаковщик" более удобно, чем "чистильщик" или т.п. Файл в итоге получается меньше без потери функциональности, поэтому так "громко" назвал :)

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

Метки: CSS, PHP, кодинг

PHP 5.3 Русская справка в формате chm

Сама суть: сейчас (5 августа 2011) на офсайте PHP уже нет русской справки для скачивания. Недавно была здесь, и я успел ее забрать. Только она была в виде 10k html-файлов! Другой вариант, предлагаемый тогда на сайте - один оооочень большой html-файл. Вообщем я убил три дня на раскопки и разбирательства c форматом и наконец сваял справочник в chm-формате.

Метки: PHP, кодинг

Грабли оператора HANDLER

Сервер MySQL 5.1. Есть в его реализации замечательный оператор HANDLER. Он обеспечивает прямой доступ к интерфейсу обработчика таблиц MyISAM и InnoDB, минуя оптимизатор SQL. Следовательно, этот оператор работает быстрее, чем SELECT. Прежде чем показать, где проблема, коротко расскажу о синтакисе оператора. Далее копипаст справки по MySQL, ничего нового нет, причем я уберу из нее не относящее к дело.

Метки: MySQL, кодинг

Преобразование спец.символов в HTML-сущности в части документа

В HTML некоторые символы имеют специальное значение и для сохранения своего значения должны быть преобразованы в HTML-сущности. Начиная с 3-ей версии в PHP для этого есть функция - htmlspecialchars(). Работает отлично, но проблема в том, что на преобразует весь html-документ. У меня возникла необходимость преобразования спец. символов только в части документа, а именно сохранение "внешнего вида" угловых скобок в примерах кода на html-страницах.

Метки: PHP, кодинг

Я vs JavaScript - 0:1

JavaScript меня иногда в тупик ставит. Причем не баги реализации, а количество свободы в нем. Кстати, багов в js я еще не видел.

Есть у меня некий код. Для примера упростил его максимально. Суть: есть строка, состоящая из цифр. Это - цифровые флаги. Функция разбирает строку на части и согласно полученных цифровых флагов готовит html-код таблицы для вставки на страницу. Каждая шестая и седьмая ячейка нужна другого цвета (практический пример - календарь в меню этого сайта). Еще замечу, что рабочий код этого календаря я сделал много раньше, только попроще. Теперь мне нужно было сделать его слегка круче.

Проблема Java: "Applet ... not inited"

Ситуация: грузится страница в браузер. По ссылке должен запуститься java-апплет, вместо этого получаю локаничное "Applet ... notinited" (орфография сохранена).
Окружение: WinXP, IE8, Java (JRE) 5.0 Update 14. Системный диск NTFS, пользователь и машина в домене.
Если бы все работало, то получил бы три подряд статуса: "Applet ... loaded", "Applet ... inited", "Applet ... started". Открываю консоль - ничего не понятно.. Беру лопату и начинаю копать.

Метки: java, кодинг
Продвижение
Время
Метки
Щелкни мышей, чтобы закрыть