Search
Write a publication
Pull to refresh
74
0
Александр Горлов @agorlov

User

Send message

Некоторые инженерные практики для улучшения качества web application на PHP

Reading time2 min
Views4.6K
Этот топик мой ответ на жалобу одного человека, что «баги достали».

Для начала, никакая методология положения не спасет. Начинать нужно с инженерных практик – внедрив их и почувствовав уверенность в своем коде можно внедрять любую методологию.

Первые задачи могут быть такие:
  • Обеспечить интеграционное тестирование, чтобы каждое обновление на production не было головной болью.
  • Обеспечить регрессионное тестирование – чтобы выявленные ошибки не возникали опять (отслеживались автоматически).

Читать дальше →

Безбраузерные приложения на Javascript (HTA)

Reading time3 min
Views40K
Одна из мощнейших средств Ослика (начиная с пятой (!) версии) — HTA или HTML Application (безбраузерные приложения), позволяет создавать Windows-приложения используя HTML, CSS и Javascript/VBscript. Сразу хочу заметить, что в этой статье используется исключительно Javascript.

С точки зрения пользователя, созданная «программа» ничем, кроме расширения (*.hta), не отличается от любой другой программы: заголовок окна, иконка, отображение на панели задач, а самое главное никаких предупреждений при доступе к файлам компьютера. При всем этом вам не придется устанавливать никаких отдельных приложений или плагинов, достаточно Internet Explorer-а!

Мусолить не буду, сразу приступим к делу

Многопроцессовые демоны на PHP

Reading time3 min
Views44K
Зачем может понадобиться писать демоны на PHP?
  • Выполнение трудоемких фоновых задач;
  • выполнение задач, которые длятся больше, чем время ожидания при HTTP-запросе (30 секунд);
  • выполнение задач на более высоком уровне доступа, чем серверный процесс (читай — под рутом).

Читать дальше →

Стэнфорд открыл учебные материалы по программированию и ИИ

Reading time1 min
Views6.1K
Стэнфордский университет выложил в открытый доступ под лицензией Creative Commons содержание десяти учебных курсов по программирование, искусственному интеллекту, линейным системам и оптимизации. Воспользоваться этими уникальными материалами могут преподаватели и студенты со всего мира.

Каждый курс содержит видеозаписи лекций, полные тексты и тезисы, а также практические задания и экзаменационные билеты. Материалы практически полностью совпадают с той программой, по которой учатся студенты-очники в Стэнфорде. Чтобы скачать материалы, не требуется никакой регистрации или специального запроса. Они просто выложены в открытый доступ в ZIP-архивах примерно по 300 МБ, а видеоролики ещё продублированы на YouTube.

Вот список открытых курсов:

Обзор компактных Linux дистрибутивов для системных администраторов

Reading time3 min
Views61K
В статье "A comparative look at compact sysadmin distributions" представлен обзор компактных (210Мб mini CD) LiveCD/LiveUSB Linux дистрибутивов для системных администраторов:

SliTaz — занимает всего 25Мб и работает на системах с 128Мб ОЗУ, при наличии графического интерфейса пользователя на основе JWM. Поддерживается загрузка с CD и USB. Ориентация дистрибутива — компактная десктоп система. Из программ которые могут пригодится для восстановления системы присутствует GParted, отдельно можно загрузить пакеты с TestDisk (восстановление дисковых разделов) и PhotoRec (восстановление файлов);


Читать дальше →

Сделаем фотомодель по-быстрому!

Reading time8 min
Views5.7K
Не знаю о чем Вы там подумали из названия, но знайте — я этого в виду не имел! :)
Итак, продолжим становиться «Колумбами и открывать то, что до нас знали миллионы людей», кто вспомнит откуда эта почти-цитата (подсказка: про Интернет) тому 4 балла к гик-карме. Итак…

Итак, в свободное время, когда я не создаю безумные проекты, не учу людей зарабатывать на стартапах, в это время я изучаю всяческие гик-технологии, в т.ч. одна из них прямо-таки у меня стала навязчивой идеей. А именно — взять свой городок в пригороде большого города и превратить его в 3d-уровень для какой-нибудь игры (в FarCry/Crysis я продвинулся в этом больше всего), при том с фотограмметрической точностью (погрешности в метр или меньше от реального расположения домов).

