Андрей Журавлёв@Gen1us2k
Разработчик
Python на Хабре
7 мин
457KНекоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
+141
Bitcoin: основные принципы майнинга
8 мин
627K
(источник)
Про Bitcoin (BTC) на Хабре писали много (в последнее время даже чересчур много). Как он работает, об интересе к нему со стороны правительства и спецслужб. Биткойн не раз пытались похоронить и затем откопать назад. Даже проводили экскурсии на
Я постараюсь отчасти восполнить этот пробел и изложить в нескольких постах основные принципы и историю того, как добывались и добываются биткойны. Преимущественно внимание будет уделяться технологической стороне вопроса, а не громким скандалам в мире медиа и политики. Также, я постараюсь избежать повторения того, о чем уже писалось не раз.
В этот раз речь пойдет об общих принципах майнинга.
+122
5 вещей, которые я узнал, работая в модели SaaS
2 мин
40KПеревод
От переводчика: cоучредитель сервиса Freckle Time Tracking делится 5 самыми значимыми вещами, которые он узнал за 5 лет работы над сервисом:
1. Вы не «техническая компания», а компания, которая «делает клиентам лучше»
Люди не платят вам за удивительные навыки программирования и конфигурации nginx, которые вы можете писать с завязанными глазами. Люди платят вам деньги, потому что продукт, который вы продаете, экономит им время, деньги, усилия и нервы. Поэтому ваша работа состоит в том, чтобы сделать клиентам лучше. Каждое принятое при развитии продукта и бизнеса решение должно опираться на эту мысль.+52
Использование сканера уязвимостей OpenVAS
4 мин
179KСканеры уязвимостей — это программные или аппаратные средства, служащие для осуществления диагностики и мониторинга сетевых компьютеров, позволяющее сканировать сети, компьютеры и приложения на предмет обнаружения возможных проблем в системе безопасности, оценивать и устранять уязвимости. (Википедия).
Известными коммерческими сканерами являются Nessus, GFI LANguard, XSpider.
В отличии от прочих, OpenVAS бесплатен, работает без каких либо ограничений и может пригодится как сетевым администраторам, так и специалистам ИБ для выявления актуальных проблем своей инфраструктуры.

Известными коммерческими сканерами являются Nessus, GFI LANguard, XSpider.
В отличии от прочих, OpenVAS бесплатен, работает без каких либо ограничений и может пригодится как сетевым администраторам, так и специалистам ИБ для выявления актуальных проблем своей инфраструктуры.

+34
5 типичных вопросов начинающего ИТ-предпринимателя
6 мин
30K Все начинающие предприниматели задаются одними и теми же вопросами. Некоторые из тих вопросов довольно простые, часть вопросов актуальна для новичков, но в дальнейшей работе знание правильного ответа уже не пригодиться. Однако, часто задав вопрос опытному предпринимателю можно избежать некоторых ошибок на первых шагах в бизнесе. К сожалению, не существует правильных ответов на самые сложные вопросов, но и тут могут помочь рекомендации и собственный опыт тех, кто уже сталкивался с аналогичными проблемами. Помогут ли они вам? Вполне возможно. По крайней мере, вы будете знать, что сработало в похожей ситуации.
Около трети участников сообщества Смартсорсинг являются собственниками, совладельцами или руководителями небольших ИТ-компаний. За три года существования сообщества, некоторые постоянные участники успели пройти путь от новичков в бизнесе до вполне успешных ИТ-предпринимателей. У нас достаточно «менторов», готовых обсудить самые разные проблемы и ситуации. Собственно вновь зарегистрировавшиеся участники сообщества ежемесячно задают тот или иной вопрос о первых шагах в ИТ-бизнесе. Формулировки могут отличаться, но смысл остается одним и тем же. За три года у нас накопились десятки подобных обсуждений и сотни ответов.

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

Мы подвели итоги этих обсуждений в мини-книге «Как начать свой ИТ-бизнес». Мы надеемся, что она даст ответ на множество вопросов, предпринимателей, начинающих бизнес связанный с ИТ-аутсорсингом и сервисным обслуживанием компьютеров. Впрочем, все остальные также найдут в ней немало полезного. А самое главное — у этой книги несколько десятков авторов, т.к. большая часть ответов дана участниками сообщества.
+10
Изоморфный JavaScript — будущее веб-приложений
9 мин
80KПеревод
В компании Airbnb мы многому научились за последние несколько лет, создавая мощные веб-приложния. Мы погрузились в мир одностраничных приложений в 2011 г., делая мобильную версию нашего сайта, с тех пор, кроме прочего, мы запустили Wish Lists и новый поиск. Все это — большие JavaScript приложения, что означает то, что тонны кода запускаются в браузере, чтобы обеспечить современный интерактивный пользовательский опыт.
Это обычный подход сегодня, когда такие библиотеки, как backbone.js, ember.js и angular.js помогают разработчикам создавать мощные JavaScript приложения. Мы поняли, однако, что такие приложения имеют несколько критических ограничений. Чтобы стало понятно, давайте предпримем небольшой тур по истории веб-приложений.

Картинка из статьи для привлечения внимания
Это обычный подход сегодня, когда такие библиотеки, как backbone.js, ember.js и angular.js помогают разработчикам создавать мощные JavaScript приложения. Мы поняли, однако, что такие приложения имеют несколько критических ограничений. Чтобы стало понятно, давайте предпримем небольшой тур по истории веб-приложений.

Картинка из статьи для привлечения внимания
+31
11 важных вещей, которые нужно знать про DevOps — часть первая
9 мин
303KПеревод
От переводчика
В 2009 года за рубежом возникло движение, которое назвало себя DevOps. На первый взгляд это разработчики с навыками сисадминов и сисадмины с навыками разработчиков. Но на самом деле это отнюдь не так. Данное подход имеет четкие цели, философию, инструменты и методы, которые только некоторые русскоязычные компании начинают использовать. Мне кажется, что данный подход у нас незаслуженно игнорируется и мне хотелось бы рассказать об 11 вещах, которые нужно знать о DevOps, в частности:
- что такое DevOps
- каковы его ценности
- как он внедряется
- кому он приносит пользу
Надеюсь, этот текст вам понравится.
+9
20 и 1 примочка Javascript, которые я никак не могу запомнить
8 мин
21KПеревод

Прежде чем начать, хочу уточнить 3 момента, которые я не стараюсь доказать этой статьёй:
1. Я не говорю, что эти особенности забываются всеми или что они такие по сути. Я их нахожу трудными лично для меня (например, забываются детали, если их не освежать в памяти). Они могут быть лёгкими для вас. Тем не менее, думаю, что этот сборник может быть полезен не только мне.
-4
Подкаст Девопс Дефлопе — выпуск 003
1 мин
3.3KСсылка на выпуск подкаста: http://devopsdeflope.ru/posts/2013/003.html
Новости
- Настоящая книга про Шеф и интервью с автором книги
- Как начать пользоваться Шефом от Леопарда часть 1 и часть 2
- IBM тоже делает DevOps, видео про это.
- Плагин Sahara для Vagrant
- Еще один фреймворк для тестирования кукбуков — Foodtaster и примеры использования
- Масштабируем Zabbix теперь на русском
- Как проводить постмортемы
- Провайдер по-умолчанию в Vagrant
- Провайдер для Parallels
- 12 антипаттернов в DevOps
+9
Интеграция wysiwyg редактора с Django. Обзор
4 мин
48KОдно из самых частых требований заказчика — wysiwyg редактор в админке. Wysiwyg редактор имеет (как правило) интуитивно понятный интерфейс и позволяет пользователям, не знающим html, подготовить текст для размещения на сайте. Редакторы позволяют: форматировать текст, вставлять изображения и таблицы, создавать списки и много другое. Но имеют и свои минусы, самый главный из них, пожалуй, большое количество лишнего html кода.
На сегодняшний день существует большое количество различных wysiwyg редакторов и приложений для интеграции этих редакторов с django. Сегодня я расскажу про самые популярные.
Помимо собственно разметки текста, на практике важными характеристиками wysiwyg редактора для клиента являются — удобная вставка изображений и перенос отформатированного текста из сторонних источников (Word, веб-ресурсы). Важно чтобы при переносе отформатированного текста редактор удалял стили, которые могут конфликтовать со стилями сайта, например, шрифт текста. Во время обзора приложений особое внимание будет уделено этим двум характеристикам.
На сегодняшний день существует большое количество различных wysiwyg редакторов и приложений для интеграции этих редакторов с django. Сегодня я расскажу про самые популярные.
Помимо собственно разметки текста, на практике важными характеристиками wysiwyg редактора для клиента являются — удобная вставка изображений и перенос отформатированного текста из сторонних источников (Word, веб-ресурсы). Важно чтобы при переносе отформатированного текста редактор удалял стили, которые могут конфликтовать со стилями сайта, например, шрифт текста. Во время обзора приложений особое внимание будет уделено этим двум характеристикам.
+14
Всегда начеку: как важна внимательность
3 мин
9.5KОбязанность каждого специалиста – это не просто качественное выполнение своей работы, но и исключительное внимание к мельчайшим деталям. А у тестировщика это и вовсе является основой профессии. Стоит проигнорировать мельчайший нюанс – и вот, требуемого уровня качества уже не достичь. Не раз в своей профессии мне приходилось сталкиваться с тем, когда ошибки были далеко не на поверхности – будь ум чуть менее пытливым, и выловить их было бы нереально. И тем больше удивляют люди, которые могут проявлять такую внимательность, что ей позавидовал бы любой. Рассмотрим несколько примеров подобных людей.
-1
То, что вы хотели знать про оптический поток, но стеснялись спросить
13 мин
86K
Оптический поток (Optical flow) – технология, использующаяся в различных областях computer vision для определения сдвигов, сегментации, выделения объектов, компрессии видео. Однако если мы захотим его по-быстрому реализовать в своем проекте, прочитав про него на википедии или где-нибудь еще, то, скорее всего, очень быстро наткнемся на то, что он работает очень плохо и сбоит при определении сдвигов уже порядка 1-2 пикселей (по крайней мере так было у меня). Тогда обратимся к готовым реализациям, например, в OpenCV. Там он реализован различными методами и совершенно непонятно, чем аббревиатура PyrLK лучше или хуже обозначения Farneback или чего-нибудь в этом роде, да и придется поразбираться со смыслом параметров, которых в некоторых реализациях очень много. Причем, что интересно, эти алгоритмы как-то работают, в отличие от того, что мы написали сами. В чем же секрет?
+73
Пять удивительных математических фактов
4 мин
158KПеревод
Для начала небольшой спойлер

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

Да я знаю, что если написать фамилию с заглавной буквы, казуса не получится. Дальше перевод.
Математика – одна из немногих областей знаний, которая может быть объективно названа истинной, потому что ее теоремы основаны на чистой логике. Но в то же время эти теоремы часто оказываются очень странными и противоречащими интуиции.
Некоторые люди считают математику скучной. Следующие примеры показывают, что она какая угодно, но не такая
+113
Изучаем netfilter: пишем свой match-модуль на базе xt_string для поиска нескольких шаблонов
11 мин
10KТуториал
Введение
Недавно заметил, что на хабре мало информации по разработке модулей ядра. Всё что я нашёл:
- Учимся писать модуль ядра (Netfilter) или Прозрачный прокси для HTTPS
- «Linux Kernel Hacking — это просто!» или «Где найти документацию?»
- Ещё 2-3 статьи
Всегда удивляло то, что люди, более-менее знающие C, боятся и избегают даже читать ядерный код, как будто он на 60% состоит из ассемблера (который на самом деле тоже не такой уж сложный). Собственно я планирую написать серию статей, посвящённую разработке или доработке существующих модулей netfilter и iptables.
Интересными они, надеюсь, окажутся для начинающих разработчиков ядра, драйверописателей или просто людей, которые хотят попробовать себя в новой области разработки.
Что будем делать
Как сказано в названии статьи — мы напишем простой модуль iptables на базе xt_string. Xt_string — это модуль netfilter, умеет искать последовательность байт в пакете. Однако ему, на мой взгляд, не хватает способности осуществлять поиск нескольких последовательностей байт в заданном порядке. Ну, а так как лицензия GPL, то что мешает ему эту возможность придать?
+10
Derby.js темы для темплейтов
3 мин
3.5KDerby.js предлагает механизм, который позволяет значительно повысить скорость загрузки страницы путем инкапсуляции CSS в HTML код отдаваемый клиенту. В production mode Derby.js минифицирует HTML, CSS, JS. Как указано в документации используются Stylus и/или LESS.
По умолчанию подключается файл: styles/app/index.styl, где мы можем воспользоваться всеми синтаксическими преимуществами которые предоставляет Stylus.
Что делать, если в нашем проекте предусмотрено использование нескольких тем (стилей) для темплейтов?
По умолчанию подключается файл: styles/app/index.styl, где мы можем воспользоваться всеми синтаксическими преимуществами которые предоставляет Stylus.
Что делать, если в нашем проекте предусмотрено использование нескольких тем (стилей) для темплейтов?
+2
Куда податься русскому в Кремниевой Долине — отвечаем на вопросы человека, который хочет переехать в Долину
7 мин
39K
С нами связался хабражитель Александр, блогер и предприниматель из Екатеринбурга, который в ноябре переезжает в Долину и хотел задать свои вопросы. Получилось вот такое интервью-ответ на вопросы о Кремниевой Долине, предпринимательстве, русскоговорящем бизнес-сообществе AmBAR, предпринимательстве в России и российских ассоциациях. На вопросы отвечал тот, кто сам не так давно переехал в Кремниевую Долину и имеет т.н. «свежий взгляд».
Вообще, всем, кто хочет получить некоторый ликбез о Кремниевой Долине, советуем почитать вот эту очень вдохновенную статью основателя Evernote (компании, стоимостью в 2 млрд. долларов) Степана Пачикова, которую опубликовали в «Огоньке» в 1995 году. А у вас есть какие-то вопросы о Кремниевой Долине? Не стесняйтесь задавать в комментариях.
Итак, поехали.
+12
Вы можете развить свой интеллект: 5 способов максимально улучшить свои когнитивные способности
17 мин
526KПеревод

Не стоит преследовать цели, которые легко достичь. Стоит нацеливаться на то, что удается сделать с трудом, приложив немалые усилия — Альберт Эйнштейн
Несмотря на то, что Эйнштейн не был нейробиологом, он точно знал все, когда говорил о способности человека добиваться чего-либо. Он интуитивно догадывался о том, что лишь сегодня нам удалось подтвердить с помощью данных, а именно: что заставляет когнитивные способности работать на максимально высоком уровне. По существу: То, что тебя не убивает, делает тебя умнее.
+102
Храним сессии на клиенте, чтобы упростить масштабирование приложения (3-я из 12 статей о Node.js от команды Mozilla Identity)
4 мин
21KТуториал
Перевод
От переводчика: Это третья статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona. Эта статья посвящена применяемому в Persona способу хранения данных сессии на клиенте. Все статьи цикла:
- "Охотимся за утечками памяти в Node.js"
- "Нагружаем Node под завязку"
- "Храним сессии на клиенте, чтобы упростить масштабирование приложения"
- "Производительность фронтэнда. Часть 1 — конкатенация, компрессия, кэширование"
- "Пишем сервер, который не падает под нагрузкой"
- "Производительность фронтэнда. Часть 2 — кешируем динамический контент с помощью etagify"
- "Приручаем конфигурации веб-приложений с помощью node-convict"
- "Производительность фронтенда. Часть 3 — оптимизация шрифтов"
- "Локализация приложений Node.js. Часть 1"
- "Локализация приложений Node.js. Часть 2: инструментарий и процесс"
- "Локализация приложений Node.js. Часть 3: локализация в действии"
- "Awsbox — PaaS-инфраструктура для развёртывания приложений Node.js в облаке Amazon"
Статические веб-сайты хорошо масштабируются. Их легко кэшировать, и не нужно постоянно синхронизировать данные на нескольких серверах.
К сожалению, большинство веб-приложений должны хранить информацию о состоянии, чтобы предлагать пользователям персонализированные страницы. Если пользователи могут регистрироваться на сайте, то нам надо хранить сессии. Самый распространенный способ — установить cookie со случайным идентификатором сессии, а детали хранить на сервере.
Масштабирование сайта с хранением состояния
Если необходимо масштабировать такой сайт, есть три варианта:
- Реплицировать данные сессии между всеми серверами.
- Использовать центральное хранилище, к которому будут обращаться все серверы.
- Закрепить за каждым пользователем определённый сервер.
У всех этих подходов есть недостатки:
- Репликация ухудшает производительность и увеличивает сложность.
- Центральное хранилище ограничивает возможность масштабирования и приводит к дополнительным задержкам.
- Привязка пользователей к конкретным серверам приводит к проблемам, когда сервер отключается.
Тем не менее, поразмыслив немного, можно придумать и четвёртый способ: хранить все данные сессии на клиенте.
+13
Охотимся за утечками памяти в Node.js (1-я из 12 статей о Node.js от команды Mozilla Identity)
7 мин
27KТуториал
Перевод
От переводчика: Это первая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona. Как клиентская, так и серверная часть Persona написаны на JavaScript. В ходе работы команда проекта создала несколько инструментов на все случаи жизни — от локализации до отладки, управления зависимостями и многого другого. В этой серии статей разработчики Mozilla делятся с сообществом своим опытом и этими инструментами, которые пригодятся любому, кто пишет высоконагруженный сервис на Node.js.Первая статья цикла посвящена распространённой проблеме Node.js — утечкам памяти, особенностям утечек в высоконагруженных проектах и библиотеке node-memwatch, которая помогает найти и устранить такие утечки в Node.
Все статьи цикла:
- "Охотимся за утечками памяти в Node.js"
- "Нагружаем Node под завязку"
- "Храним сессии на клиенте, чтобы упростить масштабирование приложения"
- "Производительность фронтэнда. Часть 1 — конкатенация, компрессия, кэширование"
- "Пишем сервер, который не падает под нагрузкой"
- "Производительность фронтэнда. Часть 2 — кешируем динамический контент с помощью etagify"
- "Приручаем конфигурации веб-приложений с помощью node-convict"
- "Производительность фронтенда. Часть 3 — оптимизация шрифтов"
- "Локализация приложений Node.js. Часть 1"
- "Локализация приложений Node.js. Часть 2: инструментарий и процесс"
- "Локализация приложений Node.js. Часть 3: локализация в действии"
- "Awsbox — PaaS-инфраструктура для развёртывания приложений Node.js в облаке Amazon"
Зачем заморачиваться?
Вы можете спросить, зачем вообще отслеживать утечки памяти? Неужели нет более важных дел? Почему бы просто не перезапускать процесс время от времени, или просто добавить памяти на сервер? Есть три причины, по которым устранять утечки всё-таки важно:
- Возможно, вы не сильно переживаете об утечках памяти, но этого нельзя сказать о V8 (движок JavaScript на котором работает Node). Чем больше памяти занято, тем активнее работает сборщик мусора, замедляя ваше приложение. Так что в Node утечки напрямую вредят производительности.
- Утечки могут привести к другим проблемам. Протекающий код может блокировать ограниченные ресурсы. У вас могут закончиться файловые дескрипторы или вы вдруг не сможете открыть ещё одно соединение с БД. Такие проблемы могут возникнуть задолго до того, как кончится память, но обрушат ваше приложение ничуть не хуже.
- Рано или поздно ваше приложение упадёт. И это наверняка случится во время наплыва посетителей. Вас все засмеют и будут писать про вас гадости на Hacker News.
+58
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность