Pull to refresh
0
0
Send message

Как разобрать обезьяньи кишки на составные части. Изучаем цветовую деконволюцию

Reading time4 min
Views23K

Как многие помнят, я работаю в лаборатории, где мы работаем с живыми и не очень организмами. Науку двигаем, короче. Обычно вперед. Иногда в качестве образцов нам достаются мертвые обезьяны, ткани которых потом идут на экспериментальные задачи. Выглядит обычно это крайне жизнерадостно. Раздается звонок в 11 часов вечера, и тебе сообщают, что в питомнике обезьянка убилась. Почти не поврежденная, соседи только сердце съели. Вздыхаем, лезем в расписание рейсов и едем в аэропорт. На месте тебе выдают нужные запчасти убиенной и складывают в прозрачный контейнер с консервационным раствором. В аэропорт с этим тащиться уже нельзя, так как ограничен провоз жидкостей. Идем на ж/д вокзал на экспресс до Краснодара. Милые девушки на контроле как правило приобретают восхитительный салатовый оттенок при виде медленно кружащихся органов в нежно-розовом растворе.
В-общем, привезли, нарезали все, что нужно ломтиками, покрасили… Но тут оказывается, что полученные исходники нужно обработать и посчитать в автоматическом режиме… Сразу хочу уточнить, что я врач-исследователь, а не профессиональный программист или математик. Поэтому, если что-то покажется ошибочным — буду рад правкам.
Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments51

Как узнать местоположение пользователя, зная только его email-адрес

Reading time3 min
Views155K
В статье описан очень простой и банальный метод, позволяющий определить IP-адрес получателя письма. Как все мы с вами знаем — имея IP-адрес, вычислить скрытую за ним персону не составит труда, особенно если вы сотрудник министерства Правды.

Статья не откроет ничего нового для людей, знакомых с принципом работы HTML, HTTP и почтовых клиентов, но, возможно, покажет, как этим можно пользоваться с другой точки зрения. Для “просто”-пользователей ПО, мобильных устройств и электронной почты статья может показать на сколько важно соблюдать интернет-гигиену и оберегать свои персональные данные (к которым относиться email-адрес) в сети «Интернет».
Читать дальше →
Total votes 38: ↑13 and ↓25-12
Comments24

Свой облачный хостинг за 5 минут. Часть 1: Ansible, Docker, Docker Swarm

Reading time11 min
Views137K
Cloud hosting

Привет Хабр! Последние 1.5 года я работал над своим проектом, которому был необходим надежный облачный хостинг. До этого момента я больше 10 лет занимался веб-программированием и когда я решил построить свой хостинг у меня были относительно поверхностные знания в этой области, я и сейчас не являюсь системным администратором. Все что я буду рассказывать может выполнить обычный программист в течение 5 минут, просто запустив набор сценариев для Ansible, которые я подготовил специально для вас и выложил на GitHub.
Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments42

Ламповый усилитель

Reading time2 min
Views175K


Коротко, в основном фото (перезалил в хорошем качестве). Сразу скажу, что опыта и познаний в радиотехнике было мало, сделал много ошибок. Не являясь фанатичным любителем теплого лампового звука, для меня был интересен сам процесс сборки.
Читать дальше →
Total votes 115: ↑109 and ↓6+103
Comments143

Построение анимированной круговой диаграммы на jQuery

Reading time6 min
Views28K
Формы это неплохой способ добавить некую изюминку элементам на вашей веб странице. Круги особенно хороши в этом отношении, потому что они целостны, просты и похожи на пирог. А теперь серьёзно, кто не любит пироги?



ДемоИсходный код

Как вы, должно быть, заметили по собственному многолетнему опыту пользования интернетом, большинство элементов на веб страницах, по сути, являются либо квадратами, либо, прямоугольниками. Поэтому, в некоторых случаях, интересные элементы, такие как круги и треугольники в вашем дизайне могут быть весьма полезными. Этот туториал продемонстрирует, как построить анимированную круговую диаграмму, подобную тем, которые вы обычно видите на сайтах портфолио. Это может помочь визуально подчеркнуть ваши навыки, а также продемонстрировать то, с какими задачами вы можете справиться. Взгляните на демо, чтобы увидеть конечный результат.
Читать дальше →
Total votes 14: ↑8 and ↓6+2
Comments4

5 способов сделать ваш сайт легче и быстрее, от David Walsh

Reading time4 min
Views21K
Предлагаю читателям «Хабрахабра» перевод упомянутой в дайджете статьи «5 Ways to Make Your Site Smaller and Faster» из блога Девида Уэлша (David Walsh)

Исповедь: Раз в неделю я говорю, что мне искренне жаль, что я был ребенком, который проводил свой рабочий день подстригая траву и занимаясь озеленением. Почему? Потому что в конце дня, хозяева могли сказать «трава подстрижена, работа завершена». Как веб-разработчики, мы никогда не можем сказать это, или можем? Сайт всегда может быть более эффективным — всегда есть стратегии для уменшения количества байт. Всегда. До тех пор, пока мы это внутренне осознаем, и постоянно повторяем — «сайт не достаточно хорош». Чтобы ежедневно быть великим разработчиком, мы почти обречены чувствовать/ощущать, что наша работа как будто не достаточно хороша — что за негативный способ проживать наши жизни!
Читать дальше →
Total votes 13: ↑8 and ↓5+3
Comments7

Диффузия инноваций, часть первая

Reading time13 min
Views34K
Недавно наткнулся на отличную статью о диффузии инноваций «How To Have Users Spread Your Innovation Like Wildfire» за авторством Виктора Йокко для Smashing Magazine. Статья показалась мне интересной, поэтому решил перевести ее для «Хабрахабра». Вторая часть уже на подходе.

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

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

Эверетт Роджерс (1931-2004) был профессором коммуникаций и сельской социологии в университетах США. Он построил свою карьеру на исследовании распространения идей и технологий среди людей. Теория “диффузии инноваций” пытается определить и рассмотреть связанные с этим факторы. Проектные группы (дизайн-команды), понимающие и учитывающие эти нюансы, имеют наибольшие шансы на принятие их продукта широкими и ждущими массами.
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments0

Управление данными с помощью протокола OData

Reading time3 min
Views63K
Open Data Protocol (OData) – это открытый веб-протокол для запроса и обновления данных. Протокол позволяет выполнять операции с ресурсами, используя в качестве запросов HTTP-команды, и обмениваться данными в форматах JSON или XML.

OData является одним из лучших стандартов для создания RESTful API.

Вы можете запрашивать данные используя простые HTTP запросы, например:
https://samples.databoom.space/api1/sampledb/collections/persons?$filter=firstname eq 'Lamar'
Найти всех людей по имени Lamar.

OData позволяет задавать огромное число параметров, которые позволяют сформировать очень сложные запросы к источнику данных, например:
https://samples.databoom.space/api1/sampledb/collections/books?$filter=publisher/president/likes/author/firstname eq 'Georgie'&$top=10&$orderby=title
Выбрать все книги, удовлетворяющие следующему условию: президент издательства в котором издана книга, любит книги некоего автора с именем “Georgie”. Результат запроса необходимо отсортировать по названию, выдать первые 10 книг.

Язык запросов OData сопоставим по мощности с SQL.
Читать дальше →
Total votes 18: ↑13 and ↓5+8
Comments21

API в реальной жизни: Как облегчить задачу создания сайтов для поиска и покупки автозапчастей

Reading time6 min
Views36K
image

В ходе работы над платформой для создания интернет-магазинов автозапчастей abcp.ru мы столкнулись с необходимостью разработки API.

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

Наших ресурсов на одновременное ведение нескольких таких проектов могло не хватить. Поэтому мы создали API для внешних разработчиков, которых клиенты могли бы привлекать для работы над своими сайтами. Сегодня мы подробнее расскажем о том, что у нас в итоге получилось.
Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments5

Breeze Server — разграничиваем доступ к объектам при помощи атрибутов

Reading time12 min
Views8.4K

В прошлой статье Breeze.js + Entity Framework + Angular.js = удобная работа с сущностями базы данных прямо из браузера мы рассмотрели создание простейшего приложения, где делали выборки и сохраняли данные в базе прямо из javascript в браузере. Конечно же первыми у читателей возникли вопросы о безопасности. Поэтому сегодня мы рассмотрим, как можно организовать разграничение доступа. Для этого мы немного доработаем наше приложение из прошлой статьи так, чтобы можно было при помощи атрибутов раздать определённые права доступа на добавление, удаление, изменение и просмотр данных определённым пользователям или ролям.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments2

На старт, внимание, DUMP! Екатеринбург, 20 марта

Reading time5 min
Views3.6K
Привет, Хабр! У нас новости с Урала :)

Конференция для разработчиков DUMP (Development. Usability. Management. Practice) пройдет 20 марта в Екатеринбурге. В этом году мы отмечаем юбилей — уже пятую весну мы собираем уральских (и не только) айтишников в одном месте и делимся опытом. Так что готовьте поздравления, торт будет :)

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



Ниже под катом — планы на этот год и инструкции о том, как стать докладчиком и спонсором конференции.

И, внимание, регистрация уже открыта. Присоединяйтесь!

Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments8

Улучшаем код JavaScript на примере StarWars API

Reading time6 min
Views15K
image

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

Как-то в выходной я решил отказаться от использования компьютера. Но ничего не вышло. Я наткнулся на Star Wars API. Этот простой интерфейс основан на REST, и с его помощью можно запрашивать информацию о персонажах, фильмах, космических кораблях и других вещах из вселенной SW. Поиска нет, но сервис свободный.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments4

MathMl в HTML5

Reading time4 min
Views38K
До выхода HTML5 использование формул было сущим наказанием. Судите сами: в 2005-м необходимо было иметь под рукой либо специальный браузер, либо разбивать текст на собственно HTML и вставки из изображений или PDF. Поиск и прочие операции редактирования и/или вывода на экран/бумагу был неоднозначной задачей, коей посвящались целые монографии.

В 2012-м было уже попроще. Появилась возможность подключать необходимые плагины (Firemath для FireFox и Daum Equation Editor для Chrome). Но неоднозначность стандартов (и поддержки) фактически заставляла писать одну и ту же статью для каждого из браузеров (и для их версий). Или встречать пользователей волшебным приветствием «Ваш браузер надо обновить/дополнить расширением».

Неудобно? — Да! Отнимало много времени на поиск универсального решения? — Да! Заставляет думать о том, какой тип записи лучше (презентационный или содержательный), каким конвертером пользоваться (а их только общеизвестных с десятка полтора)? — ДА! ДА! ДА!

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

Теперь, с приходом HTML5, все стало намного проще. В нем появился новый контейнер <math>.
Каждый допустимый экземпляр MathML должен быть внутри этого контейнера.
Он не допускает вложений, но внутри может быть произвольное число других дочерних элементов.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments24

Реализация обмена сообщениями между вкладками браузера

Reading time6 min
Views17K
Это первая статья в нашем корпоративном блоге. На этот раз я расскажу о нашем решении задачи обмена сообщениями между вкладками браузера.

К примеру, мне потребовалось решить эту задачу при реализации JavaScript API к Comet сервису. Эта задача встречается достаточно часто и её уже рассматривали на хабре раньше здесь и здесь, но я решил написать своё решение задачи исходя из следующих требований к коду:

  • Кросбраузерность
  • Отсутствие зависимостей
  • Минимальный размер кода
  • Простота и удобство

Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments21

Делаем call tracking

Reading time5 min
Views24K
В современном мире компании используют большое количество каналов привлечения клиентов: контекстная реклама, баннерная реклама, реклама на радио или ТВ, наружная реклама и так далее. В каждом из этих каналов еще могут присутствовать параметры размещения, например, ключевые слова или площадки. Реклама — дело затратное и у бизнеса возникает понятное желание изучить эффективность тех или иных каналов и площадок. В случае онлайн-продаж все более-менее просто и отработано, есть специальные метки и cookie, которые цепляются к браузеру клиента и, когда он совершает покупку, Google/Yandex/любая другая система выдает вам информацию о том что клиент пришел из определенного канала по каким-то определенным ключевым словам. Но не все компании продают товары или услуги онлайн, многие до сих пор делают это по телефону, у каждого бизнеса своя специфика и телефон как канал продаж до сих пор не утратил своей актуальности. Для анализа эффективности маркетинговых каналов в случае телефонных продаж используется call tracking, дальше мы рассмотрим типы колл-трекинга и расскажем о том как его можно реализовывать.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments13

Обзор площадки для тестирования веб-уязвимостей OWASP Top-10 на примере bWAPP

Reading time6 min
Views64K
Привет, Хабр!

В этой статье предлагаю читателю ознакомится с уязвимостями веб-приложений (и не только), по классификации OWASP Top-10, и их эксплуатацией на примере bWAPP.

image

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments8

Angular Light + Object.observe

Reading time2 min
Views13K
Angular Light — это самостоятельный клиентский MV(C/VM) фреймворк, который построен на идеях Angular.js и Knockout.js, и похож на упрощенный Angular.js



Вышла версия Angular Light 0.8 которая включает разные улучшения и исправления, основные изменения:

1. Поддержка Object.observe и Array.observe, что может увеличить производительность веб-приложений.
Использование Object.observe — это опциональная фича, так же её можно включать для отдельных Scope (scope деревьев). Браузеры которые не поддерживают Object.observe продолжают работать через dirty-checking, так же нужно знать некоторые нюансы.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments33

Визуальный брутфорс на примере решения 3D-головоломки

Reading time5 min
Views20K
Когда-то давно друзья подарили вот такую головоломку:

Головоломка

Собрать её самостоятельно я так и не смог (всегда оставался один фрагмент). Посему было решено написать программу.

Для тех, кто не любит читать, решение доступно по ссылке (внимание, сильно нагружает процессор).
Описание решения
Total votes 25: ↑21 and ↓4+17
Comments7
1

Information

Rating
Does not participate
Registered
Activity