Search
Write a publication
Pull to refresh
163
0
Валерий Макаров @valemak

Программист

Send message

30 вредных советов для php-разработчиков

Reading time4 min
Views8.8K
Я не стал сильно заморачиваться и расписывать очевидные факты, но большинство моментов, которые меня пугают в коде, тут изложены. Я постарался сделать список особо лаконичным, чтобы вам не пришлось вчитываться, но и максимум понятным, чтобы даже новички поняли что так делать нельзя. В общем ниже список моих вредных советов, основанных на том, с чем я сталкиваюсь в повседневной жизни.



Итак поехали:
Читать дальше →

Пишем изящный парсер на Питоне

Reading time11 min
Views205K
В C++17 (нет-нет, Питон скоро будет, вы правильно зашли!) появляется новый синтаксис для оператора if, позволяющий объявлять переменные прямо в заголовке блока. Это довольно удобно, поскольку конструкции вида

Foo foo = make_foo();
if(foo.is_nice()) {
    // do work with foo
}
// never use foo again
// foo gets deleted

довольно общеупотребительны. Код выше лёгким движением руки программиста (и тяжёлым движением руки комитета по стандартизации) превращается в:

if(Foo foo = make_foo(); foo.is_nice()) {
    // do work with foo
}  // foo gets deleted
// never use foo again (well, you can't anyway)

Стало чуть-чуть лучше, хотя всё ещё не выглядит идеально. В Python нет и такого, но если вы ненавидите if в Python-коде так же сильно, как я, и хотите научиться быстро писать простые парсеры, то добро пожаловать под кат. В этой статье мы попытаемся написать короткий и изящный парсер для JSON на Python 2 (без каких-либо дополнительных модулей, конечно же).
Читать дальше →

Scrapy: собираем данные и сохраняем в базу данных

Reading time5 min
Views71K

Введение


Меня заинтересовал данный фреймворк для сбора информации с сайтов. Здесь были публикации по Scrapy, но поскольку детальной информации на русском языке мало, то я хотел бы рассказать о своем опыте.
Читать дальше →

Эй, это я вон там?

Reading time8 min
Views49K


Disclaimer: данный пост является переводом заметки профессора Вилеейанура Рамачандрана, о феномене внетелесного опыта и различных аномалиях, связанных с восприятием «себя». Хотя оригинал и был опубликован в мае 2010г, статья содержит ряд занимательных примеров из клинической практики и в целом показалась довольно интересной, а посему захотелось ею поделиться.

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

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

Выбираем html-парсер для Apache.JMeter

Reading time11 min
Views9.4K
Среднее качество полноты извлечения ссылок на встроенные ресурсы html-парсерами Apache.JMeter
Среднее качество работы парсеров (для семи сайтов)

Предлагаю:

  • посчитать среднее качество полноты извлечения ссылок на встроенные ресурсы html-парсерами Apache.JMeter;
  • проверить правда ли извлечение ссылок в Apache.JMeter 3.0 стало более полным;
  • испытать в деле плагин CsvLogWriter.

Как гласит народная мудрость: Верить верь, но…
проверь

Книга «Простой Python. Современный стиль программирования»

Reading time6 min
Views62K
imageПривет, Хаброжители! Наконец-то у нас вышла книга Билла Любановича:

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

Стилистически издание напоминает руководство с вкраплениями кода, подробно объясняя различные концепции Python 3. Под обложкой вы найдете обширный материал от самых основ языка до сравнительно сложных и узких тем.

Прочитав эту книгу, вы не только убедитесь, что Python — это вкусно, но и освоите искусство тестирования, отладки, многократного использования кода, а также научитесь применять Python в различных предметных областях.
Читать дальше →

Как отображать потоковое видео с помощью HTML5

Reading time4 min
Views25K
В этой статье я объясню и покажу как сделать видео трансляцию на вашем сайте. Недавно меня наняли с целью реализовать данный функционал для клиента. Я посоветовал реализовать это с помощью HTML5 для mp4 видео форматов и flash для его .flv файлов.
Читать дальше →

У вас нет высыпаний? Будут

Reading time5 min
Views64K
Меня зовут Евгений и я жаворонок. Сегодня проснулся в 6 утра, открыл окно в кухне, заварил кофейку и решил глянуть, «что нового». Мне написал мой бывший коллега «Андроид»… Точнее «Андроид-разработчик» Максим, но так звучит фантастичнее…

image

Он спросил:
– Женя, привет. (wave) Вопрос к тебе, как мега лайв хакеру. Сколько времени нужно спать, что бы мозг отдохнул и можно было плодотворно работать? Умные будильники сильно помогают?

Я ответил, а потом подумал, ведь и парочке сотен человек с Хабра тоже пригодится хоть один пунктик из вычитанных мною ранее советов, ведь «так как никто не слушает, приходится повторять»:
Читать дальше →

Теоретически возможные космические мегаструктуры

Reading time7 min
Views46K


Пожалуй, основная масса научной фантастики за всё время её существования — со времён «Полёта на Луну прямым путём за 97 часов 20 минут» Жюля Верна — так или иначе оперирует грандиозными продуктами научно-инженерной мысли. С развитием прогресса расширялись и границы фантазии учёных и писателей, и сегодня в научно-популярной и фантастической литературе уже описаны инженерные сооружения, которые по масштабу и смелости замысла заслуживают термина «мегаструктуры». Мы решили собрать своеобразный рейтинг таких структур. С какими-то из них вы уже знакомы, а какие-то окажутся в новинку.
Читать дальше →

Science: почему травмы колена зачастую не заживают?

Reading time4 min
Views58K

Источник

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

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

10 техник, которыми пользуются манипуляторы (и как с ними бороться)

Reading time5 min
Views195K
image

Психопаты — это не только злодеи из ужастиков и поучительных историй с Уолл-стрит. Мы ежедневно встречаемся с ними в офисе, и поначалу они кажутся нам обычными людьми. Одно исследование обнаружило: небольшая, но заметная часть бизнес-лидеров — 3—4% — подходит под клиническое определение психопата. Как защититься при взаимодействии с такими людьми?
Читать дальше →

Как думать на SQL?

Reading time8 min
Views625K
Надо “SELECT * WHERE a=b FROM c” или “SELECT WHERE a=b FROM c ON *” ?

Если вы похожи на меня, то согласитесь: SQL — это одна из тех штук, которые на первый взгляд кажутся легкими (читается как будто по-английски!), но почему-то приходится гуглить каждый простой запрос, чтобы найти правильный синтаксис.


А потом начинаются джойны, агрегирование, подзапросы, и получается совсем белиберда. Вроде такой:


SELECT members.firstname || ' ' || members.lastname
AS "Full Name"
FROM borrowings
INNER JOIN members
ON members.memberid=borrowings.memberid
INNER JOIN books
ON books.bookid=borrowings.bookid
WHERE borrowings.bookid IN (SELECT bookid
  FROM books
  WHERE stock>(SELECT avg(stock)
    FROM books))
GROUP BY members.firstname, members.lastname;

Буэ! Такое спугнет любого новичка, или даже разработчика среднего уровня, если он видит SQL впервые. Но не все так плохо.


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

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

Создание собственного приложения для обработки графов в Giraph

Reading time7 min
Views7.3K

Be my friend by oosDesign

Перед крупными интернет-компаниями часто встают такие сложные задачи, как обработка больших данных и анализ графов социальных сетей. Помогают в их решении фреймворки, но сперва необходимо проанализировать возможные варианты и выбрать подходящий. В лаборатории при Техносфере Mail.Ru мы изучаем эти вопросы на реальных примерах из проектов Mail.Ru Group (myTarget, Поиск Mail.Ru, Антиспам). Задачи могут быть как сугубо практические, так и с исследовательской составляющей. По мотивам одной из таких задач и появилась эта статья.

Во время сборки и запуска своего первого проекта на Giraph сотрудники лаборатории анализа данных Техносферы Mail.Ru столкнулись с рядом проблем, в связи с чем родилась идея написать краткий туториал, как же собрать и запустить свой первый Giraph-проект.

В этой статье мы расскажем, как создавать свои приложения под фреймворк Giraph, который является надстройкой над популярной системой обработки данных Hadoop.
Читать дальше →

Ученые опять «ломают голову»: Возможен ли апгрейд мозга и что стоит от него ожидать

Reading time6 min
Views22K


/ фото A Health Blog CC

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

Но наглотавшись ноотропов, проведя часы за развивающими играми и не почувствовав себя Эдди Морра, люди приходят к выводу, что идея все-таки – миф. Существенно «разогнать» мозг не получится. Но что будет, если провести его апгрейд, и стоит ли вообще его затевать?
Читать дальше →

Web scraping на Node.js и защита от ботов

Reading time14 min
Views37K

Это третья статья в цикле про создание и использование скриптов для веб-скрейпинга при помощи Node.js:


  1. Web scraping при помощи Node.js
  2. Web scraping на Node.js и проблемные сайты
  3. Web scraping на Node.js и защита от ботов
  4. Web scraping обновляющихся данных при помощи Node.js

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


Также во второй статье затрагивалась тема инициализации сессий, но, там речь шла о предельно простом случае, когда достаточно выполнить один дополнительный запрос и сохранить куки.


В этой статье разбирается более сложный случай – инициализация сессий с авторизацией по логину и паролю и с преодолением довольно изощрённой защиты от ботов. Как обычно, на примере реальной (и весьма популярной среди скрейперов) задачи.


Важное примечание

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


В прошлых статьях целью было показать весь процесс создания и использования скрипта от постановки задачи и до получения конечного результата. В этой статье большая часть аспектов веб-скрейпинга обходится стороной, а вместо этого показывается многообразие подходов к решению одной, довольно узкой задачи. Различные методы и инструменты, их плюсы и минусы, субъективные оценки, примеры кода, вот это вот всё.

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

2-3-дерево. Наивная реализация

Reading time15 min
Views65K
Недавно мне понадобилось написать 2-3-дерево и я начал искать информацию в русскоязычном интернете. К сожалению, ни на хабре, ни на других ресурсах я не смог найти достаточно полную информацию на русском языке. На всех ресурсах было одно и то же: свойства дерева, как вставляются ключи в дерево, поиск в дереве и иногда простой пример, как удаляется ключ из дерева; не было реализации.

Поэтому, после того, как я сделал то, что мне нужно, решил написать данную статью. Думаю, кому-нибудь будет полезна в образовательных целях, так как на практике обычно реализуют эквивалент 2-3- и 2-3-4-деревьев — красно-черное дерево.
Читать дальше →

Искусственные нейронные сети простыми словами

Reading time7 min
Views213K
image

Когда, за бутылкой пива, я заводил разговор о нейронных сетях — люди обычно начинали боязливо на меня смотреть, грустнели, иногда у них начинал дёргаться глаз, а в крайних случаях они залезали под стол. Но, на самом деле, эти сети просты и интуитивны. Да-да, именно так! И, позвольте, я вам это докажу!

Допустим, я знаю о девушке две вещи — симпатична она мне или нет, а также, есть ли о чём мне с ней поговорить. Если есть, то будем считать это единицей, если нет, то — нулём. Аналогичный принцип возьмем и для внешности. Вопрос: “В какую девушку я влюблюсь и почему?”


Можно подумать просто и бескомпромиссно: “Если симпатична и есть о чём поговорить, то влюблюсь. Если ни то и ни другое, то — увольте.”

Но что если дама мне симпатична, но с ней не о чем разговаривать? Или наоборот?

Простой и бесплатный способ осуществлять платежи с Payoneer

Reading time2 min
Views8.1K
image

В предыдущей статье мы подробно разобрали Биллинг-сервис, позволяющий получать платежи напрямую от клиентов со всего мира. Сегодня мы продолжаем тему обзоров новых продуктов и представляем вам услугу Make a Payment («Сделать платеж»).

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

Глубокий сон

Reading time4 min
Views25K
Доктор Васильев смотрел на сидевшего перед ним пациента, и думал о том, что больничная одежда сидит на нём как-то особенно нелепо. «Хотя,- подумал Васильев,- на ком она сидит хорошо? Она не для того нужна».

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

— Значит, проблемы со сном? – спросил Васильев.
— Да! – откликнулся пациент, сосредоточив внимание на докторе. – Я не могу заснуть в общей палате — там постоянно шум-гам, кто-то храпит, кто-то бормочет. А у меня хороший слух. И мне надо заснуть!
— Ну, всем надо спать, конечно же. Это обязательное условие для здоровья.
— Мне нужно попасть домой!
— Домой? Где вы живёте?
— Не в этом месте. В этом месте все остаются в кроватях, когда засыпают.

Васильев незаметно вздохнул. Можно попытаться вникнуть в логику больного, но не слишком глубоко – иначе можно завязнуть и самому. Ему не нравился этот метод, но строить беседу на отрицаниях тоже не получится.

— В кроватях? А там, откуда вы, все лунатики?
— Кто?
— Ну, люди, которые во сне могут совершать разные действия, вставать из кровати, ходить по дому.
— Нет, нет, что за ерунда. Я же объяснял другому врачу. У меня дома все люди исчезают из кроватей во время сна.
— Исчезают? Куда?
— Никто не знает. Но мы исчезаем, а утром возвращаемся.

«Очень интересно,- подумал доктор. – Это что-то новенькое. В основном всё Наполеоны да черти по углам. Наполеонов, благодаря ухудшению образования, всё меньше, а чертей – всё больше».
Читать дальше →

10 ошибок, которые мы неосознанно совершаем, используя язык тела

Reading time3 min
Views8.1K
image

Первое впечатление и невербальные сигналы имеют огромное значение. Иногда мы даже не успеваем понять смысл своих слов или действий, пока не становится слишком поздно что-то менять. Было ли, что вы сказали ужасную глупость и мечтали проглотить свои слова в тот самый момент, когда они срывались с языка? Наверняка! Вы не единственный, с кем происходили подобные истории. Такие промахи совершаем мы все. Итак, какие же из них мы допускаем, даже не подозревая об этом?
Читать дальше →

Information

Rating
Does not participate
Location
Кировоград, Кировоградская обл., Украина
Date of birth
Registered
Activity