Search
Write a publication
Pull to refresh
201
0
Владимир Пузанов @farcaller

Пользователь

Send message

6 грустных кальмаров обнимаются нежно

Reading time3 min
Views3.3K
Примечание преводчика: текст взят из блога компании Asana, которая на данный момент проводит бета-тестирование своего productivity software.

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


На изображении: Если вы свяжетесь с нами по поводу этой ошибки, используйте следующую уникальную фразу, идентифицирующую ошибку: 12 старых сверчков жужжат со счастливым видом
Читать дальше →

Необычные поздравления с днем программиста — 2

Reading time3 min
Views8.2K
Я хочу продолжить традицию, начатую год назад вот этой статьей (кстати, мне очень приятно, что ее еще помнят), и рассказать о еще нескольких способах сделать свое поздравление необычным и профессиональным. На этот раз я вывожу просто «congrats» — условно-нетрудоемкие способы закончились еще в том году.

Способ 1. Магический


В этой номинации традиционно выступают профессиональные фокусы на совершенно нормальных языках, которыми мы пользуемся каждый день, в данном случае — С++ (можно и просто C).

#include <stdio.h>
int main()
{   int A = 10, B = A^1937006968, C = B^337251857;
    printf((char *)&C);
} 


Disclaimer. Этот фокус использует низкоуровневые манипуляции с памятью; результаты могут варьироваться в зависимости от архитектуры компьютера и используемого компилятора.

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

Знакомимся с PayPal API

Reading time13 min
Views87K
На данный момент, PayPal — это самая популярная платформа электронных платежей. Именно то, насколько легко можно открыть счет и начать получать на него средства, по сравнению с традиционными способами получения платежей, и является причиной #1 его запредельной популярности. Второй причиной, многие со мной согласятся, является мощный API, предоставляемый PayPal. В этом топике я по порядку разложу все способы и трюки, связанные с работой PayPal API, чтобы вы избежали проблем с его интеграцией.
Читать дальше →

Монтирование LVM-based томов (LVM-in-LVM)

Reading time2 min
Views46K
Ситуация в которрой может понадобиться данная процедура, довольне не частая, однако, иногда приходится с ней столкнуться, например при работе с виртуальными машинами.

Представим что у нас есть виртуальная машина на LVM разделе, внутри которой так же есть LVM разделы. К примеру CentOS, при установке, по умолчанию, создает LVM-based разделы, за исключением /boot.

Задача:

добраться до данных в этих разделах с родительской машины.

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

Почему фрилансер и заказчик часто считают друг друга идиотами

Reading time10 min
Views96K
Мне повезло: я побывал по обе стороны баррикад и теперь знаю, что и как делает заказчик на проектах разного уровня и что делает фрилансер, чтобы получить или провалить такой проект. В итоге я уверен, что 95% фрилансеров говорят с заказчиком на разных языках.

Осторожно, butthurt.

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

Конфигурирование iptables при помощи ferm

Reading time4 min
Views19K
Ferm — это низкоуровневая надстройка над iptables, позволяющая организовывать своего рода циклы по спискам параметров iptables. Это оказывается особенно полезно при настройке сложных правил файрвола, для написания которых с использованием одного только iptables приходится повторять до умопомрачения -t filter -A INPUT -p tcp --state NEW ..., потом делать аналогичное для -p udp, в общем кто плавал — знает.

Ferm прекрасен тем, что, сохраняя всю гибкость iptables, позволяет добиваться тех же эффектов меньшими усилиями. Так, например, разрешить новые соединения на порты ftp, ssh и http и запретить все остальное (кроме связанных), можно написать вот такой конфиг:
chain INPUT {
policy DROP;
mod state state (RELATED ESTABLISHED) ACCEPT;
proto tcp dport (http ftp ssh) ACCEPT;
}


Удивительно дело, поиск дает по запросу ferm только одну статью, которая к собственно ferm никакого отношения не имеет. То ли все уже все знают и всем очевидно, то ли наоборот. Исходя из последнего, я решил написать этот топик.

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

Читаем QR код

Reading time5 min
Views1.1M
Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.
Читать дальше →

Краткая шпаргалка по tmux (менеджеру терминалов)

Reading time1 min
Views437K
tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen, только лучше (в первую очередь потому, что использует модель клиент—сервер).

image

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

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

Библиотека для упрощения HTTP-запросов

Reading time1 min
Views151K
Requests — библиотека Python, которая элегантно и просто выполняет HTTP-запросы. Теперь не нужно осваивать urllib2 с излишне сложными программными интерфейсами.

Вот как выглядит HTTP-запрос с авторизацией с помощью requests:

>>> r = requests.get('https://api.github.com', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json'
Читать дальше →

Python-неизвестный

Reading time4 min
Views27K
На Хабре уже есть несколько статей\переводов, в которых рассказывается о неизвестных фичах\тонкостях\возможностях Пайтона. Я буду пытаться не повторять их, а дополнять, но если уж так случилось, что вы это уже где-то видели — не огорчайтесь. Я уверен, что найдется что-то интересное и для вас.
Читать дальше →

Производительный и читабельный XSLT: сборник советов

Reading time7 min
Views11K
В моей практике чаще всего в качестве шаблонизатора используется именно XSLT. Я не буду рассуждать о том, почему так происходит — о преимуществах данной технологии написано вполне достаточно. Но ещё больше написано о её недостатках. Считается, что XSLT является слишком многословным и тяжёлым для чтения, а также не самым производительным. В этой статье я постараюсь собрать несколько советов по улучшению качества XSLT-кода с точки зрения читабельности и выразительности. Некоторые из них также позволят XSLT работать несколько быстрее.

Именованные шаблоны

Многие «проблемы» XSLT связаны с тем, что мы слишком часто пытаемся писать на нём в процедурном стиле. Мы постоянно пытаемся сделать из него Smarty, но упираемся в один простой факт — XSLT является декларативным языком, как бы необычно это для нас не выглядело.
Например, мы пытаемся использовать именованные шаблоны, воспринимая их как процедуры, выводящие данные в определённом формате:

<xsl:template name="CreateItemLink">
    <xsl:param name="item"/>
    <a href="/item/?id={$item/id}">
        <xsl:value-of select="$item/name"/>
    </a><br/>
</xsl:template>


* This source code was highlighted with Source Code Highlighter.

Наверное, многие программисты именно так написали свой первый шаблон. И он неплохо решает свою задачу. Декларативный XSLT предлагает немного другой подход:

<xsl:template match="item">
    <a href="/item/?id={id}">
        <xsl:value-of select="name"/>
    </a><br/>
</xsl:template>


* This source code was highlighted with Source Code Highlighter.

Разница совсем не велика. Дело вкуса и стиля программирования. Давайте посмотрим, как шаблон будет использоваться в дальнейшем.

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

Универсальный триггер для фотокамеры

Reading time2 min
Views11K
В последнее время, благодаря широкому распространению платформы Arduino, появилось множество проектов разнообразных фототриггеров. Какие-то из них срабатывают на звук, какие-то — на пересечение светового луча. Мне бы хотелось получить все в одном — срабатывание как на звук, так и на свет. Причем с задержкой срабатывания изменяемой прямо на триггере, а не в программном коде.
Оказалось, что я не одинок в своих желаниях, и в одном из блогов, посвященных фотографии я наткнулся на презентацию нового проекта TriggerTrap — универсального триггера для фотокамеры. Прочитал и стал фанатом этого проекта.

Итак, что такое TriggerTrap? Это устройство, собранное на платформе Arduino, которое управляет затвором вашей камеры (или выносной вспышкой). Срабатывание происходит по:
— звуковому сигналу;
— пересечению светового луча;
— истечению запрограммированного временного периода (time lapse);
— сигналу внешнего датчика подключенного к AUX входу.

Цепи управления камеры/вспышки и фототриггер гальванически развязаны через опторазвязки. Но самое главное — это open source проект! Принципиальные схемы будут доступны по лицензии CC-BY-SA-3.0, а программный код — по GPLv3.
Читать дальше →

F**k GTD! (пост добра :)

Reading time1 min
Views15K
Буду краток. Практикуете GTD (иль какой иной таймменеджмент), но вас по-прежнему ломает от ведения и пересмотра (!) списков? А может, на бумаге у вас выходит всё красиво, а как только вы принимаетесь за запланированные дела, вас охватывает скука и желание вот щас прямо заниматься чем-то совершенно другим? Ну и, самое главное, как только проект переходит в рутинную стадию, вам он надоедает?

Поздравляю, вы — иррационал! Плохая новость: хотя нас очень много, во всех гильдиях специалистов по управлению личной эффективностью нас меньшинство. Там правят рационалы, которые изо дня в день лобируют рациональные ценности, а нас, любителей весело и интересно жить, выставляют лентяями, лузерами и раздолбаями.

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

Прочитайте и дайте прочитать знакомым!

P. S. Это не топик-ссылка, т. к. хотел опубликовать сразу две ссылки.

Создание своих сложных стилей для LaTeX

Reading time6 min
Views18K

История вопроса


Если вы регулярно создаёте в ТеХ'е единообразные документы, то создание своего стиля может заметно ускорить работу.

Моими регулярными документами является создание листочков с задачами для школьников. Готовые они выглядят следующим образом: PNG или PDF (а также так, так или так)
Практически всё оформление здесь (а также отдельная табличка для результатов) создаётся автоматически.
(если это кому-то нужно, то могу выдать пакет с документацией и примерами использования)

Разными «трюками» при создании своего стиля я бы и хотел поделиться.
Если вы совсем не в теме про создание своих команд, то лучше всего почитать Львовского или чего-нибудь в этом духе.

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

Шаблоны ЕСКД и ГОСТ 7.32 для Lyx 1.6.x

Reading time3 min
Views23K
Уже более полугода я пользуюсь текстовым процессором Lyx. Встроенных шаблонов с лихвой хватало, чтобы писать конспекты лекций, готовиться к семинарам и делать несложные отчеты к лабораторным работам. Но в прошлом семестре пришлось делать два курсовых проекта в соответствии с требования ЕСКД. Я начал работу в Lyx, но без специальных шаблонов документов, мои отчеты в редакторе выглядели так:

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

Упрощаем регистрацию и вход на сайт

Reading time7 min
Views35K
Представляю вашему вниманию перевод статьи под названием "Innovative Techniques To Simplify Sign-Ups and Log-Ins" от Anthony T. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.


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



Форма авторизации на сайте Basecamp

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

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

iOS tips and tricks: Динамический Default.png

Reading time2 min
Views3.4K
При разработке под iOS время от времени у заказчиков, да и у некоторых программистов возникает закономерный вопрос: «А можно ли каким-нибудь образом при старте приложения подменять картинку?».

Немного порыскав по интернету, и покопавшись в документации, то напрашивается ответ, что сделать это невозможно по следующим причинам:
  • Файл, который показывается при запуске приложения лежит внутри папки приложения, и, ак следовательно переписать его не является возможным
  • По аналогичной причине нельзя изменить файл Info.plist, в котором сохраняется относительный путь к файлу стартовым изображением

Однако, все же, это возможно сделать стандартными способами, без всякого рода Jailbreak'а. Впрочем, как и у каждого решения есть свои плюсы, минусы и особенности.

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

Используем блоки в IOS < 4.0

Reading time1 min
Views1.1K
Для тех кто знаком с блоками в Objective-C, но не может пока их использовать в силу необходимости поддержки приложений для ios младше 4.0 версии, либо сторонится патченого компилера PLBlocks, предлагаю рантайм блоков в виде статической либы libESBlocksRuntime.a

Сам рантайм был выдернут с исходников проекта compiler-rt, и завернут в блоковые классы ESBlock. Добавлены недостающие методы -[ NSArray enumerateObjectsUsingBlock: ] и т.д. также UIView блоковые екстеншены.

Для подключения в проект достаточно скачать исходники проекта, и добавить его в dependencies например так.

Вопросы и предложения пишите в личку — с радостью отвечу каждому заинтересовавшемуся.

Здесь можно почитать о терии блоков на хабре.

Делаем шифрование в Dropbox Mac (совместимо с Linux)

Reading time3 min
Views6.8K

За последний месяц было несколько публикаций на Хабре о безопасности хранения информации на Dropbox. И, судя по всему, информацию там, действительно, хранить не совсем безопасно.
К ней могут получить доступ как минимум сотрудники Dropbox, а как максимум даже не хочу думать кто. Я активно использую хранилище для синхронизации домашнего ноута с рабочим компьютером.
Читать дальше →

Information

Rating
Does not participate
Location
Dublin, Ирландия
Registered
Activity