привет

#ЖИТЬ https://www.youtube.com/watch?v=X__GJAvZ4_M

Далее

Первое сентября Сегодня старший мой идет в первый класс.

Далее

Немного альтернативной истории — Да, победили, и что толку? — вздыхал Саня. — Столько крови пролили, в половине Европы социализм установили. Теперь нам никогда не войти в европейскую семью народов, мы не уважали их ценности. А знаешь, сколько немок изнасиловали наши солдаты, когда заняли Берлин? Миллион! Это же ужасно! Саня, либеральный сетевой журналист, отлично...

Далее

#котозависимость Та же проблема...

Далее

Креатив в Магнитогорске Как и раньше продолжаю замечать необычные вещи, когда гуляю по городу. Некоторые кеативные люди заставляют улыбаться. Лифт, на котором можно отправиться в "Ж". Магазин, в котором продается самая не свежая выпечка в городе.

Далее

О выделении памяти

Рубрики : Перепост, Программизмы, Разное, Юмор

Новое приложение под Андроид — «ВТрубу»

Рубрики : Приложения под Android, Программизмы, Разное

Предлагаю вам познакомится с новый приложением под Андроид разработанным нашей командой.

Часто ходите на совещания? Думаете, что вы тратите попусту время? А сколько вы могли бы заработать за это время, если бы занимались полезным делом? С этим приложением вы сможете увидеть, как утекают ваши денежки в трубу! Все, что Вам нужно — просто введите стоимость часа своей работы, и смотрите, как секунду за секундой вы теряете деньги.
В вашей компании постоянно собирают консилиумы, и вы хотите оценить потерянную из за постоянных совещаний прибыль? С приложением ВТрубу вы легко сможете это сделать, и кроме того сразу продемонстрировать потери коллегам. Просто задайте количество участников совещания и выгоду, которую компания получает за один час работы одного сотрудника (пусть даже приблизительно), и вы сразу увидите, как доходы компании утекают в трубу. Количество участников совещания изменилось, пришел еще один? Ничего страшного, вы в любой момент можете изменить количество участников, не теряя информацию о уже набежавшей сумме — она будет пересчитана с учетом изменений.
Для руководителей это приложение также будет полезно — демонстрация счетчика, на котором непрерывно увеличивается сумма потерь (а ведь из этих денег складывается зарплата!) оказывает психологическое воздействие, резко уменьшает количество желающих поговорить на отвлеченные темы, сокращает время совещаний и повышает их эффективность.

P.S. Если вы получаете оплату за отработанное время, вы можете задать свой тариф, и наблюдать, как прибывают денежки в ваш карман.
Приложение можно скачать здесь.
Оставлять свои комментарии и пожелания вы можете не только на google play, но и здесь в комментариях. Задавайте вопросы и высказывайте предложения по доработки проекта.

Андроид и .Net шифрование

Рубрики : Программизмы, Раскопки

Андроид и .Net шифрование

Это статья кратко объясняет как используется шифрование/дешифрование в операционной системе Android и на платформе .Net, с концентрацией на передаче зашифрованных данных из андроида в .Net.

Содержание

Далее

Алиса в стране IT-проектов

Рубрики : Жизненное, Перепост, Программизмы

Очень уважаю Кэррола-Доджсона, люблю Алису, хотя больше по душе мне основы ООП, изложенные им в «Охоте на Снарка».
А недавно на SQL.ru прочитала подборку цитат из «Алисы», которая идеально применима в разработке IT-проектов. Конечно, не могу с вами не поделиться.

Недавно наткнулся на сборник цитат из произведений Льюиса Кэрролла про Алису. Очень удивился, как некоторые цитаты описывают что происходит в ИТ-проектах.

Про заказчиков

Шляпных дел мастеров я уже видела. Мартовский Заяц, по-моему, куда интереснее. К тому же сейчас май — возможно, он уже немножко пришёл в себя.
— Ничего не поделаешь, — возразил Кот. — Все мы здесь не в своем уме — и ты, и я!
— Откуда вы знаете, что я не в своем уме? — спросила Алиса.
— Конечно, не в своем, — ответил Кот. — Иначе как бы ты здесь оказалась?
Про анализ требований

Далее

Тестирование баз данных

Рубрики : Программизмы

Небольшая презентация на тему модульного тестирования (Unit-тестов) для базы данных на MS SQL Server, и их разработке с использованием MS Visual Studio, а также об их «искривлении» и применении для тестирования целостности структуры данных и интеграционного тестирования.

Как задать и использовать константу в виде коллекции на Pl/SQL.

Рубрики : Программизмы, Разное

Иногда в реальных задачах необходимо в константах хранить какую-либо коллекцию. На языке pl/sql просто создать коллекцию и перечислить через запятую данные, которые она будет содержать, нельзя. Такое возможно только с массивами, у которых строго задан размер и тип элементов. Если же возникла необходимость сделать предопределенную коллекцию-константу, то в этом случае её не получится проинициализировать простым перечислением данных. Чтобы проинициализировать коллекцию–константу, необходимо задать функцию, которая вернет заполненную коллекцию для присвоения её в указанную переменную. Выглядеть это будет примерно так, как показано ниже.

Например, мы хотим создать коллекцию действий пользователя, индекс элемента которой будет представлять собой символьный код операции, а значение — название операции, которое увидит пользователь. Зададим возможные действия константами, так как в дальнейшем в программе они обрабатываются.

subtype typeActionName is varchar2(50);                      -- Тип: Код действия
type typeActionCol is table of typeActionName                -- Тип: Список действий   
  index by varchar2(200);

cOperSetDefault       constant typeOperName:= 'SetDefault’;        
cOperUndoDefault      constant typeOperName:= 'UndoSetDefault';       
cOperChangeParam      constant typeOperName:= 'ChangeParam';      
cOperClose            constant typeOperName:= 'CLOSE';          
cOperOpen             constant typeOperName:= 'UNCLOSE';        
cOperDelete           constant typeOperName:= 'Delete';              
cOperAddItem          constant typeOperName:= 'AddItem';          

function setActionCollection  return typeOperCol;            --функция задания массива кода операции и имени операции

ActionCollection constant typeOperCol:= setActionCollection;  --список действий пользователя

function setActionCollection return typeActionCol
  is
    pOperCol  typeActionCol;
  begin
    pOperCol(cActionSetDefault)    := 'Установить параметры по умолчанию'; 
    pOperCol(cActionUndoDefault)   := 'Вернуть параметры, которые были до сброса';    
    pOperCol(cActionCloseAgree)    := 'Закрыть соглашение';
    pOperCol(cActionOpenAgree)     := 'Открыть соглашение';
    pOperCol(cActionChangeParam)   := 'Изменить значение параметров;
    pOperCol(cActionDelete)        := 'Удалить элемент';      
    pOperCol(cActionAddItem)       := 'Добавить элемент';  
    return  pOperCol;                             
  end;

Таким образом можно задать коллекцию, содержащую данные любого составного типа. В зависимости от типа будет меняться только функция его заполнения (либо усложнятmся, либо упрощаться). После того, как мы объявили свою константу, возникает вопрос: как выполнить какие-либо операции при помощи данных, которые мы проинициализировали? Если рассматривать коллекцию, которую я привела выше, то для обхода её потребуется массив индексов.

type typeColkeys is varray(7) of typeOperName;

--массив для индексации действий
    Collectionkeys typeColkeys  := typeColkeys (cActionSetDefault, cActionUndoDefault, cActionCloseAgree, cActionOpenAgree, cActionChangeParam, cActionDelete, cActionAddItem);

А после этого можно будет пройти по коллекции циклом и выполнить необходимые вам операции.

    FOR i IN 1..ActionCollection.count loop
        --выполняем необходимые операции
        --Collectionkeys(i) – это будет код действия пользователя 
        --ActionCollection(Collectionkeys(i)) –это будет заголовок действия 
    end loop;  

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

Конструкция select for update

Рубрики : Программизмы

Ни для кого не секрет, что в различных СУБД блокирование реализовано по разному. Есть несколько основных принципов блокирования в СУБД Oracle, незнание которых может привести к возникновению ошибок в приложениях.

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

Далее

Аудит действий пользователь с Oracle Apex

Рубрики : Безопасность, Программизмы, Разное

Когда ваш интерфейс разработан или только разрабатывается с помощью Oracle Application Express, возникает проблема с реализацией аудита пользовательских действий. Конечно, если у вас система небольшая, то можно обойтись реализацией записи в таблицу аудита через Apex. Однако, если у вас в системе множество таблиц, а операции над записями осуществляются в десятках различных мест, фиксацию действий пользователя проще всего вести с помощью триггеров. Триггер — это проверенный механизм, который не будет зависеть от сети и не затормозит пользовательский интерфейс. Если реализовывать аудит с помощью механизма триггеров, то все становится достаточно просто — необходимо просто повесить на те таблицы, действия с данными которых вы хотите контролировать, триггер after insert, update, delete и прописать в нем insert в таблицу аудита с указанием названия таблицы, действия, колонки, старого и нового значений.
Далее

Как сделать CLR-функцию для MS SQL

Рубрики : Программизмы

Все знают, что для MS SQL можно писать CLR-примочки. Но не все знают, как. Чтобы не лазить и не искать каждый раз, выкладываю сюда краткий мануал по тому, как это сделать.
Далее

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

Рубрики : Интерфейсы, Программизмы, Разное, Раскопки

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

Обучение построено от простого к сложному, охвачен достаточно большой материал, и, в итоге каждого курса, требуется выполнять задания средней сложности. Всю схему обучения можно увидеть на сайте, что очень помогает сориентироваться. Так же, в академии есть три вида обучения, что позволяет подобрать метод обучения на любой вкус.
виды обучения
Сами задания построены из сочетания теории и практики. В каждом новом задании используются приемы, которые были изучены ранее, что позволяет закрепить уже изученное. Результат видно сразу, так как окно с результатом отображается на той же странице.
вид заданий
Видно, что разработчики постарались на славу. Очень хотелось бы видеть такие проекты не только по html и css. Я понимаю, что реализовать такое обучение по какому-либо прикладному языку будет сложнее, но учиться в таком режиме было бы легко.