Для того, чтобы это сделать нам понадобится:
  1. 3d-модели;
  2. 3d-движок;
  3. наука со страшным названием фотограмметрия;
  4. даже математика — а то, когда читаешь про Spherical harmonics — радуешься, что приматом был некоторое время; грустишь что все-равно не понимаешь о чем там...
  5. тонна терпения (впрочем, я не был бы мировым лентяем, если бы это и правда было так);

Начнем с 3D моделей

Читать дальше →

Generating PDF files with PHP and FPDF

Reading time5 min
Views117K
Большинство web-сервисов экспортируют данные в разных форматах для дальнейшего использования. Данная статья о том, как экспортировать данные в pdf-формате.
Хотя многие знают как это делать, я опишу кратко для тех кто не знает.
Читать дальше →

Обзор моделей работы с потоками

Reading time4 min
Views28K

Обзор моделей работы с потоками


Многие люди не понимают того, как многопоточность реализована в различных языках программирования. В наши времена многоядерных процессоров такое знание будет весьма полезно.
Вот вам небольшой обзор.
Читать дальше →

Мал, да удал: Trojan-Downloader.Win32.Tiny

Reading time9 min
Views24K
Доброго дня всем.
В сегодняшнем выпуске много технических подробностей. Так что уж извините, если их слишком много :)

Письмо


Итак, начинаем. На входе у нас письмо с текстом «Journalist shot in Georgia! See attached video. Password is 123» и с приложенным файлом «Georgia.zip».

Для более или менее полного анализа нам понадобятся:
— Самый Лучший дизассемблер в мире IDA
— Неплохой Отладчик Windbg
— python 2.5 (строго говоря, подойдет любой, просто у меня 2.5)
— Visual Studio какая-нибудь и Microsoft SDK, чтобы собрать небольшую программу на с++.
— упаковщик программ upx
— ну и чего-то еще по мелочи.

Распаковываем присланный нам файл, и видим, что наши подозрения оправданы: видео там и рядом не ночевало.
joined.exe (md5:607af96b03addadf28cf9280701df191)
Dr.Web: Trojan.Packed.151
Kaspersky: Trojan-Downloader.Win32.Agent.abqe

Читать дальше →

Особенности хранения сессий PHP в memcached

Reading time6 min
Views33K
Данная статья рассматривает одну из проблем хранения PHP-сессий в memcached: отсутствие их блокировки.

Введение

Ни для кого не секрет, что одним из самых популярных способов повышения производительности сайта является использование memcached. Об этом неоднократно говорили и приводили многочисленные примеры. Самый простой способ сделать это — использовать memcached для хранения сессий PHP. Для этого нет необходимости переписывать весь код, достаточно нескольких простых действий. Я не буду рассказывать, почему надо хранить сессии в memcached. Я расскажу о том, почему хранение сессий в memcached опасно.
Читать дальше →

wysiwyg своими руками

Reading time3 min
Views24K
Существует куча платных\бесплатных визуальных редакторов на любой вкус и цвет. Но что, если они работают не во всех браузерах, Вас не устраивает дизайн или функциональность, или просто душа лежит к написанию своего собственного? Ответ на вопрос, как это сделать —
Читать дальше →

Наследование шаблонов в Smarty

Reading time4 min
Views12K
Когда-то, давным-давно, мне пришлось использовать небезызвестный шаблонизатор Smarty. Сначала я, понятное дело, возмущался и кричал, какая же гадость эта заливная рыба Smarty, а потом «распробовал» и втянулся. Те удобства, которые он давал, с лихвой компенсировали мысли о том, что есть и более быстрые шаблонные движки.

Шаблоны я обычно строил с помощью инклюдов: в начале подключался header.tpl, в конце — footer.tpl, в середине ещё что-нибудь нужное. В целом разметка получалась довольно аккуратной, но не проходило ощущение, что не хватает чего-то важного. Окончательно понимание этого чего-то появилось, когда мне случилось написать простенькое приложение на Django. И это «что-то», как все поняли, оказалось наследованием шаблонов. Простая, как и всё гениальное, идея позволяла существенно упростить шаблоны и избавиться от дублирующих блоков.

А почему бы не реализовать подобный механизм в Smarty?

Облако тегов: линейная зависимость vs логарифмическая

Reading time2 min
Views3.6K
Этот пост меня сподвигли написать две вещи. Автокадабра и некто под ником napisal, кто активно не соглашался с моим постом

Дело было так: я зашёл в карту клубов Автокадабры и понял что она мне ни о чём не говорит. Создавалось впечатление, что пишут всего в трёх клубах. После изучения облака я пришёл к выводу что линейная зависимость размера тега (в данном случае блога) от количества публикаций совершенно не информативна. Клубы с одной публикацией выглядят так же как и с 15-ю.
далее с картинками

Концепция проекта как инженерный документ — основа успешного проекта

Reading time2 min
Views23K
Позавчера в Москве прошла конференция PMDays 2008. Я решил выложить текст презентации своего выступления здесь, надеюсь, что он поможет вам в вашей текущей работе, также готов ответить на любые вопросы. Спустя какое-то время на RuTube появятся видеозаписи выступлений.

Читать дальше →

Гибкая разработка сайта: программирование + дизайн

Reading time2 min
Views2.9K
О гибких (agile) методологиях по разработке программных продуктов информации довольно много. Но, мне пока нигде не попадалась информация (на русском) о применении agile для разработки сайтов. Я имею ввиду достаточно крупные проекты, например социальные сервисы, где подразумевается постоянное совершенствование продукта и где важен ранний запуск бета-версии. В частности, меня интересует вопрос планирования параллельной разработки дизайна и программной части проекта.

Рассмотрим типичную ситуацию.
Читать дальше →

Лямбда вычисления и замыкание

Reading time2 min
Views2.2K
В конце 2007 года был предложен патч, добавляющий лямбда функций (но без замыканий) для PHP. В ходе дискуссии в списке рассылки, было решено, что без поддержки замыканий, нет необходимости добавлять их в PHP.
Тем не менее, интерес к этой теме привел к существенным изменением первоначального патча Кристиана Сайлера (Christian Seiler) и выпуску Дмитрием Стоговым (Dmitry Stogov) нового патча.

В результате мы имеем замыкание и лямбда функции в PHP (5.3)


Читать дальше →

Как российскому стартапу преодолеть «Долину смерти»?

Reading time5 min
Views1.3K
На конференции Office Developers в феврале Билл Гейтс 43 минуты презентовал продукт старт-апа Xobni (Inbox наоборот, плагин к Outlook). Сейчас Microsoft ведет переговоры о покупке компании за $20-30 млн., а незадолго до конференции Xobni стал выпускником YCombinator. Еще одной «историей успеха» этой программы.
YCombinator – пожалуй, самая успешная и известная из предпринимательских программ. При инвестициях до $20тыс. в компанию за 5-10% собственности некоторые из ее выпускников показали фантастическую доходность в 200-300 раз (например, Zenter, который был продан за $6M Google или Reddit – продан за $3M Conde Nast), большинство выпускников привлекли следующий раунд инвестиций (Loopt – $5M, Scribd – $3M и пр.)
Успех бизнес-модели вдохновил и нас. 10 августа мы запускаем программу AddVenture. Это именно «программа динамичного развития», а не «инкубатор». Проблема инкубаторов в России – их количество, а точнее их неэффективность и несоответствие предоставляемых ресурсов реальным потребностям предпринимателей. Старт-апам нужны контакты инвесторов, экспертов и первых клиентов, помощь в формировании команд, в развитии бизнеса, а не бухгалтер, принтер и кулер.
Главная задача AddVenture, как мы ее сформулировали для себя, – помочь преодолеть «Долину смерти» – период развития старт-апа, в который венчурные инвестиции еще недоступны, т.к. продукт не проверен рынком, команда не сработалась, продаж нет, денежный поток отрицательный и риски слишком велики для фондов.
Читать дальше →

Конвертация базы из Windows1251 в UTF8

Reading time3 min
Views37K
Всем привет. Столкнулся с вопросом конвертации базы из CP1251 в UTF8.
Полазив по просторам Интернета не нашел готового скрита (видимо плохо искал).
Вот решил написать свой скриптп. Конвертация происходит безо всяких дампов базы. Решены проблемы с символами е = ё и т.д.

продолжение под катом
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity