Pull to refresh
  • by relevance
  • by date
  • by rating

PHP класс для сборки инклюдов в один файл

Lumber room
по мотивам коммента mocksoul из темы PHP: Введение в Zend Framework

Проблема


В кратце, речь шла о том, что одним из недостатков фреймворка является его концепция «один класс – один файл». И хотя, с моей точки зрения, это не является недостатком архитектуры ZF, это является недостатком PHP. Проблемы начинаются когда PHP начинает инклюдить десятки и сотни файлов, да еще проверять их на once.

Предложенное решение – сборка всех инклюдов в один файл.
Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 440
Comments 16

Что есть что в мире социальных платформ

Lumber room
Эта заметка продолжает нашу беседу о новом витке развития социальных сетей, что это за виток и почему я называю его революционным. Сразу хочу предупредить: после жизнерадостного «лимонадного» сегодня разговор предстоит очень пресный – классификация социальных платформ.

Уверен, что каждый из нас вкладывает в слово «социальная платформа» свой смысл. И это не удивительно. Всё развивается такими темпами, что времени на любые классификационные схемы просто не остаётся, и даже уже составленные, они рискуют устареть быстрее, чем с ними по-настоящему разберутся первые читатели. И, тем не менее, рискну разложить всё по полочкам…

Итак, социальная веб- платформа – это программный продукт на базе и(возможно) с помощью которого пользователь (группа пользователей) может создать управляемое им (ими) же социальное веб-пространство, или веб-среду. Это целевое пространство, в свою очередь, является основой для образования собственной (целевой) социальной сети. Далее будем говорить просто о социальных платформах или ещё проще — платформах.

В полном варианте этой заметки в iTech Bridge блоге даётся классификация платформ по критериям:

ориентации на целевые сервисы — блоги форумы, вики и т.п.;
поставки сервиса — во владение (с открытым или закрытым кодом), по требованию, комбинации;
взаимоотношения с целевыми пространствами — операционные (одноцелевые, многоцелевые), библиотеки ( универсальные, групповые, специальные), комбинации;
(методу) создания целевых пространств – программируемые, настраиваемые (процедурно, параметрически), законченные;
прозрачности – прозрачные, непрозрачные.

Приведённая классификация иллюстрируется примерами. Таким образом, мы как бы получаем некоторого рода таблицу «классификационные признаки – образцы платформ».

В таком виде классификационная схема, в целом, достаточна для понимания того, о чём идёт речь в нашем цикле, и дальнейшего определения того, какие, именно, платформы определяют революционность ситуации в социальном Интернете. Однако хочу привести реферат ещё нескольких дополнительных соображений, изложенных в той же блог -заметке.
Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Views 1.7K
Comments 0

Образование для айтишника в России и в Америке. Часть третья

Studying in IT Education abroad IT-emigration
В связи со значительным интересом к теме особенностей жизни за границей после моей первой и второй части топика, возникла идея вести блог, в котором будут описываться не только айтишные темы, но и просто жизненные. Кроме того, что сказать миру, мне есть, что показать ему, так что если эта тема интересует, то прошу сообщить мне об этом. А сейчас, предлагаю вам прочитать третью, заключительную часть статьи об образовании в Америке, где будут раскрыты, я надеюсь, все оставшиеся вопросы.

Читать дальше →
Total votes 63: ↑58 and ↓5 +53
Views 825
Comments 118

JAVA класс для определения свободного места под *nix

Lumber room
Как-то, при написании биллинга, у меня возникла необходимость
определять оставшееся место на диске, для хранения бекапов.
Задачей было сделать rotate бекапов, на серверах, где хранились
детальные данные о траффике достаточно большой сети.
Поиски готовых решений успехом не увенчались.
Пришлось писать свой класс. Выкладываю сюда, ничего сложного, но вдруг кому пригодится.

Читать дальше →
Total votes 9: ↑6 and ↓3 +3
Views 236
Comments 14

Попытка реализации многопоточности в PHP

Lumber room
Задача была в след: Нужно было получить координаты для множества городов и регионов.
Т.к. координат было куча возникло решение в многопоточности.

Плюсы: одновременное выполнение нескольких запросов к серверу.
Минусы: если запускать свой скрипт, то надо указывать url к скрипту, т.е. на локале не всегда будет работать.
Читать дальше →
Total votes 11: ↑5 and ↓6 -1
Views 262
Comments 23

Gmail grabber — класс парсинга контактного листа

Lumber room
Собственно говоря читайте сабж.

Функции:

Login — Вход в gmail. Возвращает стандартно — true/false
Сразу после входа в систему проиходит импорт контактного листа в переменную ContactList
Читать дальше →
Total votes 19: ↑11 and ↓8 +3
Views 399
Comments 9

Каждому классу — свой файл

Lumber room
Есть класс, который содержит пару десятков функций, которые можно сгрупировать в 3-4 группы по назначению. Мне бы было удобно если эти группы функций вынести в отдельные файлы, но при этому не потерять структуру класса, чтобы класс отсался классом. Мне надоело скролить длинные файлы с классами.
Читать дальше →
Total votes 5: ↑1 and ↓4 -3
Views 263
Comments 5

Unclesocky podcast — Выпуск #46

Lumber room
— Ваши комментарии
Кинопиратство
О сутулых спинах
— Подготовка к марафону
FC United of Manchester
— Салман Рушди «На юге»
— Тройка фильмаков*
— Погружение вконтакт

*Фильмы: «Класс», «Вечное сияние чистого разума», «Приготовьтесь, будет громко»

unclesocky podcast46 / 17.9 Мб / 39:05 / MP3, 64 kbps
Download

Офф. сайт подкаста

RSS подкаста
Total votes 2: ↑0 and ↓2 -2
Views 170
Comments 1

Преобразование ссылки на интерфейс для реализации класса в Delphi 2010

Delphi *
Translation
Не все нововведения в Delphi 2010 большие и заметные. Команда потратила массу времени реализуя множество дополнительных функциональных возможностей, исправлений и улучшений. Некоторые из них могут показаться незначительными по отдельности, но они не только в целом окзывают существенное влияние, но и значительно добавляют гармоничности продукту.

Одна из возможностей Delphi 2010, которая, как мне кажется, породит массу споров — это возможность привести интерфейсную ссылку назад к типу класса, реализующего этот интерфейс.
Читать дальше →
Total votes 25: ↑15 and ↓10 +5
Views 4.6K
Comments 34

Proxeterium. Глава 1. Часть 4: Класс

Lumber room
Данный пост — продолжение рассказа о человеке, изменившим свою жизнь, напрямую зависящую от компьютера в лучшую сторону. Каждая часть будет короткой, чтобы не было напряжения и усталости от прочтения, а текст написан просто, без наворотов и сложных фраз. Буду стараться придерживаться разговорного языка. Далее, если вам понравится, буду стараться делать рассказ лучше и лучше. С удовольствием выслушаю ваши комментарии и пожелания.
Глава 1. Часть 1: Введение
Глава 1. Часть 2: Улица
Глава 1. Часть 3: Школа

Прочитать новую часть!
Total votes 8: ↑3 and ↓5 -2
Views 159
Comments 8

Объединяя C++ и Python. Тонкости Boost.Python. Часть первая

Python *Programming *C++ *
Tutorial
Boost.Python во всех отношениях замечательная библиотека, выполняющая своё предназначение на 5+, хотите ли вы сделать модуль на С++ для Python либо хотите построить скриптовую обвязку на Python для нативного приложения написанного на С++.
Самое сложное в Boost.Python — это обилие тонкостей, поскольку и C++ и Python — два языка изобилующие возможностями, и потому на стыке их приходится учитывать все нюансы: передать объект по ссылке или по значению, отдать в Python копию объекта или существующий класс, преобразовать во внутренний тип Python или в обёртку написанного на C++, как передать конструктор объекта, перегрузить операторы, навесить несуществующие в C++, но нужные в Python методы.
Не обещаю, что в своих примерах опишу все тонкости взаимодействия этих фундаментальных языков, но постараюсь сразу охватить как можно больше частоиспользуемых примеров, чтобы вы не лазили за каждой мелочью в документацию, а увидели все необходимые основы здесь, или хотя бы получили о них базовое представление.
Читать дальше →
Total votes 64: ↑64 and ↓0 +64
Views 122K
Comments 8

Объединяя C++ и Python. Тонкости Boost.Python. Часть вторая

Python *Programming *C++ *
Tutorial
Данная статья является продолжением первой части.
Продолжаем мучить Boost.Python. В этот раз настала очередь класса, который нельзя ни создать, ни скопировать.
Обернём почти обычную сишную структуру с необычным конструктором.
И поработаем с возвращением ссылки на поле объекта C++, так чтобы сборщик мусора Python его не удалил ненароком. Ну и наоборот, сделаем альтернативный вариант, чтобы Python прибрал мусор после удаления того, что ему отдали на хранение.
Поехали…
Читать дальше →
Total votes 40: ↑39 and ↓1 +38
Views 24K
Comments 3

Конвертация типов в Boost.Python. Делаем преобразование между привычными типами C++ и Python

Python *Programming *C++ *
Tutorial
Данная статья не является продолжением повествования об обёртках C++ API. Никаких обёрток сегодня не будет. Хотя по логике это третья часть данного повествования.
Сегодня будет море крови, расчленение существующих типов и магическое превращение их в привычные аналоги в другом языке.
Речь не пойдёт о существующей конвертации между строками, нет, мы напишем свои конвертеры.
Мы превратим привычный datetime.datetime питона в boost::posix_time::ptime библиотеки Boost и обратно, да чёрт с ним, мы вообще всю библиотеку datetime превратим в бустовые типы! А чтобы не было скучно, принесём в жертву встроенный класс массива байт Python 3.x, для него как раз ещё нет конвертера в Boost.Python, а потом зверски используем конвертацию массива байт в новом конвертере питоновского uuid.UUID в boost::uuids::uuid. Да, конвертер можно использовать в конвертере!
Жаждешь крови, Колизей?!..
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Views 18K
Comments 4

В C++ единицей инкапсуляции является класс

C++ *
Заголовок статьи на самом деле представляет собой не одно утверждение, а два, хотя оба они известны:
  1. В C++ единицей инкапсуляции является класс – а не отдельный объект ([Stroustrup3e], 24.3.7.4).
  2. В C++ единицей инкапсуляции является класс – а не класс вместе с его ниже стоящей иерархией.
Читать дальше →
Total votes 41: ↑23 and ↓18 +5
Views 18K
Comments 29

Нужны ли в JavaScript классы?

Website development *JavaScript *Programming *
JavaScript принято считать прототип-ориентированным языком программирования. Но, как ни странно, этим подходом практически никто не пользуется: большинство популярных JS-фреймворков явно или неявно оперируют классами.
В этой статье я хочу рассказать об альтернативном способе программирования на JavaScript, без использования классов и конструкторов — чистым прототипным ООП и особенностях его реализации на ECMA Script 5.
Читать дальше →
Total votes 164: ↑140 and ↓24 +116
Views 99K
Comments 60

Причуды абстракций

LLC Tik-Tok Coach corporate blog Programming *ООP *
Tutorial
image

За годы преподавания и коммерческой разработки я повстречал много студентов и разработчиков, которые не до конца понимают смысл слова абстракция. Из многочисленных попыток разъяснить смысл этого термина получилась настоящая статья. Что Вы найдете под катом:
  • Определение понятия абстракции и объяснение откуда оно взялось в ООП.
  • Объяснение на простых примерах, что такое барьер абстракции, побочный эффект абстракции.
  • Как получается хардкод.

Читать дальше →
Total votes 35: ↑27 and ↓8 +19
Views 25K
Comments 25

Концепция Абстрактного Типа Данных

Java *Designing and refactoring *ООP *
Recovery mode
Доброго времени суток, хабравчане!

Следующий пост является изложением моих размышлений на тему природы классов и АТД. Эти размышления дополнены интересными цитатами из книг гуру разработки программного обеспечения

Введение


Начнем с того, что плавно подойдем к определению АТД. АТД, в первую очередь, представляет собой тип данных, что означет следущее:
наличие определенных доступных операций над элементами этого типа;
а также данные, относительно которых эти операции выполняются (диапазон значений).
Читать дальше →
Total votes 27: ↑9 and ↓18 -9
Views 26K
Comments 7

Краткая заметка про наследование в Node.js

JavaScript *Node.JS *ООP *
В JavaScript существует множество разных способов наследования, классового и прототипного, фабричного и через примеси, прямого и непрямого, а так же гибриды нескольких методов. Но у Node.js есть его родной способ с применением util.inherits(ChildClass, ParentClass). До недавнего времени я использовал нодовский способ только для встроенных классов (когда нужно сделать своего наследника для EventEmitter, Readable/Writable Stream, Domain, Buffer и т.д.), а для моделирования предметной области применял общеупотребительные для всего JavaScript практики. И вот, впервые, понадобилось реализовать собственную иерархию системных классов, не наследников от встроенных, но и не классов предметной области, а классов, массово поражаемых в системном коде сервера приложений Impress. И простого использования util.inherits уже как-то не хватило, поискал я статьи и не найдя полностью всего, что мне нужно, изучил примеры наследования в исходниках самой ноды, подумал и сделал пример родного нодовского наследования себе на память и написал эту небольшую заметку, чтобы она, надеюсь, помогла еще и вам. Сразу предупреждаю, что реализация вызова метода родительского класса из переопределенного в дочернем классе метода, мне не очень нравится из-за громоздкости, поэтому, приветствую альтернативные способы и приглашаю коммитить их в репозиторий или в комментарии к этой заметке.

Читать дальше →
Total votes 17: ↑10 and ↓7 +3
Views 22K
Comments 66

Class'ные Class'ы

Java *

Вводная


Наверное, java-классы — это самая известная ее часть. Мы их используем каждый день, пишем их, правим их. Но есть много нюансов, о которых мы даже не догадываемся. И я люблю за это 'нашу' java — она всегда сможет оставаться загадочной, таинственной. Сегодня часть ее секретов падет к Вашим ногам. Здесь вы найдете необычные примеры кода, смешную историю и интересную статистику. Кому интересно, добро пожаловать под кат.
Читать дальше →
Total votes 25: ↑21 and ↓4 +17
Views 19K
Comments 20
1