Виртуальная песочница (тм)

Tuesday, June 12, 2012

How to solve a problem with Java?

You have a problem. You decide to solve it with Java. Now you have Problem, ProblemImpl and ProblemFactory. Read more...

Thursday, May 31, 2012

Tuesday, April 10, 2012

Недокументированная возможность Google.Translate

1. Открыть ЛИНК.
2. Сделать погромче.
3. Нажать кнопочку "прослушать".

P.S. Если вам понравилось это, вам также может понравиться это. :) Read more...

Wednesday, April 4, 2012

Private Cloud vs Data Center

Read more...

День веб-мастера, День Интернета

4.04



День вебмастера (4 апреля) - негласный праздник, который отмечают все вебмастера мира. Истоки этого праздника лежат в особой дате 4 апреля (4.04), которая ассоциируется с самой распространенной ошибкой 404, о которой знает каждый вебмастер и с которой борется. Этот праздник пока неофициальный, но из года в год становится все популярнее.

Помимо этого у истоков праздника лежит святой Исидор Севильский, который считается покровителем интернета.
/Wikipedia/

Его считают первым энциклопедистом, который оказал значительное влияние на историю Средних веков. Поэтому во многих странах мира праздник Сети отмечается 4 апреля — в день преставления святого Исидора Севильского. В 1998 году День Интернета санкционирован папой Иоанном Павлом II.
/Wikipedia/

Read more...

Thursday, March 29, 2012

How many zeros are there at the end of 123456789! or how does a Java developer get a job in Munich

Step #1. The Job Listing


Step #2. The Job Ad

Все детали на
{Number of zeroes at the end of 123456789!}.com
en.wikipedia.org/wiki/Factorial

Step #3. The Problem
Find the number of zeroes at the end of 123456789!

Step #4. The Solution

 01 public class FactorialTrailingZeros {
02 public static void main(String[] args) {
03 int n = Integer.parseInt(args[0]);
04 double d = n;
05 int z = 0; // zeros
06 while (d>1) {
07 d /= 5.0;
08 z += (int)Math.floor(d);
09 }
10 System.out.println(n + "! has " + z + " trailing zeros");
11 }
12 }


Step #5. The Prize




Home

Welcome at Ravensburger Digital

We are a new company of Ravensburger Group, internationally well-known for its games, puzzles and books. Our aim is to develop Ravensburger products for all major digital platforms, as well as creating innovative new product lines that fit with our brand and core values. This includes online & social platforms, PC games and mobile games & apps.

The quality that makes our games, puzzles and books stand out, will also set the standard for our digital products: high-quality entertainment for the whole family.



Read more...

Friday, February 17, 2012

База данных как Крепость



База данных как Крепость

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

Огромная популярность методологий гибкой разработки привела многих к мысли, что приложения можно (и даже предпочтительно!) проектировать по ходу работы. Эпоха предварительного написания сложных, исчерпывающих технических спецификаций ушла навсегда! Новая школа призывает поставлять продукт рано и часто. Одна строка эксплуатируемого кода полезнее 10 строк у вас в голове. Звучит слишком хорошо, чтобы быть правдой... во всяком случае в том, что касается данных.

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

Надежная модель данных - это такая модель, которая гарантирует безопасность сегодняшних данных и может расширяться для данных завтрашних. Гарантировать безопасность означает обеспечить неуязвимость для ошибок, которые все равно (сколько бы усилий вы ни приложили) проникнут в вечно изменяющийся прикладной уровень; поддерживать ссылочную целостность данных; задавать ограничения предметной области везде, где они известны; выбирать подходящие ключи, которые помогут обеспечить ссылочную целостность и соблюдение ограничений. Обеспечить расширяемость означает правильно нормализовать данные, чтобы модель данных можно было легко дополнить новыми архитектурными уровнями, не прибегая к использованию всевозможных лазеек и обходных путей.

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

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

Дэн Чак (Dan Chak) - директор по разработке ПО в CourseAdvisor Inc., компании Washington Post. Является автором книги "Enterprise Rails" (O'Reilly)

Из книги "97 Things Every Software Architect Should Know: Collective Wisdom from the Experts"

Read more...