Search
Write a publication
Pull to refresh
24
0
Александр @Holden

User

Send message

Статический анализ PHP кода на примере Symfony2

Reading time6 min
Views25K

Аннотация


О необходимости статического анализа в больших проектах уже писали не раз и, в основном, с фокусом на строго типизированные языки, например, здесь и здесь.

С PHP дело обстоит сложнее: уже писали про статический анализ PHP кода, но в целом инструментарий тут гораздо беднее, и динамическая природа языка делает процесс разработки-тестирования сложнее. Для сравнения, в той же Java компиляция проекта сама по себе помогает найти ошибки, а в PHP типизация слабая, поэтому даже тесты могут пропустить ошибки.
Читать дальше →

Скрипт сворачивания комментариев на хабре

Reading time2 min
Views8.1K
Добрый день всем. Я насчёт комментариев к статьям и их длинных и глубоких веток обсуждений, которыми они часто наполняются. Не знаю, как к ним относятся остальные участники сообщества, но у меня часто начинает плавиться мозг от объемов переписок между участниками и отсутствия возможности хоть как-то снизить этот поток информации.

Потому и был написан маленький юзерскрипт, добавляющий две простых фичи:
1. Возможность свернуть-развернуть ветки обсуждений;
2. При открытии страницы, автоматически будут свёрнуты все комментарии выше третьего уровня, за исключением тех веток, где есть непрочитанные вами сообщения, а также тех случаев, когда вы переходите к какому-то конкретному комментарию в статье через ссылку на него.

Пример нового заголовка комментария, ответы к которому были свёрнуты:


Таким образом, мы автоматически отфильтровываем глубокие ветки обсуждений, что сильно облегчает беглый анализ комментариев, но, при желании, мы можем быстро развернуть какую-то из веток и почитать остальные комментарии, если тема оказалась интересной.
Читать дальше →

PIN-код при оплате картой — точки над i

Reading time3 min
Views186K
Всем доброго дня!

После прочтения нескольких статей на хабре о пластиковых картах, POS терминалах и сопутствующих вещах, мне показалось, что эта тема довольно интересна сообществу. В данной небольшой публикации я хочу окончательно разобрать тему ввода PIN–кода на POS терминалах и ответить, наконец, в меру своих знаний, на вопрос: почему же в одних случаях требуется ввод PIN, а в других — нет?
Читать дальше →

Фриланс на Кипре

Reading time6 min
Views125K
В дополнение к статье хабраюзера dudeonthehorse «Фриланс в Турции» опишу особенности этого вида труда для Кипра, точнее его южной части. Я не буду рассказывать про местные достопримечательности, а постараюсь дать сведения, полезные для людей, ставших на нелегкий путь свободных наемников.


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

Превращаем html в нативные компоненты

Reading time7 min
Views19K
Доброго дня! Мы, мобильные разработчики компании surfingbird, решили попробовать написать небольшой цикл статей о том с какими трудностями мы сталкиваемся в процессе разработки мобильных приложений (android, ios), и как мы их решаем. Первый пост мы решили посвятить проблеме webview. Сразу оговорюсь, что решили мы эту проблему несколько кардинально… Для того чтобы было более понятно, придется рассказать пару слов о собственно том, чем мы занимаемся. Мы агрегируем контент из различных источников (парсим оригинальные статьи), выделяем значимую часть (контент) и на основе оценок пользователя и всяких сложных алгоритмов рекомендуем их конечному пользователю ну и конечно просто отображаем в более удобном виде.

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

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

image
Как избавиться от webview

Google Plus, Facebook, Twitter — читаем в RSS агрегаторе

Reading time2 min
Views49K
Если вы боитесь социальных сетей, но хотели бы знать, о чем там пишут известные люди – используйте для этого технологию RSS. Как достать ссылки для подписки в RSS?

Facebook
Самый интересный вариант — FB RSS Facebook application

Фейсбук в этом плане весьма открыт, кроме RSS фидов формата 2.0 разберется и с Atom. Все что вам нужно, это знать ID профиля или страницы.
Пример, сообщетсво — English is Fun

В адресной строчке заменяем www на graph — вместо http://www.facebook.com/EnglishIF?fref=pb пишем http://graph.facebook.com/EnglishIF?fref=pb
В сгенерированном коде находим строку с «id»: " 384707561542391 ".
(ID можно также найти с помощью findfacebookid.com)

Используем шаблон www.facebook.com/feeds/page.php?format=rss20&id=, например www.facebook.com/feeds/page.php?
format=rss20&id=384707561542391 и подписываемся

Twitter
Тут все еще проще.
Скажем, собираемся читать @BreakingNews
Используем шаблон api.twitter.com/1/statuses/user_timeline.rss?screen_name=, пример api.twitter.com/1/statuses/user_timeline.rss?screen_name=BreakingNews. Готово, можем подписываться.

Если хотим читать фиды по определенному слову (скажем слово Android), добавляем к адресу search.twitter.com/search.atom?q=Android.
Если хотим читать фиды по хештегу, добавляем к адресу хештег #Android — search.twitter.com/search.atom?q=%23Android. (Символ (#) меняем на %23).

Google+
Проще всего использовать gplus-to-rss.appspot.com.
Нужно знать ID Страницы или профиля. На Google+ найдете его прямо в адресной строке, например страница +ru.android – в строке plus.google.com/u/0/communities/110130446304043859186 — 110130446304043859186 и есть ID
Добавляем в URL gplus-to-rss.appspot.com/rss, в нашем случае gplus-to-rss.appspot.com/rss/110130446304043859186.

Переведено с чешского источника

Update

ВКонтакте
Для генерации RSS-фида вам нужно «скормить» ссылку на профиль или открытую группу сервису ВКонтакте RSS — vkontakte-feed.appspot.com

Расширение для PHP или все будет в Zephir'e

Reading time2 min
Views25K
imageНаверное у каждого PHP разработчика (и не только PHP) есть мечта — написать своё расширение для PHP, которое по определению работает быстрее интерпретируемого кода, при этом не вникая в тонкости Zend Engine, а еще лучше — не зная C++. И вот близится тот день, когда мечта станет явью. Хочу вам рассказать об очень интересном языке программирования, который называется Zephir. Кому лень читать, проходите на сайт и следуйте инструкциям, а я расскажу о том, как написать свое расширение и о подводных камнях, которые встречаются на сием пути.
Читать дальше →

Как использовать API сайта, у которого нет API?

Reading time4 min
Views81K
У меня достаточно часто появляется задача получить данные от стороннего сайта, при этом далеко не всегда этот сайт предоставляет возможность удобно получить эти данные через API. Единственное решение в таком случае — парсить html содержимое страниц. Когда-то я писал регэкспы, потом появились библиотеки, позволяющие получить нужное содержимое по css-селектору, а сейчас и это кажется сложной задачей, которую хотелось бы упростить.

Сегодня я хочу рассказать вам о моей небольшой библиотеке, позволяющей описать в API-стиле http-запросы и парсить ответ сервера в нужный вам формат.
Читать дальше →

post from somewhere -> vkontakte

Reading time1 min
Views2K
Многострадальная синхронизация во вконтакте не давала мне спать ночами.
У меня есть несколько сайтов, RSS которых мне бы хотелось транслировать в тематические группы вконтакте.

Гуглежка вывела меня на сайт twitterfeed.com, который умеет транслировать мой rss в твиттер.
Но не во вконтакте.

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

Тонкости SMO. Не удивляйтесь что у вас нет социального траффика

Reading time4 min
Views37K
80% владельцев сайтов уверены, что их ресурсы оптимизированы под социальные сети. Как бы не так. Вот мы и разберемся где собака зарыта и в чем природа этого заблуждения.

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

Так вот с чем мы столкнулись и что поняли.

С одной стороны есть сайт с хорошим контентом, посещаемостью, дизайном, социальные кнопки стоят, комменты, а траффика социального – кот наплакал. И его не будет.

image

А знаете почему?

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

Это с моей точки зрения вполне объяснимо. Кто до недавнего времени был основным поставщиком траффика на любой сайт? Конечно поисковики. И в голову многих вебмастеров вбит стандарт подачи контента под поисковые машины. Ну вы сами их знаете.

Однако социальные сети расправили плечи, набрали огромную аудиторию и стали источником неплохого траффика. И стандарты подачи информации здесь совсем другие. Потому что люди далеко не роботы, ими не движет анализ и алгоритмы. Людьми движут эмоции.

Но давайте по порядку:

Итак, как мыслит вебмастер, например контентного сайта? Ага, я написал хорошую статью, все по SEO правильно, у меня на сайте есть социальные кнопки в начале (это хороший тон) и в конце статьи (что тоже неплохо). Посетитель прочитает, нажмет соцкнопку, зарепостит статью себе на стену и вот он социальный траффик у меня в кармане. Это работает, но слабо.

Почему? Потому что вебмастер думает как все. Хотите больше социального траффика – думайте иначе. Думайте на шаг вперед.

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

Новый простой редактор JavaScript в Firefox

Reading time3 min
Views13K

Представляем Scratchpad


В только что вышедший Firefox 6 входит новый инструмент для веб-разработчиков: простой редактор JavaScript (прим. переводчика — по-английски он называется Scratchpad («блокнот»). Буду его так и называть, чтобы не писать каждый раз «простой редактор JavaScript».) Идея проста: браузер это отличное место для экспериментов с JavaScript. Большинство JS-разработчиков уже знают об этом и используют такие инструменты, как веб-консоль и командную строку Firebug, чтобы использовать преимущества единственной среды, которая точно знает, как выглядит веб-страница.

Веб-консоль оптимизирована для ввода одной строки кода за раз (подсказка: с помощью Shift+Enter можно ввести несколько строк). В Firebug есть кнопка, включающая многострочный режим ввода, но всё равно работа основана на поочерёдном и линейном выполнении кусков кода.
А в Scratchpad...

Публикация на стене Вконтакте средствами php

Reading time5 min
Views139K
Получив задачу создать автоматическую публикацию материалов сайта на стене нашей страницы Вконтакте, я обнаружил, что рецептов по этой, казалось бы, актуальной теме относительно мало.

В действительности всё оказалось довольно просто, и чтение документации по API часто помогает сэкономить время.

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

Google Cloud Connect

Reading time1 min
Views2.1K
Помните Google купила DocVerse? Они делали плагин для Microsoft Office для синхронизации работы над файлами Word, Exel и PowerPoint.
Ну вот Google переварил очередную компанию и этот функционал теперь доступен для Google Apps, осталось только скачать плагин.

Делаем Desire HD из Desire

Reading time5 min
Views17K


Буквально пару дней назад я прочитал пост Вторая жизнь HTC HD2 и задумался, а можно ли сделать Desire HD из моего Desire? Как оказалось, можно, и даже не очень сложно. В общем, поразмыслив некоторое время о плюсах и минусах перехода на HD, я приступил к превращению. После всех действий я получил все возможности Desire HD в корпусе Desire. Никаких проблем и ошибок не возникло.
Читать дальше →

Что нужно знать про оплату банковскими картами через интернет

Reading time5 min
Views230K
Прочитав вот этот топик, я увидел, что очень многие хабралюди (в том числе и автор топика) не представляют себе, как работает оплата банковскими картами в интернете. Руководствуясь домыслами и предположениями, а не фактами, автор делает вывод, будто бы карты Сбербанка наиболее уязвимы для мошенничества в интернете. Поэтому я решил рассказать о том, как на самом деле устроена оплата банковскими картами в интернете, чтобы хабралюди на основании фактов, а не домыслов, представляли себе, как это работает, и где их могут поджидать реальные, а не мнимые, опасности.

Disclaimer: Я работаю в Сбербанке России. Моя работа связана с помощью клиентам, а не с карточками, однако раньше я работал в области e-commerce, и очень хорошо знаю, как работает схема оплаты карточками в интернете.

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

Мошенничество с использованием пластиковых карт

Reading time3 min
Views504K
Ещё один сценарий мошенничества с использованием пластиковых банковских карт. Наиболее уязвимы карты Сбербанка, пригодные для платежей в интернете — начиная от Visa Classic и MasterCard Standard. Владельцы «зарплатных» Maestro и прочих Momentum данному приёму не подвержены.
Читать дальше →

ВебМани тихо и незаметно усилили защиту. Возможно, у некоторых будут затыки с платежами

Reading time2 min
Views9K
WebMoney усилило безопасность денежных переводов, в связи с чем многие могут потерять время и нервы.
Так как я их уже потерял, пишу этот пост, чтобы получить профит вы эти грабли обошли стороной.

Картинка для привлечения внимания

Итак, если вы пользователь этой системы и планируете в обозримом будущем вывод денег, новая защита может на вас сработать и перестараться.

Подробности, инструкции
под катом

Speed Install 2.0 − репозиторий под Windows

Reading time3 min
Views15K
Репозитории под Линукс и под Мак существуют давно и делают жизнь пользователей этих систем более комфортной.

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

Вопрос о создании репозитория уже поднимал dozent в своем топике, и Goodkat в комментарии.

Программа Speed Install 2.0 выполняет поставленные задачи и не ограничивается продуктами Microsoft.

В 2008 году я скачал Гугл Хром, чтобы посмотреть, что за зверь такой, да так на нем и остался. Точно так же разработчики передали мне программу на пробу, а теперь я не представляю, как буду без нее дальше. К комфорту быстро привыкаешь.
 
Обзор программы Speed Install

Ошибка обновления Windows 7 SP1 fatal error c0000034

Reading time1 min
Views88K
Сегодня утром на работе мы были приятно удивлены звонками пользователей и новой ошибкой Windows.

Ошибка возникает при установке Sp1 на windows7, после перезагрузки машина перестает грузиться c ошибкой

Fatal Error C0000034 applying update operation (Update 282 of 103814)

К счастью уже есть решение этой проблемы.

1) При начальной загрузке Windows нажимаем F8 и выбираем «Устранение неполадок компьютера»

2) Запускаем «Командная строка»

3) Запускаем блокнот «notepad.exe»

4) В блокноте «Файл > Открыть», переходим в каталог «C:\Windows\winsxs\» (скорее всего буква диска будет D:)

5) выбираем «Тип файлов» — «Все Файлы»

6) Ищем файл «pending.xml»

7) Поиском «CTRL+F» ищем «0000000000000000.cdf-ms»

8) Находим и удаляем

i54.tinypic.com/adzpzp.png

9) Перезагружаем компьютер, он, может, попытаться доустановить обновления, это нормально.

Решение взято отсюда: clck.ru/852f

Хорошего всем дня.

UP: Непроверенное: есть подозрение, что через определенное время (около часа) машина в итоге загружается.

Заставляем ProgressBar крутиться пока идет http-запрос

Reading time2 min
Views48K
Все началось с того, что мне вдруг очень захотелось сделать что-нибудь под андроид. И все это несмотря на то, что java — не мой родной язык.
В процессе создания своего приложения я столкнулся с несколькими трудностями, о решении которых и хочу поведать. Думаю, они будут полезны, таким же как я, новичкам, и буду благодарен за советы и более красивые примеры от гуру.
Но главное подтверждение работоспособности примеров — это то что приложение работает, можете проверить.
Читать дальше →

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity