Вчера я писал про новую IDE для Ruby. Удивительно что все разрабочики живущие на Windows не используют ее. По сравнению с ней RoRED мягко говоря похож на блокнот. Про Scite - я молчу, сравнивать тут не с чем. Оказвается в Ride Me есть и навигация на метод, открытие фаила по имени и пр. Одним словом, есть почти вся функциональность Visual Studio 2002. Присутствует нормальный интерфейс к script/generate, старт веб-сервера, прогон тестов. Однако кое-чего не хватает:
1. Сниппетов - есть управления ими, но нет клавиши которая их вставляет (странно, но факт).
2. Отсутсвует автодополнение контрол-пробел не работает - а это совсем не приятно.
3. Нет нормального отладчика.
В результате я решил написать небольшой плаггин, который по крайней мере будет включать в себя фиксы для #1 и #2. Потратив пару часов - у меня получилось что-то похожее на желаемое - не идеально, но жить можно.
Если кто-то хочет посмотреть что из этого получилось - кидайте в комменты - выложу с исходниками на C#.
В дальнейшем планирую сделать парсер для Ruby ( нормальный с помощью antlr), сделать нормальный автокомплит, парсер для require "file.rb" (содержимого ссылок).
Под нормальным автокомлитом я подразумеваю следующее:
def test_method1
Message.| #тут получить список статических методов класса Message (разрешимо).
end
def test_method2
user = User.new()
....
user.| # здесь по-идеи можно сделать автокомплит, т.к. тип известен всегда (User)
end
def test_method3 my_arg
my_arg.| # тут его уже не сделать в принципе, только если искать ссылки и пытаться найти инициализацию объекта который оказывается в качестве параметра.
end
def test_method4
a = "hello" #тип - String
test_method3 a # по-идее теперь в методе test_method3 можно предугадать тип параметра my_arg, однако это уже не тривиально.
end
Еще бы хотелось иметь рефакторинг.... rename, выделить интерфейс, метод и пр...
Thursday, June 28, 2007
Wednesday, June 27, 2007
Очередная IDE для Руби
Наткнулся на очередную адешку для руби. Из того что я видел на настоящий момент, я использую только Scite и RoRED. Несмотря на всю неизощеренность первого и глючность второго, пришиходиться жить с ними. Не спорю: для мелких изменениях в отдном фаиле - логичные выбор Scite - маленький шустрый, есть автодополнение и подстветка. Все. В RoRED есть сниппеты (аналог вижуа студийным). Но нет даже элементарного комплита. Не радует. Жить можно, но очень скромно.
Вот наконец нашел нечто, что смело можно назвать IDE - Ride Me:
- Полностью написан на .NET 2.0
- Использует текстый компонент от известной .NET IDE - #Develop
- Поддерживает Rails
- Интегрируется с Rake'ом
- Старт-Стоп проекта из IDE
- Есть API для создания плагинов (далеко не полный)
- Есть пара плагинов (SVN интеграция и еще один)
- Сурцы лежат в SVN
- Кусок сниппетов (не работает пока)
В качестве вечернего отдыха написал небольшой плаггин, который делает автокомплит бокс со всеми словами из фаила. Ушло на это часа 2... не слишком долго. Постараюсь подогнать его под свои нужды:
1. Автокомплит (парсить весь проект)
2. Быстрая навигация по проекту
3. Студийные сниппеты.
В любом случае всегда ходел сделать свою IDE, а тут уже и движок есть.
Занятия на вечера теперь нашел...
Единственный минус - автор на это дело тихо забил.
Вот наконец нашел нечто, что смело можно назвать IDE - Ride Me:
- Полностью написан на .NET 2.0
- Использует текстый компонент от известной .NET IDE - #Develop
- Поддерживает Rails
- Интегрируется с Rake'ом
- Старт-Стоп проекта из IDE
- Есть API для создания плагинов (далеко не полный)
- Есть пара плагинов (SVN интеграция и еще один)
- Сурцы лежат в SVN
- Кусок сниппетов (не работает пока)
В качестве вечернего отдыха написал небольшой плаггин, который делает автокомплит бокс со всеми словами из фаила. Ушло на это часа 2... не слишком долго. Постараюсь подогнать его под свои нужды:
1. Автокомплит (парсить весь проект)
2. Быстрая навигация по проекту
3. Студийные сниппеты.
В любом случае всегда ходел сделать свою IDE, а тут уже и движок есть.
Занятия на вечера теперь нашел...
Единственный минус - автор на это дело тихо забил.
Page Rank увеличелся...
Теперь он уже "2" - Что не может не радовать. Однако еще есть куда рости. Так что буду старться.
Принимаю поздравления....
Принимаю поздравления....
Tuesday, June 26, 2007
Человек vs Вирусов. Как это было.
Оказывается, фаирволла (firewall) на гейте локальной сети недостаточно для обеспечения полной безопастности сети: в результате моя сеть получила троянского зверька последней модели: судя по всему попал он туда через одну из клиентских машин, через почту или дыру в браузере. При этом накачал порядка 85 вирусов и других троянов, которые начали активно рассылать спам по миру... В итоге через 4 дня работу сети полностью парализовала. Весь траффик пошел на х..й (т.е. на виагру.). Единственная машинка уцелевшая от атаки оказаль моей рабочей. На остальных вообще ничего нельзя было делать: тормозило, весь траффик стал мусором, вирусы копировались (с одной машины снял аж 190.000 копий одного и того же товарища). Самое страшно что случилось, это то что вирусы оказались новыми - сайт касперского о таких и не слышал в помине, да и других производителей тоже. Пришлось ковыряться ручками. Правда нашел умную штуку, по совету друзей: Avast! - отличная штука, к тому же бесплатная. Респект.
П.С.
За одно узнал о route, netsh, netstat -a -b и пр полезных вкусностях винды.
П.С.
За одно узнал о route, netsh, netstat -a -b и пр полезных вкусностях винды.
Thursday, June 21, 2007
Safari... Тьфу Firefox
Thursday, June 14, 2007
Баги Safari
Блин, в Сафари нашлись баги, при этом достаточно неприятные:
1. Некоторые ссылки по неизвестной мне причине просто исчезают (именно тупо изчезают: вместо ссылки с текстом видно только синие подчеркивание. см ниже
2. Не все сайты правильно отображаются (например blogspot.com)
3. Не дружит с bold-текстом.
4. Копи-пейст в текст арию Rich-текста выглядит ужастно:
ÐÐ¾Ñ Ð²Ñоде и вÑе непÑиÑÑноÑÑи
Что касается приятных особенностей:
1. Работает действительно шустро. заметно быстрее Mozilla и тем более IE
2. Есть режим "Private Browsing" - для чего и зачем и так должно быть понятно...
3. Удобный и красивый интерфейс: выкинуто все что только не могло понадобиться.
Вот вообще и все что сумел найти за день пользования. Если бы не пункт 1,3 то я бы совсем на него бы перешел. НО. Ждем окончательного релиза
2.7 10e7 пользователей рунета
Кто бы мог подумать что в рунете обитает (постоянно или иногда) аж 27.000.000 пользователей. Лично я немного удивился. Однако говорят что это так. Это больше чем 20% от всего населения (нелегалов лучше не считать). К тому же обещают за полтора года прибавить еще 48%. Я бы сказал что рынок ростет.
Хотя на мой взгляд, у него есть один хронический недостаток: никто ни за что не желает платить. Максиум - отправить СМС. Печально.
Safari под Windows XP/Vista
Wednesday, June 13, 2007
Растет Родной, Растет!
Monday, June 11, 2007
Super Massive Black Hole
Главное купить iPhone, остальное не важно
Friday, June 1, 2007
Временный творческий кризис
Прошу прощения, но у меня временный творческий кризис, так что прошу не обижаться на отсутствие новых постов. Как только появиться настроение постить - наверсатаю упущенное.
Спасибо за понимание.
П.С.
надеюсь, через пару недель feedburner не покажет "0"...
Спасибо за понимание.
П.С.
надеюсь, через пару недель feedburner не покажет "0"...
Tuesday, May 29, 2007
30 Дней - 30 Приложений
Уже почти пол года назад один зарубежный товарищ начал (и через месяц закончил) каждый день писать по одной малелькой и простой программке на C# 2.0.
Среди совсем простых, есть и достаточно интересные:
взять окно и вставить его в внутрь своего приложения. Честно признаю, я решения сходу не знаю. А есть простое шедулеры (scheduler)
Особо стоит отметить работу с воспроизведением текста (String) в виде аудопотока - судя по иерахии классов (интерфейс к стандартным возможностьм ОС), половина Windows нужна чтобы читать вслух.
Все исходники открыты, лицензия GPL + если еще полезные обертки над Windows
Среди совсем простых, есть и достаточно интересные:
взять окно и вставить его в внутрь своего приложения. Честно признаю, я решения сходу не знаю. А есть простое шедулеры (scheduler)
Особо стоит отметить работу с воспроизведением текста (String) в виде аудопотока - судя по иерахии классов (интерфейс к стандартным возможностьм ОС), половина Windows нужна чтобы читать вслух.
Все исходники открыты, лицензия GPL + если еще полезные обертки над Windows
Sunday, May 27, 2007
Blogspot лежит... опять...
Стоило с утра зайти на свой блог, как blogspot показал ошибку:
А через 20 минут уже следующую:
Просто удивительно, как ребята из гугла успевают быстро... менять вид ошибок
| Error | |
Server Error
The server encountered a temporary error and could not complete your request.Please try again in 30 seconds.
А через 20 минут уже следующую:
Blogger и Blog*Spot не доступны
В данный момент Blogger и Blog*Spot недоступны. Приносим извинения за перебои в работе.
Сведения
Blogger is undergoing brief maintenance and will return in a few minutes.
Просто удивительно, как ребята из гугла успевают быстро... менять вид ошибок
Thursday, May 24, 2007
Экспорт данных ввиде SQL Dump с сайта на Ruby
Наконец-то совершилось! Это юбилейный, сотый пост в моем блоге. не прошло и пол года с момента создания, как наступил этот юбилей. Т.е. в среднем я пишу 0.75 поста в день.. не очень много, но если вычесть выходные, то получиться ровно 1 (выходных у нас много), так что почти приближаюсь к общеинтернетовскому стандарту: 1 день - 1 пост (или больше). Ладно не буду писать оффтоп. перейду к теме поста.
Иногда, в целях быстрого бекапа и переноса данных требуется сгенерить полный дамп базы, при этом дамп должен быть в формате SQL - запустил и работает. Обычно для таких целей используют phpMyAdmin (для MySql, разумеется. Все сказанное ниже применимо только к нему). Но вот если требуется сделать это в адинистративной части? и на Ruby? тут уже copy-paste не прокатит.
Решение
В поставку стандартного MySql входит утилита mysqldump - умеет генетить то что нам надо, но вот только ей еще и параметры нужно дать правильные, да и еще и вызвать , и пот ом результ работы с диска снести...
итого имеем (работает везьде, под любой проект и ос - с этим больше всего гемморился):
require 'yaml' #Для чтения database.yaml
require 'pathname' #Для определения абсолютных путей (требуется для Unixов)
class DumpManagerController <>
def index
response.headers['Content-type'] = 'text/sql' #правильный MIME тип
response.headers['Content-Disposition'] = "attachment; filename=dump.sql" #Чтобы сразу можно было качать
rebuild_dump_file()
dump_sql_file = File.open(output_file)
dump_content = ""
dump_sql_file.each { |line|
dump_content +=line
}
dump_sql_file.close #Чистим мусор
File.delete(output_file)
render :text=>dump_content #Пишем в поток
end
protected
def rebuild_dump_file
command = build_mysqldump_command()
system command #Вызываем комманду
end
def output_file
rails_directory+"/dump.sql"
end
def rails_directory
Pathname.new(__FILE__).realpath.dirname.dirname.dirname.to_s #Главная директория рельсов
end
def build_mysqldump_command
env = ENV['RAILS_ENV'] || 'development'
database = YAML::load_file( rails_directory+'/config/database.yml')
password = ""
password = "--password=#{database[env]['password']}" if (database[env]['password'])
"mysqldump -u #{database[env]['username']} #{password} #{database[env]['database']} > #{output_file()}"
end
end
В последнем методе генерим комманду, для этого нам нужен логин, пароль и имя базы (можно еще и хост, ну ладно его пропустим, но можно было бы и настроить)
Данные читаем из конфига (благо ЯМЛ поддерживается)
Вот вообщем и все. Надеюсь будет полезно.
П.С.
Сделать в Sql Server подбную штуку штатными средствами нельзя.. потому что Microsoft думает что это никому не нужно. Приходиться мучаться и делать генераторы SQL на основе мапперов.
MySql - респект
Иногда, в целях быстрого бекапа и переноса данных требуется сгенерить полный дамп базы, при этом дамп должен быть в формате SQL - запустил и работает. Обычно для таких целей используют phpMyAdmin (для MySql, разумеется. Все сказанное ниже применимо только к нему). Но вот если требуется сделать это в адинистративной части? и на Ruby? тут уже copy-paste не прокатит.
Решение
В поставку стандартного MySql входит утилита mysqldump - умеет генетить то что нам надо, но вот только ей еще и параметры нужно дать правильные, да и еще и вызвать , и пот ом результ работы с диска снести...
итого имеем (работает везьде, под любой проект и ос - с этим больше всего гемморился):
require 'yaml' #Для чтения database.yaml
require 'pathname' #Для определения абсолютных путей (требуется для Unixов)
class DumpManagerController <>
def index
response.headers['Content-type'] = 'text/sql' #правильный MIME тип
response.headers['Content-Disposition'] = "attachment; filename=dump.sql" #Чтобы сразу можно было качать
rebuild_dump_file()
dump_sql_file = File.open(output_file)
dump_content = ""
dump_sql_file.each { |line|
dump_content +=line
}
dump_sql_file.close #Чистим мусор
File.delete(output_file)
render :text=>dump_content #Пишем в поток
end
protected
def rebuild_dump_file
command = build_mysqldump_command()
system command #Вызываем комманду
end
def output_file
rails_directory+"/dump.sql"
end
def rails_directory
Pathname.new(__FILE__).realpath.dirname.dirname.dirname.to_s #Главная директория рельсов
end
def build_mysqldump_command
env = ENV['RAILS_ENV'] || 'development'
database = YAML::load_file( rails_directory+'/config/database.yml')
password = ""
password = "--password=#{database[env]['password']}" if (database[env]['password'])
"mysqldump -u #{database[env]['username']} #{password} #{database[env]['database']} > #{output_file()}"
end
end
В последнем методе генерим комманду, для этого нам нужен логин, пароль и имя базы (можно еще и хост, ну ладно его пропустим, но можно было бы и настроить)
Данные читаем из конфига (благо ЯМЛ поддерживается)
Вот вообщем и все. Надеюсь будет полезно.
П.С.
Сделать в Sql Server подбную штуку штатными средствами нельзя.. потому что Microsoft думает что это никому не нужно. Приходиться мучаться и делать генераторы SQL на основе мапперов.
MySql - респект
Wednesday, May 23, 2007
Модный коврик в машину
Модная Audi TT-2002 года с тюнингом. Внимение на коврик для водилетя:
Фотография взята с ebay.com
"удолетворенность клиента наша первая цель".
Фотография взята с ebay.com
"удолетворенность клиента наша первая цель".
Bluetooth Ганитура Jabra: личный опыт
Наконец-то умер мой доблестный телефон SkyLink - работал почти 2 года как часы. Я и решился повторить покупку Nokia 6021 - уже был - украли. Поддерживает все что нужно "не совсем обычному" человеку:
Bluetooth/IrDA/Data cable (хотя последний не сильно и нужен)
GPRS/EDGE - скорость 10-12 Kb в секунду - нравиться.
Достаточно хороший аккумулятор - 3 дня держит стабильно
Цветной дисплей :-)
Стоил - 3390 (в августе 2006 назад покупал меньше чем за 3000... оказывается телефоны дорожают...). Можно было бы и дешевле, но искать было экономически не целесобразно.
Вообщем прекрасный экземпляр:
Модем для ноутбука (через Bluetooth адаптер), КПК (у меня он старый и Bluetooth'а нет так что использую IrDA - прощай EDGE). Решил еще завести и гранитуру: разумеется, голубозубую. Производство Jabra (никогда не слышал о такой). Стоила - 1400 - не самая дешевая (была Nokia за 900), не самая дорогая - была от того же производителя за 3200.
Найденые "+"-сы:
- Слышно прекрасно
- Голосовые метки Nokia распознает даже на шумной улице, почти в 100%
- телефон начинает работать дольше. Сама гарнитурка живет часов 6-7.
- Разговаривать можно в 10-15 метрах от телефона.
- Телефон можно смело прятать в труднодоступных для воров местах (все: ноут, кпк, телефон, мышка, фотоаппарат + пара ненужных книг прекрастно прячутся в самый обычный гаджет-рюкзак)
- Руки можно держать хоть за спиной.
"-"-сы:
- Давит на ухо
- Люди смотрят как на сумашедшего.. боюсь подумать что пару лет назад было
- Жаловались что меня плохо слышно (самый большой недостаток, однако в тихом месте эта проблема пропадает)
Итоги:
Новая игружка за 4790. При этом местами полезная. Ничего лишнего (кроме Push-to-Talk которого в России пока нет)
П.С.
Если сюда добавить почти безлимитный тариф при звонках на билайн (а звоню я именно на него... обычно) за 20 руб в сутки, то душа просто радуется.
Bluetooth/IrDA/Data cable (хотя последний не сильно и нужен)
GPRS/EDGE - скорость 10-12 Kb в секунду - нравиться.
Достаточно хороший аккумулятор - 3 дня держит стабильно
Цветной дисплей :-)
Стоил - 3390 (в августе 2006 назад покупал меньше чем за 3000... оказывается телефоны дорожают...). Можно было бы и дешевле, но искать было экономически не целесобразно.
Вообщем прекрасный экземпляр:
Модем для ноутбука (через Bluetooth адаптер), КПК (у меня он старый и Bluetooth'а нет так что использую IrDA - прощай EDGE). Решил еще завести и гранитуру: разумеется, голубозубую. Производство Jabra (никогда не слышал о такой). Стоила - 1400 - не самая дешевая (была Nokia за 900), не самая дорогая - была от того же производителя за 3200.
Найденые "+"-сы:
- Слышно прекрасно
- Голосовые метки Nokia распознает даже на шумной улице, почти в 100%
- телефон начинает работать дольше. Сама гарнитурка живет часов 6-7.
- Разговаривать можно в 10-15 метрах от телефона.
- Телефон можно смело прятать в труднодоступных для воров местах (все: ноут, кпк, телефон, мышка, фотоаппарат + пара ненужных книг прекрастно прячутся в самый обычный гаджет-рюкзак)
- Руки можно держать хоть за спиной.
"-"-сы:
- Давит на ухо
- Люди смотрят как на сумашедшего.. боюсь подумать что пару лет назад было
- Жаловались что меня плохо слышно (самый большой недостаток, однако в тихом месте эта проблема пропадает)
Итоги:
Новая игружка за 4790. При этом местами полезная. Ничего лишнего (кроме Push-to-Talk которого в России пока нет)
П.С.
Если сюда добавить почти безлимитный тариф при звонках на билайн (а звоню я именно на него... обычно) за 20 руб в сутки, то душа просто радуется.
Friday, May 18, 2007
Google Search Engine и Blogspot
Ура! После месяца ожидания гугловский паучок добрался до моего блога. А ведь это все из-за проклятого blogspot с его no-index и no-follow на главной странице по-умолчанию. Убивал бы за такое.
Новый подход к системе оценки кандидатов при приеме на работу
Новая концепция по оценки кандитатов, ищущих работу был применен на сайте talentspring.com - основная идея состоит в том что кандидату предлагается несколько пар резюме и он должен выбрать по лучшему в каждой паре. Если он выбирает резюме которое признано лучшим, его рейтинг ростет, иначе падает. При достаточно большом количестве резюме и кандидатов, такой метод должнен сработать.
Доступна бесплатная бета
Подробнее тут
Доступна бесплатная бета
Подробнее тут
Wednesday, May 16, 2007
Немного о машинах
Сегодня узнал нечто для себя неожиданное: машины в России стоят в 2 раза дороже чем в США!
Пример: Maserati, Spyder (Спорт-кар)
Росиия - 89688$
Америка - 499970$
Разница для бюджетных вариантов еще больше
Единственное за растамошку придеться отдать: 4.2 литра * 1000 см. куб * 2 евро пошлина с куб. см* 1.35 курс к доллару = 11340$ - за это я бы тоже кое-кому по голове с удовольствием дал бы....
П.С.
Про домики (таун-хаусы) после обвала цен на недвижимость по цене не самой дорогой подержанной машиныя молчу.... Эх, вот она правильная экономика...
Пример: Maserati, Spyder (Спорт-кар)
Росиия - 89688$
Америка - 499970$
Разница для бюджетных вариантов еще больше
Единственное за растамошку придеться отдать: 4.2 литра * 1000 см. куб * 2 евро пошлина с куб. см* 1.35 курс к доллару = 11340$ - за это я бы тоже кое-кому по голове с удовольствием дал бы....
П.С.
Про домики (таун-хаусы) после обвала цен на недвижимость по цене не самой дорогой подержанной машиныя молчу.... Эх, вот она правильная экономика...
Monday, May 7, 2007
Мессенжер Все-В-Одном
Наткнулся на новую утилиту: мессенжер для нескольких клиентов. Похож на Miranda но на вид по-приятнее, работает шустрее, выглядит симпатичнее. Поддерживает ICQ, MSN, Yahoo, AIM, Jabber и пр. Называется - Pidgin. Если есть несколько мессенжеров, то использовать их совместно становиться намного удобнее. Памяти кушает ~ 40 мб - тоже вполне терпимо. Mozilla Firefox 2.0.3 меньше 80-100 редко занимает.
Что касается web-аналогов, могу порекомендовать meebo - в хозяйстве вещь полезная. К тому же ставит с собой последнюю версию GTK... Работает по Windows/Mac/Linux
Интерфейс понятный и удобный - ничего лишнего. на виду основные вещи, а дополнения не сложно настроить. Есть проверка орфографии в том числе под русский.
Весит вместе с GTK 10Mb.
Что касается web-аналогов, могу порекомендовать meebo - в хозяйстве вещь полезная. К тому же ставит с собой последнюю версию GTK... Работает по Windows/Mac/Linux
Интерфейс понятный и удобный - ничего лишнего. на виду основные вещи, а дополнения не сложно настроить. Есть проверка орфографии в том числе под русский.
Весит вместе с GTK 10Mb.
Sunday, May 6, 2007
Кросс-платформенные приложения с GUI на Ruby
Ради и интереса решил разобраться с тем как можно создать обычное приложение с формочками с Ruby. Сделать это можно с с помощью 2-х библиотек:
Tk и Gtk. Первая - шутка изначально сделана под язык Tcl (с ним я не сильно знаком, и использовать его мне не доводилось). Вторая - кросс-платформенная библиотека. Обе позволяют абстрагироваться от ОС. Не то чтобы я решил писать оконные приложения под Linux и пр, откозавшишь от .NET. Просто интересно.
И так, для начала я решил посмотреть на Tk. Ставиться вместе с Ruby. Сначала немного о внутреннем устройстве. В сердце библиотеки лежит иерахия классов лежат TkEntry и TkFrame. Остальное наследуется от них. Есть Layout Manager'ы, как в Swing под Java.
Так же есть около 30 элементов управление, но нет combobox (извесный как drop down list), я не нашел, зато есть уже готовый контрол, но не являющиейся частью библиотеки и входит в примеры. Есть Grid(TkGrid, в .NET аналог DataGrid и GridView), это очень удивило. В плане готовых компонентов, проблем нет. К тому же есть библиотека красивых расширений - iwidget - там много всего интресного есть.
Теперь немного практики:
сначала делаем
require 'tk'
TkFrame.new(){|f|
label = TkLabel.new(f, :text=>'Hello, World').pack(:fill=>:x)
}
Tk.mainloop
Все! есть формочка c надписью, растянутой на весь экран по ширине.
Как это работает:
сначала делаем главной элемент - саму формочку (f)
дальше на нее (первый аргумент конструктора TkLabel) кладем созданый объект у которого свойство текста установленно в "Hello, World". После этого располагаем созданную надпись на окне с соотвестующим Layout
Вот в общем и все. В заключение могу порекомендовать посмотреть на это собственными глазами.
Примеры можно найти в папке, куда установлен Ruby: samples/tk
П.С.
Если Вы заметили неточность или ошибку - пишите в комменты плз
Tk и Gtk. Первая - шутка изначально сделана под язык Tcl (с ним я не сильно знаком, и использовать его мне не доводилось). Вторая - кросс-платформенная библиотека. Обе позволяют абстрагироваться от ОС. Не то чтобы я решил писать оконные приложения под Linux и пр, откозавшишь от .NET. Просто интересно.
И так, для начала я решил посмотреть на Tk. Ставиться вместе с Ruby. Сначала немного о внутреннем устройстве. В сердце библиотеки лежит иерахия классов лежат TkEntry и TkFrame. Остальное наследуется от них. Есть Layout Manager'ы, как в Swing под Java.
Так же есть около 30 элементов управление, но нет combobox (извесный как drop down list), я не нашел, зато есть уже готовый контрол, но не являющиейся частью библиотеки и входит в примеры. Есть Grid(TkGrid, в .NET аналог DataGrid и GridView), это очень удивило. В плане готовых компонентов, проблем нет. К тому же есть библиотека красивых расширений - iwidget - там много всего интресного есть.
Теперь немного практики:
сначала делаем
require 'tk'
TkFrame.new(){|f|
label = TkLabel.new(f, :text=>'Hello, World').pack(:fill=>:x)
}
Tk.mainloop
Все! есть формочка c надписью, растянутой на весь экран по ширине.
Как это работает:
сначала делаем главной элемент - саму формочку (f)
дальше на нее (первый аргумент конструктора TkLabel) кладем созданый объект у которого свойство текста установленно в "Hello, World". После этого располагаем созданную надпись на окне с соотвестующим Layout
Вот в общем и все. В заключение могу порекомендовать посмотреть на это собственными глазами.
Примеры можно найти в папке, куда установлен Ruby: samples/tk
П.С.
Если Вы заметили неточность или ошибку - пишите в комменты плз
Tuesday, May 1, 2007
Здание по цене комнаты
Как извесно, цены на недвижимость в центре Москвы(не на окраине, а именно в самом центре)
Пример не самые доступные. Приблизительно 18000 евро за метр. 1 Комната - приблизительно 30 метров. Итого 540000. Что на эти деньги можно купить? Всего ничего: 10 квартир в Германии + 4 мерседеса... и это на одну комнату... Всю квартиру в Москве можно разменять на 100 Немецких... Ну а к примеру, в Греции за 30000 евро можно купить квартиру на берегу моря...
Пример не самые доступные. Приблизительно 18000 евро за метр. 1 Комната - приблизительно 30 метров. Итого 540000. Что на эти деньги можно купить? Всего ничего: 10 квартир в Германии + 4 мерседеса... и это на одну комнату... Всю квартиру в Москве можно разменять на 100 Немецких... Ну а к примеру, в Греции за 30000 евро можно купить квартиру на берегу моря...
Friday, April 27, 2007
Яндеск пульс
Наконец-то нашел штуку- Яндекс Пульс в которую просто интересно тыкать, хотя и с пользой...
Основная идея:
Посмотреть статистику по поиску по запросу и сравнить его с другими.
Например:
Ruby:
за день: 8 запрос в день
максиум: 140 за день.
и т.д.
Есть предчувствие что в среднем 5-7 человек по этому запросу доходят до моего блога...
Основная идея:
Посмотреть статистику по поиску по запросу и сравнить его с другими.
Например:
Ruby:
за день: 8 запрос в день
максиум: 140 за день.
и т.д.
Есть предчувствие что в среднем 5-7 человек по этому запросу доходят до моего блога...
Просто Юмор
Встретился старый анекдот:
"Он был полным идиотом... Даже кнопка "Свеpнуть все окна" на его компьютеpе находилась на "Рабочем столе"..."
У меня тоже когда-то так было:
места в quick launch у меня всегда мало, и есть приложения которые хотелось бы иметь под рукой, и которые используются много чаще.
очень удобно сделал:
- в таскбаре всегда есть линка на тотал коммандер (1 клик или пара alt-tab)
- на Ctrl+D открывается список быстрых папок (разумеется десктоп там есть, 2 нажатия)
- и зажав alt печатаем "Show Desktop" (первые пара символов)
Набирается это за 2-3 секунды (подтащить мышку и нажать - приблизительно столько же...)
Так что видимо я - Блондинка
"Он был полным идиотом... Даже кнопка "Свеpнуть все окна" на его компьютеpе находилась на "Рабочем столе"..."
У меня тоже когда-то так было:
места в quick launch у меня всегда мало, и есть приложения которые хотелось бы иметь под рукой, и которые используются много чаще.
очень удобно сделал:
- в таскбаре всегда есть линка на тотал коммандер (1 клик или пара alt-tab)
- на Ctrl+D открывается список быстрых папок (разумеется десктоп там есть, 2 нажатия)
- и зажав alt печатаем "Show Desktop" (первые пара символов)
Набирается это за 2-3 секунды (подтащить мышку и нажать - приблизительно столько же...)
Так что видимо я - Блондинка
Wednesday, April 25, 2007
Ruby Development with IntelliJ IDEA
Не так давно была выпушена новая версия IntelliJ Idea (7.0, но пока только бета). Оценить ее нововведения в плане Java я пока не успел (уже почти год ничего под Джаву не писал и не планирую). На днях узнал что под нее был сделан плагин для разработки под Ruby (в том числе и реилсы). О том как это дело ставить см здесь.
Что касается советов: на забудьте установить в пассы путь к инстант реилсу (%Instant Rails%\ruby - это должно быть в путях). В остальном ставиться и запускается без проблем.
Что касается моих замечаний:
(-)
1. Рефакторингами и не пахло, а жаль.
2. Код-комплит работает не слижком хорошо
3. Парсер не идеален:
class Parser
def parse(query)
result = ""
result<<"select * from '" # с этим не справился
result<
4. Нет дебага
5. если после "<%" нажать пробел появиться "%>" в не зависимости от того что впереди
6. Кушает это дело 200 Мб памяти, так что не сильно разгуляешься.
7. Открытие проекта занимает 2-3 минуты на не самом старой машине
8. Не знает по загруженные модули (на ctrl+пробел не беруться)
(+)
1. Есть интеграция с generate. Можно сказать генери котроллер, мигрейт и пр.
2. По рану запускается webrick
3. Кое-где есть нормальный код-компит
4. Автозакрывание "end"-ом
5. Древовидная структура проекта (это не табы из Total Commander!)
6. После загрузки быстро работает
7. Есть поиск места определения (класса, метода).
Вердикт: буду использовать. надеюсь что польза от этого дела будет.
Что касается советов: на забудьте установить в пассы путь к инстант реилсу (%Instant Rails%\ruby - это должно быть в путях). В остальном ставиться и запускается без проблем.
Что касается моих замечаний:
(-)
1. Рефакторингами и не пахло, а жаль.
2. Код-комплит работает не слижком хорошо
3. Парсер не идеален:
class Parser
def parse(query)
result = ""
result<<"select * from '" # с этим не справился
result<
4. Нет дебага
5. если после "<%" нажать пробел появиться "%>" в не зависимости от того что впереди
6. Кушает это дело 200 Мб памяти, так что не сильно разгуляешься.
7. Открытие проекта занимает 2-3 минуты на не самом старой машине
8. Не знает по загруженные модули (на ctrl+пробел не беруться)
(+)
1. Есть интеграция с generate. Можно сказать генери котроллер, мигрейт и пр.
2. По рану запускается webrick
3. Кое-где есть нормальный код-компит
4. Автозакрывание "end"-ом
5. Древовидная структура проекта (это не табы из Total Commander!)
6. После загрузки быстро работает
7. Есть поиск места определения (класса, метода).
Вердикт: буду использовать. надеюсь что польза от этого дела будет.
Быдло и программирование
До чего упала фантазия у создателей камьюнити разработчиков:
открылся форум по адресу быдлокодер.ру
Слабо могу приставить себе человка, который находясь в здравом рассудке пойдет постить на сайт с таким названием.
Да и смысла в новых подобных сайта лично я не вижу:
для .NET есть gotdotnet.ru, aspnetmania.com (был когда-то хороший dotsite.ru, но уже скатился достаточно сильно)
для остального: rsdn.ru, interface.ru и sql.ru
На всех указанных форумах быстро ответят и объяснят (благо народ там толковый сидит), если тема не совсем уж специфичная (например работа с capistrano в Ruby on Rails).
Так то если и открывать форум то узкоспециализированный, а не очередной винегред.
открылся форум по адресу быдлокодер.ру
Слабо могу приставить себе человка, который находясь в здравом рассудке пойдет постить на сайт с таким названием.
Да и смысла в новых подобных сайта лично я не вижу:
для .NET есть gotdotnet.ru, aspnetmania.com (был когда-то хороший dotsite.ru, но уже скатился достаточно сильно)
для остального: rsdn.ru, interface.ru и sql.ru
На всех указанных форумах быстро ответят и объяснят (благо народ там толковый сидит), если тема не совсем уж специфичная (например работа с capistrano в Ruby on Rails).
Так то если и открывать форум то узкоспециализированный, а не очередной винегред.
Tuesday, April 24, 2007
Google Sitemaps
Оказывается, Google может использовать как sitemap и обычный ATOM feed! Так что для блогов это очень удобно. Источник
П.С.
проверил: работает
П.С.
проверил: работает
Скорость обработки сайтов в Google
Вот такую информацию сказал гугл о моем блоге:
Googlebot last successfully accessed your home page on Feb 10, 2007. (Сейчас уже Апрель 24)
Что-то он как-то не очень сильно торопиться переидексить все.
Кстати к сайту компании он приставал все 3 дня назад...
Googlebot last successfully accessed your home page on Feb 10, 2007. (Сейчас уже Апрель 24)
Что-то он как-то не очень сильно торопиться переидексить все.
Кстати к сайту компании он приставал все 3 дня назад...
Цитатник Рунета
достаточно забавную штуку нарыл в запроса яндекса: bash.org.ru - цитаты людей. Самое то посмотреть подобную штуку в конце рабочего дня.
Subscribe to:
Posts (Atom)

