Как стать автором
Обновить
0
0
Денис @le_den

DevOps Infrastructure

Отправить сообщение

Разработка черного списка sms для Android

Время на прочтение10 мин
Количество просмотров20K
Здравствуй, уважаемое хабрасообщество!

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

Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии15

Встречайте WebMatrix 2 RC: поддержка Node.js, Jade, EJS, LESS, CoffeeScript и многое другое

Время на прочтение6 мин
Количество просмотров19K
После нескольких месяцев активной разработки, команда WebMatrix рада представить новую версию WebMatrix 2 Release Candidate. WebMatrix 2 включает в себя очень много новых функций, но сегодня я предлагаю вам ознакомиться с обзором той работы, которая была проделана для поддержки разработки приложений Node.js в WebMatrix.



Для того чтобы загрузить WebMatrix 2 достаточно перейти по следующей ссылке. Подробнее о нововведениях в WebMatrix 2 предыдущей предварительной версии можно прочитать здесь.
Читать дальше →
Всего голосов 65: ↑52 и ↓13+39
Комментарии49

История одного файлового менеджера

Время на прочтение14 мин
Количество просмотров6.6K
Не знаю, как вы, а я начинал изучение веба и PHP в частности путём написания бесплатных скриптов. Я написал 2 своих CMS, галерею, форум, гостевую книгу… Первым моим проектом был файловый менеджер, и бы хотел рассказать о том, через какие стадии развития он прошел и чем стал в итоге. Например, я научил его открывать папки с 500к файлов, не вылезая за memory_limit в 32 Мб с временем генерации страницы в несколько секунд.

Я подготовил небольшое демо его работы, а также выложил исходники файлового менеджера на github. Исходные тексты не слишком высокого качества, ибо в основном писалось это мной году в 2007, то есть 5 лет назад :).
Так как оно открывает 100500 файлов?
Всего голосов 67: ↑53 и ↓14+39
Комментарии24

Заблуждения программистов относительно времени

Время на прочтение3 мин
Количество просмотров90K
За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
Читать дальше →
Всего голосов 241: ↑218 и ↓23+195
Комментарии216

Цитаты о разработке программного обеспечения

Время на прочтение3 мин
Количество просмотров14K
Несколько цитат о дизайне и разработке программ. Думаю, каждый найдет что-нибудь себе по вкусу. В дополнение к этому топику.

Простота — дух эффективности. // A. Freeman
Читать дальше →
Всего голосов 105: ↑81 и ↓24+57
Комментарии32

Computex 2012 — финальный репортаж

Время на прочтение9 мин
Количество просмотров33K
На прошлой неделе закончилась международная выставка Computex 2012, которая проходила в Тайбее, Тайвань. Хочу поделиться собственными наблюдениями и впечатлениями от выставки, а не просто перечислить список новинок, которые были представлены.



Под катом много фотографий. Будьте осторожны, трафик!
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии14

7 типичных русских проблем в английской речи

Время на прочтение10 мин
Количество просмотров254K
South Park
Предметом данной статьи является попытка систематизировать культурные различия, и типичные ошибки которые мы допускаем с нашими иностранными коллегами. Большинство примеров взято из книги Русские проблемы в английской речи. Я взял на себя смелость в небольшой популяризации данной темы, снабжению комментариями и собственными примерами.

1. Я прав, а ты нет
Читать дальше →
Всего голосов 170: ↑160 и ↓10+150
Комментарии171

Плохие привычки программистов

Время на прочтение5 мин
Количество просмотров15K


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

Наши привычки постоянно развиваются и меняются. Изменяется стиль кодирования, подход к написанию кода в целом. Обычно это хорошо, но иногда этот процесс минует некоторые плохие привычки и они надолго остаются с нами. Я хотел бы поделиться размышлениями о некоторых «не очень хороших» привычках, которые я наблюдал в себе и в других людях на протяжении многих лет. Некоторые даже могут быть не похожи на плохие…
Читать дальше →
Всего голосов 135: ↑113 и ↓22+91
Комментарии124

Простая замена phpMyAdmin для гиков

Время на прочтение2 мин
Количество просмотров14K
Довольно часто возникает ситуация, когда надо быстренько запустить пару запросов к MySQL базе у клиента на сервере. При этом есть только FTP и параметры соединения с СУБД. Самый простой выход — загрузить туда phpMyAdmin, ну а дальше дело техники. Обычно все это проиcходит на фоне того, что у клиента уже установлена какая-то CMS — WordPress, Drupal, Joomla…

Я люблю простые, красивые и удобные вещи. Я тепло отношусь к phpMyAdmin но в 90% моих Use Cases мне он не нужен. Нужно что-то простое. В идеале такое, что можно просто залить на сервер и открыть в браузере — не настраивая.

Пара вечеров и пакет готов.
Читать дальше →
Всего голосов 120: ↑114 и ↓6+108
Комментарии116

Удобная работа с LocalStorage. Ну и с SessionStorage заодно

Время на прочтение3 мин
Количество просмотров24K
Хочу представить вашему вниманию библиотеку для удобной работы с Local и Session Storage. Она появилась, как побочный продукт работы над проектом и содержит несколько довольно удобных функций. Библиотека поддерживает все современные браузеры, а именно:

  • Internet Explorer 8+
  • Mozilla Firefox 3.5+
  • Google Chrome 4+
  • Safari 4+
  • Opera 10.5+

Помимо традиционных — set/get/inc/dec, есть набор удобных «вкусностей»:

  • inc работает со строками
  • extend для объектов
  • много методов для работы с массивами
    • обычные append/prepend/takeLast/takeFirst/getLast/getFirst
    • с проверкой уникальности — .appendUnique/.prependUnique
    • во все append/prepend методы можно передавать лимит — удобно для организации MRU списков
  • calls chaining — я от него в восторге :)

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

Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии19

15 расширений для внешнего оформления браузера под Firefox 13

Время на прочтение11 мин
Количество просмотров28K
Периодически мы обозреваем разные расширения (аддоны) к браузерам. Есть стиль обзора — рассмотреть всё (*), есть стиль — задать тон комментаторам (*), есть обзоры с рассмотрением аддонов для веб-разработки (*), (*). Чтобы не распыляться на всё, рассмотрим только те аддоны, которые управляют внешним видом и интерфейсом браузера. Несмотря на ограничение, это — нужная для всех и весьма обширная группа аддонов. Её легко расклассифицировать по областям действия. Каждый элемент интерфейса требует тщательной разработки и сопровождения, поэтому нет единого аддона, включающего в себя всё, что может захотеться (но и этим пытаются заниматься создатели Тем). Каждый разработчик аддона занимается частью интерфейса, а выбрав несколько аддонов, мы получаем настроенную «под себя» конфигурацию окна. В конце статьи — один из вариантов получившегося вида браузера, а в середине — ссылка на подборку из 15 аддонов, расположенную на сайте Мозиллы, с помощью которых подобное получается.
Читать дальше →
Всего голосов 50: ↑31 и ↓19+12
Комментарии32

Yet another cool story about bash prompt

Время на прочтение10 мин
Количество просмотров37K
Я программист. По крайней мере так написано в трудовой книжке. Почти всё своё рабочее время я провожу в консоли и текстовом редакторе. Мне очень нравится bash. Почти год я жил в zsh, прислушавшись к советам своих многочисленных коллег и знакомых, но в итоге я вернулся в bash и ни капельки об этом не жалею.



Zsh красив, приятен, чертовски функционален, но, признаюсь честно, я не смог совладать со всеми его многочисленными настройками. Я хочу работать, а не бороться со своим рабочим окружением. Простой пример: пару раз из-за автодополнения zsh я удалял все директории и файлы в текущей директории — zsh просто ставил пробел между автодополненной директорией и введённой мною звёзочкой (я хотел удалить всё в выбранной папке). Помните тот эпичный баг с пробелом и удалении директории /usr? У меня было то же самое. Спасибо гиту, выручил в который раз.

Впрочем, дело не в zsh — будь я чуточку умнее, я бы с ним обязательно справился бы, и всё было бы хорошо, но мы, суровые программисты, будем использовать bash и vim, а гламурные zsh и textmate оставим хипстерам и прочим модникам ;)

Я не напишу ничего оригинального и универсального решения я не приведу, но мне всегда нравилось читать конфиги и описания других людей, а если к ним были приложены интересные картинки, так я вообще перечитывал эти статьи несколько раз. Надеюсь, вам тоже будет интересно.
Читать дальше →
Всего голосов 175: ↑166 и ↓9+157
Комментарии143

Некоторые тонкости установки на сайт кнопок «Поделиться» (share) социальных сетей

Время на прочтение5 мин
Количество просмотров205K
Сегодня, в эпоху социальных медиа, принято давать посетителям сайта возможность поделиться с друзьями. Мы делали промо-страницу к Дню Рождения интернет-магазина Allsoft и нам нужно было установить кнопки «Поделиться» от Facebook, Twitter, Одноклассников, Вконтакте и Мой мир.

С первого взгляда показалось — что может быть тут особенного — поставил готовый html/js код и готово? Но тонкости оказались в деталях: что если для одной соц. сети нужно передавать один текст, а для другой — другой? Как правильно передать картинку и описание во все сети? А если несколько разных вариантов текста и картинок на одной странице? Как почистить уже закешированную информацию о ссылке в соц.сети? На все эти вопросы нам пришлось найти ответы, которые и вы сможете узнать из этой статьи.
Читать дальше →
Всего голосов 74: ↑59 и ↓15+44
Комментарии44

Простой универсальный переключатель на JavaScript

Время на прочтение8 мин
Количество просмотров53K
При разработке сайтов нередко возникает необходимость в каком-либо переключении их состояния, обычно для этого используются псевдоссылки: скрыть или показать подсказку, поле ввода, другую часть страницы.

Можно каждый раз писать JavaScript-код и стили к нему, но со временем это приводит к разрастанию кода, с чем в определенный момент мы и столкнулись.

Однако проблему можно решить гораздо элегантнее. Рассматриваемое ниже решение отличается простотой и не требует последующего участия JavaScript-программиста, так как верстальщик сможет самостоятельно вносить нужные изменения в стили.
Читать дальше →
Всего голосов 107: ↑91 и ↓16+75
Комментарии64

WebGLU: упрощаем работу с WebGL

Время на прочтение11 мин
Количество просмотров10K
Когда-то 3D в браузере было большой проблемой. К чему только не прибегали для создания объемной динамичной трехмерной графики в браузере: использованию псевдо-3D в SVG, построениям в canvas, использованию flash… Однако, прогресс не стоит на месте: наконец-то все современные браузеры стали поддерживать облегченную версию OpenGL (OpenGL ES 2.0) — WebGL. Это — довольно молодая технология, ей всего-то чуть больше года от роду. Однако, уже сейчас можно оценить ее мощь по всевозможным браузерным играм и примерам.

Из-за сравнительной молодости этой технологии, руководств по работе с ней не так уж и много. Почитать кое-что о работе с ней можно здесь (здесь — перевод на русский). Здесь можно узнать кое-что об основах WebGL.

Для облегчения работы с WebGL разработан ряд библиотек (правда, большинство из них еще довольно сырые). Применению одной из них — webGLU — для формирования простой сцены, освещенной одним источником-фонарем, и посвящена эта статья. Здесь можно посмотреть пример, а отсюда скачать полный архив для запуска его на своей машине.

Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии7

Бэкап для Gmail

Время на прочтение2 мин
Количество просмотров14K
Состоялся релиз версии 1.0 beta свободной программы GMVault, которая предназначена для бэкапа почтового архива Gmail на локальном диске и восстановления данных в случае сбоя на Gmail. Поддерживается синхронизация по заданному интервалу, криптографическая защита, несколько gmail-аккаунтов.

GMVault — хороший вариант для тех, кто не в полной мере доверяет надёжности облачного хранилища Gmail, но не готов отказаться от удобного веб-интерфейса. Shell/batch-клиент доступен для Linux, Mac OSX и Windows.
Читать дальше →
Всего голосов 47: ↑37 и ↓10+27
Комментарии32

Xscreensaver из часов на Esquire.ru

Время на прочтение2 мин
Количество просмотров4.6K
Мне, жуть, как понравились вот эти часы, очень захотел на скринсэйвер. Сказано — сделано.

Dev Tools Chromium'а дал понять, что урл видео-файла, проигрываемого плеером выглядит примерно следующим образом:
http://176.9.156.38/clock/big_<часы>-<минуты, округлённые вниз до делителя 5>.mp4?start=<смещение в секундах относительно округлённого времени>
Читать дальше →
Всего голосов 62: ↑54 и ↓8+46
Комментарии57

Виджет для Android на JavaScript за 15 минут на примере Хабра-Кармы

Время на прочтение5 мин
Количество просмотров12K
Сразу говорю, кармавиджет — вовсе не основная цель статьи. В этой статье я хочу представить широкой общественности способ быстрого создания информационных виджетов для Android на JavaScript всего лишь на примере кармы и рейтинга хабра. Виджет будет смотреться примерно так:



Виджет будет представлять собой плагин для программы AnyBalance (Android), основная идея которой — собрать общую базу способов извлечения балансов и прочих параметров из личных кабинетов различных провайдеров, например, балансов на сотовых телефонах, интернет провайдерах и т.д. Эти плагины (будем их дальше называть «провайдерами») пишутся на JavaScript и имеют открытый исходный код. Сейчас база AnyBalance содержит около 80 провайдеров, но постоянно расширяется. И хабрахабр там будет не лишним :)
Читать дальше →
Всего голосов 61: ↑42 и ↓19+23
Комментарии21

По следам International CTIA wireless 2012

Время на прочтение4 мин
Количество просмотров2.1K

Посещать конференции, особенно профильные, очень полезно: как говорится, себя показать и на других посмотреть. На сей раз мне удалось побывать по ту сторону океана, на конференции International CTIA wireless 2012, о которой и пойдет речь в этом топике. Под катом впечатления, фотографии, дайджест анонсов конференции. Будет интересно.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии0

Оформляем формы

Время на прочтение3 мин
Количество просмотров21K
У форм в Django есть несколько предопределенных методов as_p(), as_table() и as_ul(), которые отображают форму как набор параграфов, таблицу или список. На практике этих методов не всегда достаточно, чтобы формы выглядели так, как нам хочется.

Допустим, верстальщик сверстал все формы div-ами. Документация предлагает в этом случае писать нужные теги в ручную в шаблоне. Если форма у нас только одна, можно поступить и так. Если форм несколько, то этот подход сразу же теряет все свое очарование. Решение очень простое — пронаследуем наш собственный класс форм от forms.Form или forms.ModelForm и обучим его рисовать формы так, как нужно нам.
Читать дальше →
Всего голосов 51: ↑41 и ↓10+31
Комментарии25

Информация

В рейтинге
Не участвует
Откуда
Израиль
Зарегистрирован
Активность