Как стать автором
Обновить
25
0

Пользователь

Отправить сообщение

Тонкости nodejs. Часть I: пресловутый app.js

Время на прочтение5 мин
Количество просмотров42K
Я работаю с node.js более трех лет и за это время успел хорошо познакомиться с платформой, ее сильными и слабыми сторонами. За это время платформа сильно изменилась, как, собственно, и сам javascript. Идея использовать одну среду и на сервере и на клиенте пришлась многим по душе. Еще бы! Это удобно и просто! Но, к сожалению, на практике все оказалось не так радужно, вместе с плюсами платформа впитала в себя и минусы используемого языка, а разный подход к реализации практически свел на нет плюсы от использования единой среды. Так все попытки реализовать серверный js до ноды не взлетели, взять тот же Rhino. И, скорее всего, node ждала та же участь, если бы не легендарный V8, неблокирующий код и потрясающая производительность. Именно за это его так любят разработчики. В этой серии статей, я постараюсь рассказать о неочевидных на первый взгляд проблемах и тонкостях работы, с которыми вы столкнетесь в разработке на nodejs.

Читать дальше →
Всего голосов 55: ↑48 и ↓7+41
Комментарии20

Лекция Владимира Пирожкова

Время на прочтение1 мин
Количество просмотров12K
Промышленный дизайнер, делал дизайн от Citroen и Toyota до салона космического корабля (а также олимпийского факела), рассказывает о себе, о своём новом проекте принципиально нового транспорта (что-то между автомобилем и вертолётом).
Видео смотрится на одном дыхании.



Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии19

Youtube

Время на прочтение1 мин
Количество просмотров223K
Приходится ждать загрузки видео >360p по несколько секунд, обрывы на середине просмотра стало уже обыденным делом и это с достаточно широким каналом.

image

Причина в занижении провайдерами скорости к серверам кеширующим видео, всё что нужно сделать это заблокировать доступ к ним.

Для того чтобы запрос шел мимо cdn серверов ютуба надо заблокировать диапазон ip адресов (в роутере или на компьютере).

173.194.55.0/24 и 206.111.0.0/16
Читать дальше →
Всего голосов 205: ↑147 и ↓58+89
Комментарии179

Расширение возможностей экрана блокировки в Android 4.2.x

Время на прочтение2 мин
Количество просмотров151K
Многие владельцы планшетов линейки Nexus или других моделей под управлением Android 4.2.x, заметили что разработчики Google довольно мало внимания уделили экрану блокировки. В данном посте хочу рассказать про один очень полезный инструмент, который позволит использовать экран блокировки более эффективно. Речь пойдет о DashClock Widget (GooglePlay).


Кому интересно — прошу под кат.
Читать дальше →
Всего голосов 65: ↑54 и ↓11+43
Комментарии39

Украшательство Android-телефона: рецепты красивых рабочих столов

Время на прочтение1 мин
Количество просмотров156K
Одним из плюсов телефонов на базе Android является возможность полной кастомизации интерфейса под себя. Благо всевозможных виджетов под систему существует огромное количество. Причем, их настолько много, что пользователи гуглофонов иногда напоминают скульпторов или художников – попробуй совмести все нужное так, чтобы получилось красиво, да еще и учти все нюансы настроек. Одним словом, настройка требует времени, вкуса и недюжинного воображения.

Специально для тех, кто делает первые шаги в настройке своего телефона/планшета, существует отличный сайт Mycolorscreen.com (странно, что о нем не упоминали на хабре), позволяющий посмотреть на примеры кастомизации других пользователей. Причем сайт изобилует не просто примерами, но и детальными рецептами того, как приготовить такой стол самому.



Под катом еще несколько примеров.
Читать дальше →
Всего голосов 165: ↑119 и ↓46+73
Комментарии37

Очень быстрый и эффективный способ расслабления глаз

Время на прочтение4 мин
Количество просмотров414K

Предисловие


imageНе знаю, все ли программисты всесторонне любознательные люди, но я всегда пытаюсь получить фундаментальные знания во всех областях, которые могут быть практически полезны. В то время, когда мне в голову пришла эта идея я изучал анатомию и физиологию по журналам «Тело человека. Снаружи и внутри», ну а по работе я занимался стерео-варио фотографиями (для тех кто не знает — были такие советские календарики с ребристой поверхностью, где картинка либо казалась объемной, либо менялась). Так вот, в один из вечеров мне пришла в голову замечательная идея, которую я на протяжении уже 4х лет использую для поддержания своего зрения.
Обещаю, что эффект почувствуете сразу!
Читать дальше →
Всего голосов 246: ↑238 и ↓8+230
Комментарии207

Электронная подпись физического лица (часть 1)

Время на прочтение6 мин
Количество просмотров58K
Я расскажу о Федеральном законе от 6 апреля 2011 г. N63-ФЗ «Об электронной подписи»: что он, зачем он, а главное, как обывателю его использовать. Рассмотрю проблемы, с которыми я столкнулся, и их решения. Этот пост направлен больше в сторону социума, поэтому для технарей будет присутствовать некая избыточная информация.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии30

Home Screen-хамелеон для Android

Время на прочтение1 мин
Количество просмотров5.7K


Chameleon, альтернатива домашнему экрану для Android 3.2 / 4.0, изменяется в зависимости от текущего времени суток, wifi-сети поблизости и от текущего местоположения пользователя.
Читать дальше →
Всего голосов 61: ↑49 и ↓12+37
Комментарии36

Атипичные клавиатуры

Время на прочтение7 мин
Количество просмотров18K
Говорят, что обычная QWERTY-клавиатура была изобретена с целью уменьшить скорость набора, потому что у слишком быстрых машинистов первые машинки клинили. Не знаю, сколько в этом утверждении правды, но то, что раскладка далеко не идеальна — факт. Факт также то, что разрабатывалась она для печати десятью пальцами на больших клавишах размещенных в три ряда.

В неизменном виде она перекочевала на электрические пишущие машинки, а затем и на компьютерные клавиатуры, где все стало ещё удобнее — теперь клавиши срабатывали от легкого нажимания, и по ним не приходилось лупить со всей дури.
Все было бы просто отлично, если бы не страсть к минимизации. Ноутбуки, нетбуки, классические смартфоны (не «тачфоны») — QWERTY-клавиатура стремительно уменьшалась в размерах, сохраняя при том свою сущность. Для некоторых таких творений впору вести набор спичками. Были и неплохие инженерные решения — например на Sony-Ericsson M600i клавиши-качели содержали по две-четыре символа, и они выбирались в зависимости от способа нажима.

Но когда это добро перекочевало на экраны… возьмем в качестве образца айфон(да, исторически первым [массовым] тачфоном все-таки было яблоко): три с половиной дюйма диагонали, отношение сторон — 2:3. Кто помнит теорему Пифагора, какова ширина экрана?
x² + (3x/2)² = 3,5²
x² = 49/13
x ≈ 1,94" ≈ 49,3мм.
Итак, ширина экрана — меньше 5 сантиметров. В ряду — 10 клавиш. Получается — около 5 мм на клавишу, и это включая промежутки между ними. Не знаю как у вас, а меня пальцы ощутимо шире, да и печатать на приборе таких размеров я могу только одним, ну максимум двумя большими пальцами одновременно. Ну не могу я печатать на ЭТОМ, при всей его умности! Хватит обратной совместимости! Я печатать вслепую научился за неделю, так дайте мне клавиатуру, где не придется целится в клавиши! Я её изучу! Я хочу комфортно и быстро печатать!

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

Их я и попытаюсь сегодня осмотреть.
Читать дальше →
Всего голосов 161: ↑148 и ↓13+135
Комментарии157

Еще раз о создании jQuery плагина или применяем на практике

Время на прочтение7 мин
Количество просмотров1.6K
Доброго времени суток, %habrauser%!

Предисловие

Я работаю программистом и пишу проекты для внутренних нужд компании. Проекты попадаются разнообразные и интересные.
До недавнего времени многие «красивости» я делал при помощи небезызвестного jQuery UI. В наборе есть практически все необходимые виджеты и т.п., использовать его просто и удобно. И даже если возникли проблемы, ответы на вопросы можно без проблем найти в сети.
И все бы было хорошо в датском королевстве, если не одно НО
Читать дальше →
Всего голосов 36: ↑24 и ↓12+12
Комментарии18

[C++]Проектирование по контракту и принцип LSP на примере «Почему класс Человек не может быть подтипом класса Камин»

Время на прочтение3 мин
Количество просмотров1.4K
«Принцип подстановки Лисков(LSP)» и «Проектирование по контракту (DbC)»- хорошо объясняется в этой англоязычной PDF

Объясню в 2 словах, что это такое:
DbC: функции снабжаются предусловиями(preconditions) и постусловиями(postconditions).
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии9

FOSS проекты в России

Время на прочтение2 мин
Количество просмотров1.2K
Разбирали недавно для дела информацию о российских проектах разработки СПО и обнаружили много интересного. Например, вы знали, что в России есть открытая КИС? Есть, оказывается, называется Millenium BSA, и коды разработчик открыл уже довольно давно. При этом шума никакого даже на СПО рынке не наблюдается — понятно, сидят ребята у себя в Самаре, пытаются сделать хотя бы локальный бизнес, ресурсов на нормальное продвижение не хватает наверняка. Непонятно, кстати, как бизнес делают — другие хоть собственный открытый софт на какой-нибудь Oracle ставят и свой кусок хлебушка с маслом имеют таким образом. А у этих вроде бы даже глобальных партнерств не наблюдается. Между тем, именно в части учетных систем российские проекты, изначально учитывающие нашу бухгалтерскую специфику, легко бьют западные, особенно в малом бизнесе. Полезно было бы админам по России-матушке знать о том, что есть такая открытая система.

С другой стороны, обнаружились какие-то странные дыры-пробелы на российском пространстве СПО-разработки. Где, спрашивается, отечественная СПО-графика и моделирование? Ну хорошо, CAD-CAE специфический узкий рынок, там нескоро хоть кто-то появится из российского СПО сообщества, если вообще соберется. Но уж программу для 3D анимации неужто никто в России не соблазнился написать и открыть, just for fun? Молчит рунет, ничего на берег не выносит.

В этом смысле конкурс «Лучший свободный проект России», объявленный журналом Linux Format, очень правильное начинание. Дело даже не только в деньгах, хотя полмиллиона тоже на дороге не валяются и региональным разработчикам по нынешним временам очень бы не помешали. Но для общего дела не менее важно, что по итогам конкурса будет составлена карта СПО проектов России (и соседних стран). Вот тогда-то и можно будет понять, что из российских свободных разработок уже вполне юзабельно в бизнесе и дома (потому что подавать заявки могут не только разработчики, но и довольные пользователи), где это брать и какие ниши еще не заняты (это если кто раздумывает, чем бы ему на досуге заняться).
Всего голосов 16: ↑13 и ↓3+10
Комментарии10

Учимся руководить — постановка цели

Время на прочтение3 мин
Количество просмотров1.2K
Работая на руководящих должностях определенное время, вывел для себя некоторые критерии хорошего и не очень хорошего руководителя, а то и не руководителя вовсе.
Для многих руководящая должность это прежде всего повышенная заработная плата, и не более. Но быть хорошим руководителем не так то просто.
На руководителя возлагается ответственность, большая чем на его сотрудников. Принятие решения. Разные защиты, будь то проекты или бюджеты. Разного рода отчетность.
Но давайте по порядку.
Читать дальше →
Всего голосов 26: ↑18 и ↓8+10
Комментарии8

Уголок Java-разработчика: библиотеки на каждый день

Время на прочтение3 мин
Количество просмотров8K
За все время, проведенное в написании кода на Java, у меня сформировался определенный набор полезных cторонних библиотек, которые прочно засели в classpath, и без которых не обходится ни один день разработки, будь то написание чего-либо «на коленке» или работа над серьезным проектом. Речь идет не о «монстрах» вроде Spring, Struts, Hibernate (это другая история), а скорее об утилитах, которые заполняют пробелы в Java SE API и позволяют сэкономить десяток-другой лишних строк кода/минут тут и там. Этой информацией я бы и хотел поделиться с хабрасообществом — надеюсь, она пригодится особенно тем, кто только начинает штурмовать Java, и позволит немного, но увеличить производительность труда.

Итак, список наиболее часто используемых мной классов и методов с комментариями:
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии3

Маршрутизация в Mac OS при VPN подключении

Время на прочтение2 мин
Количество просмотров105K
Появилась как-то задача подключатся по VPN к рабочей сети, чтобы иметь доступ к внутренним ресурсам.
Средствами Мака это можно сделать создав VPN подключение и 2 варианта:
1. поставить галочку «Слать весь трафик через VPN подключение»
2. статически прописать статически route add -net 192.168.10.0/24 192.168.44.1, где 192.168.10.0/24 — сеть в которой находятся компьютеры на работе, 192.168.44.1 VPN шлюз к которому я подключаюсб.

Итак после каждого подключения нужно делать вторую манипуляцию, так как общий доступ в интернет ограничен и скорость не ахты. Или задача состоит в том чтобы ходить на сайты (например youtube) через более быстрый канал VPN…

Решение ниже
Всего голосов 27: ↑20 и ↓7+13
Комментарии32

Создаем Веб Сервисы на платформе Oracle WebLogic Server, тестируем с SoapUI

Время на прочтение13 мин
Количество просмотров49K

Введение


В этой заметке я расскажу и покажу как создать два небольших приложения использующих SOAP Веб Сервисы для сервера приложений Oracle WebLogic Server 11g. Это непосредственно сервис и взаимодействующий с ним клиент.

Oracle WebLogic Server 11g реализует платформу J2EE 5, которая в свою очередь включает в себя описание ряда технологий, в том числе и Java API для разработки Веб Сервисов, ипользующих XML (JAX-WS).

Помимо прочего я опишу процесс тестирования Веб Сервисов с помощью SoapUI.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии7

Сериализация в Java: как заглянуть внутрь черного ящика

Время на прочтение9 мин
Количество просмотров16K
Испокон веку в Java есть чудесный механизм сериализации, который позволяет, не прилагая особых умственных усилий, сохранять в виде последовательности байт сколь угодно сложные графы объектов. Формат хранения хорошо документирован, есть куча примеров, сериализованные объекты «весят» вполне себе немного, пересылаются по сети на раз, есть куча возможностей для кастомизации… Все это звучит прекрасно, но только до тех пор, пока вы не останетесь один на один каким-нибудь многомегабайтным бинарным файлом, содержащим очень-очень ценные и нужные именно сейчас данные.

Как голыми руками залезть в этот файл, и понять, что же хранится внутри этого огромного сериализованного графа объектов, не имея исходного кода? На эти и многие другие вопросы может ответить Serialysis – библиотека, которая позволит вам детально проанализировать сериализованные java-объекты (сериализованная форма — это мой вариант перевода выражения serial forms, решил не уходить далеко от оригинала). Таким образом можно получить информацию об объекте, которая не доступна через его публичный API. Библиотека также является полезным инструментом при тестировании сериализации ваших собственных классов.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии1

Делаем «mindmap» на Javascript с локальным хранением в базе данных браузера

Время на прочтение25 мин
Количество просмотров56K

Это небольшой учебный пример редактора карты памяти. За счёт очень подробных комментариев и простого кода, понять его не составит проблем. Статья предназначена для знающих и изучающих Javascript.

Я опишу особенности создания редактора карты памяти, который использует базу данных браузера. Причём, это будет не LocalStorage, который не может превышать 5 мегабайт. Объём данных сможет превысить 100-200 мегабайт, так как используется IndexedDB или webSQL, смотря что доступно в конкретном браузере.

Исходники выложены в открытый доступ на Github.

Мы уложимся в 520 строк кода, при этом в нашей карте можно будет перетаскивать узлы между собой, удалять, переименовывать и создавать новые. А также можно будет назначать одну из 120 иконок через контекстное меню.

Секрет минимализма в том, что мы будем использовать проверенные в бою плагины:
  1. Ydn.db — хранение информации в базе данных браузера с автоматическим выбором лучшего метода и единым API
  2. jQuery context menu — контекстное меню, которое можно наполнять динамически при помощи Javascript
  3. jsPlumb — расширение позволяющее рисовать линии между HTML элементами
  4. jQuery UI — Drag&drop — перетаскивание элементов между собой


PS: Также мы научимся создавать «синглтон», облегчать себе асинхронное программирование при помощи jQuery и встроенного объекта $.Deferred(), а также при помощи плагина LiveReload, сохраним краску на клавише F5 при изменении свойств CSS и кода в HTML и Javascript.
Читать дальше →
Всего голосов 116: ↑108 и ↓8+100
Комментарии45

Замыкания в JavaScript

Время на прочтение5 мин
Количество просмотров272K
Если вы используете JavaScript, но при этом так до конца и не разобрались, что же это за чудная штука такая — замыкания, и зачем она нужна — эта статья для вас.

Читать дальше →
Всего голосов 141: ↑130 и ↓11+119
Комментарии86

Паттерны JavaScript модулей в Impress для node.js и браузеров

Время на прочтение4 мин
Количество просмотров8.3K
У меня сложилось впечатление, что в обществе все же есть предубеждение против использования глобальных переменных в служебных целях. В связи с этим, хочу дать некоторые разъяснения с примерами, которые снимут всякие сомнения и будут полезны всем, кто жаждет модульности и гибкости в JavaScript разработке. Я не могу проследить источники всех идей, приведенных ниже, но я не претендую на их авторство, а лишь на творческое обобщение. Так же я отказываюсь от претензий на один универсальных паттерн определения модулей для всех случаев жизни, надеюсь, всем ясно, что такого не может быть никогда. Все это существенно отличается от подходов RequireJS, CommonJS и того, как модули оформляются в node.js через module.exports, однако, каждый из этих паттернов имеет свое место, если подходить к задаче без фанатизма и предубеждений.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии6

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность