Про папки

by Адель Шигабутдинов 4. июня 2009 11:40
Операционная система должна прятать от пользователя не нужные ему папки.
Все служебные папки типа Windows, Program Files или /usr /etc /proc /boot должны иметь атрибут «скрытый». 
После установки ОС пользователь должен видеть только C:\users (Vista) C:\Documents and settings (XP) или /home (Linux for human beings — это я про юзер френдли дистры)

Пользователям совершенно не нужно знать что, кроме них, еще компьютером пользуется операционная система :-)

Tags: , ,

Принтеры в Windows

by Адель Шигабутдинов 2. июня 2009 12:56

Начну я цикл статей о неудобности операционных систем.

Мне не понятно зачем Windows делает то, чего его не просят. В локальной сети моей организации около 50 компьютеров, к каждому второму подключен принтер и расшарен в сети.
На каждом компе в "Принтеры и факсы" мы можем наблюдать вот такую картину. 

Происходит подключение всех соседних принтеров автоматически, без спроса пользователя.
Причем, ведь что интересно: если пользователь сам начинает подключать себе сетевой принтер, ОС его предупреждает, мол, сейчас будут скопированы драйверы, вы точно хотите себе установить это устройство? А с автоматическими принтерами все наоборот: Windows без спроса пользователя ставит все драйвера и добавляет принтер в папку "принтеры и факсы" с подписью "Авто".

Тут у рядового пользователя возникает куча вопросов:
1. Откуда взялось столько принтеров, у нас всего 1 в кабинете стоит?
2. Что это за автомобиль такой HP LaserJet, и что такое Ктулху?
3. На какой из принтеров нужно отправлять на печать?
4. Что означает выбеленный значок принтера (на скриншоте - Kyocera)

Причем ведь если удаляешь все автоматические принтеры, через неделю они "возвращаются" Laughing
Понимаю, программисты старались упростить жизнь пользователю: хотели чтобы пользователю не нужно было заморачиваться с установкой сетевого принтера...
Но на деле они её только усложнили. Как могла бы вести себя операционная система?

При нахождении новых сетевых принтеров система могла бы выводить окошко в котором было бы написано:
Уважаемый %Username%, в локальной сети обнаружены новые сетевые принтеры:
1. Принтер Kyocera KM на компьютере Igor-reclama
2. Принтер LaserJet 5200 на компьютере FS1
3. Принтер HP 5100 на компьютере KTULHU
4. Принтер LaserJet 2015 на компьютере Elvira

Вы можете подключить себе любой из этих принтеров и распечатывать на нем свои документы. Хотите ли вы подключить себе один или несколько из этих принтеров?
[Да, хочу] [Нет, напомните попозже] [Нет, не показывайте мне больше это окно никогда]

Что, лениво? Посмотрим как это будет сделано в Windows 7. Не знаю как сейчас обстоят дела в Linux, занимается ли KDE или Gnome таким самовольством как автоматическое подключение принтеров в локальной сети или нет, может расскажет в комментах кто-то. Smile

Tags: , , ,

Клавиатурный вопрос

by Адель Шигабутдинов 2. июня 2009 04:28

В компьютерных магазинах должны продаваться 2 вида клавиатур:
1. привычные нам 102-104-клавишные — для компьютерных специалистов.
2. клавиатуры для людей.

Объясню про клавиатуры для людей, это значит клавиатура:
1. Без ряда Esc, F1-F12, без клавиш PrtScreen, Scroll Lock, Pause Break
2. Без клавиш PgUP/PgDown, ALT, Win, кнопки эмулирующей правый клик мыши
3. Без кнопки Num Lock, правая часть клавиатуры должна быть всегда только числовой
4. Над qwerty не должны идти цифры, там должны быть знаки пунктуации: !"№;%:?*(), чтобы нажимать их без шифта.
5. Нужна 1 кнопка Rus/Eng
6. Нужна 1 кнопка заменяющая Ctrl+Alt+Del7. Без кнопок Sleep, Standby, Poweroff 

Еще раз про SQL Injection

by Адель Шигабутдинов 18. октября 2008 05:45

Прислали сейчас на емейл гениальную картинку Wink 

SQL Injection

 

Tags: , ,

Про RSS на этом блоге

by Адель Шигабутдинов 15. октября 2008 20:43

Перенаправил RSS с этого блога на FeedBurner, теперь читать меня будет удобнее, а я вас наконец-то смогу посчитать Laughing

Переподписаться можно вот тут: http://feeds.feedburner.com/drfaust/asp

 

Tags: ,

Как отпралять email из WinForms приложений

by Адель Шигабутдинов 14. октября 2008 18:10

Вчера писал о неприятном баге с SmtpClient и Kerio Mail Server. Уже было отчался и думал писать свой компонент, чтобы корректно работать с smtp сервером от Kerio.

С другой стороны, я выкладывал способ отправлять email из ASP.NET, и очень он мне нравится, поскольку использует CDO. Я люблю CDO Laughing Laughing Cool

Итак, первый способ - используя System.Net.Mail:

using System.Net.Mail;   
using System.Net;   
  
void SendMail()   
{   
MailMessage mail = new MailMessage();   
mail.To.Add("my@mail.ru");   
mail.From = new MailAddress("smbdys@mail.ru");   
mail.Subject = "тема письма";   
mail.Body = "текст письма";   
SmtpClient smtp = new SmtpClient("smtp.mail.ru");   
smtp.Credentials = new NetworkCredential("login", "password");    //это логин и пароль для авторизации на SMTP сервере   
smtp.Send(mail);   
}   

Этот способ работает прекрасно, наверное, со всеми SMTP серверами (с mail.ru работает, например) кроме Kerio Mail Server



Второй способ - используем System.Web.Mail
Но! Для WinForms, оказывается необходимо сделать несколько телодвижений, чтобы подключить System.Web.Mail, а именно:
Тыкнуть References -> Add Reference -> вкладка .NET -> выбрать в списке System.Web -> OK
Все! После этого можно прописать using System.Web.Mail;

using System.Web.Mail;

void SendMail()
{
   System.Web.Mail.MailMessage m = new System.Web.Mail.MailMessage();
        m.From = "my@server.ru";
        m.To = "somebody@mail.ru";
        m.BodyFormat = System.Web.Mail.MailFormat.Text;
        m.BodyEncoding = System.Text.Encoding.GetEncoding("windows-1251");
        m.Subject = "Тема пиьсма";
        m.Body = "текст письма";
 // для аутентификации на SMTP сервере
        m.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
        m.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "UserName");
        m.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "Password"); 
        System.Web.Mail.SmtpMail.SmtpServer = "smtp.server.ru";
        System.Web.Mail.SmtpMail.Send(m);
}

Ура-ура, второй способ работает с Kerio Mail Server Хотя, оба способа довольно просты и миновали те времена когда надо было реализовывать в своих компонентах протокол SMTP.

Tags: , , ,

Баг при отправке email из SmtpClient

by Адель Шигабутдинов 13. октября 2008 21:35

Блин так досадно, что баги в .NET 2.0 находятся, а их года не исправляют, в том числе и в сервиспаках Cry

Я как-то давно писал о том, как отправлять емайл из ASP.NET, но в WinForms приложениях так сделать нельзя, а именно, нельзя подключить System.Web.Mail, кстати, непонятно по каким причинам!Foot in mouth

Для WinForms приложений предлагается другой способ:

using System.Net.Mail;
using System.Net;

void SendMail()
{
MailMessage mail = new MailMessage();
mail.To.Add("my@email.ru");
mail.From = new MailAddress("smbdys@email.ru");
mail.Subject = "тема письма";
mail.Body = "текст письма";
SmtpClient smtp = new SmtpClient("smtp.email.ru");
smtp.Credentials = new NetworkCredential("login", "password");    //это логин и пароль для авторизации на SMTP сервере
smtp.Send(mail);
}

вобщем, код очень простой. НО! Он не работает с Kerio Mail Server.
керио ругается и выдает ошибку: {"Syntax error, command unrecognized. The server response was: 5.7.0 Authentication failed"}

Поиск в гугле привел на форумы MSDN, где как раз обсуждают эту проблему датированные аж 2005 годом!!!!!!!!

Суть, в том, что майкрософт, когда писала SmtpClient, отошла от RFC 2554 и некорректно общается с Smtp серверами. Непонятно почему другие почтовые сервера это едят за милую душу, похоже приспособились уже к криворуким индусам Laughing А фирма Керио забила болт, мол "решайте сами"... А в майкрософт об этом как-то забыли Frown

Сижу сейчас и думаю, сторонний компонент покупать, писать свой, или вместо своего kerio mail сервера пользоваться каким-нибудь mail.ru? Cool

Tags: , , , ,

Изменение изображения с помощью .NET

by Адель Шигабутдинов 13. октября 2008 14:49
thumbnails on asp.net

Написал статью и выложил в исходниках как создавать маленькие картинки из больших (делать resize)  

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

Вот еще ссылка на старую статью по работе с изображенями на .NET: Как сделать надпись на изображении JPEG/GIF

 

Tags: , , ,

TinyMce/BlogEngine Smiles

by Адель Шигабутдинов 11. октября 2008 15:13

Прикрутил новые смайлики для TinyMce и в частности, движка блогов BlogEngine.Net

CoolCryEmbarassedFoot in mouthFrownInnocentKissLaughingMoney mouthSealedSmileSurprisedTongue outUndecidedWinkYell 

А то, что идет по умолчанию в комплекте с этим движком для блогов - взято из почтового клиента Thunderbird, но выглядит некрасиво. Колобки они как-то привычнее и веселее Smile

Для установки надо заменить файлы в /editors/tiny_mce/plugins emotions.rar (56,69 kb)

Tags: , ,

Как отключить ViewState на страницах ASP.NET

by Адель Шигабутдинов 11. октября 2008 13:53

Всем ASP.NET разработчикам известно, что Microsoft по совершенно непонятным причинам для всех эелементов на странице по умолчанию прописывает EnableViewState = true, как результат, огромный ViewState (который хранит hash-ы состояний aspx страниц), который никак не используется, а только безбожно жрет траффик.

Можно, конечно, помучаться и пописать для каждого серверного элемента ручками EnableViewState = false, и это в разы сократит объемы ViewState, но он все-таки будет создавать некоторое количество ненужного траффика для посетителя.

И вот недавно нашлось решение, как ViewState отключить полностью: необходимо переопределить 2 метода у базового класса страниц PageBase:

protected override void SavePageStateToPersistenceMedium(object state)
{
}
protected override object LoadPageStateFromPersistenceMedium()
{
return null;
}

В результате получается вполне приличный результат:

‹input name="__VIEWSTATE" id="
__VIEWSTATE" type="hidden" /›
Нашел в блоге у одного из ASP.NET разработчиков Дмитрия Дмитриева: http://progblog.ru/Posts/DisableViewState

Tags: , ,

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen