Search
Write a publication
Pull to refresh
22
0
neyronius @neyronius

User

Send message

Разница между bin, sbin, usr/bin, usr/sbin

Reading time3 min
Views60K
30 ноября 2010 года Дэвид Коллиер (David Collier) писал:
Я заметил, что в busybox ссылки разложены по этим четырём директориям.
Есть ли какое-то простое правило, чтобы определить, в какой директории какая из ссылок должна лежать…
К примеру, kill лежит в /bin, а killall — в /usr/bin… Я не вижу никакой логики в таком разделении.

Вы, наверное, знаете, что Кен Томпсон и Дэннис Ритчи создали Unix на PDP-7 в 1969-ом. Так вот, примерно в 1971 они проапгрейдились до PDP-11 с парой дисков RK05 (по 1,5 мегабайта каждый).

Когда операционная система разрослась и перестала помещаться на первом диске (на котором была расположена корневая ФС), они перенесли часть на второй, где располагались домашние директории (поэтому точка монтирования называлась /usr — от слова user). Они продублировали там все необходимые директории ОС (/bin, /sbin, /lib, /tmp ...) и складывали файлы на новый диск, потому что на старом кончилось место. Потом у них появился третий диск, они примонтировали его в директории /home и перенесли туда домашние директории пользователей, чтобы ОС могла занять всё оставшееся место на двух дисках, а это были целых три мегабайта (огого!).
Читать дальше →

Внутренности jQuery. Поиск кода, выполняемого по событию

Reading time4 min
Views25K
Чем дальше в лес, тем толще партизаны. Нет, не так. Чем старше веб, тем больше джаваскрипта

Клиентского кода в веб-приложениях с каждым годом действительно становится все больше. Подчас это десятки файлов с сотнями функций. И что делать, когда нам нужно поменять код, выполняемый по событию (например, клик по ссылке). Как его найти? Задавшись решением этой задачи, я придумал несколько разных вариантов. Каждый из них имеет свои плюсы и минусы. И в конце статьи я предлагаю метод, который мне кажется оптимальным.
Читать дальше →

Самый частый шаблон SQL инъекций в РНР — бесполезное экранирование символов

Reading time2 min
Views36K
По роду своей деятельности, мне приходится выполнять аудиты безопасности исходного кода веб-приложений.
Много веб-приложений и много кода…

В этой статье я хотел бы поделиться одной простой (очень простой) истиной и статистикой, которые вывел и многократно проверил в течении трех последний лет просмотра тонн РНР кода.

Не секрет, что уязвимости внедрения операторов СУБД (SQL injections) являются самыми распространенными из всех серверных уязвимостей веб-приложений. Есть платформы и фреймворки, где такие вещи практически полностью исключены, например ORM'ом и прочим. Но статистика упорно говорит нам об абсолютном преобладании на просторах Интернета веб-приложений с простыми конкатенированными SQL запросами. Кроме того, есть случаи, где ORM вообще применим быть не может. Например, когда от пользовательских данных должны зависеть не только параметры выражений, но и сама логика запроса на уровне операторов.
Читать дальше →

Управление знаниями, создание базы знаний. А что на практике?

Reading time8 min
Views73K
Продолжая тему двух предыдущих постов (первый и второй), в которых проводилось исследование на тему управления знаниями и были рассказаны основные результаты, хотелось бы углубиться в практическую составляющую данной проблемы. Вопросов для обсуждения здесь предостаточно, но основной — существуют ли инструменты, позволяющие удовлетворить все потребности бизнеса в части управления знаниями? Попробуем ответить на этот вопрос со своей «колокольни».
Читать дальше →

Компьютерная лингвистика бессильна нам помочь в обработке текстов

Reading time3 min
Views18K
Компьютерная лингвистика на сегодня практически себя уже исчерпала. На это прямо указывает безуспешный опыт исследователей и разработчиков «интеллектуальных» информационных продуктов, трудившихся вот уже более полувека над созданием таких амбициозных программ, как, например, адекватный машинный перевод или смысловой поиск информации в масивах документов на естественном языке.

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

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

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

Оптимизация запросов MySQL с использованием пользовательских переменных

Reading time14 min
Views66K
Введение. В современном мире существует большое количество задач, в рамках которых приходится обрабатывать большие массивы однотипных данных. Яркими примерами являются системы для анализа биржевых котировок, погодных условий, статистики сетевого трафика. Многие из этих систем используют различные реляционные базы данных, в таблицах которых содержатся такие объемы данных, что правильное составление и оптимизация запросов к этим таблицам становится просто необходимым для нормального функционирования системы. В этой статье описаны методы решения ( и сравнительные временные характеристики используемых методов ) нескольких задач по получению данных из таблиц СУБД MySQL, содержащих статистику о проходящем через маршрутизаторы одного из крупных российских сетевых провайдеров сетевом трафике. Интенсивность потока данных, поступающего с главного маршрутизатора такова, что ежесуточно в таблицы базы данных используемой системы мониторинга сетевого трафика поступает в среднем от 400 миллионов до миллиарда записей, содержащих информацию о транзакциях TCP/IP (рассматриваемый маршрутизатор экспортирует данные по протоколу netflow). В качестве СУБД для системы мониторинга используется MySQL.
Читать дальше →

Обработка критических ошибок в PHP

Reading time6 min
Views33K
В статье описан функционал, который доступен в PHP (актуально для 5.3.х) для обработки ошибок всех типов, включая ошибки интерпретации кода (E_ERROR, E_PARSE, E_WARNING, etc). Эта обработка поможет вам для управляемого отображения страницы в случае возникновения таких проблем. В статье присутствует множество описаний и рабочих примеров(архитектуры) для того, что бы сразу воспользоваться в своем программном продукте. В конце концов, ну немного сломали сайт, ну надо же, об этом сообщить поисковику с заголовком 4хх или 5хх и повеселить пользователя, вместо возврата белого экрана (или что хуже экрана со священной информацией, для хакеров) с ответом 200 Ok.



Идея написать этот топик возникла, когда я на храбре задал 2 вопроса:

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

Если заинтересовались, то подробности под катом…
Читать дальше →

Английский для айтишника? Легко!

Reading time2 min
Views183K
Эта тема не относится к IT напрямую, но все знают, что без нее никуда. К сожалению, далеко не у всех есть возможность изучать английский с преподавателями. Ну что ж, попробуем заняться этим дома и с максимальной отдачей!
Читать дальше →

Бесплатные книги

Reading time3 min
Views60K
Несколько книг по разным темам, которые находятся в открытом доступе.

Основы программирования
Читать дальше →

Знакомимся с PayPal API

Reading time13 min
Views87K
На данный момент, PayPal — это самая популярная платформа электронных платежей. Именно то, насколько легко можно открыть счет и начать получать на него средства, по сравнению с традиционными способами получения платежей, и является причиной #1 его запредельной популярности. Второй причиной, многие со мной согласятся, является мощный API, предоставляемый PayPal. В этом топике я по порядку разложу все способы и трюки, связанные с работой PayPal API, чтобы вы избежали проблем с его интеграцией.
Читать дальше →

Сравниваем работу карт OSM vs Геоцентр-консалтинг

Reading time2 min
Views2.4K
Наша компания занимается разработкой различных веб-сервисов по грузоперевозкам. Недавно мы запустили проект Везет Всем, ориентированный на частные «бытовые» перевозки: переезды, перевозка личных вещей и мебели и т.д.
В рамках этого проекта мы сотрудничаем с «Космоснимками», так как все перевозки привязаны к разным гео-данным, и нам необходимо реализовывать функционал, связанный с выборкой грузов из определенной области. Первым этапом мы сначала реализовали прокладку маршрута и расчет дистанции по нашим заявкам .
Сейчас мы предлагаем все желающим сравнить и протестировать графическую подложку карт Геоцентра, который более привычен (наверное) и Open Street Map, вот здесь.

Наши первые впечатления


Сразу скажу, что маршрут строится на основе роутера OSM, и для нас было легким удивлением, как достаточно качественно идет прокладка даже через трассы, введенные в эксплуатацию меньше года назад. За это скажем «большое спасибо» активистам OSM. На подложках OSM всегда более свежие данные по крупным городам, чем у Геоцентра, хотя по информации о поселках и деревнях выигрывает второй, пример можно посмотреть здесь, маршрут сл. Ефремово-Степановка — с. Самарское — это такие два богом забытых места в Ростовской области. По умолчанию будет подложка Геоцентра, но можно выбрать OSM (слева наверху), и вы увидите как село Ефремово то появляется, то пропадает.
Читать дальше →

Pinpoint — проект для которого и целого мира мало

Reading time4 min
Views1.9K
PinpointУже более полугода, как я попал! Крепко попал в команду единомышленников. Это время упорной и вполне успешной работы в команде Pinpoint (http://pin.pn). Необычный и своеобразный стартап, глазами непосредственного участника продуктивного безобразия. Сразу признаюсь, во избежание излишнего флуда, в том, что видео ниже и картинки не мои. Чтобы не заморачиваться с граббингом, я разжился разными скринами у нашего идеолога с его разрешения (они ему чем-то не угодили).



Под катом кратко факты о проекте и немного лирики от меня лично.
Читать дальше →

Сертификация PHP 5.3 от Zend

Reading time3 min
Views25K
Ну про Zend сертификацию PHP 5.3 никто еще не писал, попробую написать я, надеюсь, будет интересно.

План будет таков: сначала я расскажу зачем, потом о подготовке и о сдаче экзамена.

Приступим!
Читать дальше →

Полнотекстовый поиск в InnoDB

Reading time12 min
Views37K
Привет, Хабрачитатель!
Полнотекстовый поиск данных в InnoDB – это известная головная боль многих разработчиков под MySQL / InnoDB. Для тех, кто не в курсе дела я объясню. В типе таблиц MyISAM есть полноценный полнотекстовый поиск данных, однако сама таблица исторически имеет ограничения, которые являются принципиальными в отдельных проектах. В более «продвинутом» типе таблиц InnoDB полнотекстового поиска нет. Вот и приходится мириться бедным разработчикам либо с ограничениями MyISAM, либо с отсутствием поиска в InnoDB. Я хочу рассказать о том, какие есть способы организовать полноценный поиск в InnoDB без магии и исключительно штатными средствами. Также будет интересно сравнить скоростные характеристики каждого способа.
Читать дальше →

Работаем с jQuery Templates

Reading time20 min
Views140K

Введение


Плагин jQuery Templates – это «движок шаблонов», работающий на стороне клиента как расширение jQuery.

Этот плагин помогает показать в браузере данные, которые находятся в объектах и массивах JavaScript, избавляя вас от рутинных операций по созданию HTML-кода, экранированию специальных символов и т.п. Кроме того, он обладает очень интересными возможностями – например, позволяет обновлять созданный с его помощью HTML-код при изменении исходных данных.

Разумеется, jQuery Templates – не единственный и не первый «движок шаблонов», но у него есть большое преимущество перед альтернативными вариантами – поддержка со стороны jQuery Team. Это позволяет нам не бояться того, что этот плагин окажется заброшенным, и различные проблемы, возникающие при выходе новых версий браузеров, придется решать своими силами.

В этой статье я расскажу об основных возможностях jQuery Templates и продемонстрирую его работу в различных сценариях, а в последующих статьях я расскажу о функциях, не вошедших в основной код плагина (jQuery Templates Plus) и о расширении языка шаблонов.

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

CMS своими руками. Теория велосипедостроения

Reading time8 min
Views25K
Как много веселых ребят
И все делают велосипед.
А один из них как-нибудь утром
Придумает порох.
Виктор Цой.

image

Сначала я хотел написать в раздел «Я пиарюсь» статью о том какой я молодец и какую замечательную штуку сделал но, немного поискав в сети, я без удивления обнаружил, что я совсем не единственный в своем роде. Тогда я решил пойти от обратного: наверное, практически каждый Веб-программист хотя бы раз в своей жизни пытается написать полноценную CMS. При этом, в процессе проектирования (а это процесс, зачастую, наступает уже во время написания кода) у разработчика непременно возникают вопросы. С этими вопросами он обращается к поисковикам и попадает на сайты тех, кто по подобным граблям уже прошествовал.

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

Ну-с, показывайте ваши синяки...

«От хорошего к великому» (в цитатах) — Часть 2

Reading time6 min
Views20K
imageКак и обещал, выкладываю вторую часть цитат, выделенных маркером во время прочтения одной из лучших (с моей точки зрения) книг о бизнесе — книги Джима Коллинза «От хорошего к великому».

См. также (первая часть).

***

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

***


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

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

Отладка Javascript

Reading time5 min
Views146K
Debug Logo

Многие задают мне один и тот же вопрос:
«Как дебажить этот $%*!%$! JavaScript?».

Так вот, во-первых JavaScript — не $%*!%$! А как я его дебажу — сейчас расскажу.

(Примечание: наверное эта статья больше для новичков. Так что не судите строго)

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

Answer to Life

Reading time4 min
Views1.7K

Предыстория


Я учился на первом курсе, когда один мой знакомый поделился со мной секретом, как прогуливать пары без каких либо проблем. Идея заключалась в том, что нужно было посещать только те предметы, которые являлись «важными» с точки зрения сдачи сессии. В результате можно было спокойно прогуливать пары без страха быть отчисленным. Мне эта идея казалась бесполезной, поскольку я не стремился прогуливать занятия и считал своим долгом использовать все возможности, которые давал университет.

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

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

Азбука WEB-разработчика

Reading time4 min
Views13K
Небольшой список, самых, на мой взгляд, полезных сайтов для любого WEB-разработчика, интересующегося сферой веб дизайна, верстки и программирования. Думаю каждый среди этого списка найдет для себя сайты, которые надолго войдут в его ленту RSS.

AA List Apart




A List Apart содержит лучшие советы и мнения от лидирующих умов индустрии.
Читать дальше →

Information

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