• Пятничный JS: reqyire.js и очепятко-ориентированное программирование
    +8

    В Руби есть gem "did_you_mean", который даже идет в стандартной поставке языка. Он тоже детектит опечатки, находит подходящий класс, метод, переменную или модуль, который скорее всего имел в виду автор, и падает с ошибкой, показыая правильное написание. Автор видит, что ошибся, исправляет ошибку, и код остается нормальным. С одной стороны, да, приходится опечатки исправлять, а с другой — все ж лучше получить нормальное сообщение об ошибке, а не "undefined is not a function".


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

  • Современный найм — отстой
    0

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

  • Современный найм — отстой
    0

    Booking.com и Амстердам — компания, которая пылесосит всех перловиков мира последние 15 лет. Пособеседуйтесь. По (ЗП — затраты на жизнь) будет примерно как Минск, может хуже, но получше Гомеля.


    Ну или:


    • прокачиваемся на вопросах на Java-интервью. Класслоадеры, многопоточность, модель памяти, коллекции, Спринг — в наших краях примерно такое спрашивают.
    • вписываете в резюме в прошлых работах местами рядом с перлом Джаву. Для спокойствия спишитесь с тамошними вашими руководителями и объясните ситуацию.
    • если HR-фильтр не проходится, пойдите на местную сходку джавистов, раззнакомьтесь, приходите на собеседование сразу к лидам команд без HR
    • если не прошли, просите у собеседовавших вас людей фидбека, что не так. Очень может быть, что дело не в Перле, а в том, как вы речь свою строите, например.

    Ну и дерзайте. Хороший прогаммист — он и на Java хороший программист, главное подкачаться.


    Java можно заменить на что-то еще. Наверняка вам будет проще устроиться на Python, Rub. Node.

  • Let the Holy War begin: Java vs С++
    +5

    По вашему, программисты на Хабре — сплошные ретрограды. У современного человека 90% памяти на компе сжирают мутные процессы под названием Chrome Helper, Slack и прочие поделия на основе Electron. 300 мегабайт за вкладку с HTML — норма.


    Java при всей ее любви к памяти не способна угнаться за Blink, и любимая IDE соседствует с маленьким и скромным хипстерским музыкальным плеером или приложением для заметок.

  • История покупки одного билета на сайте РЖД
    0

    Ну раз человек их ввел, то в базу они и так попали. А потом, когда пришло время их "удалить", в колонку рядом ставится флажок и все. Ну, может быть, когда база распухает, пробегается батч, который данные из активной базу перекачивает в архивную. Перекачивает он все — лишний if для проверки "активно не активно" писать явно влом. После этого данные остаются в архивной базе. Плюс 100500 бекапов на разных стадиях.


    И ведь все остальные так же поступают. В том числе и вы, если у вас база данных есть. DELETE в продакшен коде — это лишний риск. Кому он нужен?


    И в РЖД никто ничего не удаляет, потому что зачем заморачиваться? Диски дешевые, ленты — тоже. Когда ленты кончаются, нужно допокупать новые, а это еще один контракт, еще одни премиальные сейлзу со стороны вендора и бонусы от вендора человеку, закрывшему сделку со стороны РЖД (в народе "откат", но слово уже вышло из моды).


    Пора смириться с тем, что за годы у РЖД скопились сотни записей о вашем паспорте, которые лежат и в зашифорванном виде, и в открытом, и местами там с секьюрити совсем грустно, и т.д.


    Если дело так обстоит, то почему бы галочку не поставить, правда?

  • Это будущее
    0
    Не только, Хероку тоже улучшается :)
  • Go в 2015 году
    +6
    Я — один из людей, поддерживающих развитие Rust, у меня есть код на Расте в продакшене, я много говорю и пишу про язык, слежу за развитием и т.д. Казалось бы, я должен вам кричать «да-да! Rust — лучший, берите». Но не рекомендую использовать Раст сегодня как основной язык на бекенде.

    HTTP-стек у Раста очень сырой, все может работать в тепличных условиях, но как дело дойдет до реальных пользователей, сидящих на странных устройствах в странных сетях за странными проксями и VPNами, вы можете столкнуться с проблемами, которые вам будет сложно решать. Такая же ситуация была у Node.js в 2011 году, и прошло какое-то время, прежде чем оно стало работать стабильно.

    Больших фреймворков уровня Rails/Django нет, а для тех, кто повторяет Sinatra/Express в Расте, еще нет достаточного количества middleware и плагинов, чтобы писать эффективно. ORM и Query Builders только появляются.

    Так что если вы начнете писать все-все на Расте сегодня, то может оказаться, что через год ваш проект превратится в мессиво из реликтовых велосипедов. Вам это не нужно.

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

    У меня был опыт написания бекенда на Node с использованием нативных модулей, которые я написал на Rust. Код получился небольшой, приятный, с тестами и документацией, понравился заказчику и мне. То же самое люди делают с Go, Ruby и Python.
  • Разработчики Perl 6: язык готов к использованию
    0
    А помните, пару (или пять?) лет назад на Хабре крутили баннер «Радио Какое-то-там. Написано на Perl в Ростове-на-Дону!»

    Жаль, не помню, что за радио было. И живо ли оно?
  • Выпущен Rust 1.4
    0
    Я гоняю в продакшене на одном проекте, но там на расте только кусок, который как библиотека подключен в остальное приложение. Кусок просто перерабатывает данные и делает по ним статистику определенного рода. Работает хорошо, нареканий нет, добились снижения по потреблению памяти без проседания производительности, хотя это не было какой-то целью.

    Делать сервер целиком на Расте я бы не стал, а вот на уровне extensions для Node, Python, Ruby он заходит очень хорошо.
  • Википедию уже не блокируют
    0
    Чингиза Айтматова читать стоит — все ж не зря человеку Героя соцтруда дали и Ленинскую премию.

    Роман «Плаха» — в республиках Средней Азии входил в школьную программу, а в остальном Союзе часто включался в список книг «на почитать летом». Там есть соответствующий кусочек, начинающийся со слов

    Дело оказалось немудрёное, но до предела выматывающее и по способу варварское.


  • Миллиарды запросов в день встречают Go 1.5
    +26
    Не, Разбери — это сильно крутая железка.

    У меня sim-карта с Java Card Connected на сервлетах 100к запросв в секунду держит. Правда, мы ее деплоим на Nokia 3310

    image
  • Вышел Go 1.5
    +12
    ingrysty — гофер и друг автора статьи, а комментарий — дружеская шутка. А Раст на самом деле люблю я, а не они.
  • В поисках идеального фреймворка для JavaScript
    –1
    Мне кажется, что нет смысла сравнивать чисто фреймворки/библиотеки. Возьмем Angular и Ember. Ребята из Эмбера сразу начнут нахваливать свой крутой раутер. А мы добавим в проект на Angular их UI-router, и разница с Эмбером будет уже меньше (Эмбер-раутер все равно круче, но не намного).

    Но чтобы вот так стеки сравнивать, нужно быть очень осведомленным обо всем, что вокруг того или иного фреймворка иди библиотеки делается — это гораздо сложнее, чем пойти на официальные сайты и сравнить по документации и примерам.
  • AngularJS против Backbone.js против Ember.js
    +1
    Оригинальная статья очень старая, и многие пункты вообще неприменимы сегодня.

    Например, аддонов у Эмбера уже больше 1000, HTMLBars уже давно в релизе, а в бете его дальнейшее развитие — Glimmer. Наверняка по другим фреймворкам ситуация похожая.
  • Анонс Rust 1.0
    0
    Берем Node.js, Go или что-то аналогичное. Обработку запросов делаем на них, а уже они пусть пробрасывают данные в Rust. Можно растовую часть скомпилировать как аддон или библиотеку, а можно общение между Node/Go и Rust сделать по bsd-соккетам или ZeroMQ, например.

    Но вообще смысл HTTP запросы обрабатывать на языке с такой строгой типизацией мне кажется неудобным.
  • Мы закрываем проект CppCat
    0
    Вот кликабельный вариант: github.com/VioletGiraffe/cppcheck-vs-addin
  • Очень субъективный обзор JS фреймворков. AmpersandJS, часть 0
    0
    Но кстати, как выше написал lolmaus, лучше не инжектить сервисы напрямую в компоненты, а пробрасывать данные «вниз» по иерархии компонентов и экшены «вверх». Из-за большого упора Эмбера на раутинг обычно каждый конкретный «экран» вашего приложения — довольно простой, и совсем глубокой иерархии строить не приходится. Поэтому передача «вручную» на практике не является проблемой.

    А инжекшен лучше оставить на уровне рутов. Конечно, если ваш компонент — это какая-то вещь в себе, то можно и сервисы напрямую в него подключать, чем заниматься жонглированием атрибутов и экшенов. Но тут как и везде — главное, думать головой.
  • Очень субъективный обзор JS фреймворков. AmpersandJS, часть 0
    0
    Для всего.

    Вот пример: guides.emberjs.com/v1.11.0/understanding-ember/dependency-injection-and-service-lookup/#toc_dependency-injection-with-code-register-inject-code Говорите что, куда и по какому имени инжектить. В качестве направления можно указать семейство типов — например, route — тогда сервис будет заинжекшен в каждый раут. А можно — конкретный тип: 'component:my-awesome-component' Тогда только конкретный компонент будет иметь доступ к сервису. Это удобно тем, что вы в одном месте контролируете видимость того или иного сервиса и не получите неожиданных зависимостей.

    Можно делать и проще: emberjs.com/api/classes/Ember.inject.html#method_service — т.е. DI в стиле Angular — инжектим «на месте». Появился недавно, и я от него не в восторге. Мотивация была в стиле «DI via Initializers» — это слишком сложно для неискушенных в Эмбере.
  • Очень субъективный обзор JS фреймворков. AmpersandJS, часть 0
    0
    DI есть, отличный.
  • Qooxdoo. Разрабатываем TODO List
    +1
    Есть разные парадигмы UI, которые так или иначе становились популярными в разное время.

    Например, сейчас мы привыкли к тому, что если я, скажем, хочу себе аватарку поменять, я кликаю по самой аватарке, А вот лет 7-8 назад «интуитивно» было бы иметь рядом с аватаркой кнопочку «поменять аватарку». Qooxdoo — как раз из той эпохи, когда для выполнения действий мы использовали дополнительные UI-контролы рядом с данными, а не манипулировали самими данными.

    Это не хорошо и не плохо, потому что всякому UI есть свое применение (тот же Vim популярен сегодня, несмотря на то, что консольный). Но многие из тех, кто начал разрабатывать пользовательские интерфейсы, скажем, года три-четыре назад, посмотрят на Qooxdoo, Dojo, или Ext JS с недоумением, тк не привыкли видеть в современных интерфейсах такой control-heavy-подход.

    Плюс, как я погляжу, такой: пишем все на JS, a за CSS и HTML отвечает фреймворк. Наверняка, какие-то админки, или UI для внутреннего пользования на этом можно быстро сделать.

    Например, я — научный сотрудник где-то там. Мне нужен UI, чтоб задавать параметры какой-то симуляции. Я умею кодить алгоритмы и переводить формулы из математики в код. Чем мне разбираться с веб-разработкой и делать все, как советуют хипстеры, я лучше возьму эту штуку и накидаю UI за несколько часов. Уж синтаксис JS и API этой штуки по примерам можно освоить довольно быстро, а с какими-то неприятными для новичка особенностями JS (типа variable hoisting and scoping или this) я вряд ли столкнусь.

    Лет 15 назад такой UI люди бы на Java, Delphi или VisualBasic сделали. А сегодня вот такая штука есть.
  • «Hero Image» — баннеры в параллаксе
    +1
    Еще немного не по теме — я с этой Клаудией в прошлом году на одном проекте работал — как тесен мир!
  • Do not be evil
    +1
    удалено
  • Браузер Vivaldi — первая тестовая версия
    +3
    Почта будет, а что с RSS, IRC и торрентокачалкой?
  • Тренды JavaScript на 2015 год
    +29
    Одним словом, тренды в 2015 будут такие же, как в 2012.
  • Почему вам НЕ стоит использовать AngularJs
    0
    Angular как раз с прицелом на серверных разработчиков и пишется во многом. Они привыкли, что должен быть DI — вот им DI. Они привыкли, что внешние источники данных в тестах заменяются на Мокки — вот им мокки. И т.д. Все сдобрено словами Google и Enterprise — и все: орда джавистов, дотнетчиков и питонистов записывается в ваши поклонники!

    Они и хорошо — гораздо лучше, когда люди из фронтенда лучше понимают бекенд, а люди из бекенда — фронтенд. Так и общий язык найти проще, и задачи быстрее выполнять.
  • Почему вам НЕ стоит использовать AngularJs
    +3
    Вопрос не в том, что инструмент умеет все, а в том, сколько у вас накапливается в проекте кастомного и glue-кода, который ничего не делает кроме как соединять отдельные «идеальные» микро-библиотеки.

    Многие считают:
    1. о, я возьму вот эту микробиблиотеку, соединю вон с той, буду брать все самое лучшее, все то и только то, что подходит для моей задачи, — и получу идеальный проект.
    2. потом в коде для склейки частей у них возникает какое-то дублирование кода, вырисовываются какие-то шаблоны, они их начинают вычленять, радуются, как у них все идеально и идиоматично, и т.д.
    3. так из идеальных кусочков у них получается свой недофреймворк, на котором они пишут свое приложение.
    4. а потом этот фреймворк начинает трещать по швам из-за «особых частных случаев», обхода багов в выбранных библиотеках, несостыковываемостью выбранных компонентов между собой, проблем с производительностью и т.д.
    5. а времени фиксить недофрейсворк нет — проект, сроки, заказчик, менеджер. Взяли человека в команду — ему с ним теперь неделями разбираться. А если «автор» фреймворка уже ушел из команды, и вы — как раз тот человек, кому придется разбираться в костылях вокруг идеальных библиотек образца 2013 года?

    Иногда проще взять готовое большое решение и быстро решить задачу. Плюсы Эмбера:

    — это такой же фреймворк, как и ваш самописный, но его в том или ином виде дорабатывают с учетом требований различных разработчиков несколько лет. Получается, что у вас фора — несколько десятков человеколет на вашем проекте. Багов в нем мало, шансов столкнуться с ними — не один раз в день, а один раз в месяц, например. Если у вас возникает «особый случай», очень высока вероятность, что где-то в Эмбере предусмотрены лазейки и хуки, чтобы его вписать во фреймворк.
    — архитектура решена за вас, не нужно ничего придумывать, не нужно спорить о том, как сделать лучше.
    — вопрос инструментов сборки или подключения аддонов для вас тоже не стоит: все уже решено, вы делаете как все.
    — в отличие от Angular подводных камней гораздо меньше, мест где нужно изобретать велосипед — тоже, инструменты лучше, диагностировать и решать проблемы производительности проще.
    — полно больших open-source проектов — всегда можно посмотреть, а как люди решают ту или иную задачу.
    — все пишется в открытую: нет такого «ой, мы тут версию 2.0 готовим — все теперь будет не так, как раньше»

    Он не делает для вас все, но 90% того, что он делает, вам наверняка подойдет.
  • Почему вам НЕ стоит использовать AngularJs
    0
    По 4му пункту я сейчас обхожусь тем, что пишу без контроллеров. Все контроллеры — автогенеренные Эмбером везде, где можно. По факту пишу свои только если нужны queryParams. Решает кучу проблем.
  • Почему вам НЕ стоит использовать AngularJs
    0
    Пишу и на Ember, и на Angular. На Ember у меня всегда меньше кода получается. И самое главное: я могу пересесть с одного Эмберовского проекта на другой без особых разбирательств, а Angular в каждой команде почему-то готовят по-своему и приходится время тратить, чтобы разобраться, какие тут приняты правила и конвенции.
  • Раскол nodejs
    0
    Этой шутке лет 20-30 уже, не обольщайтесь. Во всяком случае, в 96 про Java такие письма рекрутеров точно ходили, и возможно, в начале 90х про Perl. Может и раньше тоже про что-то было такое.
  • Раскол nodejs
    0
    Грусть-печаль, старый дизайн что Node, что npm был такой ламповый и приятный и в одном стиле.
  • Раскол nodejs
    +10
    Он никогда не был членом команды ядра Node, не путайте теплое с мягким.
  • Github опять заблокирован
    0
    Эти страны как раз пользуются мировыми валютами — Доллар, Евро, Йена. Если вы — американец, то смысл вам доллары на доллары менять, правда?

    А так мы видим в списке Википедии более-менее крупные экономики, где есть национальна валюта, не распространенная на внешнем рынке. Если бы в России основной валютой был доллар, швейцарский франк, фунт, йена или евро, у нас бы не было валютного контроля.
  • Mozilla выпустила первый браузер для разработчиков
    +2
    Так это и стандартный Firefox умеет. По их инструментам, к сожалению, нет хорошего курса, чтобы в одном месте все-все было. А так в Firefox Dev Tools много чего хорошего есть.
  • Mozilla выпустила первый браузер для разработчиков
    +2
    Знать бы, как намертво удалить мозильские developer tools из «релизного» (массового) бруазера — уже был бы хлеб. И сделать плагином их установку, для тех, кому надо. А то я не пойму: релизный, массовый браузер суть несет в себе отладчик, что, как бы, несколько увеличивает и вес, и объем, и сложность кода.


    А то, что другие браузеры — Chrome, IE, Opera, Safari — тоже так делают, вас не удивляет? Вы считаете, что они тоже должны ставиться дополнительно?

    Вообще-то, доступность инструментов разработки и тот факт, что весь код передается пользователю в открытом виде — как раз и есть то, что сделало веб таким популярным, открытым и свободным. Низкий порг входа как раз и объясняет, почему на мобильных устройствах есть только 1.5-2 миллиона приложений, а сайтов в мире больше миллиарда.
  • Анонс RemoteIE: тестируем свежую версию Internet Explorer на Windows, Mac OS X, iOS и Android
    +1
    А можете пояснить, пож-та, как работает Azure RemoteApp?

    В Azure подняты виртуалки с Windows. Вы ставите себе клиент, который открывает с вашего компьютера RDP на свободный сервер, в котором для вас открывается IE. У сервера разрешен доступ в интернет, поэтому вы можете открыть в этом IE ваш сайт и протестировать. Физически браузер на вашем компьютере не запущен.

    До недавнего времени альтернативой этому был только запуск Windows на вашем компьютере (в виртуалке или dual-boot).

    Поскольку в данном случае это RDP-соединение, то часть вещей, конечно, работает не так, как если бы браузер был запущен непосредственно у вас. Например, нет графического ускорения, анимации неплавные и т.д. Плюс, он не находится внутри вашей сети, поэтому для тестирования внутренних систем или локальных копий вашего приложения придется настраивать туннелирование. Но для проверки на уровне «а не разъехался ли мой дизайн в IE» сервиса хватит с лихвой.
  • Skype для Mac получил поддержку OS X Yosemite
    0
    Скажите, а при обновлении на 10.10 обязательно нужны программы «с поддержкой»? Что будет, если я попробую старый Скайп на 10.10 поставить? Сам пользуюсь Скайпом той версии, где еще нет этой голубизны в чате, и как-то пересаживаться на новую версию не хочется.
  • Apple обязала разработчиков создавать 64-битные приложения
    +2
    Согласен с вами.

    По хорошему должно быть так: AppStore детектит архитектуру устройства и закачивает только соответствующие компоненты. Это же должно касаться и картинок: не неретиновом устройстве @2x не нужны и наоборот. Также неплохо было бы качать только ту часть локализационных данных, которая используется устройством (с докачкой, если переключается локаль).
  • Страсти вокруг systemd и его использования по умолчанию в Debian
    +5
    Мертв — не мертв, но

    1. Релизы выходят с завидной регулярностью, последний — Upstart 1.13.2 — был 4 сентября. Всего за этот год выпущено 5 релизов. SysV Init такой же «мертвый» или даже мертвее, но товарищи из протестующих как раз и ратуют за то, чтобы отказаться от SystemD в пользу «мертвого» проверенного решения.
    2. Ubuntu пока только планирует перейти, а по факту там еще довольно много нерешенных задач wiki.ubuntu.com/systemd#Implementation_issues Можно заметить, что по ряду пунктов ребята из Ubuntu ждут, пока изменения попадут в Debian.
    3. Upstart — init-система текущей LTS, и будет поддерживаться минимум до третьего квартала 2019 года. Очень вероятно, что она будет доступна как альтернативная еще один-два LTS-цикла (вначале задепрекейтят, потом отключат). Возможно, она останется альтернативной насовсем.
    4. и SystemD, и Upstart поддерживают обратную совместимость с Sys V Init, поэтому если писать привычные rc-скрипты, то проблем с переходом не будет. Справедливости ради стоит сказать, что и там, и там есть определенные моменты.
    5. В целом, если вам интересен новый init-демон только как замена традиционному, но быстрее, то вам будет все равно, что использовать, что upstart, что systemd.
  • Уязвимость SSLv3 POODLE — как BEAST, только проще
    0
    Автор, добавьте в пост:

    Для Firefox уже сегодня есть расширение от Mozilla SSL Version Control. Позволяет указать минимально поддерживаемую браузером версию TLS/SSL, по умолчанию как раз ставится TLS 1.0. Расширение не требует перезапуска браузера, не добавляет ничего в UI, и обезопасит вас уже сегодня.

    Конечно, можно флаги менять, но гораздо проще сказать друзьям и родственникам «пройди по ссылке и нажми на кнопку».
  • «Хабрахабр» представляет Geektimes
    +28
    Ой, ведь их и так с недавних пор 2. Вас последние недели не задалбывала ализарщина с пометочкой «сообщить andorro новость» в конце поста?