прежде всего интересует юзабилити при чтении на 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()); //А так нет, хотя ожидалось
}
}
В Java есть подстановочные типы (wildcard type) и обобщенные классы (generic class). Первые выглядят примерно так <? [extends| super someClass]>, а вторые так <T [extends someClass]>.
По ходу у меня возникло несколько вопросов: 1) Насколько я понял из книжки Хорстмана они вообщем дублируют друг друга, позволяя писать независимый от типа код. Но не ясно какие у них отличия и в каких случаях лучше использовать подстановочные типы, а в каких обобщенные классы. 2) Зачем в случае подстановочных типов введены ограничения на супертипы <? super someClass> и подтипы <? extends someClass>, почему не реализовано аналогично "восходящему преобразованию" в обобщенных классах <T [extends someClass]> (т.е. почему нельзя читать и писать одной конструкцией)? 3) В разных изданиях Хорстманн описывает разное поведение подстановочных типов с ограничением на супертипы
>>-----Цитата---->>
For example, Pair<? super Manager> has methods
void setFirst(? super Manager)
? super Manager getFirst()
The compiler doesn’t know the exact type of the setFirst method but can call it with any
object of type Manager, Employee, or Object, but not a subtype such as Executive.
<<-----Цитата----<<
Это противоречит его более раннему изданию, где в setFirst можно передавать Manager и Executive, но не их супертипы.
Одновременно у Эккеля аналогичная цитата:
>>-----Цитата---->>
the argument is now a List<? super T>, so the List holds a specific type that is derived from T; thus it is safe to pass a T or anything derived from T as an argument to List methods.
<<-----Цитата----<<
Кому, собственно верить? 4) Какая практическая польза от неограниченных подстановочных типов <?>? Я пока не вижу никакой, кроме проверки на null: с ними нельзя выполнять никаких других операций.
Тут много вкусного. Так как Ъ нервничают, то, вкратце, суть такова, что взяли за коки тех, кто под видом защиты авторов занимался коллекторской деятельностью. Типа нашего Никиты ван-Процента. UPD Больше раскрыл тему iBliss в скоем комменте.
12 мая 2011 года вышла в свет первая версия языка программирования для .Net/Mono Nemerle 1.0.
В состав инсталлятора входит:
• Компилятор командной строки ncc.exe Nemerle 1.0 для .NET 2–3.5 и Mono 2.x.
• Модуль интеграции с IDE Microsoft Visual Studio 2008.
• Nemerle Express Edition — отдельная IDE на основе Microsoft Visual Studio Shell 2008 Isolated. Данная версия не требует наличия коммерческой версии Microsoft Visual Studio 2008.
• Стандартная библиотека Nemerle и стандартная библиотека макросов.
• Набор дополнительных макробиблиотек — Nemerle Power Pack
• Компилятор в виде .NET-компонента (Nemerle.Compiler.dll).
• Плагин к компилятору позволяющий компилировать файлы C# 4.0
via
Есть у меня несколько задач, работающих как GUI. Было бы кошерно перевести их под веб. Но опыта веб разработки не имею. Постоянно работаю с python и, поменьше, с java. Тратить время на всякие php/ruby не хочу.
С чего лучше начинать в этом случае. Каков вообще минимальный багаж знаний необходим для вебни?
Мигель де Иказа (Miguel de Icaza) в своём блоге рассказал о планах включения недавно открытого языка программирования F# в состав Mono. Кроме того, начата работа над F#-плагином для MonoDevelop. На данный момент плагин умеет автодополнение, подсветку ошибок и документацию по параметрам.
Язык программирования F# (компилятор и основные библиотеки), разрабатываемый компанией Microsoft и работающий под .NET и Mono, опубликован под лицензией Apache 2.0.
Загрузить F# можно отсюда, прочитать спецификацию — здесь.
Начал играться с Зимброй и столкнулся с тем, что не могу ни отправить, ни принять почту. Что есть:
Зимбра на убунте 8.04 в VirtualBox-е.
В bind-e на DNS-сервере MX-запись вроде есть:
zimbrasrv A 10.8.58.203
MX 15 zimbrasrv
mail.zimbrasrv CNAME zimbrasrv
По крайней мере виртуалке пингуется по имени, вывод nslookup -type=MX zimbrasrv
Server: 10.1.0.1
Address: 10.1.0.1#53
zimbrasrv.ltava.plant mail exchanger = 15 zimbrasrv.ltava.plant.
короче, эта срань
start msinfo32 /categories =Resources+ComponentsStorage+ComponentsDisplay /report "report.txt" собирает и отображает данные о конфигурации системы в текстовый файл. Только этот файл не получается прочитать под линуксом ничем, кроме вайновского нотепада. Хотя под виндой блокнот тоже нормально открывает. Что там за кодировка?