Жизнь веб-разработчика омрачена сложностями. Особенно неприятно, когда источник этих сложностей неизвестен. То ли это проблема с отправкой запроса, то ли с ответом, то ли со сторонней библиотекой, то ли внешний API глючит? Существует куча различных прилад, способных упростить нам жизнь. Вот некоторые инструменты командной строки, которые лично я считаю бесценными.
Роман @Chvanikoff
Пользователь
Передовым IT-компаниям нужны эксперты по «мертвым» языкам
2 min
2.7KTranslation
Индустрии финансовых услуг Шотландии угрожает серьезная опасность в области информационных технологий. Нет, это не массированные DOS-атаки враждебных сил. Нет, и даже не безжалостные хакеры, покушающиеся на ценнейшие данные о клиентах. Индустрии грозит недостаток критических ресурсов: программистов, знающих COBOL, ассемблер и другие старые языки программирования. Университеты выпускают очень способных студентов, сведущих в модных языках типа Java и .NET, но многие компании начинают осознавать, что для некоторых устаревших технологий уже не будет нового поколения специалистов.
+31
Как поднять свой уровень в искусстве программирования. План из шести шагов
2 min
21KTranslation
Вольный перевод списка из довольно удачных способов для повышения своего уровня, как программиста.
+140
К вопросу об инвалидации кеша
7 min
39KИнвалидация кеша, возможно, одна из самых запутанных вещей в программировании. Тонкость вопроса состоит в компромиссе между полнотой, избыточностью и сложностью этой процедуры. Так о чём же эта статья? Хотелось бы не привязываясь к какой-либо платформе, языку или фреймворку, подумать о том как следует реализовывать систему инвалидации. Ну а чтобы не писать обо всём и ни о чём, сконцентрируемся на кешировании результатов SQL-запросов построенных с помощью ORM, которые в наше время встречаются нередко.
+25
Как он учился писать статьи на Хабре
12 min
1.6KВася в очередной раз посмотрел на экран своего ноутбука. Он не хотел обновлять страницу. Хотя, очевидно, что её надо было обновить. Ещё разок. Последний раз. Больше он не будет её обновлять. F5.
56.6. Упала на 1 единицу. Чёрт. Хотя, минус один за четыре часа — это не большая проблема, но всё-таки было неприятно.
Серо-синий клубок ниток (или проводов, не важно), смотрел на покрасневшие программерские глаза. Он был одновременно притягивающим и отталкивающим. Этот клубок сулил славу и знание, но в то же время, мог привести к позору.
Не так давно, несколько часов назад, из за одного, не в меру остроумного комментария Вася потерял 12 единиц. Отвратительно. Надо было взять реванш. Это просто уже дело чести. Обязательно надо взять реванш.
+68
Анонимность, доступная каждому
7 min
61KВсем привет, давайте знакомиться.
Мы – Kebrum, сейшельская компания с русскими мозгами. Наш профиль – анонимность и безопасность в интернете, на данный момент мы запустили VPN сервис и не собираемся останавливаться на этом. Сначала расскажу коротко о сервисе для тех, кто не участвовал в бета-тестировании, а потом пару прохладных историй, как это полагается на Хабре.
Мы – Kebrum, сейшельская компания с русскими мозгами. Наш профиль – анонимность и безопасность в интернете, на данный момент мы запустили VPN сервис и не собираемся останавливаться на этом. Сначала расскажу коротко о сервисе для тех, кто не участвовал в бета-тестировании, а потом пару прохладных историй, как это полагается на Хабре.
+87
Настоящий веб-сайт на Common Lisp за 9 шагов
7 min
12KВведение
Эта вводная статья предназначена для желающих попробовать применить Common Lisp в задачах веб-программирования. Я не буду останавливаться на преимуществах этого языка, за меня это сделал ababo в своем вводном посте Разработка web-приложений на языке Common Lisp (часть первая)
Я занимаюсь вопросами разработки веб-приложений на Common Lisp немногим более года и сделал на Common Lisp крупный интернет-магазин, что, как мне кажется, предупредит возражения тех, кто считает, что лисп бесполезен для коммерческого применения.
Сегодня моя задача — рассказать в подробностях о применяемом мной способе развертывания всей необходимой инфраструктуры. Используя эту статью как пошаговое руководство внимательный читатель сможет развернуть свой собственный сайт на лиспе.
Возможно мои подходы не идеальны — в таком случае я буду рад конструктивной критике — пожалуйста, не стесняйтесь если вам что-то не нравится — одной из целей написания этой статьи было исправление собственных ошибок.
Для тех, кто любит проматывать скучные процедуры установки — в конце статьи размещена небольшая вкусность, которая, возможно, расширит ваш взгляд на веб-программирование, если до этого момента вы не имели дела с лиспом. Ищите по ключевым словам SLIME и SWANK :)
+56
Применение метамодели при проектировании баз данных с несколькими абстрактными слоями
6 min
13KКлассический подход предусматривает разработку структур баз данных, где все сущности информационной модели находятся на одном абстрактном уровне, являются однородными. Однако, сложные и слабо-структурированные предметные области приводят реляционную декомпозицию к комбинаторному взрыву, непропорциональному росту количества таблиц и связей. А динамические предметные области, в которых ежедневные изменения являются нормой жизненного цикла, требуют постоянного реинженеринга структуры реляционной базы данных.
+31
Наглядно о популярных Open Source лицензиях
1 min
28KНаглядное представление популярных Open Source лицензий
+155
Zend PHP 5 Certification Practice Test
1 min
11KНе так давно, а именно в октябре 2010 года, компания Zend немного обновила систему сертификации PHP5 инженеров. Так, если раньше тестирование проводилось по версии 5.1, то теперь проводится по 5.3 (привет namespaces, late static bindings и замыкания). Были переформированы темы тестирования — вместо 12ти прежних, теперь их 10. И что самое главное, из Zend маркета убрали подготовительные тесты. Раньше их можно было приобрести в количестве 1, 5 или 10 штук за относительно скромные деньги (10 стоили порядка 22$). Сейчас же вместо них за довольно-таки нехилую сумму в 1000$ можно приобрести так называемый Test Prep: Zend PHP 5.3 Certification Training (подготовительный online-треннинг для продвинутых php-программистов) и ваучер на прохождение тестирования. Кстати, о ваучере… если для версии 5.1 он стоил 125$, то теперь цену подняли до 195$.
+53
Не строим с нуля. Теперь у Вас есть шаблон для верстки HTML5
2 min
17KTranslation
Любовь к HTML5 продолжает вдохновлять Поля Айриша. Во-первых, он подарил нам Modernizr, а сейчас он объединился с Divya Manian для создания шаблона HTML5, который использует передовые техники, чтобы Вы могли начать использовать его в своей практике.
Он, в сущности, является хорошей отправной точкой, состоящей из HTML и CSS, предлагающим также и структуру папок, которая работает. Но созданным с учётом многих лет передового опыта профессионалов в разработке клиентской части. Загляните в исходные тексты, чтобы почувствовать, что находится внутри. А если вы думаете, что этого слишком много, просто удалите лишнее.
+135
Применение алгоритмов нечеткого поиска в PHP
7 min
30KВдохновленный топиками о нечетком поиске и фонетических алгоритмах, захотел попытаться реализовать нечто подобное похожее на гугловское «Возможно, вы имели в виду: ...» средствами PHP.
Для исправления опечаток в словах понадобится:
Расстояние Левенштейна (или расстояние Дамерау-Левенштейна — разница будет незначительной) — levenshtein()
Metaphone — metaphone()
Алгоритм Оливера — similar_text()
База русских слов (с падежами, учетом времен и т.д.).
Для исправления опечаток в словах понадобится:
Расстояние Левенштейна (или расстояние Дамерау-Левенштейна — разница будет незначительной) — levenshtein()
Metaphone — metaphone()
Алгоритм Оливера — similar_text()
База русских слов (с падежами, учетом времен и т.д.).
+53
Пример сайта на Common Lisp
5 min
8.8KВведение
Это статья написана, чтобы иллюстрировать применение возможностей Common Lisp к типичным задачам веб-разработки.
Я постараюсь показать, как на лиспе реализовываются основные применяемые в веб-программировании вещи — шаблонизация, роутинг и кеширование. Также я оставил немножко места для макросов.
Статья в большой степени учебная, тем не менее это вполне работающий веб-сайт — rigidus.ru
+62
Тонкости регулярных выражений. Часть 1: метасимволы внутри и вне символьных классов
5 min
16KВместо вступления
Все, кто хоть раз писал программы, знают, что на свете есть такое чудо, как регулярные выражения. Некоторые не могут пройти без них ни шагу, некоторые боятся их как огня, но представить современный язык программирования без регулярных выражений крайне сложно.
Что бывает, когда начинающий программист в первый раз узнает про регулярные выражения? Чаще всего первое знакомство с ними происходит методом «научного тыка», поскольку ни знаний в соотвествующей области, ни понимания «как это работает» обычно на данном этапе у человека нет. Почему так происходит?
+56
Удлинение урлов — занятие бессмысленное и беспощадное
2 min
4.3KНе знаю кто как проводит эти выходные, а у меня возникло сильное желание сделать что-то поистине бесполезное для человечества. Недолго перебирая варианты, остановился на одном.
Уверен, что если есть сервисы которые укорачивают ссылки, то должны были быть и те, которые удлиняют. Т.е. очень важно чтобы был соблюден баланс урлоизменяющих сервисов в природе. Последние были легко найдены: это и HugeUrl, и TitanUrl, и FreakingHugeUrl, и другие… Но что может более бесполезным, чем попытка сделать ненужную вещь лучше. Совершенного удлинителя я не нашел, один использует флэш, другой делает урлы не работающие в IE, третий делает слишком короткие урлы.
Поэтому прошу любить и жаловать мое видение сервиса делающего урлы бессмысленно длинными.
Уверен, что если есть сервисы которые укорачивают ссылки, то должны были быть и те, которые удлиняют. Т.е. очень важно чтобы был соблюден баланс урлоизменяющих сервисов в природе. Последние были легко найдены: это и HugeUrl, и TitanUrl, и FreakingHugeUrl, и другие… Но что может более бесполезным, чем попытка сделать ненужную вещь лучше. Совершенного удлинителя я не нашел, один использует флэш, другой делает урлы не работающие в IE, третий делает слишком короткие урлы.
Поэтому прошу любить и жаловать мое видение сервиса делающего урлы бессмысленно длинными.
+310
Проектирование по контракту
5 min
23KДва года назад мне посчастливилось побывать на лекции замечательного человека, одного из разработчиков языка Eiffel, Бертрана Мейера. Он читал в нашем университете (СПб ГУ ИТМО) лекцию о довольно интересной концепции проектирования ПО. Называется она «проектирование по контракту». Суть этой концепции я попытаюсь описать ниже.
Вот, например, когда вы с клиентом договариваетесь о совместной работе, то вы заключаете контракт. Т.е. вы описываете обязанности обоих сторон и возможные последствия в случае неожиданных ситуаций. Данный подход можно применить и к разработке ПО, где в качестве сторон выступают программные модули.
Проектирование по контракту является довольно простой, но, в то же время, мощной методикой, основанной на документировании прав и обязанностей программных модулей для обеспечения корректности программы. Я считаю, что корректная программа – это программа, которая выполняет не больше и не меньше того, на что она претендует.
Вот, например, когда вы с клиентом договариваетесь о совместной работе, то вы заключаете контракт. Т.е. вы описываете обязанности обоих сторон и возможные последствия в случае неожиданных ситуаций. Данный подход можно применить и к разработке ПО, где в качестве сторон выступают программные модули.
Проектирование по контракту является довольно простой, но, в то же время, мощной методикой, основанной на документировании прав и обязанностей программных модулей для обеспечения корректности программы. Я считаю, что корректная программа – это программа, которая выполняет не больше и не меньше того, на что она претендует.
+53
LISP-программирование как жанр искусства
1 min
5.6KНереальный, фееричный перфоманс с использованием LISP и OpenGL.
Поначалу ничего непонятно, но все завораживающее действо начинается с 5 минуты где-то. Может быть это и есть один из видов искусства будущего?
Уже представляю себе «выступает заслуженный LISP-ист России, лауреат международных премий Иван Лямбдин»
Поначалу ничего непонятно, но все завораживающее действо начинается с 5 минуты где-то. Может быть это и есть один из видов искусства будущего?
Уже представляю себе «выступает заслуженный LISP-ист России, лауреат международных премий Иван Лямбдин»
+68
Многомерные кубы, OLAP и MDX
5 min
118K Довольно давно являюсь обитателем Хабра, но так и не доводилось читать статьи на тему многомерных кубов, OLAP и MDX, хотя тема очень интересная и с каждым днем становится все более актуальной.
Не секрет, что за тот небольшой промежуток времени развития баз данных, электронного учета и онлайн систем, самих данных накопилось очень много. Теперь же интерес также представляет полноценный анализ архивов, а возможно и попытка прогнозирования ситуаций для подобных моделей в будущем.
С другой стороны, большие компании даже за несколько лет, месяцев или даже недель могут накапливать настолько большие массивы данных, что даже их элементарный анализ требует неординарных подходов и жестких аппаратных требований. Такими могут быть системы обработки банковских транзакций, биржевые агенты, телефонные операторы и т.д.
Думаю, всем хорошо известны 2 разных подхода построения дизайна баз данных: OLTP и OLAP. Первый подход (Online Transaction Processing — обработка транзакций в реальном времени) рассчитан на эффективный сбор данных в реальном времени, второй же (Online Analytical Processing – аналитическая обработка в реальном времени) нацелен именно на выборку и обработку данных максимально эффективным способом.
Давайте рассмотрим основные возможности современных OLAP кубов, и какие задачи они решают (за основу взяты Analysis Services 2005/2008):
Не секрет, что за тот небольшой промежуток времени развития баз данных, электронного учета и онлайн систем, самих данных накопилось очень много. Теперь же интерес также представляет полноценный анализ архивов, а возможно и попытка прогнозирования ситуаций для подобных моделей в будущем.
С другой стороны, большие компании даже за несколько лет, месяцев или даже недель могут накапливать настолько большие массивы данных, что даже их элементарный анализ требует неординарных подходов и жестких аппаратных требований. Такими могут быть системы обработки банковских транзакций, биржевые агенты, телефонные операторы и т.д.
Думаю, всем хорошо известны 2 разных подхода построения дизайна баз данных: OLTP и OLAP. Первый подход (Online Transaction Processing — обработка транзакций в реальном времени) рассчитан на эффективный сбор данных в реальном времени, второй же (Online Analytical Processing – аналитическая обработка в реальном времени) нацелен именно на выборку и обработку данных максимально эффективным способом.
Давайте рассмотрим основные возможности современных OLAP кубов, и какие задачи они решают (за основу взяты Analysis Services 2005/2008):
- быстрый доступ к данным
- преагрегация
- иерархии
- работа с временем
- язык доступа к многомерным данным
- KPI (Key Performance Indicators)
- дата майнинг
- многоуровневое кэширование
- поддержка мультиязычности
+56
MySQL шпаргалки
3 min
818KЧасто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных.
Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.
Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.
+171
Юнит-тестирование в PHP
13 min
186KЯзык PHP очень легок для изучения. Это, а так же обилие литературы «Освой _что_угодно_ за 24 часа» породило большое количество, мягко говоря, некачественного кода. Как следствие, рано или поздно любой программист, который выходит за рамки создания гостевой книги или сайта-визитки сталкивается с вопросом: «а если я здесь немножко добавлю, все остальное не ляжет?» Дать ответ на этот вопрос и на многие другие может юнит-тестирование.
В самом начале хочется оговориться — здесь речь не будет идти о TDD и методологиях разработки ПО. В данной статье я попробую показать начинающему PHP-разработчику основы использования модульного тестирования на базе фреймворка PHPUnit
В самом начале хочется оговориться — здесь речь не будет идти о TDD и методологиях разработки ПО. В данной статье я попробую показать начинающему PHP-разработчику основы использования модульного тестирования на базе фреймворка PHPUnit
+83
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity