LINUX.ORG.RU

Сообщения kovrik

 

Сколько у вас рабочих часов получается в неделю?

Форум — Talks

Собственно, такой вопрос.
Читал на хабре из песочницы статью, где чел описывает свое собеседование в Яндекс (http://habrahabr.ru/sandbox/37783/). Его спросили, готов ли он тратить 32 часа в неделю, он ответил, что это будет трудно...O_o
Это получается ~6.5 рабочих часов в день. Я посчитал, у меня выходит минимум 40 часов в неделю (чаще больше).
А сколько у вас выходит?

kovrik
()

[java] безопасность jdbc password'а

Форум — Development

Привет.
Есть веб-приложение, написанное на java. Оно подключается к базе. Юзернейм и пароль оно берет из класса Configuration. Как защитить пароль к базе? Ведь, допустим, злоумышленник получил .jar'ку, запускает декомпилятор (например, jd-gui), скармливает ей свой jar'ку и спокойно узнает пароль.
Если пароль зашифровать, то где-то надо будет хранить пароль для расшифровки - его можно будет узнать аналогичным образом.
Есть ли решение?

 

kovrik
()

Diaspora*

Форум — Talks

Прислали инвайт в Диаспору...

На первый взгляд - распределенный тормознутый и жутко глюкавый клон G+...
Кому-нибудь еще прислали? Как впечатления? Думаете, у проекта есть хоть какое-то будущее?

kovrik
()

[sql] вопрос

Форум — Development

Здравствуйте!
Есть таблица, в ней поля id, name, A и B.
Можно ли сделать как-нибудь следующее:
Для каждого name берем все записи в которых поле B имеет значения N1,N2..Nm, суммируем значения по полю A, добавляем сумму к полю с B=M, и удаляем все поля с B=N1..Nm?
Пример:
id name A B
1 test 2 1
2 test 3 1
3 test 7 1
4 test 5 2
5 test2 6 1
6 test2 8 2

N1=1, M=2.
В результате должно получится:

id name A B
4 test 17 2
6 test2 14 2
?

Заранее спасибо!

 

kovrik
()

[java] servlet error handling

Форум — Web-development

Здравствуйте!
Есть веб-приложение, состоящее из 2х частей:
-внутренняя (а-ля админка с jsp страничками)
-внешняя (выхлоп сервлета)

Нужно сделать следующее:
Если возникает error/exception во время работы с внутренней частью, то пускай выдает stacktrace.
Если возникает error/exception во время работы с внешней частью (т.е. кто-то извне делает запрос к сервлету, который должен вернуть сгенерированный html-код, но возникает ошибка), то сервлет не должен выдавать stacktrace, а должен выдавать какой-нибудь кусок html-кода (например, с надписью error).

Если в web.xml указываю:

    <error-page>
        <exception-type>java.lang.Throwable</exception-type>
        <location>/error.jsp</location>
    </error-page>
то правило работает для всего приложения. А нужно, чтобы только для конкретного сервлета...

 

kovrik
()

[sql] вопрос

Форум — Development

Здравствуйте!
Помогите, пожалуйста, с SQL'ем.
Есть 2 таблицы (A и B). У A есть foreign key на поле X таблицы B.
Сейчас, если попытаться вставить в таблицу А запись, то может случится «foreign key constraint fails».

Задача стоит такая: производится запись в таблицу A. Поле X имеет вид <что-то>#<суфикс>. Сейчас такая запись не пройдет, если <что-то>#<суфикс> нет в таблице B.
Требуется, чтобы такое поведение и осталось, за одним исключением - если в записи присутствует #<суфикс>, то делается проверка на <что-то> (без #<суфикс>) в таблице B, и если такая запись есть, то разрешать вставлять в таблицу A. Если #<суфикс> нет, то делается обычная проверка.

Foreign key, я так понимаю, надо убрать. Но тогда куча левого вставляться будет. Stored Procedures? Или как лучше сделать?

PS: сумбурно, извините

 

kovrik
()

[java] lazy initialization

Форум — Development

Здравствуйте!
Как в java правильно сделать lazy initialization?

Сначала было сделано так:

public class ServicesFactory {
    private static ServicesFactory instance = null;
    private static ImagesService imagesService = null;
    
    public static synchronized ServicesFactory getInstance() {
        if (instance == null) {
            instance = new ServicesFactory();
        }
        return instance;
    }
    
    public ImagesService getImagesService() {
        if (imagesService == null) {
            imagesService = new DefImagesServiceImpl();
        }
        return imagesService;
    }

}
PMD ругался на incorrect lazy initialization.

Сделал так:
public class ServicesFactory {
    private static ServicesFactory instance = null;
    private static ImagesService imagesService = null;
    
    public static synchronized ServicesFactory getInstance() {
        if (instance == null) {
            instance = new ServicesFactory();
        }
        return instance;
    }
    
    public synchronized ImagesService getImagesService() {
        if (imagesService == null) {
            imagesService = new DefImagesServiceImpl();
        }
        return imagesService;
    }

}
Ругаться перестал.

Но, по ссылке http://en.wikipedia.org/wiki/Double-checked_locking написано:
// Correct lazy initialization in Java
// This relies on the fact that inner classes are not loaded until they are referenced.
@ThreadSafe
class Foo {
    private static class HelperHolder {
       public static Helper helper = new Helper();
    }
 
    public static Helper getHelper() {
        return HelperHolder.helper;
    }
}
Как все-таки по-правильному?

 

kovrik
()

[java] утечки памяти?

Форум — Development

Здравствуйте!
Есть веб-приложение(jsp) с сервлетами. Работает на удаленном сервере

java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6.1) (6b16-1.6.1-3ubuntu3)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
Приложение работало, работало, все хорошо. Потом ВНЕЗАПНО упало. Админ говорит, что иногда оно сжирает весь проц и всю память - и умирает.
Утечки?
И еще такая штука:
Смотрю на выхлоп top - процесс жрет 2.8% памяти.
В Tomcat Web Application Manager'е перезапускаю приложение. Начинает жрать 3.2%. Перезапускаю - 3.4%. И так до 5.4% уже догнал. Это что такое?

 

kovrik
()

[mysql] вопрос

Форум — Development

Здравствуйте!
Такой вопрос: смотрю логи парсера, там попадаются записи вида:
SQL ERROR: Cannot add or update a child row: a foreign key constraint fails (temp file operation failed)

«a foreign key constraint fails» - правильно понимаю, что просто не может найти запись в другой таблице (которая является ключем для этой таблицы)?
«temp file operation failed» - а что это значит?

 

kovrik
()

Перчатки резиновые + ток

Форум — Talks

Здравствуйте, такой вопрос: обычные желтые резиновые перчатки для мытья посуды - проводят электрический ток? Я, конечно, понимаю, что для этого дела проще купить специальные перчатки...Просто стало интересно именно про эти.

kovrik
()

public key & signature

Форум — Security

Здравствуйте!
Расскажите, пожалуйста, про публичные ключи и цифровые подписи. Допустим, хочу иметь на руках пару private key-public key и цифровую подпись(для шифрования + подписи).
Как?
S/MIME, X.509, PGP-key?
Где можно получить (у центра, а не на коленке сгенерировать)?

kovrik
()

[java] email

Форум — Web-development

Здравствуйте!
Помогите с отправкой email'ов с аутентификацией.
В инете нашел много примеров, но ни один не рабоает, вылетает ошибка:
javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/mail/Authenticator

Почему не может найти класс? Что забыл подключить?

 

kovrik
()

[html] 2 вопроса

Форум — Web-development

Здравствуйте!
Не очень шарю в html, поэтому спрошу у вас.
Нужно сделать полоску с баннерами. Т.е. таблица - 1 строка и N столбиков. В каждом столбике отображается баннер (картинка) + текст под картинкой.

Вопросы:
1. (самое главное) Как сделать так, чтобы таблица была ВСЕГДА фиксированного размера? Задаю width, делаю <col width=...>, делаю style=«table-layout: fixed» - все равно, когда надпись под баннером больше определенной длины - все разъезжается, расстояния большими становятся (хотя визуально все поместилось бы). Как сделать, чтобы размеры были всегда фиксированные - расстояния между баннерами, ширина ячейки под баннер и тд.? Т.е. пускай даже не влезает - чтобы обрезалось, но не раздвигалось?

2. Как лучше делать подпись под картинкой? Сейчас делаю просто <br>'ом - надпись переходит в ячейке на следующую строку и оказывается под картинкой. Как сделать лучше?

Спасибо!

 

kovrik
()

cyanogenmod и htc legend

Форум — Mobile

Здравствуйте!
Что-то уж прямо нахваливают этот цианогенмод.
Возникли следующие вопросы (гуглить лень, если честно): 1. Какие подводные камни? Минусы?
2. Во время перепрошивки что удаляется? Список контактов, смски, галерея ??? Или все сохраняется?
3. Стоит ли игра свеч?

kovrik
()

Юридический вопрос

Форум — Talks

Здравствуйте!
Возник вопрос юридического характера (в Talks'ах же можно?).
У знакомой в ходе следствия был изъят ноутбук. Во время изъятия никаких документов на него не требовали - просто забрали и все. Сейчас говорят, что можно ноут забирать, но теперь ВНЕЗАПНО требуют на него документы. Ноутбук был куплен года 3 назад, может документы уже утеряны. Что делать, если документы не найдутся? Вправе ли они требовать их?
Спасибо

kovrik
()

[perl] timezone, запутался

Форум — Development

Здравствуйте!
Нужно посчитать epoch-time к началу текущего дня (00:00:00). Проблема в том, что он, судя по всему, как-то не так учитывает часовой пояс (GMT+4). Т.е. у него день перескакивает не в 00:00 по локальному, а в 04:00.

Код:

#!/usr/bin/perl

use strict;
use warnings;
use POSIX;

my $time;
my $day_sec;
my $tz;
my $day_start;
my $time_shift;
my $epoch;

$time=time();
print "Time: $time\n";
$day_sec=$time % (3600*24);
$tz=strftime("%z",localtime($time));

if ($tz=~/^\+(\d\d)(\d\d)$/) {
  $time_shift=$1*3600+$2*60;
};

$day_start=$time-$day_sec-$time_shift;

print "$1\n";
print "$2\n";
print "Time: $time\n";
print "Day_sec: $day_sec\n";
print "Timezone: $tz\n";
print "Timeshift: $time_shift\n";
print "Day start: $day_start\n";
Что-то я туплю, как исправить?

 

kovrik
()

chromium бага?

Форум — General

Обновил сегодня до 15.0.853.0 (Developer Build 96745 Linux) Ubuntu 11.04 и ВНЕЗАПНО перестала работать кнопка закрытия вкладки (SIC!)...т.е. этот крестик даже как кнопка не воспринимается - просто нарисован и все. В google-chrome нормально все. ЧЯДНТ?

kovrik
()

[java] Вопрос

Форум — Development

Читаю тут статейку http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html , в которой рассказывается про то, что interface inheritance предпочтительнее implementation inheritance. В общем-то, статья занятная, имхо, но заинтересовал следующий момент. Автор пишет

For example, an object's instance variables (member fields that aren't constants), should always be private. Period. No exceptions. Ever. I mean it. (You can occasionally use protected methods effectively, but protected instance variables are an abomination.) You should never use get/set functions for the same reason—they're just overly complicated ways to make a field public.

Обычно рекомендуют делать через сеттеры и геттеры - а здесь категоричное Нет. Что имеет в виду автор?

И вообще, что скажете про статью?

 

kovrik
()

Проблема с парсингом логов

Форум — Web-development

Здравствуйте!
Возникла проблема с парсингом логов - некоторые данные почему-то теряются и не попадают в базу.
Как все сделано:
Запущен nginx. Делается запрос вида

hostname.ru/s?e=1&r=2&p=3&u=4
Все такие запросы попадают в access.log
Затем, раз в 10 минут выполняется скрипт:
#!/bin/sh
# date (day)
#DATE=`date '+%d%m%y'`
DATE=`date --date='next day' "+%d%m%y"`

# date (with minutes)
DATEM=`date --date='next day' "+%d%m%y_%H%M"`

# rename logs file to '<filename>.<DATEM>'
mv /var/virtual/hostname.ru/logs/access.log /var/virtual/hostname.ru/logs/access.log.$DATEM

# reload nginx
/etc/init.d/nginx reload

# parse logs file
/var/virtual/hostname.ru/cron/parser_new.pl </var/virtual/hostname.ru/logs/access.log.$DATEM >/var/virtual/hostname.ru/logs/parser_new.log

# add DATEM-file log to the end of the DATE-file log
cat /var/virtual/hostname.ru/logs/access.log.$DATEM >> /var/virtual/hostname.ru/logs/access.log.$DATE

# remove temporary file
rm /var/virtual/hostname.ru/logs/access.log.$DATEM

Т.е. происходит следующее:
- файл с логами переименовывается - к названию добавляется дата с указанием числа,месяца,года,часа,минут.
- перезапускается nginx (и создается новый access.log)
- запускается парсер на файл с 10-минутными логами
- логи за 10 минут копируются в общий файл логов (который в конце дня bzip2'ается)
- файл 10-минутных логов удаляется

И так каждые 10 минут.

Как работает скрипт парсера (Perl):
1. построчно считывает файл логов
2. регексами разбивает строку - отбирает значения r,p,e,u
3. пишет в базу связку u-r

$query="INSERT INTO p${p}r (u,r,timestamp) VALUES ('$u','$r','$time') ON DUPLICATE KEY UPDATE timestamp='$time'";
$dbh->do($query);
if ($dbh->err()) {
    Debug("($query) SQL ERROR: $DBI::errstr\n");
    next;
};	
4. записывает r-p-e в хеш-таблицу:
if (!defined($VALUE{$r}{$p}{$e})) { $VALUE{$r}{$p}{$e}=0; };
$VALUE{$r}{$p}{$e}++;
5. затем собранные данные пишет в базу:
foreach $r (keys %VALUE) {
  foreach $p (keys %{$VALUE{$r}}) {
    foreach $e (keys %{$VALUE{$r}{$p}}) {
      print "r=$r p=$p e=$e $VALUE{$r}{$p}{$e}\n";
      $query="INSERT INTO table (p,e,r,value,timestamp) VALUES ('$p','$e','$r','$VALUE{$r}{$p}{$e}','$day_start') ON DUPLICATE KEY UPDATE value=value+$VALUE{$r}{$p}{$e}";
      $dbh->do($query);
      if ($dbh->err()) {
        Debug("($query) SQL ERROR: $DBI::errstr\n");
        next;
      };
    };
  };
};

Проблема:
Теряются некоторые запросы.
Причем, связка u-r записывается в базу ВСЕГДА (парсер, шаг 3). НО на шаге 4, судя по всему, почему-то не все записывается в хеш-таблицу (если верить print «r=$r p=$p e=$e $VALUE{$r}{$p}{$e}\n»;).
Если же потом, например, повторно делаю запросы - тогда они вполне могут пройти и попасть в базу.
Получается, что иногда считается, иногда нет. Где может быть косяк?

PS: Названия немного поменял.
PPS: Варианты «Да у тебя одни костыли, надо все по-другому с нуля переписать» не предлагать.

kovrik
()

[jsp] i18n

Форум — Web-development

Здравствуйте!
Есть проект - java, jsp, servlets и тд.
ВНЕЗАПНО понадобилось добавить поддержку мультиязычности.Как делать эту самую i18n? Какие-то типовые решения? Инструменты?
Спасибо!

 

kovrik
()

RSS подписка на новые темы