Архив за 27 мая 2013 - 6

Всё нижеизложенное вымысел, основанный на реальных событиях.

Не являясь мастером писать заметки, пытался «с пылу с жару» изложить это вчера. Но просто и доступно выстроить мысли в стройном порядке «по горячим следам» не вышло.

Кроме того на личном опыте выяснилось, что описываемый подход, хоть он, на первый взгляд и кажется лично мне очень простым, статистически таким не является. Известное высказывание о том, что «простые вещи, они самые сложные» оказывается в данном случае верным.

«Практическое» применение данного подхода требует усилий и кропотливой работы над собой, до тех пор, пока он не станет безусловным рефлексом, пока допускаемая «неточность» не будет заметна ещё до её совершения.

Поэтому, споткнувшись об одну и ту же проблему в «надцатый» раз, и в «надцатый» же раз наблюдая идентичное её решение, полагаю, что изложение данного «подхода» в письменном виде поможет мне ещё прочней закрепить его как «навык».

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

Читать полностью »

Если у вас есть сайт, которым часто пользуются с мобильных устройств (таких как телефоны и планшетные ПК), то вы, возможно, задавались вопросом, как реализовать быстрый вход — так, чтобы пользователю не требовалось вводить ни адрес сайта, ни логин и пароль (либо E-mail и пароль).

На некоторых сайтах вы, возможно, видели возможность отправить SMS-сообщение со ссылкой для быстрого входа — это, по сути, приблизительно то же самое. Основное отличие описанного в данной заметке подхода в том, что вместо отправки SMS-сообщения мы будем генерировать QR-код, который содержит ссылку, позволяющую войти на сайт без ввода авторизационных данных.

Скриншот с экрана мобильного телефона

Кстати, весь процесс написания приложения, которое приводится далее, можно посмотреть в скринкасте на YouTube.
Читать полностью »

Эта статья была опубликована 6 лет 3 месяца 19 дней назад, 8 февраля 2007 года. На тот момент «Фейсбук» едва приближался к двум десяткам миллионов зарегистрированных пользователей, и известное всем развитие событий позволяет по-новому взглянуть на прогнозы будущего творения Марка Цукерберга, которое по ряду оценок уже сейчас постепенно теряет популярность среди некоторых групп пользователей.

Аристотель различал дружбу на основе совместных интересов и связующего единомышленников чувства взаимной близости. Бо́льшая часть зарегистрированных пользователей «МайСпейса», феноменально успешного сервиса социальных сетей Руперта Мёрдока, попадает в последнюю категорию. Но очевидность продолжающегося расширения, которое с взрослением поколения «МайСпейса» может постепенно увеличить влияние Мёрдока, заставляет поблекнуть контроль Руперта над спутниковым телевидением.

В момент покупки высказывались предположения, что если Мёрдок попытается испортить коммерциализацией майспейсовскую «культуру обмена контентом», пользователи просто уйдут на один из десятка наплодившихся клонов — от Bebo.com до восходящей мобильной звезды Cyworld.com, которая уже завоевала Южную Корею и сейчас ведёт бои на отшибе «МайСпейса» в США. «Сайуорлд» указывает на исследования, согласно которым «МайСпейс» — сайт переходного возраста, из которого детки всё-таки вырастут, в то время как «Сайуорлд» — это полноценный сайт социальных сетей. Получается интересное, почти по Аристотелю разграничение, но некоторые считают, что сместить «МайСпейс» конкурентам под силу лишь с нишевых рынков.

Джон Барретт (TechNewsWorld) утверждает, что «МайСпейс» уже уверенно встал на рельсы становления тем, что экономисты называют «естественной монополией». Пользователи вложили настолько много социального капитала в метод публикации информации о себе, что менять сайты будет невыгодно, особенно, с учётом ценности, добавляемой к «МайСпейсу» с каждым новым привлекаемым пользователем.
Читать полностью »

Компания МТС направила в Роскомнадзор и Минкомсвязи запрос, в котором просит обратить внимание на деятельность OTT-сервисов (Over The Top сервисы, осуществляющие доставку сигнала через интернет-канал). Подобные проекты все чаще конкурируют с операторами, но при этом их деятельность никак не регулируется. МТС была бы рада, если бы регулятор рассмотрел вопрос о соответствии Skype и подобных ему компаний российским лицензионным требованиям: необходимо определить их статус как участников рынка. Ведь по сути, поставщики интернет-сервисов, не инвестируя в инфраструктуру связи, пользуются сетями, в сооружение которых операторы вложили огромные средства.

image
Читать полностью »

Компания D-Link объявила о выпуске управляемых коммутаторов DGS-3000-10TC и DGS-3000-26TC для корпоративных сетей и сетей Metro Ethernet. По словам производителя, новая серия объединила недорогие гигабитные решения, обеспечивающие качественную работу мультимедийных приложений, возможность удаленного управления и диагностики, а также комплексную защиту трафика.

Модели DGS-3000-10TC и DGS-3000-26TC доступны для заказа по рекомендованной розничной цене $344 и $778 соответственно

Читать полностью »

За подозреваемым в «пиратстве» англичанином приехал целый кортеж полицейских автомобилей

В голливудских фильмах о бандитах и доблестных (или не очень) полицейских часто показывают, как кортеж из автомобилей полиции едет на место преступления, окружает дом преступника, и начинается операция по захвату злоумышленника. Обычно такие картины мы видим, когда в роли преступника выступает какой-нибудь злостный маньяк-убийца. Но, похоже, в полиции Великобритании столь же опасными считают и «пиратов». Так, на задержание одного из подозреваемых в пиратстве приехало сразу 5 полицейских автомобилей и около десятка полицейских.

Читать полностью »

Большинство фанатов ООП одновременно являются и фанатами полиморфизма. Многие хорошие в других отношениях книги (например, «Рефакторинг» Фаулера) впадают в крайность, утверждая, что если вы используете проверки типов во время выполнения (такие как операция instanceof в Java), то вы, по всей вероятности, в душе злодейский злодей из тех, что пугают маленьких детей операторами switch.

Вообще говоря, я согласен с тем, что использование instanceof и его аналогов обычно является признаком недостаточных навыков ООП проектирования. Полиморфизм лучше проверок типов, он делает код гибче и понятнее. Однако, по крайней мере в одном случае, достаточно распространенном чтобы считаться паттерном сам по себе, вы просто не можете использовать полиморфизм. Я бы применил его с удовольствием, честно, и если вы знаете как это сделать – расскажите мне. Но не думаю что это возможно, особенно в статических языках типа Java или C++.

Определение полиморфизма

На тот случай если вы незнакомы с терминологией ООП, полиморфизм – это претенциозное обозначение для концепции позднего связывания. Позднее связывание – это претенциозное обозначение (вы обнаружите здесь паттерн если копнете глубже) для отсрочки решения о том какой метод будет вызван до начала выполнения программы. Когда и будет выполнена проверка соответствия объекта и сообщения (метода).

В языках программирования, ориентированных на производительность, таких как C++, Java или OCaml, методам ставятся в соответствие числа, а для каждого класса заводится таблица его методов, по которой и производится поиск во время выполнения. В языках же отдающих предпочтение гибкости и динамизму, поиск осуществляется с использованием хэширования названий методов. В остальном эти два подхода практически совпадают.

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

Читать полностью »

Компания Origin PC обновила спецификации настольного игрового ПК Genesis на своем сайте. Теперь в конфигурацию этой системы может входить одна, две или даже три 3D-карты GeForce GTX 780. Важной особенностью конфигураций с двумя и тремя картами является возможность использования для их охлаждения системы жидкостного охлаждения Cyanogenic.

Объектно ориентированное мышление

Всем привет. В этом посте мы хотели бы узнать мнение Хабра-общества, нужна ли переводная книга по объектно-ориентированным концепциям. Тема книги интересная, но на сколько она востребована у нас?
Книга на amazon.com
Первая глава в оригинале.

Содержание:
1. Введение в объектно-ориентированные концепции
2. Как научиться мыслить в объектных категориях
3. Продвинутые объектно-ориентированные концепции
4. Строение класса
5. Руководство по проектированию классов
6. Проектирование с применением объектов
7. Освоение наследования и композиции
8. Фреймворки и многократное использование: проектирование с применением интерфейсов и абстрактных классов
9. Построение объектов и объектно-ориентированное проектирование
10. Создание объектных моделей
11. Объекты и переносимые данные: XML и JSON
12. Сохраняемые объекты: сериализация, маршалинг и реляционные базы данных
13. Объекты в веб-сервисах, мобильных и гибридных приложениях
14. Объекты и клиентские/серверные приложения
15. Паттерны проектирования
Читать полностью »

Генерация текстовых версий писем из HTML с помощью lynx

Введение

Email-рассылки, отправляемые через Печкин, в большинстве своем содержат как html-версию письма, так и plain-text версию. Отправить рассылку без HTML-версии можно, а вот, отправив ее без plain-text, вы рискуете лишиться ряда подписчиков, почтовые клиенты которых без сожаления вырезают html-версии писем в целях безопасности. Особенно этим отличаются корпоративные аккаунты, почтовые администраторы которых заботятся о защите своих подопечных от спама и вирусов.

Ставим задачу

Итак, plain-text версия письма необходима, это факт. Но как же сложно заставить себя написать ее, если вы только что потратили кучу времени на создание html-версии своей рассылки. Очевидно, что Печкин должен снимать эту нагрузку и автоматически генерировать текстовую версию писем для наших клиентов. Но как это сделать?

Мы перепробовали многое:

  • разнообразные регулярные выражения
  • кучу разных библиотек для парсинга html

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

  • выделять заголовки и подзаголовки
  • выделять и аккуратно отображать ссылки
  • следить за количеством переносов и аккуратно распологать блоки с текстом для их читаемости
  • делать все это быстро

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js