• Какое key-value хранилище лучше?

    denver
    @denver
    Нет лучшего NoSQL хранилища вообще, есть под задачи, у каждого плюсы и ограничения. Redis супербыстр когда оперативки больше чем данных, иначе он часто подгружает с диска и сводит на нет скорость (если это еще не переделали), хорош для очередей сообщений, списков (встроены сортировки), всякой мелкой инфы. memcache (не memcached) самый быстрый но не флашит на диск ничего (собсвенно оттого и). memcached простейший key-value с флашем (хорош для очередей сообщений и всяких счетчиков). У последних двух особенность multiget — взять много ключей за раз работает столько же сколько и один, так что хорош для хранения «превьюшек» данных по их id, когда сортированные списки хранятся где-то еще (в редис). MongoDB не просто key-value, в ней можно хранить целые документы (пост со всеми комментариями), некий компромисс между nosql и RDBMS. Hbase уже совсем замена RDBMS, один из самых быстрых когда речь идет о IO диска, соответственно эта NoSQL для постоянного хранения стопитцот миллиардов данных. Cassandra похоже конкурент Hbase, но аутсайдер, т.к. фейсбук/твиттер от нее отказываются ;) Про CouchDB и Riak я ничего особенного не слышал (может кто дополнит — мне интересно)
    Ответ написан
    12 комментариев
  • Как определить права доступа к файлу для конкретного пользователя?

    p00h
    @p00h
    Фехтовальщик-стропальщик
    stat -c %a /path/to/file
    А вообще, man stat, stat --help
    Ответ написан
    Комментировать
  • Как в BASH скрипте написать дату и время?

    @viiy
    Linux сисадмин \ DevOps
    git commit -a -m "комментарий `date +"%Y%m%d %H:%M"`"
    или
    git commit -a -m "комментарий $(date +"%Y%m%d %H:%M")"

    нужный формат даты подберите из "man date"
    Ответ написан
    Комментировать
  • Почему возникает ошибка incompatible types when assigning to type?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    table = fizz(table);

    Что сделать-то хотел?
    Если проинициализировать массив значением которое вернула fizz, нужно было просто проинициализировать его в этой функции.
    Если поменять область памяти на которую указывает table, то нужно было сделать table указателем.

    Почему при передаче table в fizz struct Item[100] преобразуется в struct Item *table, а при присваивании - нет?

    Потому что массив -- это синтаксис для статического выделения памяти на стеке, в области данных или в структурах. Имя массива -- это имя этого блока памяти, а его адрес -- адрес этого блока. Поэтому имя массива можно легко сконвертировать в адрес. Но если бы язык давал возможность менять адрес массива с помощью присваивания его имени, массив помимо своих элементов должен бы был содержать дополнительный указатель. Получился бы странный, сложный класс объектов, соединяющий в себе свойства массива и указателя. Поскольку язык С -- простой язык, у вас есть отдельно массивы и отдельно указатели, а сложный тип можно сделать самому.
    Ответ написан
    Комментировать
  • Как не распыляясь дотащить до front-end мидл девелопера?

    @djay
    Must have:

    - HTML5/CSS3 - знать как минимум в совершенстве
    - JavaScript, включительно ECMAScript 6-7
    - В порядке вещей - Bootstrap + Jquery
    - Grunt/Gulp, Bower
    - Знание хотя бы одного фреймворка. Сейчас более менее ходовые это Angular.js и Backbone
    - Знание системы контроля версий Git. Умение работать с GitHub/BitBucket
    - Опыт работы от 2-х лет

    Как плюс:

    - Знание Canvas, SVG, умение писать игры
    - Знание шаблонов проектирования
    - Умение покрывать код тестами

    Это и есть обобщенный набор навыков по рынку на текущий момент.
    Ответ написан
    9 комментариев
  • Как догнать однокурсников?

    @Oxoron
    Шарпер
    Проблема: недостаток времени.
    Проблема: ухудшение здоровья. Напрямую вытекает из первой (в данном случае).

    Цель: взять знаний по математике по максимуму. (ИТ потом сам догонишь, раз для тебя это проще. Даже полгода это не проблема). Вывод: забиваешь на ИТ-предметы. Изучаешь ровно настолько, чтоб пропустили в следующий семестр. Матан грызешь дальше, в освободившееся от ИТ время спишь. Побольше спрашиваешь у однокурсников, у всех. Один-два смогут обеспечить тебе прорыв, относительный.
    На лекции ходить обязательно, но через раз. Наблюдай, что эффективнее. Через месяц будешь знать, ходить или не ходить.
    Обязательно высыпаться. Обязательны прогулки. Или велосипед. Или плавание. Упражнения для глаз, раз в час.
    То, что не понимаешь половины - это нормально. Большинство не понимает, просто привыкают. Рекомендую почитать книги Дмитрия Письменного. Минимум доказательств, много примеров. Думаю, на контрасте Письменного и классических учебников сможешь что-нибудь понять.
    Еще вариант: пытайся понять, зачем доказывают теоремы. Трать на это час в день. Выбираешь лемму\теорему и задаешь себе вопрос: для чего её доказывают? Для какого док-ва она нужна? Для какой задачи?
    Еще вариант: готовься не к прошедшим лекциям, а к будущим. То есть, если идешь на лекцию - прочитай её материал предварительно. На лекции ты возможно не успеваешь что-то понять, и буксуешь из-за этого. При предварительной подготовке некоторые вещи будут уже понятны, и сможешь поинтересоваться у лектора о действительно непонятных деталях. Готовься к такому скачку. В пятницу хорошо выспись, в выходные сосредоточься на изучаемом предмете.

    Стоит математика усилий, или нет, каждый решает сам. Я не стал математиком, но до сих пор иногда что-нибудь решаю, для души. Год учебы догонишь впахивая в таком же темпе, как описал сейчас (только на пару часов больше отдыхая). Уйти в ИТ можно, но это популярный путь. Я бы посоветовал потерпеть год (учебный).
    Удачи.

    P.S. Стать профи за год в ИТ - это тоже нелегко.
    Ответ написан
    7 комментариев
  • Что послушать про программирование?

    Слушать подкасты это и весело и полезно. Но выбрать для себя подходящий это та еще задача.

    Порекомендую несколько, которые мне нравятся:
    1) Разбор Полетов - о технологиях, гаджетах и программировании
    2) Радио-Т - о технологиях и программировании + болтология :)
    3) РадиоJS - о JS и фронтенде
    4) Откровенно про IT карьеризм - разговорное шоу с интересными собеседниками, о программировании, карьере и всем-всем
    5) RWpod - о рельсах, руби и пр.
    6) RubyNoName - о рельсах, руби и пр. сейчас чуть заглохло
    7) ruby5 - о рельсах, руби и пр. на английском

    + Бинарное Радио
    Ответ написан
    1 комментарий
  • Обучение после колледжа, или как грамотной выбрать путь в грамотные программисты?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Я вообще не могу сказать ни одного учебного заведения, которое навскидку гарантирует знания junior-а на момент выпуска. Там дают базу по фундаментальным наукам и умение мыслить/учится.

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

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

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

    Ну и да, интерном в крупную контору, предпочитают брать выпускников или учеников последних курсов.
    Ответ написан
    3 комментария
  • Какие знания нужны для Python Junior-а?

    alxpy
    @alxpy
    Мне когда-то на подобный вопрос дали развернутый ответ (еще раз спасибо этому человеку). Я не смог найти ссылку на тот форум, но сам ответ у меня был сохранен:
    Вот список знаний, которыми должен обладать потенциальный Junior Python developer:

    Уметь самообучаться, находить нужную информацию.

    Иметь общие представления о том, что такое ОС и зачем она появилась.
    Понимать что такое процесс и как он “живёт” в ОС.
    Понимать что такое поток.
    Понимать что такое сокеты и зачем они нужны.
    Иметь представление о том, как устроен стек протоколов TCP/IP.

    Понимать что такое Linux.
    Уметь работать в sh.
    Понимать что такое виртуализация и знать какие бывают типы.
    Уметь настраивать виртуальные машины через vagrant или подобные инструменты.
    Уметь работать с GIT(создавать ветки, разрешать конфликты, etc)

    Понимать что такое ООП, на чём он основан и почему им удобно пользоваться.
    Понимать что такое императивный и декларативный стиль.
    Понимать что такое MVC
    Понимать что такое декоратор(стандартный вопрос на собеседовании) и зачем он нужен.
    Понимать что такое замыкание.
    Понимать что такое интроскпекция.
    Понимать асинхронную концепцию программирования.

    Уметь работать с БД(хотя бы CRUD, join)
    Уметь работать с nginx(хотя бы проксирование настроить)

    (можно просто написать - “прочитать Лутца”, но выделю пару вопросов)
    Знать чем отличаются new style классы от old style.
    Знать чем отличаются Python2 от Python3
    Знать чем отличается str от unicode и почему в программе нужно работать с unicode.
    Понимать алгоритм импорта модулей в Python.
    Понимать что такое генераторы и итераторы.
    Понимать что такое дескрипторы.
    Понимать что такое GIL и зачем он нужен.
    Понимать что такое WSGI и зачем он появился.

    + Уметь писать тесты, понимать зачем это нужно.
    + Практические и теоритические основы по framework.

    + выполнить норматив по ГТО
    + не пить и не курить.

    Так же можешь потренироваться по заданиям Юры Юревича.

    Заданиям Юры Юревича - тыц.
    Ответ написан
    4 комментария
  • Какие есть книги по принципам работы языков программирования?

    mak-oleg
    @mak-oleg
    I believe in god, for the rest i pay in cash!
    "Чарльз Петцольд К.О.Д." www.proklondike.com/books/thproch/petzold_code.html
    Ответ написан
    Комментировать
  • Какие вы знаете понятные книги по алгоритмам?

    @1gnite
    "Структуры данных и алгоритмы Java", 2 издание - Роберт Лафоре
    Либо "Алгоритмы на Java" Седжвик, Уэйн как предложили выше.
    Лафоре, на мой взгляд читается полегче (многие вещи объясняются буквально на пальцах, множество иллюстраций и т.п.).
    Кстати, у Седжвика, Уэйна по их книге есть курс по на Coursera.
    Ответ написан
    1 комментарий
  • Какие скринкасты или обучающие уроки (видео) по веб-разработке вы смотрите?

    DeepHill
    @DeepHill
    Девять сервисов для обучения программированию
    www.siliconrus.com/2014/03/code
    Скринкаст по Node.JS
    learn.javascript.ru/nodejs-screencast
    Ответ написан
    Комментировать
  • Какие скринкасты или обучающие уроки (видео) по веб-разработке вы смотрите?

    kirillplatonov
    @kirillplatonov
    Ruby on Rails developer
    codeschool.com
    смотрю там уроки по rails. но и css, js, html там тоже есть. очень хорошо объясняют, хорошие challenges после каждого видео.
    Ответ написан
    Комментировать
  • Какие скринкасты или обучающие уроки (видео) по веб-разработке вы смотрите?

    Bandicoot
    @Bandicoot
    Вась-программист
    Курсы от Envato, Tutplus, Lynda - самые лучшие.

    На Ютубе:

    www.youtube.com/user/1stwebdesigner
    www.youtube.com/user/phpacademy
    www.youtube.com/user/psd2cms
    Ответ написан
    Комментировать