Как стать автором
Обновить
2
0
Смирнов Сергей @smirnov_sergey

разработчик

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

Шокирующий Objective-C для Java программистов, часть вторая

Время на прочтение5 мин
Количество просмотров4.9K
Продолжаю краткий обзор особенностей Objective-C, удивляющих Java программистов (первая часть). Во второй части немного будет рассказано о философии языка, о поддержке пространств имен и о типе id. Судя по комментариям к первой части, необходимо немного пофилософствовать, поэтому обещанные свойства (property) переносятся в третью часть. Также узнаем какие вопросы задают в американских супермаркетах.

Читать дальше →
Всего голосов 35: ↑27 и ↓8+19
Комментарии19

Восстанавливаем загруженные локально письма в почтовом ящике на сервере. IMAP

Время на прочтение2 мин
Количество просмотров34K
Добрый день.

Хабрапользователь ValdikSS в статье «Восстанавливаем удаленную почту на mail.ru (и других)» поделился вариантом восстановления на сервере почты уже полученной клиентом. Хочу поделиться другим способом восстановления не зависящим от формата базы клиента.

В каких случаях этот способ сработает


К сожалению, применимость этого способа в большей степени зависит от протоколов передачи почты, которые поддерживают сервера и клиенты, а именно IMAP4.

Некоторые популярные почтовые клиенты с поддержкой IMAP:
  • Mozilla Thunderbird
  • The Bat!
  • Outlook Express
  • Microsoft Outlook

О поддержке IMAP конкретным почтовым сервером можно узнать из соответствующих инструкций по настройке почтовых программ. Ниже перечислены некоторые популярные сервисы и ссылки на страницы помощи:

И не смотря на то, что требуемый протокол существует с 1994, его поддержка некоторыми игроками данной области воспринимается как не обязательная опция. Примером этому может служить сервис mail.ru, который отказался от IMAP некоторое время назад.

Итак. Если вы настроив почтовый клиент через pop3 и забыв поставить галочку «хранить почту на сервере» решили восстановить письма на сервере или хотите пополнить почтовый ящик любыми другими письмами из имеющихся в вашем почтовом клиенте аккаунтов, то welcome под Хабракат.
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии2

Кластеризация точек на основе регулярной сети

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

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

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

Сети для самых маленьких. Часть вторая. Коммутация

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


После скучного рассказа о подключении к кошкам переходим к настройке сети. В этот раз темы будут для новичков сложные, для старичков избитые. Впрочем сетевым аксакалам едва ли удастся почерпнуть что-то новое из этого цикла. Итак, сегодня:
а) аккуратно впитываем теорию о коммутаторах, уровнях сетевой модели, понятии инкапсуляции и заголовков (не пугайтесь — еще не время),
б) собираем спланированную в нулевой части цикла сеть,
в) настраиваем VLAN'ы, разбираемся с access и trunk-портами и тегированными Ethernet-фреймами,
г) соотносим текущие знания со стеком протоколов TCP/IP и моделью OSI (да, наконец-то мы ее коснёмся).



Перед тем, как вы обратитесь к практике, настоятельно рекомендуем почитать нулевую часть, где мы всё спланировали и запротоколировали.

Читать дальше →
Всего голосов 92: ↑88 и ↓4+84
Комментарии45

Построение «правильного» процесса разработки на платформе Mono

Время на прочтение20 мин
Количество просмотров13K
Элементарный пример цикла разработка примитивного ASP.NET (Mono) приложения с использованием Jenkins CI, по мотивам Построение «правильного» процесса разработки на платформе .NET.

Представленный пример может быть интересен широкой аудитории, т.к. легко может быть адаптирован для разработки под любую другую платформу.
Читать дальше →
Всего голосов 29: ↑22 и ↓7+15
Комментарии3

Обновление информации в фоне

Время на прочтение2 мин
Количество просмотров12K
Всем добрый день.

Недавно я задумался надо вопросом фонового обновления информации и мне пришла в голову одна идея.

Суть задачи — мы находимся на странице списка новостей. Необходимо обновлять список по мере поступления новых новостей. Серверный язык PHP
Читать дальше →
Всего голосов 57: ↑45 и ↓12+33
Комментарии60

Simplify.js — JavaScript-библиотека для упрощения ломаных линий

Время на прочтение2 мин
Количество просмотров10K
Рад представить вашему вниманию еще одну крохотную, но полезную open-source-утилиту своего авторства — Simplify.js.



Simplify.js — очень быстрая реализация упрощения ломаных линий на JavaScript. Изначально написав ее для Leaflet (библиотеки для интерактивных карт), после небольшого эксперимента по оптимизации захотелось выпустить ее в качестве отдельной библиотеки без зависимостей, которую можно использовать как в браузере, так и на серверных платформах, таких, как Node.js, и применять и для 2D, и для 3D-точек.

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

Читать дальше →
Всего голосов 134: ↑129 и ↓5+124
Комментарии57

Еще раз о поиске наибольшего сгущения в облаке точек

Время на прочтение4 мин
Количество просмотров7.4K
В очередной раз мне попалась задача – найти в облаке точек место их наибольшего сгущения. На этот раз ситуация была такой:
  • есть некоторое количество (можно считать, что не более 16 миллионов) измерений набора параметров. Число параметров в наборе – от 2 до 5.
  • измерение параметров может быть относительно успешным – тогда их результат будет неподалеку от истинного (параметры и тип распределения неизвестны), либо не успешным – тогда результат будет случайным (опять-таки с неизвестными параметрами распределения). Определить по одиночному измерению, было ли оно успешным, нельзя.
  • Можно считать, что точка сгущения существует. Если их несколько с близким качеством (которое формально так и не определяется), можно выдать любую.
  • ответ нужно дать за один проход по исходным данным: перевычислять их или сохранять целиком – дорого.
  • И, как обычно, хочется, чтобы алгоритм выглядел попроще, а работал побыстрее.

Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии26

Красивые кнопки для Twitter Bootstrap

Время на прочтение1 мин
Количество просмотров12K
Классное расширение для фреймворка Twitter Bootstrap v2.0 — CSS-генератор кнопок. С помощью ползунков выбираете цвет, насыщенность, яркость и выпуклость кнопки.



Потом забираете CSS-код из соседнего окошка. И больше никогда не кодируйте цвет кнопок вручную!

P.S. Ещё один генератор кнопок: Button Maker, ну и вдобавок: CSS генератор градиентов.
Всего голосов 82: ↑61 и ↓21+40
Комментарии9

Батники против эксплойтов

Время на прочтение11 мин
Количество просмотров59K
Доброго времени суток, многоуважаемый %USERNAME%. Меня зовут Голованов Сергей, и я всё еще являюсь ведущим вирусным аналитиком в «Лаборатории Касперского». Я понимаю, что название этого поста в корпоративном блоге компании может вызвать смех, грусть, а у некоторых даже эпилептический припадок, но дайте мне всё объяснить.

Я понимаю, что для всех батники выглядят как нечто очень простое и со времен AUTOEXEC.BAT уже практически забытое, в то же время эксплойты, если вы конечно не профессиональный исследователь уязвимостей, выглядят очень сложно и практически неправдоподобно, особенно для некоторых разработчиков. Но! В данном посте я постараюсь перевернуть эти представления и рассказать, что всё как будто наоборот. Батники чуть легче и сильнее по функционалу brainfuck'а, а эксплойты не страшнее сортировки пузырьком на basic'е.

image

(Осторожно! 3 МБ иллюстрированного потока сознания и куча скриптов)
Читать дальше →
Всего голосов 134: ↑121 и ↓13+108
Комментарии73

50 советов для разработки безупречного дизайна iOS приложения

Время на прочтение12 мин
Количество просмотров58K
Привожу перевод статьи Ника Карсона. В статье собраны вместе, как мне кажется, основные правила построения интерфейса для iOS приложений.

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

2. Ориентируйтесь на устройство при создании приложений: учтите не только размер экрана, но и где и когда устройство используется. Больше всего iPad используется для развлечений между 8-11 часами вечера, перед сном, тогда как iPhone — в очереди на автобус или в кофейне. Учтите различные сценарии использования при разработке приложений – включая и то, как далеко устройство расположено от лица пользователя.

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

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

5. При адаптации приложения к экранам различных размеров, помните, что при значительном его изменении – например, от iPhone к iPad – способ использования устройства также изменится. Если размеры ограничены, используйте основные функции приложения, при их увеличении – можно включить любые дополнительные функции, которые не вошли в более сжатую версию, так как у вас появляется возможность обыграть дополнительное пространство.

За остальными 45-ю — добро пожаловать подкат.
Читать дальше →
Всего голосов 74: ↑62 и ↓12+50
Комментарии23

В поисках изофот

Время на прочтение5 мин
Количество просмотров3.1K
Понадобилось мне однажды вычисление изофот (линий равной интенсивности на изображениях), однако, готовых библиотек я не нашел, а копаться в чужом коде (например, в тех же Octave или Iraf) очень не хотелось. В качестве простейшего алгоритма я нашел метод шагающих квадратов. Однако, этот метод сильно снижает пространственное разрешение при вычислении узлов изофот, поэтому я решил его немного видоизменить и сделать квадраты перекрывающимися.
Первая реализация (кстати, довольно быстрая) была неудачной: т.к. я строил маску, общую для всех уровней, а для конкретного уровня пересчитывал отдельно, в точках, через которые проходит несколько изолиний, получились разрывы. Ковыряния в коде приводили к все большему и большему числу взаимных блокировок и флагов, поэтому я решил пойти в ущерб производительности и вычислять маски отдельно для каждого уровня интенсивности.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии16

Авторы Cloud9 IDE представили сборник документации по Node.js

Время на прочтение1 мин
Количество просмотров1.3K
Компания-создатель облачной IDE Cloud 9 на конференции NodeSummit, посвященной Node.js, планирует представить ряд новых улучшений в своем продукте, попутно представив сообществу англоязычный сборник документации по Node.js, который доступен по адресу nodemanual.org.

Весь сборник разделен на две части — Basic и Tutorials; при этом как таковых «HowTo» для новичков нет, поэтому можно сказать, что целевой аудиторией сайта являются все же профессионалы в Node.js. Авторами большинства статей называются разработчики Mozilla и Joyent, а примеры, представленные в документации, можно запустить в Cloud9, имея в ней аккаунт. GitHub сборника можно найти здесь.

Также Дениэлс намерен представить и блог nodebits.org, направленный на "… поддержание духа Node.js и инновационности". Сейчас блог не отличается большим числом статей (первая датируется только 30 декабря), но его обещают пополнять, называя среди авторов ведущих разработчиков Node.js-сообщества Тима Касвелла, Берта Белдера и Бена Нурдхаиса (Tim Caswell, Bert Belder, Ben Noordhuis).

[NodeManual]
Всего голосов 26: ↑21 и ↓5+16
Комментарии20

Паттерны ООП в метафорах

Время на прочтение17 мин
Количество просмотров562K
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
Читать дальше →
Всего голосов 214: ↑201 и ↓13+188
Комментарии86

Торрент лекций Лекториум

Время на прочтение1 мин
Количество просмотров35K
image

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

Дабы облегчить дальнейшее скачивание лекций выкладываю некоторые из ник как торренты.

Читать дальше →
Всего голосов 133: ↑131 и ↓2+129
Комментарии102

Детектирование эллиптических частиц на микрофотографии. Новый алгоритм поиска эллипсов на изображении

Время на прочтение4 мин
Количество просмотров13K
Я всё продолжаю возиться со своими микрофотографиями. Наука не стоит на месте (с момента той статьи прошел без двух месяцев год!), и теперь нам нужно распознавать другие объекты:


Но тут уже безо всяких послаблений: точность должна быть достаточно высокой.
Конкретно эта задачка встала недавно (примерно в конце ноября), и решалась в свободное от учёбы и работы время.
Achtung! Статья получилась довольно крупная, много картинок. Зато без избыточной математики.

Сформулируем задачу: получить параметры, полностью характеризующие контур фигуры, изображенной на картинке.
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии41

XNA Draw: пишем отложенное освещение на три источника с помощью шейдера

Время на прочтение7 мин
Количество просмотров18K
Привет хабравчанам!

Давненько я не писал на хабр: учеба, сессия надвигается, сами понимаете. Сегодня я попробую рассказать, как в XNA реализовать Deferred Lighting (отложенное освещение) с использованием normal mapping на три источника света, при этом использовать мы будем Reach-профиль и Shader model 2.0.
Напомню, раньше мы уже затрагивали тему шейдеров: тут. Остальное под катом, видео и демо там же.
Читать дальше →
Всего голосов 68: ↑63 и ↓5+58
Комментарии23
12 ...
12

Информация

В рейтинге
Не участвует
Откуда
Кострома, Костромская обл., Россия
Дата рождения
Зарегистрирован
Активность