Search
Write a publication
Pull to refresh
0
0
Indeego @Indeego

User

Send message

Django: Генерируем безопасные отчёты об ошибках на сайте

Reading time5 min
Views9.1K
Как известно, в Django предусмотрен очень лёгкий и простой механизм уведомления разработчиков о возникающих проблемах. Когда проект развёрнут на локальном компьютере и в настройках DEBUG имеет значение True, то отчёты об ошибках просто выводятся в виде HTTP-ответа, в виде удобной страницы с возможностью копирования traceback'а.

Если же это production-сервер, и DEBUG имеет значение False, то отчёты по умолчанию отправляются по электронной почте всем, кто указан в настройке ADMINS (кстати, если вы используете SMTP-сервер, то письма могут не приходить, так как SMTP-сервер не принимает адрес root@localhost — в этом случае просто укажите любой другой адрес, который будет принимать ваш SMTP-сервер, с помощью настройки SERVER_EMAIL).

Разумеется, ничего не мешает также написать свой logging handler (обработчик журналирования) и сохранять отчёты об ошибках в любом нужном виде — создавать задачу в баг-трекере, например.

Тем не менее, если для вас важна безопасность ваших пользователей, то возникает вполне закономерный вопрос — как сделать так, чтобы отчёты об ошибках были для них безопасны? То есть как сделать, чтобы никакая личная информация в них не сохранялась, и не отправлялась кому-либо по почте (ведь дело даже не в том, что кто-то из разработчиков может вести себя недобросовестно, а скорее в том, что подобную информацию вообще лучше не сохранять где-либо за пределами сервера — ведь почтовый ящик и взломать могут, а сервер обычно защищён лучше).
Читать дальше →

UITableView+sqlite3 для самых маленьких

Reading time6 min
Views31K
Предисловие

Приветствую вас хабролюди. Недавно сбылась мечта всей моей жизни и я купил себе Mac (13’ unibody). Поздний 2008, но для нашей деревни сойдет. С тех пор начал потихоньку вникать в разработку приложений для iOS (в частностни для iPhone).

Теперь ближе к делу. Я для начала решил написать простенькое приложение позволяющее создавать и просматривать заметки. Вот как оно выглядело в итоге:

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

Что нам стоит Git настроить!

Reading time3 min
Views107K

Дарова, хабр! (ничего оригинальнее не придумал)

Сомневаюсь что эта заметка тянет на полноценный пост, но я все же оставлю ее здесь. О чем же пойдет речь?

Все мы слышали о Git. Все мы знаем что он — хорош. Но лишь немногие пытаются что-то с ним делать, как-то его протвикерить. Сразу говорю, тут не будет ничего паранормального, только немного работы с файлом .gitconfig. Да-да, именно с тем файлом, который так трепетно пылится у вас в домашней директории.

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

Coroutines в PHP и работа с неблокирующими функциями

Reading time18 min
Views81K
Одним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент.

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

Генераторы


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

Electric Imp — Делаем WiFi термометр

Reading time5 min
Views72K
Многие из вас знакомы с анонсом Electric Imp, который не так давно был на хабре, кроме того уже начинают появляться первые впечатления от его использования. Поскольку это устройство мне показалось перспективным и довольно интересным, я при первом появлении в продаже версии developer edition заказал себе чтобы немного поиграться и оценить возможности.
Читать дальше →

Шпаргалка по верстке для больших и маленьких

Reading time3 min
Views101K
Приветствую!

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

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

Электрический бес и углекислый газ

Reading time5 min
Views125K
На днях из Америки приехало два любопытных устройства: микрокомпьютер electric imp и оптический датчик уровня углекислого газа в воздухе K30. Каждый из них любопытен по-своему, расскажу немного о каждом из них и о их соединении.



Electric imp



Импы — это вид бесенят в немецком фольклоре. А также сокращение от Interface Message Processor, одного из проектов-предшественников Интернета. Создатели системы признают обоих предшественников. В жизни эта штука оказалась довольно покладистой, хорошо документированной платформой для разработки embedded приложений.

Статью-обзор интернет анонсов можно почитать в статье на хабре, я постараюсь рассказать о конкретике и тонкостях, которые выяснились в процессе работы.
Как всё устроено

Дайджест интересных новостей и материалов из мира айти за последнюю неделю №35 (8 — 14 декабря 2012)

Reading time5 min
Views24K
Предлагаем вашему вниманию очередную подборку с ссылками на новости, интересные материалы и полезные ресурсы.


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

Подборка инструментов для фронт-энд разработки

Reading time2 min
Views134K
Как разработчику, мне очень нравятся инструменты, которые помогают сэкономить время или упростить процесс разработки фронт-энда. В этой статье я собрал мои любимые веб-инструменты для упрощения разработки веб-интерфейсов.

Картинки кликабельны.

Form builder


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

Приемы разработки под iOS, использованные мной в конкурсе Pictograph

Reading time6 min
Views7.4K
      Недавно прошли три тура конкурса Вконтакте по созданию фотоприложения для платформы iOS. Ссылка на конкурс: http://vk.com/photo_contest. В процессе разработки приложения первого тура я нашел несколько интересных решений некоторых проблем. Этими решениями я и хотел поделиться с общественностью. Матерым разработчикам под iOS я врядли открою что-то новое, не думаю что статья подойдет также новичкам. Предполагаю, что статья будет интересна разработчикам под iOS со стажем 2-5 приложений.


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

Прекратите скручивать — 2. О способах крепления кабеля

Reading time7 min
Views563K
По заявкам слушателей, так сказать. Правильно соединить кабель — половина дела, но если он будет свободно болтаться, то долго он не проживет — или заденут, или порвут, или откусят(необязательно со злыми намерениями). А может просто под своим весом выскользнуть из соединения. А может не выскользнуть, что еще хуже — поди-ка найди место пропадания контакта. Так что эта статья расскажет о том, какими способами можно закрепить кабель так, чтоб он никуда не делся.
Да и вот такие крепления некрасивы, неудобны, и выдают непрофессионала:

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

MAD’Day — день разработки мобильных приложений

Reading time1 min
Views3.7K
11 декабря в Санкт-Петербурге (Бизнес-Инкубатор «Ингрия») пройдет день разработки мобильных приложений — MAD'Day.

image

Главная задача MAD'Day – рассказать о тенденциях и перспективах данного рынка, фишках и особенностях программирования на разных платформах, объединив знания и опыт специалистов из разных компаний. Игроки рынка и заказчики поделятся своим опытом внедрения мобильных решений, тонкостями работы с разработчиками, и самое главное об эффективности использования мобильных сайтов и приложений для их бизнеса.

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

Git Rebase: руководство по использованию

Reading time8 min
Views856K
Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

Теория


Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


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

Патч, позволяющий каждому коннекту иметь много user lock объектов

Reading time1 min
Views4.1K
Привет,

Пока был в отпуске, написал патч для MySQL, позволяющий каждому коннекту владеть несколькими user lock объектами.
Патч доступен здесь:

https://code.launchpad.net/~kostja/percona-server/userlock

Это последний percona-server (5.5) + новые пользовательские локи.

Подробнее про патч написал в своём блоге.
Надеюсь, кому-то окажется полезен. Буду рад комментариям по этой фиче.

«Уходя, гасите всё». Принцип построения частично отключаемой квартирной электросети — один из этапов подготовки к созданию «умного дома»

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

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

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

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

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

Анимация листа со спрайтами посредством steps()

Reading time1 min
Views29K
[иллюстрация принципа]

Если вам не хочется использовать гифы на сайте, а предпочитаете PNG за их лучшую цветность, но всё же нужно анимировать их, тогда вот способ:

у анимаций CSS с ключевыми кадрами есть свойство под названием animation-timing-function. Одна из его возможностей — использовать функцию steps(), как в нижеследующем примере:

div {
    animation: play 1s steps(10) infinite;
}
@keyframes play { 
      0% { background-position:    0px 0; } 
    100% { background-position: -500px 0; }
}

Различие между нею и остальными анимационными функциями состоит в том, что вместо плавного движения от 0px к −500px происходят резкие прыжки с паузами между ними. Это идеально подходит для анимаций, использующих лист с покадровым изображением спрайта. В вышеприведённом примере шаг равен 50px, а пауза — 100 миллисекунд (всего 10 шагов).

Вот небольшое демо.

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

Полезные штуки для дизайнера интерфейсов iOS приложений

Reading time1 min
Views55K


Прочитав посты Полезные штуки для iOS разработчиков #1 от Coder89 и Полезные штуки для iOS разработчика #2 от SeriiZ, решил собрать «полезные штуки» для дизайнеров пользовательского интерфейса iOS приложений.
Читать дальше →

Git & Github глазами очевидца

Reading time1 min
Views19K
imageСлово «Git» среди разработчиков, как правило, вызывает две диаметрально противоположные реакции. Один при его звуке начинает возбужденно делиться историями и опытом. Другой – говорит, что Git – это весьма опасный и сложный в изучении инструмент, вокруг которого в последнее время поднялась незаслуженная шумиха. Так кто же прав? Анализу этого вопроса и была посвящена встреча Git & Github в Киевском офисе EPAM Systems.
Читать дальше →

Виды и форматы справок

Reading time4 min
Views33K
Привет, Хабр!

К нам в Alconost часто приходят клиенты и говорят “Мне нужна справочная система для моей программы. Сделайте мне ПэДээФку”. Мы создаем руководство пользователя, оформляем PDF, а потом оказывается, что на самом деле нужна была контекстная справка с индексом и поиском.

Именно поэтому хотелось бы поделиться со всеми простыми схемами и описанием видов и форматов справки.



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

Information

Rating
Does not participate
Registered
Activity