Pull to refresh
0
0
Константин @PacifiK

User

Send message

Экспресс-анализ подозрительной активности в журнале веб-сервера

Reading time7 min
Views18K
На большинстве современных хостингов кроме FTP доступа к файловой системе предоставляется также SSH доступ (по-умолчанию или по запросу в тех поддержку). Умение веб-мастера работать с файлами сайта в терминале (в режиме командной строки) по SSH экономит ему массу времени. Операция, которая может занимать десятки минут по FTP, делается через командную строку за пару секунд. Кроме того, есть много операций, которые можно сделать только по SSH в режиме командной строки.

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

Я пропущу описание протокола и процесса подключения к аккаунту хостинга по SSH, в сети можно найти множество видео-уроков и статей по данной теме, скажу лишь что для подключения вам потребуется программа Putty (ОС Windows) / Терминал (Mac OS X) или аналогичные, и доступы к хостингу по SSH: хост, порт, логин и пароль (часто имя и пароль они совпадают с доступом в cPanel, ISPManager или аккаунтом панели управления хостингом).

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

Предположим, вы заметили подозрительную активность на сайте (стал медленно открываться, пропали доступы в админ-панель, с сайта рассылают спам и т.п.). Первое, что в этом случае нужно выполнить – это проверить файлы сайта на вредоносный код специализированными сканерами. Но пока сайт сканируется, можно провести экспресс-анализ логов веб-сервера с помощью команд find/grep, чтобы опеределить, не было ли обращений к каким-то подозрительным скриптам, попыток брутфорса (подбора пароля) или вызовов хакерских скриптов. Как это сделать? Об этом ниже.
Читать дальше →
Total votes 13: ↑7 and ↓6+1
Comments6

Книги и образовательные ресурсы по алгоритмической торговле

Reading time7 min
Views96K


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

В нашем сегодняшнем материале — подборка книг, которые помогут лучше подготовиться к началу работы на фондовом рынке и написанию механических торговых систем. Для достижения наибольшей эффективности материала, мы приводим советы экспертов, которые занимаются алгоритмической торговлей на российском и зарубежных фондовых рынках.
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments22

Введение в функциональное программирование на Python

Reading time10 min
Views152K
Рассуждая о функциональном программировании, люди часто начинают выдавать кучу «функциональных» характеристик. Неизменяемые данные, функции первого класса и оптимизация хвостовой рекурсии. Это свойства языка, помогающие писать функциональные программы. Они упоминают мапирование, каррирование и использование функций высшего порядка. Это приёмы программирования, использующиеся для написания функционального кода. Они упоминают распараллеливание, ленивые вычисления и детерменизм. Это преимущества функциональных программ.

Забейте. Функциональный код отличается одним свойством: отсутствием побочных эффектов. Он не полагается на данные вне текущей функции, и не меняет данные, находящиеся вне функции. Все остальные «свойства» можно вывести из этого.

Нефункциональная функция:

a = 0
def increment1():
    global a
    a += 1


Функциональная функция:

def increment2(a):
    return a + 1


Вместо проходов по списку используйте map и reduce
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments51

Красноярская конференция разработчиков Dev2Dev 2.0

Reading time3 min
Views3.9K
Это «гостевой пост» от команды энтузиастов сообщества Dev2Dev. Я очень рад, что подобная инициатива продолжает существовать и очень хочу их поддержать, по крайней мере информационно.



Красноярск — далекий сибирский город и глухая it-провинция. Но 30 мая 2015 года нашей активности позавидуют соседи. В этот день состоится вторая конференция разработчиков программного обеспечения Dev2Dev, версия 2.0. Конференцию организует молодое одноименное it-сообщество, объединяющее спецов отрасли из компаний города. Нам менее года, но мы растем. С самого начала мы работали для того, чтобы в Красноярске наконец появилась круто сваренное местное событие с большой активной аудиторией и заезжими докладами.

Концепция событий сообщества Dev2Dev проста: свободный вход, качественный контент и много общения для участников и спикеров. Событие — это в первую очередь фан, знакомства и накачка энергией. Сильные доклады и интересные спикеры делают это возможным, но само событие создают участники. 30 мая мы ждем 200-250 человек. Новая конференция соберет доклады по enterprise разработке, функциональному программированию, проектированию, тестированию приложений, управлению проектами и командой. Докладчики едут со всей Сибири — Новосибирск, Омск, Кемерово. Специальный гость прилетит из Чикаго.
Программа события насыщенная
Total votes 18: ↑15 and ↓3+12
Comments1

Примеры тестовых заданий для iOS-разработчиков

Reading time3 min
Views46K
Я воспринимаю тестовые задания как хороший и адекватный метод отбора людей (для противников этого мнения есть голосовалка в конце поста), ведь работодатель может оценить конкретно то, что и будет делать сотрудник за своим рабочим местом. И поэтому зачастую с энтузиазмом принимаюсь за их выполнение, не смотря на то, что делать их приходится по ночам. К тому же, задания обычно небольшие и их можно расценивать как написание прототипов — а прототипы писать я тоже люблю. В общем опыт положительный, а положительный настрой — великое дело.



Здесь я хотел бы поделиться примерами тестовых заданий от разных работодателей: маленьких и больших, зарубежных и отечественных. Названия компаний приводиться не будут. Каждый пример задания будет сопровождаться ссылкой на репозиторий где лежит мой вариант решения. С кодом этим, можно делать все, что угодно: использовать в проектах, исправлять, посылать пул реквесты.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments16

Незваный гость. Почему виртуальные машины — не лучшее решение для приложений завтрашнего дня?

Reading time10 min
Views38K
Здравствуйте, уважаемые читатели!

Несмотря на продолжающиеся праздники, мы не перестаем изучать зарубежную техническую мысль и время от времени сверяться с Радаром О'Рейли. В частности, нас заинтересовала опубликованная 4 мая статья Динеша Субхравети, повествующая о перспективах и проблемах виртуализации. В ней затронуты проблемы адекватного использования виртуализации, производительности распределенных систем, правильной работы с большими данными. Автор пытается исследовать вопрос о том, так ли незаменимы виртуальные машины, и найдется ли им место в завтрашнем дне. Поскольку на рынке существуют очень высокорейтинговые книги, так или иначе связанные с этой колоссальной темой, надеемся, что и предлагаемая статья покажется вам информативной и интересной. Если у вас появятся предложения об издании подобных книг — с удовольствием их выслушаем.
Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments22

Стилизация iOS-приложений: как мы натягиваем шрифты, цвета и изображения

Reading time3 min
Views24K


В ходе работы над мобильным приложением разработчики получают от дизайнеров макеты, шрифты и изображения. Преобразование этих материалов в код — нудное занятие, да и в процессе каждый норовит изобрести свой велосипед. Чтобы проекты оставались чистыми, мы приняли единую конвенцию по работе со стилями.
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments6

Опыт разработки приложения на Swift, наблюдения и выводы

Reading time8 min
Views23K
Данная статья получилась из отчета программиста после «опыта» разработки небольшого приложения на новом языке Swift.

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

image

Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments24

Как продвигать мобильные приложения ДО релиза. Часть 1

Reading time15 min
Views33K

Глава 1. Вступление


Благодаря моей истории «Как я создавал мобильный файтинг», я приобрел стойкую зависимость: ежедневно, разомкнув глаза, беру в руки телефон и первым делом открываю заветную иконку хабры.

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

Хочется процитировать: “Когда человек занимается альтруистической деятельностью, отдача приходит в качестве сильнейшей эмоции ощущения смысла”. Меня вдохновляет и заряжает энергией размещение публикаций. Это дает мне сил на достижения другого порядка. Поэтому я стараюсь генерировать контент, который каждому читателю может дать исключительную пользу.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments16

Как я решил уйти в геймдев

Reading time13 min
Views64K
Это история о том, как я бросил все и начал делать игры.

Шаг нулевой — решение


Почти десять лет я занимался электронным документооборотом. Наверное, если бы мне кто-нибудь десять лет назад сказал, что я в этом настолько серьезно увязну — не поверил бы. Тем не менее, хоть предметная область и не менялась, довольно долгое время мне все это было интересно. Интересно было создавать службу поддержки вместо повинности программистов дежурить по очереди, интересно было создавать всероссийское (ух, слово-то какое пафосное) сообщество разработчиков, интересно было встречаться с сотнями неглупых людей из десятков ведущих российских компаний, от производителей бургеров до строителей АЭС. Постоянно искать хитрые решения нестандартных запросов. На этом месте часто пишут «и вот в один прекрасный день я понял...», но, на самом деле, такого дня не было.
Читать дальше →
Total votes 105: ↑97 and ↓8+89
Comments38

Шайбу вбросим в iOS восемь

Reading time6 min
Views42K
Прежде чем создавать казуальную игру для iOS, хорошо бы ответить на вопрос: — А зачем?
Вариантов три:
  • Срубить денег;
  • Порадовать родственников;
  • Хрен его знает, но мысль жжет организм изнутри.


image

Думаю, в ближайшие годы, правильный ответ — третий.
А, не буду спорить и учить — расскажу, как я делаю приложения.
Гуру разработки молча нажимают плюс и уходят в сторону. Остальные следуют за мной, чтобы вспомнить школу и настольный хоккей.
И да, уникальность топика, что в каждом предложении слова начинаются разными буквами.
В статье девять картинок и пол-минуты забавной анимации.
Читать дальше →
Total votes 76: ↑68 and ↓8+60
Comments62

Ресайз картинок в браузере. Все очень плохо

Reading time10 min
Views104K
Если вы когда-нибудь сталкивались с задачей ресайза картинок в браузере, то вы наверное знаете, что это очень просто. В любом современном браузере есть такой элемент, как холст (<canvas>). На него можно нанести изображение нужных размеров. Пять строчек кода и картинка готова:

function resize(img, w, h) {
  var canvas = document.createElement('canvas');
  canvas.width = w;
  canvas.height = h;
  canvas.getContext('2d').drawImage(img, 0, 0, w, h);
  return canvas;
}

Из холста картинку можно сохранить в JPEG и, например, отправить на сервер. Можно было на этом закончить статью, но сперва давайте взглянем на результат. Если вы поставите рядом такой холст и обычный элемент <img>, в который загружена та же картинка (исходник, 4 Мб), то вы увидите разницу.

img
Читать дальше →
Total votes 156: ↑152 and ↓4+148
Comments90

Понимаем декораторы в Python'e, шаг за шагом. Шаг 1

Reading time6 min
Views431K

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

Итак, что же такое «декоратор»?


Впереди достаточно длинная статья, так что, если кто-то спешит — вот пример того, как работают декораторы:
def makebold(fn):
    def wrapped():
        return "<b>" + fn() + "</b>"
    return wrapped
 
def makeitalic(fn):
    def wrapped():
        return "<i>" + fn() + "</i>"
    return wrapped
 
@makebold
@makeitalic
def hello():
    return "hello habr"
 
print hello() ## выведет <b><i>hello habr</i></b>

Те же из вас, кто готов потратить немного времени, приглашаются прочесть длиииинный пост
Total votes 119: ↑106 and ↓13+93
Comments38

Перевод учебника по алгоритмам

Reading time1 min
Views165K


Рад сообщить, что вышел перевод отличнейшего учебника Дасгупты, Пападимитриу, Вазирани «Алгоритмы», над которым я работал последние несколько лет. В книге многие алгоритмы объяснены гораздо короче и проще, чем в других учебниках: с одной стороны, без излишнего формализа, с другой — без потери математической строгости. Откройте книгу на каком-нибудь известном вам алгоритме и убедитесь в этом. =)

В общем, угощайтесь: печатный вариант перевода, электронный вариант перевода (PDF), печатный вариант оригинала, электронный вариант оригинала (PDF).
Читать дальше →
Total votes 323: ↑321 and ↓2+319
Comments109

Стэнфордские курсы «Разработка iOS приложений» — неавторизованный конспект лекций на русском языке и 2015?

Reading time5 min
Views49K


Я разместила иконки курсов Стэнфордского университета по разработке приложений на iOS в обратном хронологическом порядке. На первом месте стоит иконка Swift — нового языка программирования для создания приложений на iOS, объявленного на WWDC 2014. Кроме Swift реализована новая версия iOS — iOS 8. Уже известно, что Стэнфордский университет запустит зимой 2015 года новый курс CS193P с неизвестным пока названием (может быть будет что-то вроде «Developing iOS 8 Apps for iPhone and iPad»). Лектор тот же — профессор Paul Hegarty.
В традиции Стэнфорда выкладывать курс CS193P на iTunes U в виде бесплатного курса обучения, но делают это они со сдвигом во времени, чтобы не мешать платному обучающему процессу, так что в феврале-марте 2015 года (как это было в 2013 году) можно ожидать постепенное появление лекций на iTunes U. Так что время есть.
Я прошла почти все курсы профессора Пола Хэгарти — от iOS 5 до iOS 7 — до самого конца (смотри Github ).
Для подготовки к перспективному курсу по iOS 8 разместила на своем сайте «Разработка iOS приложений» неавторизованные конспекты лекций, тексты домашних заданий и примеры их решения на русском языке для последнего доступного в настоящее время обучающего курса «Developing iOS 7 Apps for iPhone and iPad», запущенного Стэнфордским университетом в семестре «осень 2013 — зима 2014 года» на iTunes U.

Читать дальше →
Total votes 21: ↑16 and ↓5+11
Comments7

Уютный книжный пост для вас и вашего проекта

Reading time8 min
Views131K
Как заработать миллион за день, стать искусным оратором за неделю, похудеть на 100 кг за 2 дня, стать успешным в тысяча ста начинаниях и прочая мишура регулярно засоряет наше информационное пространство. А порой так хочется взять в руки книгу, которая не просто съест кусок вашего свободного времени повествуя о неприменимых в отечественных реалиях вещах, но и подкинет хотя бы несколько полезных советов, способных оказать позитивное влияние на развитие вашей личности и вашего проекта.

Если вы хотите найти и/или поделиться хорошими книгами, добро пожаловать под кат.

image

Читать дальше →
Total votes 76: ↑62 and ↓14+48
Comments45

Луна-7 или SpaceX по-русски

Reading time6 min
Views75K


Частной космонавтикой в России уже никого не удивишь, постоянно всплывают проекты различной степени амбициозности. Но не так давно на бескрайних просторах Интернета я наткнулся на поистине удивительный проект от частной российской компании «Лин Индастриал». Компания ни много ни мало замахнулась на колонизацию Луны и если обычно такие проекты вызывают лишь грустную улыбку, то этот действительно поразил меня глубиной проработки. И так о чем собственно речь?
Читать дальше →
Total votes 69: ↑61 and ↓8+53
Comments36

Фитнес-браслет Jawbone UP: почему это вещь, как он меняется на новый и почему я снова его куплю

Reading time8 min
Views189K
До начала этого года я искренне считал, что фитнес-браслеты это блажь. Ну какой, простите, дурак отдаст почти 4500 рублей за кусок электроники, который будет 24 часа висеть у вас на руке и строить какие-то графики? Кому это надо? Я инженер с высшим техническим образованием (а так же малоподвижным образом жизни и намечающимся животом), чего я о себе не знаю? Однако сейчас, спустя 7,5 месяцев использования, я очень слабо представляю себе жизнь без браслета. Причем, не просто фитнес-браслета, а именно Jawbone UP.


Читать дальше →
Total votes 55: ↑42 and ↓13+29
Comments155

Опыт переноса виртуальной машины с чужого хостинга XEN на свой KVM

Reading time4 min
Views20K
Передо мной была поставлена задача переноса сайта с внешнего хостинга на сервер клиента. Особенность была в том, что виртуальный сервер был хорошо настроен, и очень не хотелось заново устанавливать и конфигурировать операционную систему, базу данных и все пакетыты окружения.

Сайт крутился в облаке известного провайдера на виртаульной машине с гипервизором XEN. Я надеялся, что поддержка пойдёт навстречу и выдаст образ виртуальной машины, но чуда не случилось: отказ был холоден и учтив, наверное, как обычно. В результате родилась примерная схема переноса: сделать образ диска, передать его на свой сервер, создать у себя виртуалку, указав полученный образ в качестве источника.

Опытные специалисты уже догадываются, с чем мне пришлось столкнуться в процессе выполнения плана. Для остальных привожу детали и способы решения возникших сложностей.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments6

Information

Rating
Does not participate
Location
Красноярский край, Россия
Date of birth
Registered
Activity