Рубрика «Песочница» - 160

RedBeanPHP
В данном посте речь пойдет об весьма интересном ORM фреймворке RedBeanPHP. Примечателен он прежде всего возможностью создавать структуру базы данных на лету. К тому же фреймворк прост в использовании как две копейки. Моё повествование будет разделено на 3 части.
В второй части основная тема будет — модели. В третей — изменение логики работы фреймворка.

Перед написанием поста я потрудился и сделал тестовое приложение для того, что бы убедиться на своем опыте в возможности невероятно облегчить работу. Ведь я наверно не один, кто прописывает поля в нескольких местах с жутким осознанием бессмысленности этой работы, особенно на начальном этапе разработки. Наконец появился аналог Entity Framework Code First из .NET, который в свое время вызвал у меня дикий восторг. И так по порядку.
Читать полностью »

Комментарий Сандро Кипиани, генерального конструктора проекта К28А, к статье «Проект К28А или велосипед нового поколения»

Читать полностью »

Расскажу секрет о том, как быстро проверить выполнение условия Делоне для двух треугольников.
Собственно сама оптимизация описана немного ниже(см.«Оптимизация алгоритма проверки условия Делоне через уравнение описанной окружности»), но расскажу обо всем по порядку.

В моем случае триангуляция применяется в трассировке изображения, для разбиения плоскости на примитивные сектора (треугольники). Как известно, она делится также на несколько этапов: корректировка, выявление границ, обход границ, заметание контуров. Это в самом общем виде. Я бы хотел остановиться, думаю, на самом сложном этапе: заметание плоскости.
Читать полностью »

Всем привет.

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

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

Одним из представителей этой группы является Unrolled linked list.

Что же это такое?
Читать полностью »

Вступление

Как все мы знаем javascript это язык в котором очень просто выстрелить себе в ногу. Работая с этим языком уже почти пять лет, я не раз сталкивался с тем, что javascript предоставляет очень скудные инструменты для создания абстракций высокого уровня. А, создавая полноценные MVVM/MVP приложения, сталкиваешься с тем что, основной проблемой является трудность сохранить код и абстракцию в чистоте, не говоря уж о полноценном следовании SOLID принципам.

Со временем я пришел к пониманию, что один из основных паттернов который смог бы мне помочь -это Dependency Injection. И я решил поэкспериментировать с ним в JS.
Конечно, JS не предоставляет инструментов для полноценного следования этому паттерну (элементарное отсутствие тех же рефлекшенов), поэтому я решил поставить для себя несколько Acceptance Criteria, которых я хотел бы достигнуть адаптировав этот паттерн к такой уникальной среде как JS.
Читать полностью »

… Статья, конечно, для раздела «Я пиарюсь» больше подойдет. Но увы, кармы не хватает. Надеюсь, я не нарушу правил Хабра, написав то, что написал… Возможно, модераторы сочтут материал интересным и перенесут в соответствующий раздел.

Есть один хороший принцип для человека, который хочет что-нибудь такое взять, и сделать — да так, чтобы творением его заинтересовалась широкая общественность: делай только то, чем станешь пользоваться сам. Желание реализовать какой-нибудь проект для Android появилось у меня спустя десять минут после обретения смартфона с этой ОС. Но я всегда уважал этот принцип, поэтому идеи проходили суровый отбор и отсеивались как ненужные.

Помимо смартфона, у меня есть еще автомобиль, и появился он значительно раньше. Можно смело записывать меня в автолюбители. Несколько раз у меня было желание измерить реальное время разгона до 100 кмчас своей машины. Оно было не настолько сильным, чтобы покупать дополнительные устройства, разбираться — и я просто брал секундомер, смотрел на спидометр и получал какую-то цифру. Правда, спидометр врал, с разных углов выглядел по-разному, стрелка ползла не так уж быстро, чтобы четко зафиксировать момент достижения нужной отметки. Заполучив телефон, я начал искать на маркете приложение для проведения такого замера. Ведь для iOS есть очень известная программа такого плана! Но это рассказ про нашу программу, поэтому пусть она останется безымянным конкурентом. Приложения я конечно нашел, но чем-то они мне не понравились. И было решено: сделаю сам, для себя. По ходу разработки у меня возникло две интересных идеи, которые мне настолько понравились, что были приглашены соучастники. И вот, 30.07.2012 проект был опубликован. Дальше я коротко расскажу о том, что же было придумано, что из этого получилось, и каковы дальнейшие планы…
Читать полностью »

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

Потеряв свой Android я был черезвычайно расстроен. Мало того что я корил себя за разгильдяйство — я не знал даже где и как это случилось (может его украли или выпал где) – мне нужно было купить (выбрать) новый, создать более-менее «рабочее окружение» на новом телефоне – рутовать его, поставить новую firmware, firewall, востанавливать все приложения и конфиги. А их у меня было немало.
Сам телефон было не жалко — он был уже старенький, был медлючь и тежеловесен (ЦПУ и память), хотя и не позволял чувствовать себя совсем ущербным с 7-м CyanogenMod и новым kernel. Его следовало уже давно выбросить и купить новый, но всякий раз, матерясь и грозясь заменить его при очередных тормозах, меня останавливала как раз потеря времени на установку и перенос всего, что было в старом смартфоне.
Читать полностью »

Нудное Краткое введение.

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

При этом выпадает из рассмотрения возможность доступа к информации изнутри. Которая защищена как-правило значительно слабее. Видимо считается, что дыры если есть — то они все снаружи — т.к. внутри нечто монолитное и непробиваемое. Увы К счастью это не так (Информация даёт работу по обе стороны фронта). Ведь именно инсайдерская информация наиболее ценна во всех ракурсах и приобретает всё большую ценность.l

Итак. В своей небольшой статье я хочу слегка погрузить читателя в немного детский и наивный мир крупных организаций, где большинство верит в Деда Мороза слова: у нас всё очень хорошо и «кто изнутри будет ломать?».
Доступ к информации. Внутренний аудит
Читать полностью »

Последнее время на Хабре зачастили статьи про обработку естественного языка.
И так уж совпало, что последнее время я работаю в этой области.
Был очень хорошо освещен sentiment analysis, и теггер частей речи pymorphy.
Но мне хотелось бы рассказать, какие средства для NLP использовал я, и что я нашел нового, чего здесь еще не было
Читать полностью »

Доброго времени суток, коллеги. В этой статье я расскажу об опыте использовании Gmail API. Как оказалось, данная тема не очень освещена в интернете, да и документация далека от идеала.

Недавно у меня появилась задача: написать PHP приложение для поиска сообщений на Gmail ящике пользователя. Притом не просто поиск, а поиск по параметрам, благо Gmail имеет неплохую строку поиска, позволяющую написать что то вида “is:sent after:2012/08/10”. Да и в API есть расширения IMAP протокола X-GM-*
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js