Pull to refresh
28
0

User

Send message

Идеальный ноутбук для программиста

Reading time 4 min
Views 88K

Для чего?


Я езжу на работу и обратно, домой. В день, провожу в общественном транспорте 3-4 часа (в зависимости от пробок). Далековато, не правда ли? Чтобы не скучать, мне был нужен рабочий жеребец, на котором бы я творил в дороге.

Ряд качеств


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

15'' мне показался слишком большим, для того чтобы держать его на коленях в транспорте. По этому я выбрал 13'' – оптимальный экран для программирования (я использую NetBeans). Забегая вперед скажу – 13,3'' оказался даже немного великоват для транспорта.

Взвесив ноутбуки друзей, пришел к выводу, что хочу вес ниже 2.5 кг – оптимальный для таскания с собой (а подержав EEE на 1.5 кг – я вообще испытал щенячий восторг от его легкости).

Особое внимание уделял раскладке и клавиатуре. Клавиши должны быть достаточно большими, а стрелки должны быть удобными. Page UP/DOWN должны находиться не в жопе мира.

Интернет в дороге мне не нужен. В некотором роде, он отвлекает. Поэтому особо не заострял внимания на G4 моделях (с WiMax).

А вот срубить с друзьями в multiplayer – неплохо. Чтобы ноут позволял это – процессор хотелось поинтерестнее, чем Celeron, а видеокарту помощнее.

И обязательно (с чего я начал повествование), ноутбук должен жить. И делать это довольно долго – минимум 4 часа.

ну так почему же не iPad?
Total votes 82: ↑40 and ↓42 -2
Comments 86

End tag: optional

Reading time 3 min
Views 1.2K
Задача: Рассказать об красоте отсутствия закрывающихся тегов.

Сейчас читаю множество статей на хабре, в которых хабра-авторы выкладывают свой HTML. Я хочу показать, как его можно сделать красивее.

Речь пойдёт о тегах:
  • OPTION
  • P
  • LI, DT, DD
  • THEAD, TFOOT, TBODY
  • TR, TD, TH
Суть в том, что эти теги не обязательно необходимо закрывать.

Читать дальше →
Total votes 80: ↑23 and ↓57 -34
Comments 91

Плохой пример для подражания

Reading time 1 min
Views 745
Дорогой Жуковод! Вот уже пять месяцев вы не интересуетесь успехами своих жуков, не стремитесь к достижению новых вершин! Ваша карьера может бесславно завершиться. Если вы в ближайшее время не зайдете в игру, ваш персонаж вместе со всеми питомцами навсегда покинут проект. Для входа в игру перейдите по ссылке: zhuki......ru Если Вы забыли свой пароль, Вы можете восстановить его по этой ссылке: www.......html Желаем удачной игры! С уважением, администрация.
В общем, если хотите произвести у пользователя негативное впечатление — всегда придерживайтесь правилам:
1) (одно из главных) Старайтесь навязать ваше мнение, особенно, когда пользователь знает это лучше вас.
Жуками я не интересуюсь уже более 5 лет. Первый раз интересовался, как только сервис запустился — но игра оказалась не для меня.
1') Всегда пишите так, чтобы пользователь догадался, что к нему текст имеет малое отношение. Обобщайте абсолютно все моменты. Чтобы подошло к максимальному количеству пользователей.
2) Попытайтесь заставить пользователя чувствовать себя виноватым.
Да, я не стремлюсь к достижению новых вершин. И на бесславную карьеру мне пофиг.
3) Обязательно ставьте условия. Пытайтесь шантажировать пользователя.
3') Не забывайте постоянно удалять пользовательские аккаунты.
4) Никогда не перечитывайте текст посылаемый пользователю и не задумывайтесь, как он или она может воспринять вашу информацию.
Ну или доверяйте это людям, которым похрен на ваш проект.
5) Ну и незабудьте после ваших издевательств пожелать удачи.
Total votes 3: ↑3 and ↓0 +3
Comments 0

Палка о двух концах или ещё раз о хрупкости кода

Reading time 9 min
Views 1.4K
Я пишу этот топик, как ответ на недавнюю статью «10 приемов, разрушающих хрупкую красоту кода», в которой разгорелось множество споров.

Многое уже написано в комментариях, многое не написано. Я лишь хочу здесь показать реальные примеры, что есть множество ситуаций, где Автор не прав, где предлагаеммые им решения будут мешать.

Автор во многом прав, но он слишком категоричен в убеждениях. Профессия программиста заключается в том, чтобы думать и описывать решение задачи оптимальным способом. Как и в любом искусстве, если программист будет решать все задачи «подставляя лишь шаблоны», то все его решения — будут полнейшей ерундой. Программист — человек умеющий думать, а языки программирования предоставляют охрененно гибкий интерфейс для реализаций алгоритмов решений. По этому не стоит отказываться от особенностей языка — потому что в шаблоне написано не пользоваться — уж разработчики языков за вас уже продумали всё 100 раз, чтобы оставить эти методы и уверен, что в документации вы можете найти наиболее подходящие методы использования.

То, что Автор рассказал, хорошие советы. Но он показал лишь одну сторону медали. Я сейчас покажу другую.
Темная сторона силы
Total votes 119: ↑103 and ↓16 +87
Comments 91

Блог Новости

Reading time 1 min
Views 600
Давайте, чтобы хорошие блоги не ушли в Оффтопик, будем писать Copy-Paste Новости и другие сплетни в отдельный блог Новости или Ленту новостей.

Недовольные, вспоминают правила Хабра.

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

p.s. Блоги, например Google, Apple — всегда останутся новостными — потому что это блоги о компаниях и их продуктах.
Я предлагаю «почистить» авторские блоги, такие как PHP, Железо итд.

UPD: Интерестную идею развивают в комментариях.
Total votes 23: ↑17 and ↓6 +11
Comments 14

Работа с модулями

Reading time 12 min
Views 2.9K
Задача:
Использовать класс, в который можно добавлять новые методы воздействия, чтобы в последующем можно было ими пользоваться. При этом отделить эти методы по разным файлам.
Представим космический корабль, в котором используются:
a) методы перемещения по пространству, связанные с двигателем
б) методы зарядки энергии, связанные с его солнечными батареями
в) итд

Есть варианты:
1) Создание в объекте переменных и инициализация их через __construct, как новые классы.
Но, при создании каждого нового объекта — мы получаем снижение производительности и постоянную модификацию класса (что может осложнять работу нескольких программистов).
2) Работа через функции __call, __get, __set.
В 3-10 раз более медленная работа этих функций. Особенно при вызове call_user_func_array с параметрами.

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

В этом хабратопике я затрону темы:
1. Overloading
2. Ускорение загрузки модулей. Объединение модулей.
3. Оптимизация
Читать дальше →
Total votes 22: ↑9 and ↓13 -4
Comments 73

output в PHP

Reading time 1 min
Views 875
Хочу узнать, как можно ускорить 'вывод' страницы, написанной на php?

Код такой:
$start=microtime(true);

echo $html;

echo microtime(true)-$start;
Страница загружается через сеть, посредством http запроса.
Результат работы скрипта:
0.023 — то есть потеря 0.02 sec на 20 килобайт текста.
Выделенный сервер — Athlon 2800+/512 ram/10 Mbit/Linux,
Apache 2 + eaccelerator + php 5.2.4. (объеденяющая сервер с клиентом сеть — 10 Mbit)

Расскажите мне:
Почему это происходит?
Как это можно ускорить?
Интересует, чемнибудь может помочь установка nginx или lighttpd?

Спасибо.

Upd.
Решение уже обсуждалась здесь: habrahabr.ru/blogs/php/45016 (спасибо DYPA и автору топика gnomeby)
Total votes 8: ↑4 and ↓4 0
Comments 15

Оптимизация загрузки статических данных

Reading time 2 min
Views 1.9K
Небольшой хабратопик про то, каким образом можно оптимизировать загрузку большого количества статических данных в программу на PHP.

Встала проблема загрузки заранее посчитанных данных в программу поиска пути между двумя точками (не важно какую). Проблема встала настолько сильно, что загрузка просчитанных данных стала занимать 90% всех последующих расчётов.
Мои данные — двухмерный массив, состоящий из 200 на 200 ячеек примерно.

Тестирую unserialize, json_decode


с буквенными ключами
json_decode — 0.080sec
unserialize — 0.072sec

только цифровые ключи
json_decode — 0.041 sec (170kb)
unserialize — 0.037 sec (500kb)

Сам маршрут ищется за 0.0004-0.0012 sec :)
Значит, надо ещё что-нибудь придумать.

Читать дальше →
Total votes 14: ↑10 and ↓4 +6
Comments 38

Regexp — это «язык программирования». Основы

Reading time 4 min
Views 25K
Несколько лет назад я думал, что regexp осуществляет линейный поиск по тексту, но какое моё удивление было, когда я понял, что это не так. Тогда я убедился на собственном опыте, что от простой смены местами а и b в схеме (...a...)|(...b...) поменялся полностью результат.

Поэтому сейчас я расскажу, как на самом деле работает regexp.
Поняв эти простые принципы и как оно работает, вы сможете писать любые запросы.
Для примера, я разберу сложную при первом приближении, но на самом деле простейшую задачу – выявление всех строк в кавычках.
Читать дальше →
Total votes 114: ↑101 and ↓13 +88
Comments 35

Очереди в Сбербанках по новому

Reading time 2 min
Views 1.5K
Хочу дать несколько советов по улучшению Электронных очередей.
Сейчас в некоторых Сбербанках города Москвы реализована система «Электронных очередей».

В нашем центральном Зеленоградском Сбербанке это выглядит следующим образом:
На входе стоит аппарат, в котором одним кликом (на необходимую тебе операцию) можно получить чек c номером.
Ты садишься в кресло и ждёшь, пока робот назовёт твой номер и к какому окну тебе необходимо подойти.

Всё оставляет приятные впечатления, кроме нескольких вещей, которые (даже сейчас, простым обновлением ПО) можно и нужно улучшить.

Читать дальше →
Total votes 39: ↑35 and ↓4 +31
Comments 58

Как заказчик фрилансера нанимал. Русская народная сказка

Reading time 1 min
Views 554
Тебе, лансер, житье у меня будет лехкое, — не столько работать, сколько отдыхать будешь!

Утром станешь, как подобат, — до свету. Сайты с инету нарыщешь, на почту мне кинешь и —
спи-отдыхай!

Фотки обработаешь, артифакты на них приберешь —
спи-отдыхай!

Старый проект от багов вычистишь — мы с программерами смотреть сядем, а ты —
спи-отдыхай!

После этого новые баги всплывут, исправишь и —
спи-отдыхай!

Немного нового рабочего материала найти надо будет, всего мегов 300, а потом —
спи-отдыхай!

Материал найдёшь, в фотошопе обработаешь. Мы с дизайнерами будем смотреть, а ты —
спи-отдыхай!

Вечером составишь макет, кинешь его нам, а ты —
спи-отдыхай!

Для жены босса баннер сделаешь — его к завтрему, и —
спи-отдыхай!

По скайпу с тобой потреплимся, да спать сляжем. А ты, лансер, день-деньской проспишь-проотдыхашь — во што ночь-то будешь спать?
Ночью на сервере установишь новые библиотеки и опять —
спи-отдыхай!

Ну, под утро страницы сверстаешь, которы надо — слинкуешь к готовому и —
спи-отдыхай!

Да ведь, лансер, не даром. Деньги платить буду. Кажной год по рублю! Сам подумай. Сто годов — сто рублев. Богатейким станешь!

p.s. по мотивам
Total votes 45: ↑29 and ↓16 +13
Comments 9

Открытие блога. Улучшаем аватарку блога

Reading time 1 min
Views 429
Давно сам нуждался в этом блоге. Например, когда я писал эту хабра-статью, где мне нужен был совет.

Теперь есть блог, в котором считается плохим тоном — холивары, а хорошим — помощь по улучшению кода/графики/юзабельности и всего, что приходит в голову хабраавторам.

Задавайте в этом блоге ваши вопросы по улучшению, а мы подскажем вам как улучшить, поделимся нашим опытом.
p.s. Не путайте с бизнес-линчем того, о ком не говорят™. Не путайте этот блог с «Я пиарюсь» :)

Блогу хорошо бы придумать картинку.
У меня есть одна идея, но мне она не нравится, потому что уже БАЯН :) и плохо читается текст.



По этому я жду интерестных ваших предложений по её улучшению и помощи у дизайнеров.
Total votes 14: ↑8 and ↓6 +2
Comments 4

Оптимизации системы разделения прав доступа в веб-приложении

Reading time 19 min
Views 7.4K
После написания прошлой статьи про реализацию системы разделения прав доступа в веб-приложении, появилось множество интересных комментариев. В них в основном велись споры о том, что можно сделать её ещё лучше.

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

В этой статье я рассмотрю:
  1. Битовые поля, оптимизация
  2. Serialize с денормализацией таблиц БД
  3. Вы узнаете, как работает система, подобная Zend ACL

Читать дальше →
Total votes 38: ↑30 and ↓8 +22
Comments 47

Система разделения прав доступа в веб-приложении

Reading time 14 min
Views 68K
В этой статье мы пройдём с вами полный цикл от идеи, проектирования БД, написания PHP-Кода, и завершающей оптимизации. Постараюсь рассказать обо всем, как можно проще. Использовать для примеров буду PHP и Mysql. Заодно потренирую новичков :).

В этой статье я коснусь вопросов:
  1. Идея ACL
  2. Проектирование БД
  3. Нормализация БД
  4. Рефакторинг кода
  5. Оптимизация рабочего кода

Статья является ответом на Бинарное распределение прав доступа в CMS. Пока автором пишется практическая часть, я хочу предоставить мой вариант, который я использую довольно давно.
То, что я сейчас расскажу, похоже на ACL.

Читать дальше →
Total votes 94: ↑71 and ↓23 +48
Comments 103

Познаём Русский язык. Цистерна первая, полная.

Reading time 1 min
Views 831
10  INPUT string$
20  LET from$ = "жы"
30  LET to$ = "жи"
40  GO SUB 1000
50  LET from$ = "шы"
60  LET to$ = "ши"
70  GO SUB 1000
80  LET from$ = "чя"
90  LET to$ = "ча"
100  GO SUB 1000
110  LET from$ = "щя"
120  LET to$ = "ща"
130  GO SUB 1000
140  LET from$ = "чю"
150  LET to$ = "чу"
160  GO SUB 1000
170  LET from$ = "щю"
180  LET to$ = "щу"
190  GO SUB 1000
200  PRINT string$
300  STOP
1000  LET lenstr = LEN string$
1010  LET lenfrm = LEN from$
1020  FOR n = 0 TO lenstr
1030  IF string$(n TO n+lenfrm) = $from THEN LET string$ = string$(TO n) + to$ + string$(n+lenfrm TO)
1040  NEXT n
1050  RETURN

Во второй полной цистерне я научу вас, как писать частицу «не» отдельно от глаголов :)
Total votes 79: ↑58 and ↓21 +37
Comments 20

Безразмерная разметка с помощью relative (без float)

Reading time 2 min
Views 4.1K
Навеянно этой темой.
Пример, как это работает.

1. Введение


Представим, мы имеем класс relative, внутри которого имеется текст, и не задаём ему width:
#bar{
position:relative;
border:5px solid #00FFFF;
padding:10px;
height:200px;
}
мы получим резиновый блок:
<div id="bar">
text
</div>


При этом, блок обладает неизменными padding+border и резиновым width, таким, что width_px+padding_px+border_px = 100%.
Для absolute блоков, такой трюк не прокатывает.
Читать дальше →
Total votes 74: ↑62 and ↓12 +50
Comments 77

Сравнение матриц мониторов — TN и *VA.

Reading time 4 min
Views 204K
Давно меня мучал вопрос: чем отличаются изображение у современных мониторов с матрицами TN, S-IPS, S-PVA, P-MVA. Мы с другом ne0, решили сравнить.

Для тестов взяли два 24'' монитора (на S-IPS к сожалению не нашли ничего:( ):
— на дешевой матрице TN Benq V2400W
— на матрице P-MVA средней категории Benq FP241W.

Характеристики кандидатов:

Benq V2400W

Тип матрицы: TN+Film
Дюймы: 24"
Разрешение: 1920x1200
Яркость: 250 кд/м2
Контрастность: 1000:1
Время отклика: 5мс / 2 мс GTG


Benq FP241W

Тип матрицы: P-MVA (AU Optronics)
Дюймы: 24"
Разрешение: 1920x1200
Яркость: 500 кд/м2
Контрастность: 1000:1
Время отклика: 16 мс / 6 мс GTG


Тенденции последних лет


Матрицы TN (TN+film) улучшают по цветопередаче, яркости и углам обзора.
Матрицы *VA (S-PVA/P-MVA) улучшают по времени отклика.

До чего дошел прогресс?
Total votes 89: ↑74 and ↓15 +59
Comments 158

Добавление разъема внешней Wi-Fi антенны на ноутбуки и Tablet PC

Reading time 5 min
Views 127K

В этой статье я расскажу о добавлении разъема внешней Wi-Fi антенны на ноутбуки и Tablet PC.
Обычно антенны с высоким коэффициентом усиления используются для увеличения покрытия точками доступа, я же покажу какой эффект они оказывают на стороне передатчика.
Экспресс тестирование направленных и всенаправленных антенн в качестве бонуса.
Читать дальше →
Total votes 52: ↑50 and ↓2 +48
Comments 70
1

Information

Rating
Does not participate
Location
Россия
Registered
Activity