Pull to refresh
0
0
Send message

Дилетанты тоже люди

Reading time11 min
Views1.7K
описаниеБыла такая страна, которой управляла кучка дилетантов: архитектор, художник, философ, торгаш вином да лётчик с парой вояк. Но совершенно внезапно, при некотором стечении обстоятельств, это «историческое недоразумение» наделало делов столько, что отхлебнуть «дилетантской похлебки» пришлось всем миром. Это событие показало нам, что пренебрегать талантами, которые способны организовывать совершенно незнакомых людей против кого-то еще — просто опасно для здоровья. К счастью, в наши дни мы научились (ведь научились же, правда?) распознавать такие дела в самом их зародыше, и теперь избегаем «острых углов». 

Но с развитием социальных сетей мы вновь получили возможность удовлетворить свое «а что если»-любопытство взаимодействия большого количества людей безопасными для их здоровья способами. Сами того не понимая, кучка в меру криворуких программистов из Бухареста создали для этого питательную среду. Несколько раз я уже писал поверхностные обзоры изначально игрового проекта eRepublik, сегодня, если вы не против — я, спустя два года участия, хотел бы представить более основательный анализ взаимодействия нескольких сот тысяч человек из разных культурных слоев, выходцев со всего света с разным вероисповеданием, национальностью, цветом кожи, возрастом и мировоззрением. Надеюсь, вам будет интересно. 

Продолжить безудержное веселье!
Total votes 128: ↑110 and ↓18+92
Comments53

Порнография с точки зрения эволюционной психологии

Reading time14 min
Views65K
Данный топик был написан по следам бурных обсуждений на Хабре ряда новостей, так или иначе связанных с порно (раз, два, три, четыре). В этих и подобных топиках подымается тема цензурирования интернета и запрета порнографии вообще либо отдельных её жанров. Хотя хабрасообщество в целом довольно либерально относится к порно, обсуждение влияния его на психику — особенно детскую — выливается обычно в нешуточные драмы (самая серьёзная, на моей памяти, была тут).

Между тем, сколько-нибудь заслуживающих доверия данных о влиянии порнографии на общественное и личное здоровье в этих обсуждениях нет; более того, мои попытки по-быстрому найти какие-то вменяемые данные в интернете не увенчались успехом. В поисках ответов на вопросы мне пришлось погрузиться довольно глубоко в научные исследования, и кое-что я в итоге нашёл. Краткий синопсис современных научных взглядов на порнографию и её влияние на человека будет дан под катом после небольшого FAQ'а.

Вопрос: картинки будут?
Ответ: будут.

Вопрос: какое отношение этот топик имеет к Хабру?
Ответ: он интересен читателям Хабра.

Вопрос: нет, всё-таки, какое отношение имеет топик к тематике Хабра?
Ответ: никакого; просто я считаю, что Хабр — это, прежде всего, определённая аудитория, а не тематика.

Вопрос: почему в блог «Интернет»?
Ответ: потому что Internet is for porn.

Если Вам не исполнилось 18 лет, под кат лучше не ходить
Total votes 528: ↑476 and ↓52+424
Comments343

Рекомендации для начала карьерного роста

Reading time7 min
Views17K
По мотивам недавно прошедшей конференции в ЯрГУ 25 марта, на которую пришло уж очень немного народу, решил я написать небольшой мотивирующий пост для студентов и начинающих программистов/IT специалистов. Мою презентацию с доклада можно посмотреть на skydrive. Здесь же я постараюсь вкратце, на сколько это возможно, осветить этот доклад.

Это чисто мой полет мыслей, ни на какое откровение или новизну я не претендую. Начал я его писать сразу же после конференции (месяц назад), но все как-то не мог закончить. Радует безумно, что кроме меня со студентами и начинающими разработчиками хотят делиться все. Вот только в последние пару недель замечено два топика с похожими темами (и тоже стенограммы с конференций):

Ну и до нас не раз еще поднимали эту тему. Рекомендую читать и заряжаться всеми этими топиками.
Читать дальше →
Total votes 120: ↑110 and ↓10+100
Comments104

Сравнительный анализ CMS: охота на оптимальную систему для создания корпоративных сайтов

Reading time14 min
Views95K
Здравствуйте!

Хочу поделиться результатом собственного исследования, проводимого мной на протяжении недели в среде существующих CMS. Цель у меня была проста и прагматична — выбрать лучшую систему для создания корпоративных сайтов. Такая необходимость возникла в связи с постоянно растущим количеством заказов на сайты. С одной стороны, это не может не радовать, а с другой — заставляет максимально тщательно и с полной ответственностью отнестись к выбору движка, которому и предстоит сопутствовать не слишком опытному программисту в вопросе создания сайтов.
Читать дальше →
Total votes 110: ↑56 and ↓54+2
Comments188

Почему я ненавижу фреймворки

Reading time4 min
Views69K
Я собираюсь сделать Java-веб-приложение (да, это будет Java, по некоторым причинам, которые сейчас озвучивать не хочу). В процессе работы, я оцениваю кучу J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container фреймворков.

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

Давайте представим, что я решил сделать шкафчик для специй.
Читать дальше →
Total votes 363: ↑297 and ↓66+231
Comments239

Frustro: невозможный шрифт

Reading time1 min
Views12K


Венгерский дизайнер Марци Хегедус (Martzi Hegedűs) создал оригинальный шрифт Frustro, который основан на идее невозможных фигур — одного из видов оптических иллюзий. Как и классический треугольник Пенроуза, буквы этого шрифта можно представить направленными или в одну, или в другую сторону, и для них невозможно создать 3D-модели.
Читать дальше →
Total votes 166: ↑161 and ↓5+156
Comments71

Улучшаем юзабилити за 5 минут

Reading time4 min
Views7.3K
В этой блогозаписи я намерена поделиться несколькими такими советами по увеличению юзабилити сайта, каждый из которых очень лёгок в реализации. Не все они кросс-браузерны, но всё равно они «глазурь на тортике»: читатель и не заметит, что их нет.

1. Отображайте нажатия кнопок и кнопкоподобных ссылок


Мой излюбленный совет. Когда стиль кнопки задаётся в CSS, или когда для отображения необычной кнопки используется рисунок (либо как фон, либо как элемент <img />), то кнопка не реагирует на нажатие во всех или в некоторых браузерах (зависит от ситуации). Вот какой простой уловкою вы можете дать знать посетителю сайта, что он и впрямь нажал на нечто нажимаемое:

.mybutton:active {
   position: relative;
   top: 1px;
   left: 1px;
}

Этим кодом кнопка смещается на 1 пиксел направо и на 1 пиксел вниз, когда её нажимают. Испробуйте: выглядит весьма убедительно.

Есть другие, не менее быстрые варианты: придать границе свойство inset, указать свойству text-indent значение 1px, изменить направление градиентного фона (что можно сделать быстро, если для этого не придётся прибегнуть ко графическому редактору, то есть если где-то ещё на сайте используется готовый перевёрнутый градиент), или комбинация нескольких из них.

2. Плавные переходы (CSS3 transitions)


Читать дальше →
Total votes 206: ↑179 and ↓27+152
Comments45

Расстановка точек над onmousewheel и немного о луковом супе

Reading time10 min
Views16K
Я уже писал о своих экспериментах со скроллбарами на сайтах и в веб-приложениях, но эти опыты удались не вполне. Поэтому я пока оставил идею кастомизации скроллбаров, но решил досканально разобраться с событиями, вызываемыми прокруткой колеса мыши.

Итак, задача: реализовать реакцию на события прокрутки мышиного колеса над определённым блоком, то есть не трогая «родной» скролл окна браузера. Реализация должна быть кроссбраузерной и не использовать какие-либо фреймворки.

Забегая вперёд, скажу, что этот экперимент удался вполне, а итоговый результат работает во всех десктопных браузерах, начиная с IE7 (по идее, должно работать и в шестом, но сейчас нет возможности это проверить). Также, хочу выразить благодарность поисковой системе Гугл. Без неё жизнь была бы соткана из уныния и отчаяния.
Читать дальше →
Total votes 102: ↑95 and ↓7+88
Comments40

Корова десятого уровня

Reading time2 min
Views7.8K


Работать по 12 часов в сутки, тащить на себе миллионы, быть кумиром тысячей хомячков, напиваться до безумия каждый релиз, экспериментировать и фанатично строчить фичекат до 3-х утра.
Забудь.

Ты в мейнстриме, бро.

Читать дальше →
Total votes 298: ↑218 and ↓80+138
Comments132

Олимпиада по программированию на Java для студентов

Reading time1 min
Views1.2K
image
Компания Oracle совместно с организацией It-планета приглашает студентов ВУЗов и колледжей принять участие в международной олимпиаде по программированию на Java — Oracle Java Olympic. Соревнования проходят в Украине, России, Беларуси и Казахстане и состоят из трех этапов. Для участия желательна регистрация ВУЗа или колледжа в системе, но возможно и персональное участие. Регистрация для участия в олимпиаде проходит до 30 ноября 2011 года на сайте http://world-it-planet.org/. Для регистрации на первой странице выберите «Oracle Java Olympic» и ваш регион проживания.

Первый этап — отборочный. Проводится удаленно. После регистрации участники получают ссылку для прохождения теста и в течении 45 минут отвечают на 40 вопросов по Java технологиям. Тест можно проходить в любое время с 1 по 15 декабря включительно. Для прохождения теста у каждого участника есть только одна попытка.

Второй этап
Победители отборочных этапов в своем ВУЗе приглашаются для участия в очном региональном туре, в ходе которого участники получают 7 задач, 4 часа времени и компьютер с операционной системой, JDK7, NetBeans 7.0.1 и документацией по Java API. Участие в соревнованиях личное.

Третий этап — финальный. Проводится в формате аналогичном второму этапу. Основное отличие — более сложные задачи (и соперники конечно).

Подробности и детальное описание конкурса смотрите на веб-сайте олимпиады.
http://world-it-planet.org/

Присоединяйтесь уже сегодня!
Total votes 10: ↑8 and ↓2+6
Comments13

Маленькие хитрости Java. Часть 2

Reading time5 min
Views108K
В продолжение первой статьи я добавлю еще несколько штрихов о наиболее часто встречающихся ошибках и просто плохом коде, с которым часто приходится иметь дело при работе с уже написанными проектами. Я не выносил это в первую часть, так как эти ситуации встречаются гораздо реже, но поскольку первая часть вызвала много позитивных отзывов, решил продолжить. Спасибо всем комментаторам, отзывам и замечаниям. Я постараюсь избежать допущенных ошибок. Итак, продолжим:

Buffered Streams

//медленно
InputStream is = new FileInputStream(file);
int val;
while ((val = is.read()) != -1) {
}
//быстро
InputStream is = new BufferedInputStream(new FileInputStream(file));
int val;
while ((val = is.read()) != -1) {
}

Казалось бы — очевидная истина, неправда ли? Но как показал чужой код и опыт собеседования кандидатов, часть разработчиков определенно не понимает в чем преимущество буферизованных стримов. Кто до сих пор не разобрался — метод read() класса FileInputStream:
public native int read() throws IOException;

Согласитесь, каждый раз делать системный вызов, чтобы считать один байт несколько расточительно. Собственно для того, чтобы избежать этой проблемы и были созданы оболочки-буферы. Все что они делают — при первом вызове системного read() считывают несколько больше (в зависимости от указанного размера буфера, котрый по умолчанию равен 8 кб) и при следующем вызове read() считывают данные уже из буфера. Прирост производительности — на порядок. Системные вызовы, на самом деле, это не всегда плохо, например:
System.arraycopy(src, srcPos, dest, destPos, length);

В случае копированния массива — системный метод будет гораздо быстрей реализованного на java. И еще — считывайте данные порциями, а не по байтам, это тоже позволит прилично сэкономить.
Читать дальше →
Total votes 93: ↑84 and ↓9+75
Comments91

10 примеров меню для web страниц

Reading time1 min
Views18K
image Эти способы не являются ноу-хау или чем-то в этом духе. Тем не менее, они могут помочь начинающим дизайнерам и web технологам в реализации задуманных ими идей. Каждый из предложенных вариантов можно обыграть по-своему.

Проверял лично и убедился в том, что исправно работает под следующими браузерами:

IE7+, Opera 10.5+, FF 3.6+, Chrome 12+ (linux), Chrome 13+ (windows), Safari 5+(win) исходя из личного опыта, предполагаю о том, что работать исправно будет во всех свежих версиях Safari, FireFox, Opera и Chrome.

С помощью CSS можно построить вот такие вот симпатичные варианты:


Читать дальше →
Total votes 163: ↑131.5 and ↓31.5+100
Comments28

Путь фрилансера. Дорога к успеху или завоевание доверия заказчика

Reading time3 min
Views4.3K
Волка ноги кормят, а фрилансера – заказчики. Так вот эти заказчики с неба не падают, а адекватных заказчиков, которые готовы платить адекватную цену и не брызгать слюной и того меньше. В этой заметке я хочу собрать все свои наблюдения, которые мне позволили набить неплохую базу клиентов, которые готовы ждать меня иногда 1.5-2 месяца. Также я расскажу о допущенных ошибках, которые со мной случались за время работы фрилансером.
Читать дальше →
Total votes 68: ↑50 and ↓18+32
Comments103

Структуры данных в картинках. ArrayList

Reading time3 min
Views871K
Приветствую вас, хабралюди!

Взбрело мне в голову написать несколько статей, о том как реализованы некоторые структуры данных в Java. Надеюсь, статьи будут полезны визуалам (картинки наше всё), начинающим java-визуалам а также тем кто уже умеет писать new ArrayList(), но слабо представляет что же происходит внутри.



Сегодня поговорим о ArrayList-ах

ArrayList — реализует интерфейс List. Как известно, в Java массивы имеют фиксированную длину, и после того как массив создан, он не может расти или уменьшаться. ArrayList может менять свой размер во время исполнения программы, при этом не обязательно указывать размерность при создании объекта. Элементы ArrayList могут быть абсолютно любых типов в том числе и null.

Поверить на слово
Total votes 89: ↑82 and ↓7+75
Comments66

Что делать, если вы застряли с Большой и Сложной Программистской Задачей?

Reading time5 min
Views8.4K
image

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

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

Со временем я выработал способ, позволяющий вернуть мне продуктивность в такой ситуации и суметь закончить непростую задачу. Этим опытом я и хочу поделиться.
Читать дальше →
Total votes 158: ↑145 and ↓13+132
Comments38

Layout без layout'ов

Reading time4 min
Views26K
Библиотека Swing появилась примерно 15 лет назад и все эти 15 лет КАЖДЫЙ кто начинает программировать на Java задаёт один и тот же вопрос:
— Почему я не могу просто добавить кнопки с полями на форму без изучения всех этих LayoutManager'ов?

В стандарной JRE содержится больше десятка классов для компоновки элементов (FlowLayout, GroupLayout и т.п.), постоянно появляются новые компоновщики типа MigLayout но ситуация не улучшается.

Рассмотрим варианты создания форм типа этой:

image
Читать дальше →
Total votes 47: ↑31 and ↓16+15
Comments120

Авторизация через ВКонтакте, Mail.ru и другие для самых начинающих — 1

Reading time4 min
Views48K
На хабре и других ресурсах есть туториалы, однако в каждом упущен какой-нибудь незначительный момент, вопросы по которому можно видеть на различных форумах. Так как недавно столкнулся с задачей подружить один сайт с Контактиком и Майл.ру, то решил, пока свежа память, сделать свое небольшое руководство с блэкджеком так сказать, используя родные виджеты этих социальных сетей.
Читать дальше →
Total votes 111: ↑100 and ↓11+89
Comments45
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity