Pull to refresh
40
0
Andrey @yakubov

iOS Developer

Send message

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

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

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

Читать дальше →
Total votes 84: ↑60 and ↓24+36
Comments59

Дрессируем MacBook для работы с внешним монитором

Reading time3 min
Views157K
Покупая внешний монитор для свего MacBook Pro 13" я не мог предполагать что придется столкнуться с некоторыми неудобствами в ежедневной работе. Моим желанием было получить систему, в которой внешний монитор является основным и единственным, а дисплей ноутбука при этом выключен. Отягчающим обстоятельством был тот факт, что внешней клавиатуры у меня пока нет и для работы хотелось использовать клавиатуру ноутбука. Это значит что закрыть MacBook с целью выключить его дисплей не получится.
Перед покупкой монитора изучением возможностей работы MacBook с внешними дисплеями я пренебрег, потому как был убежден, что дело обстоит ровно так же хорошо как и у других портативных компьютеров. Другими словами, был уверен, что MacBook поддерживает полный набор режимов работы с внешними дисплеями, позволяя привычно переключаться между режимами с помощью комбинации клавиш (Fn+F5 или подобной). Но не тут-то было.
Читать дальше →
Total votes 47: ↑31 and ↓16+15
Comments130

Настройка торрент клиента Transmission на прошивке Tomato

Reading time4 min
Views75K


Intro


Приветствую всех. Хочу поделиться с вами своим опытом настройки клиента Transmission на популярной open source прошивке для роутеров Tomato. Недавно на хабре публиковалась статья Netgear WNR3500L: Превращаем роутер в NAS, где за основу была взята прошивка DD-WRT. Но лично мне DD-WRT не очень понравилась, а функционал торрент качалки с NAS’ом был очень нужен. Поэтому предлагаю познакомиться с альтернативным методом.
Читать дальше →
Total votes 55: ↑53 and ↓2+51
Comments44

Что стоит за номером «кредитки»

Reading time1 min
Views8.7K
Прежде всего о терминологии. То, что в России часто называют кредиткой — является банковской (чаще всего) платёжной картой. Карты выпускать может не только банк. Карты могут быть не только кредитные. Вобщем, теорию вы и сами сможете найти.

А теперь, собственно, инфографика о том, как устроены номера банковски карт (600*1800px 280KB):

Читать дальше →
Total votes 147: ↑135 and ↓12+123
Comments84

Получение визы США

Reading time3 min
Views1.4K
USA visaНе так давно, в июле, компания Intel прислала мне приглашение на мероприятие AppUp Elements. На момент получения приглашения у меня не было ни паспорта ни, разумеется, визы США. Но я успел получить и то и другое и прибыл на мероприятие точно в срок. О том как это мне удалось я и хочу рассказать в этой статье.

Данная статья может быть полезна тем, кто хочет в будущем или уже готов получить визу для поездки в США.
Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments25

Для тех, кто хочет научиться воспринимать английский на слух

Reading time1 min
Views7.3K
Для того, чтобы научиться воспринимать иностранную речь на слух, нужно много слушать. Правда, толку от этого будет немного, если вы не будете понимать, что люди говорят. Важно, чтобы мозг устанавливал связи между словами и их звуковыми образами. Для этого нужно слушать с субтитрами и текстовками, и слушать то, что соответствует вашему уровню и то, что вы способны понять на родном языке.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments26

Автоматизация использования Javascript API Вконтакте

Reading time7 min
Views3.9K
Пару дней назад, как обычно, никого не поставив в известность, Контакт добавил возможность разработки приложений на JavaScript, подключаемых через iframe. Доступ к API в этих приложениях, в общем-то, такой же, как и доступ к API из Flash — так или иначе, это обычный REST-протокол. Параметры передаются через строку запроса GET, а результат возвращается в виде JSON или XML.

Одной из проблем использования API Вконтакте является передача кроссдоменного запроса на http://api.vkontakte.ru/api.php. Другая проблема — громоздкое вычисление подписи, которой необходимо подписывать все запросы.
Читать дальше
Total votes 36: ↑25 and ↓11+14
Comments38

Вводим текст в TextInput по маске

Reading time2 min
Views3.4K
image

Здравствуйте уважаемые читатели.



Не так давно (в одном из flex-проектов) понабилось отображать текст в поле ввода (TextInput) в определенном формате. Например, при вводе городского номера телефона нам необходимо в конечном итоге отобразить его следующим образом «(111) 22-33-44», при этом необходимо, чтобы пользователь видел шаблон ввода, например, «(___) __-__-__» и соответственно ориентировался по нему при использовании поля.

Что из этого получилось...
Total votes 49: ↑38 and ↓11+27
Comments11

Знак рубля и XHTML 1.0 Strict. Что общего?

Reading time3 min
Views931
Речь пойдёт о Document Type Definition (или DTD, <!DOCTYPE ...> короче говоря).
На пути к совсем семантической вёрстке, нам понадобится DTD или же стандарт XML Schema. В данной статье я рассмотрю первое и покажу, как с помощью 2 строк и одного CSS-стиля сделать кроссбраузерный, W3-валидный документ с использованием собственного тэга — <rur>
Разобравшись с изложенным мною методом, любой может создавать валидные документы с использованием собственных тэгов, которые могут не только сделать макет документа более гибким, но и более семантически-правильным, логичным и понятным, как для роботов, так и для людей, которые будут заниматься дальнейшей его поддержкой.

Статья под катом
Total votes 26: ↑25 and ↓1+24
Comments47

SCPlugin: TortoiseSVN for Mac

Reading time1 min
Views3.7K
Меня долго напрягало отсутствие простого svn-клиента под Mac, идеологически похожего на «тартиллу» (TortoiseSVN). Я перепробовал много всего: svnX, Subversive (plugin для Eclipse), CollabNet Subversion (еще один plugin для Eclipse, построенный на базе Subclipse) — но, видимо, мой организм иначе устроен и все они показались мне неудобными.И вот, я в очередной раз отправился к Google с недвусмысленным вопросом: «TortoiseSVN for Mac»? На что получил неожиданный ответ — SCPlugin!SCPlugin — это плагин для Finder, который делает работу с svn простой и удобной, идеологически повторяя работу TortoiseSVN на Windows. Конечно, по набору фичей он существенно уступает «тартилле», предлагая лишь базовый функционал, но я очень надеюсь что проект будет развиваться и со временем в нем появится все то, чего не хватает сейчас.
Total votes 2: ↑2 and ↓0+2
Comments11

Использование Table View

Reading time6 min
Views28K
Доброго времени суток!

Уже достаточно давно пытаюсь заставить себя изучить очередной язык/платформу для программирования под Mac OS X/iOS. Интересует именно разработка приложений с нативным GUI, так как консольные приложения можно разрабатывать на чем угодно, начиная с C и C++ и заканчивая модным сейчас Nodejs. Как показала практика, кроссплатформенные фреймворки вроде Qt тут мало подходят, хотя бы потому что не обеспечивают нативный Look and Feel, к которому привыкли пользователи этой ОС.

На хабре есть достаточное количество материалов по языку Objective-C и фреймворку Cocoa. С точки зрения GUI, интерес представляет именно Cocoa, а тут большинство статей ограничивается кнопочками и текстовыми полями. Постараюсь исправить это недоразумение и описать работу с Table View на примере приложения, отображающего список процессов.

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

Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments27

Обход DRM для некоторых приложений в Mac AppStore

Reading time1 min
Views4.5K
Установите обновление системы 10.6.6. Залогиньтесь в новый App Store (находится в доке). Скачайте в нем Twitter, это бесплатно. Откройте папку Applications, найдите Twitter, правый клик, Показать содержимое пакета, зайдите в папку Contents и скопируйте _CodeSignature, _MASReceipt and CodeResources.

Скачайте Angry Birds ( bit.ly/gy9wzk ), откройте dmg-файл, перетяните Angry Birds в папку Applications. правый клик, Показать содержимое пакета, откройте папку Contents и удалите в ней _CodeSignature, _MASReceipt и CodeResources. Теперь вставьте файлы, скопированные из Twitter.app.

Все. Наслаждайтесь Angry Birds и любыми другими .app-файлами из нового Mac App Store, которые можно найти онлайн :)

Прим.пер.: После этого всего AppStore воспринимает приложения как установленные.

Как подсказали в комментариях, приложения отмеченные как установленные все равно не обновляются через AppStore, а данная техника работает не для всех приложений (пока известны Angry Birds, Flight Control, Blush и Offroad racing)
Total votes 79: ↑55 and ↓24+31
Comments76

Лучшие бесплатные Photoshop плагины для веб-дизайнеров

Reading time3 min
Views150K

Divine Elemente


image
Один из самых потрясающих проектов, которые я встречал за последнее время. Плагин Divine Elemente дает возможность дизайнерам создавать WordPress темы без каких либо навыков фронт/бэк-енда. К сожалению у меня не было возможности поработать с ним. Он доступен только для Windows. Для того что бы все работало необходимо создавать макет в соответствии со встроенным blueprint — это некий Bootstrap, Boilerplate или даже набор инструкций по наименовании слоев и групп. Разработчики обещают множество всего хорошего, в том числе: SEO friendly, валидную и семантичную верстку, читаемый код. Впечатляет!

Читать дальше →
Total votes 74: ↑66 and ↓8+58
Comments9

Создание кастомного UIActivity для публикации фото и текста в социальной сети ВКонтакте

Reading time4 min
Views15K
Во время работы над очередной версией приложения возникла задача сделать публикацию фото в социальной сети ВКонтакте через стандартный контроллер UIActivityViewController.

image

Поиск в сети дал следующие результаты:
  1. Готовой реализации не обнаружено
  2. Есть официальное sdk ВКонтакте: содержит механизмы авторизации, работы с картинками, но не имеет готового класса для загрузки через UIActivityViewController
  3. Есть документация Apple для создания кастомного UIActivity

 
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments18

Видео: полный цикл разработки на JavaScript

Reading time1 min
Views50K
Здравствуй, Хабр!

В этой открытой лекции я попытался сжато рассказать и показать полный цикл (full stack) разработки веб-приложений на JavaScript.

Начнем мы с короткого введения в язык, потом в двух словах поговорим о клиентской части, в частности, об MVC фреймворках вроде Angular.js, после чего перейдем на серверную часть: Node.js и MongoDB. В конце обсудим возможность автоматизации разработки и сборки проектов с помощью Grunt.js.



Скачать слайды и исходные коды.

Лекция была записана в офисе компании Chocolife, зрители – разработчики этой компании.
Total votes 57: ↑47 and ↓10+37
Comments27

Взаимодействие php-soap на linux с авторизацией по сертификатам с использованием алгоритмов ГОСТ

Reading time8 min
Views23K
С криптографией я сталкивался ранее, приходилось разворачивать удостоверяющий центр на КриптоПро в свое время, так что общие представления о том что такое закрытые и открытые ключи и сертификаты у меня имелось, но вот о том как все это работает в Linux представления особого не было.
Встала задача обеспечить взаимодействие со службами РосМинздрава, а именно — с федеральным регистром медработников по протоколу SOAP. Со стороны клиента система на CentOS и работающими службами на PHP, со стороны сервера — SOAP-сервис с авторизацией по сертификатам с использованием ГОСТ алгоритмов. В наличии была флешка с закрытым ключом, сформированным удостоверяющим центром РосМинздрава и сертификат этого ключа.
После анализа ситуации по использованию ГОСТ алгоритмов шифрования в мире Linux выяснено что за последние годы здесь есть хорошее движение вперед, но все таки не совсем все хорошо. Итак, для того чтобы заставить расширение php-soap прозрачно понимать алгоритмы ГОСТ, а также использовать сертификаты и ключи выданные РосМинздравом нужно сделать следующее:

1. Обновить в дистрибутиве библиотеку OpenSSL до версии не ниже 1.0.1с и настроить поддержку ГОСТ.
2. Преобразовать выданный ключ и сертификат в формат, понятный OpenSSL. Проверить работу OpenSSL.
3. Подправить расширение OpenSSL в PHP и перекомпилировать сам PHP. Протестировать работу SOAP на PHP.

Итак, приступим.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments8

ВКонтакте iOS SDK

Reading time6 min
Views20K
Добрый вечер!

Всё началось с того, что необходим был более или менее удобный инструмент для работы с API социальной сети ВКонтакте под iOS. Однако Google меня достаточно быстро расстроил результатами поиска:

Вроде бы всё хорошо, самое главное есть, но вот использование не вызывает приятных ощущений.

Под катом я расскажу, как работает новая версия ВКонтакте iOS SDK, с чего всё начиналось и к чему в итоге пришли.
Читать дальше →
Total votes 32: ↑25 and ↓7+18
Comments15

JavaScript обёртка скроллбара в виде jQuery плагина

Reading time6 min
Views68K
Проблема стилизации скроллбара браузера до сих пор актуальна, несмотря на огромное количество скриптов, предназначенных для решения данной задачи. Рассмотрим реализацию стилизуемого скроллбара, максимально приближенного к родному поведению браузера.

Существует два основных подхода для стилизации скроллбара средствами HTML/CSS, каждый из которых имеет свои плюсы и минусы:

  • Эмуляция скролла средствами JavaScript
  • JavaScript обёртка над родным скроллом

Читать дальше →
Total votes 45: ↑38 and ↓7+31
Comments62

Вертикальная черта, затем ноль

Reading time3 min
Views41K
Заголовок, выраженный словами, понадобился только для поисковой находимости. Но речь пойдёт о роли символьной конструкции «|0» в JavaScript.

Впервые на неё я обратил внимание, когда переводил FAQ про asm.js и читал спецификации этого подмножества языка JavaScript. Там «|0» служит, например, для указания типа значения, возвращаемого из функции: увидели «|0» после значения — значит, перед нами знаковое целое.

Вдругорядь я заметил конструкцию «|0» в примере кода на Гитхабе, где происходило преобразование к целому числу результата деления на 1024².

Тогда глаза мои открылись, и я увидел прекрасные возможности:

( 3|0 ) === 3;       // целые числа не изменяет
( 3.3|0 ) === 3;     // у дробных чисел отбрасывает дробную часть
( 3.8|0 ) === 3;     // не округляет, а именно отбрасывает дробную часть
( -3.3|0 ) === -3;   // в том числе и у отрицательных дробных чисел
( -3.8|0 ) === -3;   // у которых Math.floor(-3.3) == Math.floor(-3.8) == -4
( "3"|0 ) === 3;     // строки с числами преобразуются к целым числам
( "3.8"|0 ) === 3;   // при этом опять же отбрасывается дробная часть
( "-3.8"|0 ) === -3; // в том числе и у отрицательных дробных чисел
( NaN|0 ) === 0;     // NaN приводится к нулю
( Infinity|0 ) === 0;     // приведение к нулю происходит и с бесконечностью,
( -Infinity|0 ) === 0;    // и с минус бесконечностью,
( null|0 ) === 0;         // и с null,
( (void 0)|0 ) === 0;     // и с undefined,
( []|0 ) === 0;           // и с пустым массивом,
( [3]|0 ) === 3;          // но массив с одним числом приводится к числу,
( [-3.8]|0 ) === -3;      // в том числе с отбрасыванием дробной части,
( [" -3.8 "]|0 ) === -3;  // и в том числе с извлечением чисел из строк,
( [-3.8, 22]|0 ) === 0    // но массив с несколькими числами вновь зануляется
( {}|0 ) === 0;                // к нулю также приводится пустой объект
( {'2':'3'}|0 ) === 0;         // или не пустой
( (function(){})|0 ) === 0;    // к нулю также приводится пустая функция
( (function(){ return 3;})|0 ) === 0;    // или не пустая

Итак, во-первых, перед нами удобное средство отбрасывания дробной части.

  • По отношению к отрицательным числам оно полезно тем, что дробное число превращается не в ближайшее меньшее целое число (возрастая по модулю), как это случилось бы после «Math.floor()», а в ближайшее меньшее по модулю целое число (возрастая по значению). Нередко именно это и требуется.
     
  • По отношению к положительным числам оно полезно уж тем одним, что конструкция «|0» более чем на порядок короче по сравнению с «Math.floor()». Поэтому она может и должна вызывать у разработчиков привыкание не меньшее, чем та принятая в jQuery запись «$()», о которой я говорил четыре дня назад, что с неё никто добровольно не перейдёт обратно на «document.getElementsByClassName()», например.

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

Читать дальше →
Total votes 184: ↑159 and ↓25+134
Comments93

Загадка выпадающего списка «Амазона»

Reading time2 min
Views191K
Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
Читать дальше →
Total votes 558: ↑548 and ↓10+538
Comments90
1
23 ...

Information

Rating
Does not participate
Date of birth
Registered
Activity