После апгрейда убунты с 10.04 на 12.04 возникла проблема с CDMA-модемом: wvdial дозванивается, получает ip, но при попытке использования интернета получается облом - даже пинги никуда не ходят. Конфигурационные файлы не менялись. В тоже время через network manager все работает. У кого какие идеи?
По наводке kouzdra прочитал «Оружие победы» Грабина. Похоже, лучшая книга за год. Немного процитирую других, кто также открыл ее для себя:
По идее, книга представляет собой воспоминания руководителя артиллерийского КБ Василия Грабина об опыте разработки орудий в 30-х - 40-х годах прошлого века. На самом же деле, это сжатый ознакомительный курс по Project Management. Я работаю в компании, занимающейся совершенно другими вопросами (САПР для микроэлектронной промышленности), да еще и не отечественной, но вижу, что проблемы не изменились.
Необходимость не просто выполнения КД на продукт с учетом производственных возможностей.
Необходимость совершенствования технологии производства не только для удешевления продукции или повышения объема выхода, но и для высвобождения ресурсов. Сюда же повышение технологичности продукта.
Необходимость постоянного ведения перспективных разработок и собственного анализа возможных требований на продукт.
Необходимость раннего прототипирования и тестирования.
Упомянуты даже мелочи, вроде аггрегирования (недавно злобно хихикал, увидев, как устроен современный Lexus - как будто время вспять обернулось, куча ненужных связей, из-за чего очень трудно обслуживать). Не изменились проблемы, но не ушла и инертность руководства, непонимание необходимости их решать в обязательном порядке. Все те же грабли, хотя решения известны.
Надо сказать, что по ходу чтения у меня постоянно возникали аллюзии на известные в программировании практики типа DSL или UNIX WAY. Отдельно доставляет, когда Грабин, как руководитель не раз ложил на мнение руководства, доводя ситуацию, когда его идеи и их реализации никому не были нужны - ни военным, ни производственникам, а его орудия успешно громили противника, официально даже не будучи принятыми на вооружение и запущенными в производство. ЗЫ: кому интересно, можно пообсуждать у меня в ЖЖ (см. профиль)
На днях издательство «Символ-Плюс» выпустило русский перевод книги «ANSI Common Lisp». Автор книги — Пол Грэм (Paul Graham), который известен как создатель системы Viaweb, эссеист, автор других книг по Lisp. На данный момент имеется только бумажный вариант книги.
Проблема. Какие моноширинные шрифты (ttf) нормально выглядят при печати на 9-ти игольчатых матричных принтерах? Проблема в том, что отпечатанный на них документ передается по факсу, а там цифры (0, 6, 8) смазываются.
Собственно сабж. Важно, чтобы прямо в ней можно было подредактировать уровень яркости/контрастности. Отсутствие этого требования в SimpleScan и вынудило написать сюда.
Сейчас у меня на столе два монитора LG E2241S-BN (21.5") и Philips 206V3LSB (20"). Оба хороши. Вот не знаю, какой себе оставить. 21.5" широковат и это единственная претензия, которая у меня к нему есть. К 20" другая претензия, на VGA-кабеле черный немного сероват, но это, вроде, лечится DVI-кабелем. А LG DVI не умеет. Так что помогите определиться. На всякий случай тут можно сравнить ТТХ мониторов.
прежде всего интересует юзабилити при чтении на kindle 3 - не мешает ли клавиатура? А при чтении в альбомном режиме?
насколько удобные кнопки на kindle 4? Удобно ли пользоваться ними в альбомном режиме? Что удобнее kindle 3 или 4?
пользование словарями - удобно ли пользоваться виртуальной клавиатурой или предпочтительней хардварная?
kindle 3 хорош тем, что в нем 4 гига памяти и на него написали как кучу хаков, так и есть альтернативные прошивки. Насколько хорош в этом плане kindle 4? Если что я его хакать не планирую до окончания гарантии.
3 доступных гига, конечно же лучше одного, но насколько критичен это ограничение 4-го киндла? (kindle touch брать не хочу - он не умеет альбомный режим* и сама идея возить пальцем мне не нравится)
Собираюсь покупать читалку, и, по ходу образовалась пара вопросов. 1) По интернету ходят слухи, что для детей wi-fi не самая полезная штука. Учитывая, что у меня дите еще дошкольное, я не прочь wi-fi отключить. В Киндлях и НукТучах wi-fi отключается? 2) Высокие частоты тоже, говорят, штука не очень хорошая для здоровья. В принципе, там мощность маленькая, но мы, в общем-то, держимся за проц. Это может быть вредным?
Вот думаю, что лучше взять Nook Touch или Kindle. Очень важна поддержка словарей из коробки, а Nook Touch их не умеет. Но, с другой стороны, Киндл нищий - только 2 гига памяти, доступной только гиг, мало весьма. А Киндл туч не умеет поворачивать в альбомный вид и клавиатура нерусифицирована. А возится с перепрошивками == потерять гарантию да и лениво мне. Кто что скажет?
Надо генерить отчеты. Требования следующие:
1) В большинстве случаев результат подойдет в виде PDF. Но есть особые случаи, когда отчет надо править руками. Их мало, но они важны. В этом случае надо выгружать в текстовый процессор или электронную таблицу и там править.
2) Чтоб нетривиальную логику отчета можно было вынести в java (или jython, как вариант) и уже оттуда формировать весь или часть отчета.
Что посоветуете? Я обдумывал odftollkit или POI, но первый не подойдет т.к. файл с отчетом может уходить за пределы предприятия и несть ненулевая вероятность, что его не откроют, а надеяться на сознательность конечных юзеров не хочу. С POI тоже, кажется, есть проблемы: насколько я помню, ОпенОфис имел проблемы с корректным открытием сгенерированных ним документов. А у нас ОО много.
ситуация такова: у жены на работе меняется банк, в котором получают зарплату. Новый банк выдает зарплатный комплект - окредитку, сберегательную книжку и, собственно, зарплатную карточку.
Нам кредитка и «сберкнижка» не нужны - удовольствие не бесплатное и абсолютно нам не нужное, кроме того обязывает к.
Банк, со своей стороны, отказывается выдавать только зарплатную карточку, аргументируя своими внутренними правилами.
Насколько я знаю, по ураинским законам навязывание такого рода услуг незаконно.
Собственно вопрос: как лучше разрулить такую ситуацию, куда писать кляузы и т.д.?
Значится так. Есть уже лет шесть работающая морда к СУБД - программа для всякой там бухгалтерии и т.д. и т.п. Написана на связке Tcl/Tk/Python. Выглядит она примерно так. Кроме того, что она редактирует данные в базенке, она еще осужествляет разную печать посредством генерации xls-документов. Все это крутится на винде и на линухе, причем, у некоторых, в терминалках.
По ряду причин я хочу ее перевести под java. Описание интерфейса и логика у меня жестко разделены, потому надо будет переписать только движок, и 90% кода подхватится jython-ом.
Теперь перейдем к сабжу. На сегодня имеется 2 работающих подхода: традиционный гуи и web-морда. Между ними и выбирается, причем, накладывается ряд требований:
Поведение программы не должно отличаться от уже существующего. Например, все кейбиндинги, должны подхватится. В случае с веб-мордой я не уверен, что они не законфликтуют с кейбиндингами браузера.
Критичны диалоги с выпадающими табличками или деревьями, такие как список валют на сриншоте. Записей в такой табличке может быть много, до сотет тысяч, потому для такой таблички реализовано кеширование, и фильтр с сортировкой. Можно ли подобное реализовать на веб-морде? Просто ли это?
Как быть с печатью? На данный момент пользователь просматривает и печатает из OO или MSOffice. Использование такого формата существенно облегчает жизнь и мне, и пользователю. В случае с ГУИ юзер сразу видит готовый документ и ему надо только нажать кнопку «Печать». В случае с веб-мордой надо еще и отвечать на вопрос браузера о сохранении или открытии документа. Это не упрощение, а усложнение для юзера и он воспримет такое в штыки. Выставить действием по умолчанию тоже не получится, т.к. у разных пользователей разные привычки на сей счет.
Важно быстродействие. На данный момент прога бодро работает на доживающих свой век третьих пеньках. И даже на паре машин, привязанных 98-й виндой к станочкам, как-то крутится. Я не уверен, что решение на базе веб-морды будет бодро крутится на тех же третьих пеньках. Например, Zimbra на таких машинах ведет себя очень грустно.
Развертывание ГУЯ уже отработано и много лет с этим не возникает проблем. В случае с веб-мордой могут быть накладки. Например, та же Zimbra не работает с популярной весьма Оперой и для ее функционирования нужна достаточно мощная железка.
На данный момент я решил выбрать в качестве ГУИ и реализовать его на SWING. Тем не менее я хочу рассмотреть альтернативы. Особенно web-морды.
В продолжение этого. Написал пример, чтобы понять разницу между обобщенными типами (generics, <T>) и подстановочными выражениями (wildcards, <?>)
Вопрос №1: почему List<Child> pl6 = makeList1(new Grandson()); ругается на несовместимые типы? Ведь в сигнатуре makeList1 уже прописан Child. Или такая конструкция хотя и задает ограничения на тип, но позволяет пихать в параметризированный контейнер только одинаковые типы List<Child> - только Child, в List<Grandson> только Grandson, но не позволяет создавать List<Parent>? Вопрос №2: конструкция List<Child> pl2 = makeList(new Grandson(), new Child()); работает, хотя, насколько я знаю, не должна. может дело в сигнануре makeList()? Вопрос №3: какие ереси и идеологически неверные косяки я допустил в примере?
Собственно сам пример:
import java.util.*;
class Parent{}
class Child extends Parent{}
class Grandson extends Child{}
class GenericsVsWildcards{
static <T> List<T> makeList(T ... args){
List<T> result = new ArrayList<T>(Arrays.<T>asList(args));
return result;
}
static <T extends Child> List<T> makeList1(T arg){
List<T> result = new ArrayList<T>();
result.add(arg);
return result;
}
public static void main(String[] args){
/********* Wildcard tests ********/
//Только указанный тип и наследники
List<? extends Child> pl = new ArrayList<Child>(Arrays.<Child>asList(
//new Parent(), //Низзя
new Child(),
new Grandson()
));
//Получается, допустимы указанный тип и наследники
List<? super Child> pl1 = new ArrayList<Child>(Arrays.<Child>asList(
//new Parent() //Тоже низзя, Эккель был прав
new Child(),
new Grandson()
));
/********* Ceneric tests ********/
//Так работает, хотя, в теории, не должно. Может быть из-за объявления Т не массивом?
List<Child> pl2 = makeList(new Grandson(), new Child());
//A так - нет
//List<Child> pl3 = makeList(new Grandson());
//List<Child> pl4 = makeList( new Child(), new Grandson(), new Parent());
List<Child> pl5 = makeList1(new Child()); //Работает, как и ожидалось
//List<Child> pl6 = makeList1(new Grandson()); //А так нет, хотя ожидалось
}
}