Как стать автором
Обновить
0
@shama186read⁠-⁠only

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

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

Сервис, помогающий найти на TaoBao «редкие» товары (+ немного халявного Google Translate API)

Время на прочтение4 мин
Количество просмотров24K
Всех приветствую! Думаю очень-очень многие знают что такое TaoBao или по крайней мере слышали.

Для тех кто не знает: TaoBao — гигантская китайская торговая площадка, количество товаров на которой измеряется числом, близким к миллиарду. Там можно найти практически любой каприз вашей фантазии, причем довольно дешево. Но есть две проблемы: найти товар (весь сайт TaoBao и все описания на китайском) и доставить его (доставка на TaoBao только по Китаю)

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

Примерно два месяца назад я пытался запустить свой интернет-магазин, ассортимент которого довольно уникален для России. Товары планировалось закупать на TaoBao. Задача поиска товаров и некоторые идеи упрощения этого утомительного процесса воплотились в идею сервиса-помощника. Некоторые рутинные действия можно было автоматизировать, что и было сделано. Что из этого получилось смотрите под катом.
Читать дальше →
Всего голосов 38: ↑29 и ↓9+20
Комментарии8

Дайджест интересных новостей и материалов из мира PHP № 31 (25 ноября — 8 декабря 2013)

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


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 51: ↑46 и ↓5+41
Комментарии13

Zoiper сохраняет наши пароли от SIP на своих серверах — и потерял эту базу?

Время на прочтение1 мин
Количество просмотров52K
Zoiper logo
Странный на первый взгляд заголовок, но сделать другой вывод мне не удаётся.

В субботу SIPNET прислал уведомление, что наш аккаунт взломали и была активность «на международном направлении». Всё дело в том, что пароль от учётной записи на SIPNET у нас собственно знает только система телефонии на Asterisk, и он такой, что угадать его невозможно. Но, как выяснилось, угадали не его.

Спасибо, SIPNET!
Всего голосов 49: ↑44 и ↓5+39
Комментарии42

Быстрая, экономная, устойчивая…

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

Если вам понадобится алгоритм сортировки массива, который:
  • Работал бы гарантированно за O(N*log(N)) операций (обменов и сравнений);
  • Требовал бы O(1) дополнительной памяти;
  • Был бы устойчивым (то есть, не менял порядок элементов с одинаковыми ключами)

то вам, скорее всего, предложат ограничиться любыми двумя из этих трёх пунктов. И, в зависимости от вашего выбора, вы получите, например, либо сортировку слиянием (требует O(N) дополнительной памяти), либо пирамидальную сортировку (неустойчив), либо сортировку пузырьком (работает за O(N2)). Если вы ослабите требование на память до O(log(N)) («на рекурсию»), то для вас найдётся алгоритм со сложностью O(N*(log(N)2) — довольно малоизвестный, хотя именно его версия используется в реализации метода std::stable_sort().

На вопрос, можно ли добиться выполнения одновременно всех трёх условий, большинство скажет «вряд ли». Википедия о таких алгоритмах не знает. Среди программистов ходят слухи, что вроде бы, что-то такое существует. Некоторые говорят, что есть «устойчивая быстрая сортировка» — но у той реализации, которую я видел, сложность была всё те же O(N*(log(N)2) (по таймеру). И только в одном обсуждении на StackOverflow дали ссылку на статью B-C. Huang и M. A. Langston, Fast Stable Merging and Sorting in Constant Extra Space (1989-1992), в которой описан алгоритм со всеми тремя свойствами.

Так что же это за алгоритм?
Всего голосов 155: ↑150 и ↓5+145
Комментарии29

Проектировщик — менеджер проекта. Реальность или утопия?

Время на прочтение4 мин
Количество просмотров13K
Давайте сначала расскажу, что я вкладываю в понятие проектировщика.

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

Если он хорошо общается с клиентом и выведывает у него информацию о компании, производственных процессах, целевой аудитории, а затем превращает их во вводные и договоры, то это в первую очередь аккаунт или продавец (из нашей дискуссии в комментариях получается, что сюда больше подойдёт термин «бизнес-аналитик»). Он умеет не только слушать, но и говорить. Он делает так, чтобы клиент понимал, что они работают над проектом по одну сторону баррикад.

Если он формирует эту информацию в список функциональных требований, создаёт по ним структуру разделов будущего проекта, а потом превращает это в интерактивный прототип, то это UX-дизайнер.
Читать дальше →
Всего голосов 13: ↑8 и ↓5+3
Комментарии15

PickTime — перемещаем очередь в облако

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


Две недели. Именно столько времени, за всю свою жизнь, тратит человек на ожидание зеленого сигнала светофора. Страшно подумать сколько времени уходит в пустоту на ожидание в очереди. Чтобы помочь людям тратить время на те вещи, которые им интересны, мы запустили PickTime.
PickTime – бесплатный сервис электронной очереди. Что такое электронная очередь, думаем, представляет каждый. Так или иначе многие сталкивались с этим понятием в повседневной жизни, поскольку многие предприятия стремятся облегчить жизнь своим клиентам.
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии4

Смотрим сериалы с субтитрами в 2 клика

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

Я, как и большинство, смотрю много сериалов. И, чтобы не ждать перевода, смотрю в оригинале с субтитрами. Из-за этого скачивание серии иногда превращается в приключение. Мне захотелось оптимизировать этот процесс. Web-приложение я делать как-то не рискнул, поэтому встречайте series_list. Оно:
  • берёт релизы с eztv или piratebay;
  • берёт субтитры с addicted или уведомляет, если их ещё нет;
  • берёт обложки с imdb;
  • скачивает последовательно (можно начинать смотреть, когда ещё не всё скачалось);
  • имеет открытый исходный код.

Читать дальше →
Всего голосов 81: ↑78 и ↓3+75
Комментарии60

Настройка многоконтурной системы управления фиксированной структуры

Время на прочтение4 мин
Количество просмотров3.8K
Этот небольшой ликбез я опубликовал довольно давно в своем ЖЖ, но подумал, что здесь он найдет больше заинтересованных читателей.

Decentralized and Fixed-Structure H-infinity Control in MATLAB — так называется статья двух авторов (Pascal Gahinet и Pierre Apkarian), о которой я хочу рассказать здесь коротко.
Раз я решил писать для относительно широкой аудитории, предположим, что мы не знаем, что такое система управления. Тем, кому интересна сама тема поста — прокрутите, пожалуйста, текст до второй картинки.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии5

Библиотека X.Scaffolding

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


Внимание! Обновил пакет в NuGet. Подробности в конце статьи.

С выходом Visual Studio 2013, ASP.NET MVC 5 и Entity Framework 6 возможности скаффолдинга встроенные в Visual Studio стали еще лучше. Однако до сих пор создавая новое веб-приложение приходится делать много действий, которые можно было бы автоматизировать.
Поэтому для себя и разработчиков с которыми я работаю был создан пакет X.Scaffolding позволяющий более продуктивно создавать веб-приложения. Именно на основе этого пакета у нас сейчас разрабатывается большинство новых веб-приложений для работы с данными.

Сегодня же я решил поделится этим проектом и с читателями Хабрахабра. Возможно кому-то он покажется интересным и поможет в его работе, а кто-то и сам захочет поучаствовать в его развитии.
Подробности
Всего голосов 22: ↑20 и ↓2+18
Комментарии9

Какие стили оформления кода предпочитает аудитория Гитхаба?

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


А как делают все?
Всего голосов 96: ↑83 и ↓13+70
Комментарии161

Как работает Passport.js

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

PassportJS — это middleware для авторизации под node.js. Passport поддерживает авторизацию с помощью огромного количества сервисов, включая «ВКонтакте» и прочие твиттеры. Список сервисов можно просмотреть здесь. Я хочу немного рассказать о том, как работает этот middleware на примере самой обычной авторизации с помощью логина и пароля.

Для самых нетерпеливых — готовый проект можно посмотреть здесь.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии16

PrettyTasks — персональный менеджер задач для всех

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

Мы рады приветствовать вас на Хабре!


Добрый день всем Хабражителям! Мы рады представить столь уважаемой аудитории наш сервис для управления персональными задачами. Надеемся, что вы полюбите его также, как и мы.

PrettyTasks — система планирования задач «для себя»


Основной целью создания сервиса являлось повышение личной эффективности, посредством упрощения планирования.
Найти его вы можете по адресу prettytasks.com/ru

Зачем?


Как ни странно, GTD сервисов, как и сервисов управления задачами действительно много. Так зачем же еще один?
Ответ заключается в том, что большинство сервисов не очень удобны, и мы решили воплотить наше видение. Нашей целью было сделать максимально удобный и простой сервис, который будет понятен каждому, и несмотря на простоту, позволит повысить личную эффективность.

Простота идеи — залог успеха


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

Невыполненные задачи не накапливаются кучей на текущий день, а остаются в дне, на который были запланированы и доступны в списке просроченные.

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

Планируемые задачи — задачи на будущее, без определенного срока выполнения были вынесенны в список планируемые

Успешные дни можно отмечать, также можно комментировать дни.

И никаких напоминаний

Описание сервиса


Сервис предоставляем пользователю работу с следующими функциями:
  • Задачи
  • Списки
  • Заметки
  • Журнал
  • Настройки

Повысить свою эффективность!
Всего голосов 13: ↑11 и ↓2+9
Комментарии33

FileAPI 2.0: Загрузка файлов на сервер год спустя

Время на прочтение11 мин
Количество просмотров70K
FileAPI 2.0Привет Хабр! Примерно год назад я представил вашему вниманию первую версию open-source библиотеки FileAPI, предназначенную для работы с файлами на клиенте и последующей загрузки на сервер.

За это время был пройден долгий путь. Библиотека заработала 670+ звезд и 90+ форков. С помощью github-сообщества удалось исправить множество «детских» проблем и внести ряд улучшений. Было закрыто более 100 тасков, и благодаря Илье Лебедеву сделана загрузка файлов по частям. Сегодня я с гордостью хочу представить вам FileAPI 2.0.
Читать дальше →
Всего голосов 166: ↑157 и ↓9+148
Комментарии85

Сертификация средств защиты и персональные данные

Время на прочтение4 мин
Количество просмотров22K
Сертификация средств защиты информации вызывала, вызывает и будет вызывать огромное количество вопросов у IT-люда. И к сожалению не только у него: сами «законотворцы» и «методикоделы» не всегда толком могут ответить на вопрос о сертификации. Тут можно выделить пожалуй два подвопроса:
1. Что «хотят» контролирующие органы (ФСТЭК, ФСБ, Роскомнадзор) — далее «КО»;
2. А что «хочет» закон и методики.
Частично написано в ответ на Защита информации и сертификация. Если нет разницы — зачем платить больше?, где, считаю, не совсем корректно представлено текущее положение дел… хотя взгляд на него излагаю из личного опыта общения с КО, сертифицирующими органами, клиентами и опытом внедрения систем защиты.
Читать дальше →
Всего голосов 3: ↑2 и ↓1+1
Комментарии16

Redmine. Как писать плагины

Время на прочтение6 мин
Количество просмотров23K
В своем прошлом посте я постарался достаточно детально описать все тонкости установки Redmine на Linux Ubuntu. В этом, хочу рассказать о тонкостях написания плагинов под Redmine, об основных возможностях изменения функциональности стандартного Redmine, о подводных камнях, которые встречались моей команде на этом пути.

Думаю, эта статья будет полезна тем, кто уже знаком с основами фреймворка Ruby on Rails и хочет начать разрабатывать плагины для Redmine.

Прежде всего, стоит разделить все плагины Redmine на две категории:

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

Все немного сложнее, когда плагин должен изменять встроенную функциональность!
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии4

В C# с типами все в порядке

Время на прочтение3 мин
Количество просмотров25K
Прочитав статью «Усиливаем контроль типов: где в типичном C#-проекте присутствует непрошеный элемент слабой типизации?» был порядком удивлен, как ошибочностью данного подхода, так и тем, что никто не обратил на это внимание.

Автор поста приводит идею того, что метод, возвращающий ссылочный тип, объект которого создается из некоего репозитория, должен, тем или иным образом, гарантировать, что возвращаемый объект не будет null. При этом в одном из примеров он использует контракты, что противоречит их принципам. Я хочу разобрать ошибочность этого подхода.
Читать дальше →
Всего голосов 90: ↑76 и ↓14+62
Комментарии88

ASP.NET MVC 4 RAZOR Динамическое многоуровневое меню из БД

Время на прочтение5 мин
Количество просмотров24K
Как и обещал в предыдущем посте DropDownList, Задать «value» для default option в MVC 4, сегодня расскажу про построение динамического многоуровневого меню с бесконечной вложенностью, хранящееся в БД MsSQL. Помню в свое время на ПХП это тоже было задачкой на пару дней. Но для MVC 4 с движком RAZOR — еле разобрался, хотя в итоге как всегда ничего сложного или сверхъестественного. Статья рассчитана на тех, кто делать это не умеет. Если Вы знаете как сделать лучше — поделитесь. Приступим.

Сей мануал предполагает, что Вы уже оперируете знаниями, полученными при ознакомлении с этими статьями: Entity Framework в приложении ASP.NET MVC. Или этими: ASP.NET MVC 4 Tutorials

1) Сначала нужно разобраться со структурой БД. Это главное. С теорией можно ознакомиться в статье Иерархические структуры данных в реляционных БД. Мы будем использовать максимально простую структуру, называемой «структура со ссылкой на предка».
Читать дальше →
Всего голосов 9: ↑4 и ↓5-1
Комментарии11

DropDownList, Задать «value» для default option в MVC 4

Время на прочтение3 мин
Количество просмотров20K
Здравствуйте. Больше двух лет создавал сайты на ПХП и все было прекрасно. Но в один прекрасный день проснулся и понял, что пхп — хорош, но не то. Потом рассматривал еще долго на чем лучше писать веб приложения, сравнивал, анализировал. В итоге остановился на C# и ASP.NET MVC 4. Даже после Zend Framework 2 — MVC 4 просто нечто: легко, красиво, просто, быстро, мало кода.

Но вот столкнулся с проблемой, решение которой в Гугле не нашел. Как вывести выпадающий список и задать значение по умолчанию. Думаю для «бывалых» — это будет не проблема. Это то, что один раз «проехать» и больше никогда не вспомнишь, что были проблемы с этим. но вот проехать для новичка бывает довольно затруднительно. Если честно, то поначалу было просто вывести выпадающий список тяжко. Хотя мануалы по ASP.NET MVC на порядок превосходят «Быстрый старт» для любого фреймворка пхп.

Сей мануал предполагает, что Вы уже оперируете знаниями, полученными при ознакомлении с этими статьями: Entity Framework в приложении ASP.NET MVC. Или этими: ASP.NET MVC 4 Tutorials

Начнем с вывода Выпадающего списка.
1) Модель. Аннотаций и связей нету для упрощения примера.
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии13

Как Github и StackOverflow могут свергнуть LinkedIn и другие порталы для поиска ИТ специалистов

Время на прочтение5 мин
Количество просмотров73K
Уже сейчас мы наблюдаем ситуацию, когда разработчиков не хватает. А хороших разработчиков не хватает вдвойне. Может ли эта ситуация повлиять (или полностью изменить) формат поиска ИТ специалистов? Еще как может.



Как часто разработчики ищут работу? Даже при условии постоянной миграции в поисках еще более лампового офиса и большего ассортимента плюшек, этот показатель составляет 1-2 года. Именно в такой момент программисты начинают вспоминать пароль на LinkedIn, хаотично создавать резюме на HH и других ресурсах. Те, кто хоть раз это делал, вспоминают этот процесс с ужасом и желанием посвятить свой следующий стартап написанию универсальной кнопки для публикации резюме на все основные джоб-порталы мира. Потом неделя-две-три в поисках и вуаля! и информация на всех джоб-порталах опять теряет свою актуальность на год-два.
Читать дальше →
Всего голосов 67: ↑47 и ↓20+27
Комментарии98

Google Maps API: схема проезда, анимация и стилизация

Время на прочтение4 мин
Количество просмотров77K
image
Многие из нас часто вставляют на свои сайты карты. Обычно, это карта на странице контактов с единственным маркером, которым отмечено место офиса. Но иногда у заказчика включается фантазия и начинается «творчество». В свое время я потратил много времени, чтобы разобраться в постоянно меняющемся Google Maps API и хочу поделиться с вами своими наработками для решения обычных проблем с картами, которые выходят за рамки одного маркера.

Все, что описано ниже, можно узнать внимательно читая документацию GMaps API. Предполагается, что читатель уже умеет внедрять карту, подключать API и ставить маркер. Статья не претендует на полноту изложения, но может быть полезна начинающим пользователям Google Maps API.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии7

Информация

В рейтинге
Не участвует
Откуда
Чебоксары, Чувашия, Россия
Дата рождения
Зарегистрирован
Активность