понедельник, 27 мая 2013 г.

Интернет-солянка: сайты, блоги, порталы, сервисы и много других

Сегодня, читал интересный пост Баблоруба о заработке на создании сайтов для людей, статьи замечательная и полезная.

И задумался я, - "сайты для людей", порталы, сервисы, чаты, блоги, форумы, интернет-магазины, доски объявлений, каталоги, поисковики, дорвеи, сателлиты, ГС - говносайты(извиняюсь, но это термин такой), фэйки(копии сайтов), вот сколько видов представления информации существует в интернете, возможно и скорее всего тут еще не все.
 
Разнообразие, всегда хорошо, но одни сайты создаются для внятной подачи информации, удобства обмена новостями, другие же, для накрутки посещений, поднятия ТИЦ и PR, заработка на рекламе, обмане "пауков-поисковиков", третьи для обмана пользователей, кражи паролей и распространении вирусов.


Постепенно, Священная Сеть стала загрязнена, причина проста - деньги. Говорят телевидение, это кривое отражение жизни. По видимому, Интернет, ее тоже отражает.

Сейчас, при создании сайта, в первую очередь задумываются: как его "монетизировать", об этом даже в книгах пишут (вроде: "сайт за 21 день", "чайнику о вебстроительстве").
Хотя первый вопрос, скорее должен быть: В чем польза, именно, моего сайта?.
Да и в реальной жизни стоит задать себе этот вопрос: В чем польза моего существования?...

Погоня за материальным, стала нормой, об этом знают все, это не открытие и не порок. Это правильно, но все должно быть в меру.

зароботок на собственном сайте

И я хочу, свой Apple MacBook Pro, но его можно заработать, не используя "черных" способов раскрутки, не засоряя "цифровой эфир", пускай не сразу и даже не завтра. Но зная одно, что после меня, виртуальном и реальном мире станет чуть лучше, чем было до меня...

четверг, 23 мая 2013 г.

Эмоциональный веб-дизайн

Давно уже увлекаюсь темой веб-дизайна, да и работаю в этой сфере уже года два. Перечитал довольно много литературы, а сегодня попалась довольно интересная книга Аарона Уолтера "Эмоциональный веб-дизайн", сразу скажу "must have", всем кто занимается дизайном сайтов.

Особенно мне запомнилось, что большие компании постепенно обезличиваются и постепенно забывается теплое людское отношение к клиентам. Вообще в книге много примеров, и стоящих мыслей.

Подумал, что тем кто хочет почитать, что-нибудь новенькое, пригодится. Вообще стоит наверно сделать отдельную страничку с обзором литературы, так как я обожаю читать и могу помочь людям не пропустить важную литературу.

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

Давайте добавим чуточку себя в своем творчестве, чтобы пользователь видел что сайт делали живые люди, с веселым огоньком в глазах, и от этого ему тоже станет чуточку теплее.

Книга в процессе чтения, дочитал до примерно середины, но уже столько идей... Решил изменить шаблон на сайте в обязательном порядке. Пока думаю, рисую, прикидываю, но сперва конечно дочитаю до конца и возможно не раз.

В общем, ждите новый эмоциональный дизайн блога выражающий мою индивидуальность, навеянном этой великолепной книгой, уже в скором будущем. А пока, вот:


ImageNameChanger 0.1.1

Сегодня хороший день.
Завершил, точнее доукрасил программу ImageNameChanger для смены регистра у изображений с помощью Expression Blend.
Все таки WPF и XAML это сила!. Программы получаются приятными глазу. Хватит писать консольные приложения, которые быстры как олени, но часто скучны как дождливые осенние дни.

Изменил версию с 0.1.0 на 0.1.1 после того как поправил функцию которая меняла названия файлов в нижний регистр.
До этого она сперва изменяла название файла изображения, а затем искала в html файлах, тем самым изменяя регистр даже у тех картинок, на которые не было ссылки в html файлах. Теперь же, если те картинки, на которых нет ссылки в html файлах, остаются не тронутыми.

среда, 22 мая 2013 г.

Отправил пост о необходимом велосипеде на хабр

Сегодня 20 мая, отправил пост о "полезном велосипеде" на хабрахабр.
Хочу получить инвайт, и наконец-то иметь возможность писать комменты к статьям. Очень надеюсь, и жду...
Ждать сколько, не знаю, сказали ждать письма, так что скрестим пальцы.
Это мой первый пост, для строгого хабражюри, и для меня очень важно, услышать ответы - прочитать комменты, узнать где прав, где неправ и как сделать лучше.

Пост об окне для выбора каталога, OpenFile Dialog, реализованном на WPF, который почему-то отсутствует в Visual Studio. Тем самым если Вам нужно реализовать в приложении выбор папки для пользователя, приходится использовать Windows.Forms, что нарушает единый дизайн всего приложения.

Если интересно, читайте, и комментируйте.

Версия для скачивания, сыровата. В ней я реализовал костяк, остальные недоделки допилил и планирую через пару дней опубликовать новый шаблон.

Прошла пара дней, и вот реализация шаблона выбора папки для wpf приложения, которую я обещал выложить в сеть. В ней учтены различные мелочи, вроде ошибки при запуске обработки без выбора папки итп.

понедельник, 20 мая 2013 г.

Как найти файлы в директории с заданными расширениями

Понадобилось мне обработать все изображения в папке, а так как расширений у изображений много, это и gif, jpg, bmp и тп, то простым Directory.GetFiles(path, *.jpg) тут не обойтись. Поэтому нашел простое решение. Можно было б использовать лямбда выражение и сделать код короче, но так нагляднее.

Способ использует цикл в цикле, и проходит по каждому найденному файлу, в директории.

string SelectFolder = "C:/Work/Folder"; // Путь к каталогу
string[] typeOfFiles = {"*.jpg", "*.jpeg", "*.gif", "*.png", "*.bmp", "*.flw" }; 
   foreach (string typeOfFile in typeOfFiles)
   {
       string[] filesForWork = Directory.GetFileSystemEntries(SelectFolder, typeOfFile);
       // Показываем с какими файлами работаем
       foreach (string filesFinded in filesForWork)
       {
        // Вывести только названия файлов без пути
           FileInfo imageName = new FileInfo(filesFinded);
    // вывести названия файлов в листбокс
           listBox1.Items.Add(imageName.Name);
       }
}


Это еще один способ код нашел на cyberforum.ru/:
string[] extensions = new[] { ".jpg", ".tiff", ".bmp" };
 
FileInfo[] files =
    dinfo.GetFiles()
         .Where(f => extensions.Contains(f.Extension.ToLower()))
         .ToArray();

пятница, 17 мая 2013 г.

C# Чтение в строку из файла и перевод строки.

Обычно, когда мы читаем текстовый файл в строку, с помощью StreamReader, то теряем переводы строки, то есть вместо
Первая строка
Вторая строка
Получаем:
"Первая строкаВторая строка".


И при записи этих строк в файл, затем ищем способы как снова разделить строки...

Что бы этого не происходило, при чтении файла в строку, читаем построчно и добавляем в конец читаемой строки символы "/r/n" (перевода строк для Windows)и тогда все будет в порядке.

// Открыть файл и прочитать в строку
 string someText = "";
using (StreamReader streamReader = new StreamReader(fileWithText,
System.Text.Encoding.Default))
{
       while (!streamReader.EndOfStream)
       {

            // Заносить в строку, построчно - Учитывать Перевод строки
           someText += streamReader.ReadLine() + "\r\n"; 
       }
       streamReader.Close();
}

суббота, 23 марта 2013 г.

И понял я, CVS - Это полезно!

В работе (верстка html файлов) для облегчения обработки файлов, я использую самописные утилиты, которые я называю "гномулиты").
Одна из подобных "гномулит" - Shablor. Утилита для обработки шаблонов и внесения изменения. Она помогает мне при обработке проектов и выполняет около 10 монотонных функций. Особенно удобно если нужно обработать 200 проектов, в которых более 10 000 файлов.
Итак, вчера решил я внести изменения в эту утилиту, для ускорения оной.
Изменил одну из функций и амба! Приплыли, ошибка за ошибкой, а времени для исправления мало.
 Как и для каждого фрилансера: время - деньги. Потратил около получаса для удаления изменений, и вернул все как было.
И вот тогда я подумал, что если бы я использовал - Систему контроля управлениями версиями. Откат изменений занял бы пару минут!
Ранее я думал, что различные системы управления версиями (СУВ) - cvs, не требуется для одинокого разработчика. И был не прав.


Поэтому, решил выбрать СУВ, почитав на Хабре полезную статью, о быстром старте в использовании СУВ. Выбрал Mercurial. (Подумывал о GIT, но на Windows все таки лучше Mercurial). С удивлением узнал что эту СУВ использует Mozilla, и мой любимый DWM.

Удобна для разработки, живет на локальной машине, и думаю легка в освоении.
Теперь я не боюсь вносить изменения в код, а также в будущем, при работе в команде, опыт знания СУВ обязательно пригодится.

P.S Я знаю что такое TDD - Разработка через тестирование, но пока в процессе изучения, читаю очень полезную книгу Кент Бек - "Экстремальное программирование разработка через тестирование". Пишу заранее так как знаю, что кто-нибудь, обязательно посоветует)