В силу моего параноидального отношения к сайтам а также из проф соображений, я использую firefox + noscript. Когда я впервые захожу на некоторые сайты, у меня выключен js и кликая на поле, для поиска где красуется надпись «search here» — получаю облом. При том что у меня современный браузер, который без проблем поддерживает атрибут placeholder. Как правило везде стоит вот такой ужас: <input value="Поиск по сайту" onfocus="if (this.value == 'Поиск по сайту') this.value == ''" onblur="if (this.value == '') this.value == 'Поиск по сайту'"> (эхо конца 90-ых).
Александр @pr0fedt
User
Аспекты HTML & CSS
4 min
8.7KВ данном материале собраны аспекты, которые полезно знать и помнить html developer-у. Часть вопросов посвящена IE — сам отказался от поддержки IE6, однако знать особенности его поведения не будет лишним.
+37
Методы нахождения границ изображения
2 min
58K Алгоритм выделения границ или иначе обнаружения границ работают после того, как качество изображения улучшено перечисленными выше методами. Эти алгоритмы можно подразделить на два класса:
1) подчеркивающие, усиливающие, выделяющие границы;
2) строящие контуры автоматически.
1) подчеркивающие, усиливающие, выделяющие границы;
2) строящие контуры автоматически.
+35
Создание полноразмерных скриншотов web-ресурсов
3 min
13KДовольно полезным сервисом является создание полноразмерных скриншотов web-ресурсов.
Реализуем этот сервис буквально за 5 минут.
1) Создание полноразмерных скриншотов сайтов (полный скриншот по длине и ширине, а не захват окна браузера)
2) веб-интерфейс
— ОС — Ubuntu 10.04
— xvfb — Виртуальный фреймбуффер (Fake Xserver)
— CutyCapt — кроссплатформенная утилита для рендеринга web-страниц
— php — для веб-интерфейса
Реализуем этот сервис буквально за 5 минут.
Задачи:
1) Создание полноразмерных скриншотов сайтов (полный скриншот по длине и ширине, а не захват окна браузера)
2) веб-интерфейс
Технологии:
— ОС — Ubuntu 10.04
— xvfb — Виртуальный фреймбуффер (Fake Xserver)
— CutyCapt — кроссплатформенная утилита для рендеринга web-страниц
— php — для веб-интерфейса
+57
Молодым программистам на заметку: Как правильно писать «Помоги»
3 min
9KTutorial
За те 9 лет, что я занимаюсь программированием, в мою асю пришло несколько сотен просьб о помощи, от менее опытных, начинающих программистов. И вот, когда сегодня, в очередной раз, незнакомый человек попросил помочь ему написать плагин для вордпресс (код которого, честно говоря, я в глаза ни разу не видел), я решил написать небольшой гайд, который бы помог начинающим программистам правильно обращаться за советом к более опытным.
+186
NTRUEncrypt криптосистема будущего?
9 min
11K Вся современная асимметричная криптография в настоящее время основывается на двух простых и понятных принципах: вера и надежда. Вера в то, что при выполнении условия P≠NP, криптосистема не взламываема за полиномиальное время. Надежда, что квантовый компьютер так же далек от нас как созведие Кассиопеи. Так вот два эти принципа настолько ненадежны и с математической точки зрения трудно доказуемы, что единственным выходом из сложившейся ситуации можно считать приобретение шапочки подобной той, что изображена на картинке слева. Альтернатива? Она существует. Относительно молодая криптосистема NTRUEncrypt, которая, возможно сможет победить два этих принципа и вполне возможно станет прототипом для всей асимметричной криптографии «постквантовой» эпохи. Подробный анализ этого самого быстрого асимметричного алгоритма стойкого к атакам с применением квантовых компьютеров
+75
Портрет Нуба
17 min
6.4KTranslation
Чем старше я становлюсь, тем менее важной становится запятая. Пусть читатель сам решает, где ему ставить паузы. — Elizabeth Clarkson Zwart
Примерно так я комментировал свой код двадцать лет назад (внимание, чуток драмы):
/*
* Когда мы дойдем сюда, наша структура уже будет готова.
* К тому же, мы создали достаточно большой буфер, в который
* можно засунуть все входные данные, плюс есть немного места
* про запас. Я не уверен, понадобится ли оно, но хуже не будет.
* Теперь нам надо обновить счетчик, предполагая, что клиент
* уже прочитал значение, но еще не использовал его. Сначала
* я хотел переложить обязанность инкремента на плечи вызывающего
* кода. С другой стороны, это означает, что инкремент нужно делать всем,
* поэтому я решил, что будет лучше перенести его сюда. Но мы можем
* пересмотреть это решение позже, если вдруг кому-то из внешних функций
* захочется делать инкремент самому.
*/
counter++; // инкрементировать счетчик для потребляемого значения
/*
* Теперь нужно просмотреть весь буфер с данными. Для этой
* операции нам понадобится еще один индекс, иначе перед
* выходом из функции мы потеряем начальное значение.
* Я хотел назвать эту переменную ‘ref’, потому что в некотором
* смысле мы будем обращаться с ней как со ссылкой на данные.
* В конце концов я пришел к выводу, что самым лучшим
* названием для нее будет ‘pos’. Если что, я не против обсудить
* это решение.
*/
char* pos = buffer; // начинаем наш обход данных
/*
Теперь, мы...
*/
Ну что, узнаете? А должны! Если быть предельно невежливым, весь код выше написал нуб. (Между прочим, если вы не знаете, кто такой нуб, значит вы — нуб).
+91
Стереоизображение — это просто
3 min
50KПривет, %username%.
В данной статье я хочу рассказать, как можно самостоятельно создать стереоизображение при помощи графического редактора и небольшой программы.
Для начала рассмотрим, как устроено стереоизображение и как на него смотреть.
В данной статье я хочу рассказать, как можно самостоятельно создать стереоизображение при помощи графического редактора и небольшой программы.
Введение
Для начала рассмотрим, как устроено стереоизображение и как на него смотреть.
+180
Почему фрилансер и заказчик часто считают друг друга идиотами
10 min
96KМне повезло: я побывал по обе стороны баррикад и теперь знаю, что и как делает заказчик на проектах разного уровня и что делает фрилансер, чтобы получить или провалить такой проект. В итоге я уверен, что 95% фрилансеров говорят с заказчиком на разных языках.
Осторожно, butthurt.
Осторожно, butthurt.
+210
Как студенту-фрилансеру стать руководителем
5 min
4.8KНесколько лет назад я был студентом без денег, которому учеба в университете казалась скучной и бессмысленной (и с тех пор моё мнение не изменилось). Так что, учебу я бросил и стал фрилансить. Спустя 6 лет, пишу этот текст, чтобы определить самые важные идеи, которые сделали меня сначала хорошо оплачиваемым “кадром”, а затем руководителем небольшой команды разработки веб-сервисов.
Не будьте специалистом. Учитесь действовать
Главный ресурс для развивающегося человека вовсе не знания и опыт. И даже не деньги или связи.
Среда знаний сейчас слишком быстро меняется и говорить с уверенностью, что даже через пять лет профессия программиста (к примеру) будет столь же востребована — нельзя. И уж точно не приходится сомневаться, что лет через 10 все имеющиеся знания того же программиста придут в негодность без постоянного обновления в процессе.
Накопление знаний и опыта есть линейный процесс, а потому не самый эффективный. У специалиста всегда есть четкий потолок зарплаты, который практически не возможно преодолеть (здесь не выйдет даже постоянного линейного роста).
Не будьте специалистом. Учитесь действовать
Главный ресурс для развивающегося человека вовсе не знания и опыт. И даже не деньги или связи.
Среда знаний сейчас слишком быстро меняется и говорить с уверенностью, что даже через пять лет профессия программиста (к примеру) будет столь же востребована — нельзя. И уж точно не приходится сомневаться, что лет через 10 все имеющиеся знания того же программиста придут в негодность без постоянного обновления в процессе.
Накопление знаний и опыта есть линейный процесс, а потому не самый эффективный. У специалиста всегда есть четкий потолок зарплаты, который практически не возможно преодолеть (здесь не выйдет даже постоянного линейного роста).
+161
Layout без layout'ов
4 min
26KБиблиотека Swing появилась примерно 15 лет назад и все эти 15 лет КАЖДЫЙ кто начинает программировать на Java задаёт один и тот же вопрос:
— Почему я не могу просто добавить кнопки с полями на форму без изучения всех этих LayoutManager'ов?
В стандарной JRE содержится больше десятка классов для компоновки элементов (FlowLayout, GroupLayout и т.п.), постоянно появляются новые компоновщики типа MigLayout но ситуация не улучшается.
Рассмотрим варианты создания форм типа этой:
— Почему я не могу просто добавить кнопки с полями на форму без изучения всех этих LayoutManager'ов?
В стандарной JRE содержится больше десятка классов для компоновки элементов (FlowLayout, GroupLayout и т.п.), постоянно появляются новые компоновщики типа MigLayout но ситуация не улучшается.
Рассмотрим варианты создания форм типа этой:
+15
GTUGи России при поддержке Google приглашают на хакатоны по Google Chrome и конкурс с призами
3 min
3.8KЧто такое Chrome Hackathons & Contest?
Это соревнование между разработчиками, которые желают создать самые лучшие в мире расширения для Google Chrome и приложения Chrome Web Apps.Основные хакатоны будут проходить 27 и 28 августа, в выходные дни, с ключевыми докладчиками из Google: Ilmari Heikkinen (Developer Programs Engineer) в Москве и Mike West (Chrome Advocate) в Санкт-Петербурге. Также будут проходить в эти же дни хакатоны в Уфе, Воронеже и Омске.
Цель конкурса?
Цель — сделать наш с вами любимый браузер Google Chrome более удобным для нас и для пользователей путем создания отличных веб-приложений и расширений, на основе собранных от пользователей Chrome просьб и пожеланий.
Расширение: расширение не должно повторять существующие (но может быть и улучшением существующих расширений). Вы можете опираться на предложенные пользователями расширения, но эти расширения, тем не менее, должны попадать под категории Browser Actions или Page Actions; в рамках этого технического конкурса мы не учитываем расширения типа Themes или Override Pages. Расширения оцениваются по решению реальных задач пользователей и технической имплементации.
Приложение: приложение должно в идеале не повторять существующие. Приложения оцениваются по решению реальных задач пользователей и технической имплементации.
Когда будут проходить хакатоны и конкурс?
Хакатоны и сам конкурс будут организованы в 4 этапа:
Победители
Трое победителей получают ноутбуки Mac Book Air, которые будут вручены во время церемонии награждения на Google Developer Day 2011 Russia. Дополнительные 4-ые и 5-ые места будут награждены ценными призами.
Это соревнование между разработчиками, которые желают создать самые лучшие в мире расширения для Google Chrome и приложения Chrome Web Apps.Основные хакатоны будут проходить 27 и 28 августа, в выходные дни, с ключевыми докладчиками из Google: Ilmari Heikkinen (Developer Programs Engineer) в Москве и Mike West (Chrome Advocate) в Санкт-Петербурге. Также будут проходить в эти же дни хакатоны в Уфе, Воронеже и Омске.
Цель конкурса?
Цель — сделать наш с вами любимый браузер Google Chrome более удобным для нас и для пользователей путем создания отличных веб-приложений и расширений, на основе собранных от пользователей Chrome просьб и пожеланий.
Расширение: расширение не должно повторять существующие (но может быть и улучшением существующих расширений). Вы можете опираться на предложенные пользователями расширения, но эти расширения, тем не менее, должны попадать под категории Browser Actions или Page Actions; в рамках этого технического конкурса мы не учитываем расширения типа Themes или Override Pages. Расширения оцениваются по решению реальных задач пользователей и технической имплементации.
Приложение: приложение должно в идеале не повторять существующие. Приложения оцениваются по решению реальных задач пользователей и технической имплементации.
Когда будут проходить хакатоны и конкурс?
Хакатоны и сам конкурс будут организованы в 4 этапа:
- Chrome Hackathons — 27-28 августа: 2-хдневное мероприятие в 5 городах.
- Chrome Contest — 29 августа — 8 октября: онлайн-конкурс, проходящий на протяжении месяца, разработчики завершают свои приложения и расширения и готовятся к финалу.
- Финал — DemoFest — 9 октября: Мероприятие проходит в московском офисе Google.
- Представление и награждение победителей на GDD 2011 — 10 октября: Мероприятие проходит на GDD 2011 Russia.
Победители
Трое победителей получают ноутбуки Mac Book Air, которые будут вручены во время церемонии награждения на Google Developer Day 2011 Russia. Дополнительные 4-ые и 5-ые места будут награждены ценными призами.
+20
Геометрические фигуры на CSS
4 min
945KTranslation
Отличная подборка, как нарисовать различные геометрические фигуры одним элементом HTML.
Квадрат
#square {
width: 100px;
height: 100px;
background: red;
}
+304
Как поднять свой уровень в искусстве программирования. План из шести шагов
2 min
21KTranslation
Вольный перевод списка из довольно удачных способов для повышения своего уровня, как программиста.
+140
Правила технического задания
3 min
96KВ большинстве крупных организаций внутрифирменные отношения «пользователь-отдел IT» неизбежны, особенно при создании рабочих приложений, необходимых пользователю на постоянной основе. Сложность этих отношений может быть обусловлена многими факторами, но чаще всего это непонимание, возникающее из-за того, что стороны говорят на разных «языках» с различной терминологией. Пользователь понимает, что он хочет, но не может это сформулировать, IT-специалист понимает пользователя, но опасается, что результат выйдет иным, чем видит это первый. Чаще всего проблема начинается с того, что именно пользователь не готов к диалогу: он требует «чтобы работало», «отчет одной кнопкой», «чтобы за минуту выводилось», «чтобы даты в Excel не вылезали» и прочее. При этом его совершенно не интересует, каким образом это делается и какие механизмы работают. На заявления о нагрузке на сервер, просьбы нарисовать схему желаемого результата, обсудить пути решения пользователь не реагирует, полагая, что настоящий профессионал со всем справится. Результаты такого непонимания вредят всему производственному процессу: затягиваются сроки решения задач, возникают ошибки и пробелы в системах, которые нужны пользователю, страдает перегруженный неверными действиями сервер, скорость работы снижается.
Одним из способов разрешения такого конфликта является написание задания на проект – технического задания, которое предполагает полное и точно изложение требований внутрифирменного заказчика и является своеобразной инструкцией для IT -специалиста.
Одним из способов разрешения такого конфликта является написание задания на проект – технического задания, которое предполагает полное и точно изложение требований внутрифирменного заказчика и является своеобразной инструкцией для IT -специалиста.
+29
6 причин, по которым нужно стартовать с бирж
2 min
2.6KНекоторое время назад, прогуливаясь на просторах интернета, уж простите, но не помню где, я нашел статью. В статье рассказывалось о том, что регистрация и ведение профиля на фриланс биржах — это, по сути, обезличивание исполнителя, и если хотите хорошо — делайте и продвигайте свой сайт. Ниже я бы хотел привести несколько доводов за то, чтобы по крайней мере стартовать на биржах фриланса.
+19
Полезные занятия для программиста
2 min
13KМногие наверняка ищут такие занятия, которые были бы как приятными для самого человека, так и полезными в плане развития некоторых навыков. Для программистов, да и вообще людей с сидячей работой, эти занятия должны быть своими.
1) Жонглирование.
Жонглирование — прекрасная вещь, полезная как для здоровья, так и для души. Какая польза может быть от жонглирования?
Для начала это хорошее упражнение для глаз, снимающее с них напряжение, что немаловажно, учитывая постоянную работу за компьютером. Затем, это физическая нагрузка(пусть и небольшая) как на руки, так и на ноги(в начале придется постоянно нагибаться, чтобы поднимать падающие снаряды). Ну и в конце концов это моральное удовлетворение от того, что у вас получается манипулировать предметами в воздухе. Жонглирование не требует никаких приспособлений. Достаточно трех(для начала двух) предметов такой формы, чтобы удобно было ловить и подкидывать вверх, желательно не слишком легких, но и не тяжелых.
1) Жонглирование.
Жонглирование — прекрасная вещь, полезная как для здоровья, так и для души. Какая польза может быть от жонглирования?
Для начала это хорошее упражнение для глаз, снимающее с них напряжение, что немаловажно, учитывая постоянную работу за компьютером. Затем, это физическая нагрузка(пусть и небольшая) как на руки, так и на ноги(в начале придется постоянно нагибаться, чтобы поднимать падающие снаряды). Ну и в конце концов это моральное удовлетворение от того, что у вас получается манипулировать предметами в воздухе. Жонглирование не требует никаких приспособлений. Достаточно трех(для начала двух) предметов такой формы, чтобы удобно было ловить и подкидывать вверх, желательно не слишком легких, но и не тяжелых.
+82
Асинхронные задания в Django c помощью Celery
5 min
65KПриветствую!
Думаю, большинство разработчиков Django слышали о Celery — системе асинхронного выполнения заданий, а многие даже активно её используют.
Около года назад на хабре была довольная хорошая статья, рассказывающая о том, как использовать Celery. Однако, как было упомянуто в заключении, уже вышла Сelery 2.0 (на данный момент стабильной версией является 2.2.7), где интеграция с django была вынесена в отдельный пакет, а также произошли другие изменения.
Данная статья будет полезна прежде всего новичкам, которые начинают работать с Django, и им требутся что-то, способное выполнять асинхронные и/или периодические задания в системе (например очистку устаревших сессий). Я покажу как установить и настроить Сelery для работы с Django от начала до конца, а также расскажу про некоторые другие полезные настройки и подводные камни.
Думаю, большинство разработчиков Django слышали о Celery — системе асинхронного выполнения заданий, а многие даже активно её используют.
Около года назад на хабре была довольная хорошая статья, рассказывающая о том, как использовать Celery. Однако, как было упомянуто в заключении, уже вышла Сelery 2.0 (на данный момент стабильной версией является 2.2.7), где интеграция с django была вынесена в отдельный пакет, а также произошли другие изменения.
Данная статья будет полезна прежде всего новичкам, которые начинают работать с Django, и им требутся что-то, способное выполнять асинхронные и/или периодические задания в системе (например очистку устаревших сессий). Я покажу как установить и настроить Сelery для работы с Django от начала до конца, а также расскажу про некоторые другие полезные настройки и подводные камни.
+46
10 способов улучшить свои навыки программирования
4 min
87KTranslation
1. Выучить новый язык программирования
Изучение нового языка программирования разовьет новые способы мышления, особенно если новый язык программирования использует парадигмы, с которыми Вы еще не знакомы. Многие из приобретенных способов мышления могут быть применены к языкам, которые уже знаете. Возможно, вы даже полюбите новый для Вас язык программирования настолько, что начнёте использовать его для серьёзных проектов.
Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).
+215
Information
- Rating
- Does not participate
- Location
- Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity