Pull to refresh
25
0

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

Send message

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

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

Читать дальше →
Total votes 55: ↑48 and ↓7+41
Comments20

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

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



Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments19

Youtube

Reading time1 min
Views222K
Приходится ждать загрузки видео >360p по несколько секунд, обрывы на середине просмотра стало уже обыденным делом и это с достаточно широким каналом.

image

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

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

173.194.55.0/24 и 206.111.0.0/16
Читать дальше →
Total votes 205: ↑147 and ↓58+89
Comments179

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

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


Кому интересно — прошу под кат.
Читать дальше →
Total votes 65: ↑54 and ↓11+43
Comments39

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

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

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



Под катом еще несколько примеров.
Читать дальше →
Total votes 165: ↑119 and ↓46+73
Comments37

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

Reading time4 min
Views412K

Предисловие


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

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

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

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

Reading time1 min
Views5.7K


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

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

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

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

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

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

Их я и попытаюсь сегодня осмотреть.
Читать дальше →
Total votes 161: ↑148 and ↓13+135
Comments157

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

Reading time7 min
Views1.6K
Доброго времени суток, %habrauser%!

Предисловие

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

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

Reading time3 min
Views1.2K
«Принцип подстановки Лисков(LSP)» и «Проектирование по контракту (DbC)»- хорошо объясняется в этой англоязычной PDF

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

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

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

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

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

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

Reading time3 min
Views1.2K
Работая на руководящих должностях определенное время, вывел для себя некоторые критерии хорошего и не очень хорошего руководителя, а то и не руководителя вовсе.
Для многих руководящая должность это прежде всего повышенная заработная плата, и не более. Но быть хорошим руководителем не так то просто.
На руководителя возлагается ответственность, большая чем на его сотрудников. Принятие решения. Разные защиты, будь то проекты или бюджеты. Разного рода отчетность.
Но давайте по порядку.
Читать дальше →
Total votes 26: ↑18 and ↓8+10
Comments8

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

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

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

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

Reading time2 min
Views100K
Появилась как-то задача подключатся по 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…

Решение ниже
Total votes 27: ↑20 and ↓7+13
Comments32

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

Reading time13 min
Views48K

Введение


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

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

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

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

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

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

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

Reading time25 min
Views56K

Это небольшой учебный пример редактора карты памяти. За счёт очень подробных комментариев и простого кода, понять его не составит проблем. Статья предназначена для знающих и изучающих 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.
Читать дальше →
Total votes 116: ↑108 and ↓8+100
Comments45

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

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

Information

Rating
Does not participate
Registered
Activity