Все началось тогда, когда в моем доме появился второй компьютер. А файлами захотелось пользоваться сразу с нескольких устройств. Самым простым оказалось расшаривание общей папки, но необходимость оставлять компьютер включенным несколько напрягала. Тогда начались поиски решения, которые вылились в многочисленные эксперименты, и как итог, в написание этого материала.
Антон Филатов @fannt
User
Поиск работы для программиста в Лондоне
11 min
53KДисклеймер
Все написанное ниже основано на моем личном опыте и не претендует на истину. Там, где возможно, я даю ссылки на источники, читайте, проверяйте. Если ссылки на источник нет, значит это просто мое личное мнение, вы можете с ним не соглашаться, только не пытайтесь изменить мое.
Мы переехали в Лондон (Великобритания) из Хабаровска (Россия) в конце 2014. Мой муж senior php developer, с серьезным опытом работы c linux и вообще большой умница. Мой профессиональный багаж включает всякую ерунду типа FoxPro, но на последнем месте работы я занималась разработкой под интеграционную шину и JavaEE.
Шаг 1. Виза
Очевидно, чтобы приехать в Великобританию требуется виза, в контексте работы, пожалуй, наиболее реальный вариант Tier2 General.
+26
Поиск работы в США: «Силиконовая Долина»
5 min
38KРешил обобщить свой более чем десятилетний опыт поиска работы в США на рынке ИТ. Так или иначе вопрос довольно злободневный и часто обсуждаемый в русском зарубежье.
+19
Гайдлайн по использованию Apple Watch Human Interface
21 min
18KTutorial
Translation
Официальное руководство от Apple по разработке интерфейса для Apple Watch — теперь и на русском! Технические переводчики Alconost потрудились на славу. Правда, пока этот материал верстался, Apple выкатила новую версию гайдлайна, так что следите за обновлениями и в нашем блоге.
+10
Часто задаваемые вопросы по фреймворку WatchKit
16 min
17KTranslation
Для разработчиков Apple Watch — не просто нашумевший гаджет. Теперь им приходится осваивать Watch Kit, чтобы создавать и адаптировать свои приложения для «умных» часов. По мере знакомства с этой технологией, конечно же, возникает множество вопросов.
Мы в компании Alconost перевели обширный FAQ по фреймворку WatchKit. Будем рады, если труд наших технических переводчиков окажется для вас полезным. Для некоторых вопросов четких решений пока нет: в таких случаях следует полагаться на здравый смысл, советы специалистов и обоснованные предположения. Эта технология все еще в значительной мере находится в разработке, а следовательно, может изменяться. Тем не менее, ответы на многие животрепещущие вопросы уже найдены. Приглашаем вас под кат!
Мы в компании Alconost перевели обширный FAQ по фреймворку WatchKit. Будем рады, если труд наших технических переводчиков окажется для вас полезным. Для некоторых вопросов четких решений пока нет: в таких случаях следует полагаться на здравый смысл, советы специалистов и обоснованные предположения. Эта технология все еще в значительной мере находится в разработке, а следовательно, может изменяться. Тем не менее, ответы на многие животрепещущие вопросы уже найдены. Приглашаем вас под кат!
+10
Стилизация iOS-приложений: как мы натягиваем шрифты, цвета и изображения
3 min
24KTutorial
В ходе работы над мобильным приложением разработчики получают от дизайнеров макеты, шрифты и изображения. Преобразование этих материалов в код — нудное занятие, да и в процессе каждый норовит изобрести свой велосипед. Чтобы проекты оставались чистыми, мы приняли единую конвенцию по работе со стилями.
+18
Исследование: Перехват трафика мобильного Интернета через GTP и GRX
5 min
56KБольшинство абонентов считают, что работа через сотовую сеть достаточно безопасна, ведь крупный оператор связи наверняка позаботился о защите. Увы, на практике в мобильном Интернете есть множество лазеек, дающих широкие возможности для злоумышленников.
Исследователи Positive Technologies обнаружили уязвимости в инфраструктуре сетей мобильной связи, которые позволяют перехватывать GPRS-трафик в открытом виде, подменять данные, блокировать доступ к Интернету, определять местоположение абонента. Под угрозой оказываются не только мобильные телефоны, но и специализированные устройства, подключенные к 2G/3G/4G-сетям с помощью модемов: банкоматы и терминалы оплаты, системы удаленного управления транспортом и промышленным оборудованием, средства телеметрии и мониторинга и т.д.
+25
58 признаков хорошего интерфейса
16 min
381KTranslation
У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.
Один столбец точнее отражает то, что вы хотите донести. Пользователи проходят сверху вниз по более предсказуемому пути. В дизайне с несколькими колонками есть риск отвлечения пользователя от основной задачи страницы.
1 Один столбец вместо нескольких
Один столбец точнее отражает то, что вы хотите донести. Пользователи проходят сверху вниз по более предсказуемому пути. В дизайне с несколькими колонками есть риск отвлечения пользователя от основной задачи страницы.
+138
7 советов для создания мощных комьюнити
2 min
6.2KTranslation
«Если вы скажете людям: „Посмотрите на один результат, которого мы добились для одного из наших клиентов за всю историю нашей компании“, но после не смогли обеспечить тот же самый результат другим клиентам, это будет большим провалом для вас, – говорит Скотт Гербер, основатель Young Entrepreneur Council».
Скотт Гербер и Райан По, дуэт за спиной которого создание одного из самых успешных американских комьюнити для бизнесменов дали несколько советов начинающим предпринимателям от IT.
+15
Вычисление времени заката и рассвета по координатам Android устройства с помощью earthtools
5 min
12KПривет Хабр!
Как-то раз была поставлена задача разработать движок для вычисления времени начала заката и рассвета, основаной на местоположении телефона.
В дополнение, дабы облегчить работу, меня нагрузили аномальными математическими формулами, от которых в голове ничего не укладывалось. Итак, мною было принято решение искать альтернативу этим адским формулам.
Как-то раз была поставлена задача разработать движок для вычисления времени начала заката и рассвета, основаной на местоположении телефона.
В дополнение, дабы облегчить работу, меня нагрузили аномальными математическими формулами, от которых в голове ничего не укладывалось. Итак, мною было принято решение искать альтернативу этим адским формулам.
+2
Проверка уязвимости Masque в iOS
3 min
6.8KНедавно опубликована статья, относящаяся к т. н. «Masque» уязвимости в iOS. Выдержка из статьи:
Мне, как человеку, не понаслышке знакомому с Enterprise сертификатами, захотелось непременно опровергнуть/доказать настоящий факт.
Итак, что известно про Enterprise лицензию:
«Уязвимость позволяет установить вредоносное приложение поверх уже существующего, причем это новое приложение получит доступ ко всем файлам предыдущего. Это при условии того, что устанавливаемое приложение будет иметь тот же самый идентификатор «bundle identifier», который iOS & OS X используют для идентификации приложений на уровне ОС, например, при доставке им обновлений. Уязвимости подвержены все версии iOS начиная с 7.1.1, включая, последнюю iOS 8.1.1 beta.»
Мне, как человеку, не понаслышке знакомому с Enterprise сертификатами, захотелось непременно опровергнуть/доказать настоящий факт.
Итак, что известно про Enterprise лицензию:
+24
6 ссылок о том, что Google знает о вас
2 min
452KTranslation
Не желаете ли узнать о том, что Google знает о вас? Вот 6 ссылок, которые покажут вам некоторые данные, собранные гуглом.
1. Ваш профиль в Google
Google создаёт профиль с вашими основными данными – возраст, пол, интересы. Эти данные используются для показа релевантных объявлений. Вы можете просмотреть эту информацию здесь:
www.google.com/ads/preferences
(прим.перев. – в моём случае гугл не блещет информацией. Я не состою в Google+, а по посещённым мною сайтам гугл не смог определить мой пол, а возраст определил в 65+ лет).
1. Ваш профиль в Google
Google создаёт профиль с вашими основными данными – возраст, пол, интересы. Эти данные используются для показа релевантных объявлений. Вы можете просмотреть эту информацию здесь:
www.google.com/ads/preferences
(прим.перев. – в моём случае гугл не блещет информацией. Я не состою в Google+, а по посещённым мною сайтам гугл не смог определить мой пол, а возраст определил в 65+ лет).
+95
Простые стейт-машины на службе у разработчика
8 min
188KПредставьте на минутку обычного программиста. Допустим, его зовут Вася и ему нужно сделать анимированную менюшку на сайт/десктоп приложение/мобильный апп. Знаете, которые выезжают сверху вниз, как меню у окна Windows или меню с яблочком у OS X. Вот такое.
Начинает он с одного выпадающего окошка, тестирует анимацию, выставляет ease out 100% и наслаждается полученным результатом. Но вскоре он понимает, что для того, чтобы управлять менюшкой, хорошо бы знать закрыто оно сейчас или нет. Мы-то с вами тут программисты опытные, все понимаем, что нужно добавить флаг. Не вопрос, флаг есть.
Вроде, работает. Но, если быстро кликать по кнопке, меню начинает моргать, открываясь и закрываясь не успев доанимироваться в конечное состояние. Вася добавляет флаг animating. Теперь код у нас такой:
Через какое-то время Васе говорят, что меню может быть полностью выключено и неактивно. Не вопрос! Мы-то с вами тут программисты опытные, все понимаем, что… нужно добавить ЕЩЕ ОДИН ФЛАГ! И, всего-то через пару дней разработки, код меню уже пестрит двустрочными IF-ами типа вот такого:
Вася начинает задаваться вопросами: как вообще может быть, что animating == true и enabled == false; почему у него время от времени все глючит; как тут вообще поймешь в каком состоянии находится меню. Ага! Состояния... О них дальше и пойдет речь.
Знакомьтесь, это Вася.
Начинает он с одного выпадающего окошка, тестирует анимацию, выставляет ease out 100% и наслаждается полученным результатом. Но вскоре он понимает, что для того, чтобы управлять менюшкой, хорошо бы знать закрыто оно сейчас или нет. Мы-то с вами тут программисты опытные, все понимаем, что нужно добавить флаг. Не вопрос, флаг есть.
var opened = false;
Вроде, работает. Но, если быстро кликать по кнопке, меню начинает моргать, открываясь и закрываясь не успев доанимироваться в конечное состояние. Вася добавляет флаг animating. Теперь код у нас такой:
var opened = false;
var animating = false;
function onClick(event) {
if (animating) return;
if (opened) close();
else open();
}
Через какое-то время Васе говорят, что меню может быть полностью выключено и неактивно. Не вопрос! Мы-то с вами тут программисты опытные, все понимаем, что… нужно добавить ЕЩЕ ОДИН ФЛАГ! И, всего-то через пару дней разработки, код меню уже пестрит двустрочными IF-ами типа вот такого:
if (enabled && opened && !animating && !selected && finishedTransition && !endOfTheWorld && ...) { ... }
Вася начинает задаваться вопросами: как вообще может быть, что animating == true и enabled == false; почему у него время от времени все глючит; как тут вообще поймешь в каком состоянии находится меню. Ага! Состояния... О них дальше и пойдет речь.
Знакомьтесь, это Вася.
+70
Конечный автомат (он же машина состояний) на чистом С
5 min
130KПочти каждый микроконтроллерщик сталкивался с громадными switch-case и мучительно их отлаживал.
И много кто, начиная писать реализацию какого-либо протокола, задумывался как написать её красиво, изящно, так чтобы через месяц было понятно что ты имел в виду, чтобы она не отжирала всю памятьи вообще какала бабочками.
И вот тут на помощь приходят машины состояний, они же конечные автоматы (те самые которые используются в регулярных выражениях).
Собственно через регулярные выражения я к ним и пришёл.
И много кто, начиная писать реализацию какого-либо протокола, задумывался как написать её красиво, изящно, так чтобы через месяц было понятно что ты имел в виду, чтобы она не отжирала всю память
И вот тут на помощь приходят машины состояний, они же конечные автоматы (те самые которые используются в регулярных выражениях).
Собственно через регулярные выражения я к ним и пришёл.
+45
Pattern matching с помощью макросов
4 min
5.5KЯзык Julia не поддерживает такую технику программирования, хорошо зарекомендовавшую себя в языках Haskell, Prolog, Erlang, Scala, Mathematica, как pattern matching. Но разрешает писать макросы, которые позволяют исправить этот фатальный недостаток. Выглядит это примерно так:
Исходный код доступен на github.
Похожую (но гораздо более развитую и готовую для использования) можно взять здесь, но она слишком большая, что бы разбирать ее как пример в статье.
julia> immutable X a end
julia> immutable Y a ; b end
julia> @case(Y(X(9),2), Y(4,3)-> 55, Y(X(k),2)->1+k)
10
Исходный код доступен на github.
Похожую (но гораздо более развитую и готовую для использования) можно взять здесь, но она слишком большая, что бы разбирать ее как пример в статье.
+10
Простой конечный автомат на Unity
4 min
48KTranslation
При разработке нам понадобился простой конечный автомат, желательно уже реализованный. Из списка реализаций, который предложил гугл, выбрали этот, за простоту и компактность. Используем у себя, в целом FSM неплох. Далее под катом перевод оригинальной статьи автора из Греции Tasos Giannakopoulos. Я не переводчик, поэтому я старался передать смысл, иногда объясняя суть своими словами, за что извиняюсь перед перфекционистами.
+11
Лучшие плагины для Sublime Text
5 min
642KReview
WebInspector
Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.
+112
10 интересных и бесплатных мобильных приложений для работы
3 min
70KUPD: Этот пост добавили в избранное в 2 раза больше людей, чем мой пост, который набрал 86 голосов ЗА, и при этом его минусуют. Уважаемые голосующие, будьте более объективны в своих оценках т.к. цель постов именно быть полезными для читателей.
-8
3d принтеры. Обзор достижений за 2012 год
7 min
311KМолекулы и самолеты, оружие и кровеносные сосуды, протезы и интегральные микросхемы, еда и здания, лекарство от рака, ухо, клюв и ракетный двигатель, все это было напечатано в 2012 году на 3d принтерах.
Данная статья является частичным переводом 3D Printing in 2012: Year In Review.
Картинки(70 штук) кликабельны — отсылка на первоисточник.
Данная статья является частичным переводом 3D Printing in 2012: Year In Review.
Картинки(70 штук) кликабельны — отсылка на первоисточник.
+118
Первый опенсорс порошковый 3D принтер
1 min
36KВот и появился в опенсорс первый порошковый принтер. Разработан в университете г. Твенте (Нидерланды). Принтер может печатать порошком со связующим и с минимальными переделками — спекать порошок.
+39
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity