Search
Write a publication
Pull to refresh
21
0
Vasyl Liutikov @pingwinator

ios dev

Send message

PHP и Dropbox. Удаленное хранилище пользовательских файлов

Reading time3 min
Views15K

Применение


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

Решение


В качестве решения я предлагаю схему PHP<->Dropbox. Dropbox нам интересен тем, что каждому новому пользователю выделяеся 2Gb виртуального дискового пространства, а так же возможность отката на предыдущие версии файлов. Это обеспечивает нам стабильное хранилище, в котором не возникнет случаев безвозвратно удаленных файлов.
Читать дальше →

Objective-C с нуля

Reading time23 min
Views442K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →

USB-визитка Фрэнка Чжао

Reading time1 min
Views14K
Находчивый студент из Университета Уотерлу (Канада) не зная, чем занять своё свободное время, неожиданно решил, что ему край как нужны электронные визитные карточки.
Составить схему оказалось несложно; на ней разместились 3 резистора, 1 конденсатор, cтабилитрон и микроконтроллер ATtiny85:
image

Получилось очень даже ничего:
image

Микроконтроллер фиксирует несколько нажатий caps lock и вот, как это всё это в итоге работает:
Читать дальше →

Подборка полезных репозиториев на GitHub

Reading time5 min
Views3.3K

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

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

Git Wizardry

Reading time17 min
Views452K
1 Введение


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

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

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

Собственный сервер Git на базе Ubuntu или Debian/GNU Linux

Reading time2 min
Views81K
Я встречал в сети много tutorial'ов по установке своего сервера git как на gitweb, так и на webdav, но, увы, они либо были только по одному из вышеназванных пунктов, не освещая другой, либо банально не работали. Вчера возникла необходимость поднять свой сервер репозиториев. Потратил пару часов — поднял, теперь хочу поделиться опытом, потому что считаю проблему актуальной :)

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

Что такое анти-паттерны?

Reading time9 min
Views149K
Анти-паттерны — полная противоположность паттернам. Если паттерны проектирования —
это примеры практик хорошего программирования, то есть шаблоны решения определённых задач. То анти-паттерны — их полная противоположность, это — шаблоны ошибок, которые совершаются при решении различных задач. Частью практик хорошего программирования является именно избежание анти-паттернов. Не надо думать, что это такая непонятная теоретическая фигня — это конкретные проблемы, с которыми сталкивался практически каждый разработчик. Кто осведомлен, тот и вооружён! Рассмотрим же несколько расрпотранённых анти-паттернов в программировании.
Да, рассмотрим!

DNS-хостинг Яндекса

Reading time1 min
Views89K
Почти год назад, 27 октября, мы объявили об открытии сервиса Яндекс.Почта для домена.

Всё это время мы внимательно прислушивались к отзывам владельцев доменов и активно работали над сервисом. Обо всех заметных нововведениях в Почте для домена мы писали (и, конечно, продолжим писать) в блоге Яндекс.Почты.

Изучая потребности владельцев доменов, мы поняли, что одна из самых частых проблем подключения и настройки работы Почты связана с тем, что не все регистраторы доменов предоставляют удобные инструменты для редактирования DNS-записей.

Сегодня мы объявляем о запуске собственного DNS-хостинга. Это значит, что для подключения сервиса Яндекс.Почта для домена (а также дополнительных сервисов, — таких, как Jabber на вашем домене) достаточно делегировать домен на Яндекс.

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

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

Сейчас к Яндекс.Почте для домена подключено уже более 20 тысяч доменных имён. Присоединяйтесь!

.

Полнофункциональный RDP клиент — FreeRDP

Reading time3 min
Views426K
Не секрет, что в современном мире без продуктов Microsoft практически не обойтись. Однако во многих случаях получается так, что гораздо эффективней использовать на рабочих компьютерах системы на базе GNU/Linux, а не Windows. Это значительно упрощает администрирование и сокращает расходы, предоставляя при этом пользователям гораздо больше легкодоступного функционала. Но что делать с теми приложениями, которые работают только под Windows и которым нет подходящего аналога в мире Linux? Поскольку обычно таких приложений единицы (иначе просто нету смысла ставить Linux на рабочий компьютер), то разумным выбором может стать использование терминальных серверов, работающих под серверными ОС от Microsoft. Кроме того, Linux лучше всего подходит для любых тонких клиентов, поскольку адекватных версий Windows для них просто не существует.

В любом случае необходимо уметь подключаться к терминальным серверам Windows. Для этого в MS был разработан свой протокол удалённого рабочего стола — RDP. Однако до недавнего времени для Linux существовал единственный открытый клиент для работы с этим протоколом — rdesktop. К сожалению, его развитие давно остановилось, и он испытывает огромные трудности при взаимодействии с современными версиями Windows.

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

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

Кроссплатформенный код для приложений под iPhone и iPad

Reading time4 min
Views14K
Учимся парадигме Model-View-Presenter и выкидываем в AppStore кучу вкусностей для iPhone и iPad сразу

Как наиболее оптимальным образом портировать приложение, написанное под iPhone для iPad, можите решить только вы сами. Могу лишь предложить несколько рецептов, которые будут удобны в использовании на данном конкретном примере Web-приложений.

Далее будет предложена парадигма организации кода, рассмотрены компоненты, доступные в SDK 3.2. А паттерны проектирования вы изучите сами :-)

Начинается все с дизайна. Как правило, несколько экранов iPhone пытаются уложить на одном экране iPad.
image
Читать дальше →

Разработка приложения на основе протокола oAuth для Twitter API на PHP

Reading time5 min
Views11K

В этой статье расскажу про работу с Twitter API по протоколу OAuth на PHP.
Протокол OAuth предоставляет приложению доступ к данным пользователя без передачи ему логина и пароля пользователя. Новые правила авторизации приложений требуют использование технологии “OAuth” для работы с Twitter начиная с 31 августа.
Тестовое приложение, которое получится в итоге, будет уметь выводить ленту сообщений пользователя, ленту последних статусов его фолловеров и по нажатию на кнопку рядом с каждым статусом фолловера или друга можно будет читать всю ленту этого пользователя.
Читать дальше →

Корпоративный Jabber сервер: догнать и перегнать Google

Reading time7 min
Views33K
Я думаю все знают про Google Apps. Это великолепный сервис для организации почты и коллективной работы в рамках компании. Однако у него есть пара маленьких таких недостатков: он предоставляется as is во-первых, и вся ваша корпоративная документация, почта и переписка при использовании Google Apps будут храниться на серверах Google.

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

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

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

Целебное зелье для IE5+ или IE7.js

Reading time2 min
Views7.1K
Разбирая код очередного проекта внутри тега head наткнулся на интересный код:

<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta3)/IE9.js"></script>
<![endif]-->

Только одно слово «IE9» меня пустило в замешательство. Первое что пришло мне в голову — это то, что при помощи этого .js кода браузеры под печальным клеймом Internet Explorer можно заставить работать используя свойства многообещающего IE9. Больше всего я ожидал что будут доступны свойства CSS3.0, но не тут-то было!
Читать дальше →

История одного бага или как я ZIP паролил

Reading time4 min
Views7.4K
Это история личного опыта, опыта поиска бага в чужом, старом, неподдерживаемом коде.
Все начиналось как обычно, передо мной стояла простая на первый взгляд задача: сделать упаковку файлов в текущей папке в ZIP архив с определенным паролем на C++/Qt, казалось бы что может быть проще?
Естественно, первый помощник это Google, он и подсказал что существует две Qt библиотеки для работы с ZIP архивами:
QuaZIP и OSDab ZIP, помимо всего, сам Qt поддерживает методы qCompress и qDecompress для упаковки.
Мною было выяснено что методы мне мало подходят, потому что они умеют лишь жать поток, все заголовки и шифрование на совести разработчика. Этот путь был слишком долог и от него я отказался сразу и обратил свое внимание на библиотеки.
OSDaB ZIP пришлось отбросить сразу, не смотря на то, что это отличная библиотека, ее код распространяется только под лицензией GPL, мне же нужно было встроить функционал в проприетарное приложение. К счастью QuaZIP оказался с двумя лицензиями GPL и LGPL. На нем я и остановился. Особо не вникая в его устройство, я набросал простейший класс для работы ним и начал тестировать.

узнать продолжение истории

Умная раскладка через ComposeKey

Reading time3 min
Views3.1K
Этот топик — продолжение моего предыдущего, где я описывал проблему с переключениями раскладок, если их три и больше. В этом топике я расскажу о решении этой проблемы через ComposeKey. Помимо того, ComposeKey отлично подойдет и для других целей.
Читать дальше →

Glippy — простой clipboard менеджер

Reading time1 min
Views4.2K
Здравствуйте, уважаемые хабражители. Совсем недавно я перешел на Ubuntu Linux и постепенно привыкаю к обилию хорошего и полезного софта для этого дистрибутива. И сегодня я хотел бы рассказать о небольшой и удобной программке — Glippy.

Glippy это простой менеджер буфера обмена для Gnome. Он очень прост и удобен и именно поэтому я его и выбрал (или потому что я другого просто не нашел).

Итак, Glippy висит в трее и следит за буфером обмена.

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

«Двухместная» зарядная станция для телефонов своими руками

Reading time2 min
Views13K
Долгое время оба моих телефона не имели постоянного места прописки на столе и валялись где попало, пока не появилась идея завести им подставку. Но в магазинах большинство подставок рассчитаны на один телефон, да еще занимают непозволительно много полезного пространства (покупать две подставки тем более не выход). Тем более на днях я обзавелась Bluetooth-гарнитурой для основного телефона, так что возникла необходимость держать его поближе к зарядке, и возможность не дёргать его и не возиться с проводным наушником при разговоре. Вдохновленная хабратопиком «Док-станция для iPhone за 15 минут», я решила сообразить что-то подобное, но для двух телефонов сразу.
Из материалов использовались плотный многослойный картон(где-то 2 мм толщиной), бумага для оклейки (3 листа найдено в стратегических запасах), клей ПВА и одна канцелярская прищепка самого маленького размера.
Инструменты — скальпель, стальная линейка, ножницы, пробойник.
Картинки кликабельны
Зарядная станция для двух телефонов
Читать дальше →

Для тех, кому в IT-стартапе требуется разбор Си++-кода

Reading time17 min
Views16K
Статья описывает открытую и бесплатную библиотеку VivaCore, позволяющую разбирать и анализировать код на языке Си/Си++. Библиотека может быть полезна разработчикам, начинающим свои стартапы в области создания таких инструментов как построение документации по коду, специфические расширения языка, подсчет метрик и так далее.
Читать дальше →

Information

Rating
Does not participate
Location
Stuttgart, Baden-Württemberg, Германия
Registered
Activity