• Стартап vs Крупная компания: куда пойти работать?

    s0ci0pat
    @s0ci0pat
    I'm Awesome
    Предпочитаю крупную компанию.
    Стабильная ЗП, стабильная компания.
    Но это только мое мнение.
    Ответ написан
    Комментировать
  • Что будет, если наполненную водой металическую сферу быстро заморозить до -500?

    ZloyHobbit
    @ZloyHobbit
    Помню на семинаре по рукопашному бою кто-то задал тренеру вопрос: "Как правильно принимать идеальный удар?". Мне сразу представился абсолютно твердый кулак с массой близкой к бесконечности, движущийся со скоростью близкой к скорости света, и совершающий абсолютно неупругий контакт с челюстью... теоретически выкинутой в тепло энергии может хватить на уничтожение галактики.
    Ответ написан
    Комментировать
  • Где можно найти хорошие материалы по AngularJS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    никогда не понимал обучения по видио...
    Читайте документацию, ее как раз переписали и она теперь читабельна.
    Ответ написан
    Комментировать
  • Как выжить верстальщику на фрилансе?

    antonydevanchi
    @antonydevanchi
    10 лет в айтишке
    Никак. Я с фриланса ушел два года назад и безумно рад этому событию.
    Ответ написан
    1 комментарий
  • Какие есть хорошие материалы для для изучения современного PHP на серьёзном уровне?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Для того, чтобы "играть в шахматы" конкретно на PHP, не нужно знать РНР. Всё, что делает РНР в последние годы - это изо всех сил пытается стать Ждавой. Поэтому если знание "серьёзных" языков столь могучее, то всё что надо делать - это применять имеющиеся знания. Впрочем, если w3fools считается авторитетным источником, то есть у меня сомнения.

    Чтобы узнать о последних версиях 5-й ветки, надо читать changelog.

    Тонкость в работе РНР ровно одна - это язык, который работает с протоколом НТТР. протокол желательно изучить.
    Ответ написан
    Комментировать
  • Как в C# получить список открытых сокетов у конкретного процесса?

    Vadimyan
    @Vadimyan
    Программист C#
    Я нашёл два решения, но оба достаточно удручающи.
    1. Через ProcessStartInfo запускать netstat.exe и парсить результаты.
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.IO;
    using System.Text.RegularExpressions;
    
    namespace MyNamespace
    {
        /// <summary>
        /// Static class that returns the list of processes and the ports those processes use.
        /// </summary>
        public static class ProcessPorts
        {
            /// <summary>
            /// A list of ProcesesPorts that contain the mapping of processes and the ports that the process uses.
            /// </summary>
            public static List<ProcessPort> ProcessPortMap
            {
                get
                {
                    return GetNetStatPorts();
                }
            }
    
    
            /// <summary>
            /// This method distills the output from netstat -a -n -o into a list of ProcessPorts that provide a mapping between
            /// the process (name and id) and the ports that the process is using.
            /// </summary>
            /// <returns></returns>
            private static List<ProcessPort> GetNetStatPorts()
            {
                List<ProcessPort> ProcessPorts = new List<ProcessPort>();
    
                try
                {
                    using (Process Proc = new Process())
                    {
    
                        ProcessStartInfo StartInfo = new ProcessStartInfo();
                        StartInfo.FileName = "netstat.exe";
                        StartInfo.Arguments = "-a -n -o";
                        StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                        StartInfo.UseShellExecute = false;
                        StartInfo.RedirectStandardInput = true;
                        StartInfo.RedirectStandardOutput = true;
                        StartInfo.RedirectStandardError = true;
    
                        Proc.StartInfo = StartInfo;
                        Proc.Start();
    
                        StreamReader StandardOutput = Proc.StandardOutput;
                        StreamReader StandardError = Proc.StandardError;
    
                        string NetStatContent = StandardOutput.ReadToEnd() + StandardError.ReadToEnd();
                        string NetStatExitStatus = Proc.ExitCode.ToString();
    
                        if (NetStatExitStatus != "0")
                        {
                            Console.WriteLine("NetStat command failed.   This may require elevated permissions.");
                        }
    
                        string[] NetStatRows = Regex.Split(NetStatContent, "\r\n");
    
                        foreach (string NetStatRow in NetStatRows)
                        {
                            string[] Tokens = Regex.Split(NetStatRow, "\\s+");
                            if (Tokens.Length > 4 && (Tokens[1].Equals("UDP") || Tokens[1].Equals("TCP")))
                            {
                                string IpAddress = Regex.Replace(Tokens[2], @"\[(.*?)\]", "1.1.1.1");
                                try
                                {
                                    ProcessPorts.Add(new ProcessPort(
                                        Tokens[1] == "UDP" ? GetProcessName(Convert.ToInt16(Tokens[4])) : GetProcessName(Convert.ToInt16(Tokens[5])),
                                        Tokens[1] == "UDP" ? Convert.ToInt16(Tokens[4]) : Convert.ToInt16(Tokens[5]),
                                        IpAddress.Contains("1.1.1.1") ? String.Format("{0}v6", Tokens[1]) : String.Format("{0}v4", Tokens[1]),
                                        Convert.ToInt32(IpAddress.Split(':')[1])
                                    ));
                                }
                                catch
                                {
                                    Console.WriteLine("Could not convert the following NetStat row to a Process to Port mapping.");
                                    Console.WriteLine(NetStatRow);
                                }
                            }
                            else
                            {
                                if (!NetStatRow.Trim().StartsWith("Proto") && !NetStatRow.Trim().StartsWith("Active") && !String.IsNullOrWhiteSpace(NetStatRow))
                                {
                                    Console.WriteLine("Unrecognized NetStat row to a Process to Port mapping.");
                                    Console.WriteLine(NetStatRow);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                return ProcessPorts;
            }
    
            /// <summary>
            /// Private method that handles pulling the process name (if one exists) from the process id.
            /// </summary>
            /// <param name="ProcessId"></param>
            /// <returns></returns>
            private static string GetProcessName(int ProcessId)
            {
                string procName = "UNKNOWN";
    
                try
                {
                    procName = Process.GetProcessById(ProcessId).ProcessName;
                }
                catch { }
    
                return procName;
            }
        }
    
        /// <summary>
        /// A mapping for processes to ports and ports to processes that are being used in the system.
        /// </summary>
        public class ProcessPort
        {
            private string _ProcessName = String.Empty;
            private int _ProcessId = 0;
            private string _Protocol = String.Empty;
            private int _PortNumber = 0;
    
            /// <summary>
            /// Internal constructor to initialize the mapping of process to port.
            /// </summary>
            /// <param name="ProcessName">Name of process to be </param>
            /// <param name="ProcessId"></param>
            /// <param name="Protocol"></param>
            /// <param name="PortNumber"></param>
            internal ProcessPort(string ProcessName, int ProcessId, string Protocol, int PortNumber)
            {
                _ProcessName = ProcessName;
                _ProcessId = ProcessId;
                _Protocol = Protocol;
                _PortNumber = PortNumber;
            }
    
            public string ProcessPortDescription
            {
                get
                {
                    return String.Format("{0} ({1} port {2} pid {3})", _ProcessName, _Protocol, _PortNumber, _ProcessId);
                }
            }
            public string ProcessName
            {
                get { return _ProcessName; }
            }
            public int ProcessId
            {
                get { return _ProcessId; }
            }
            public string Protocol
            {
                get { return _Protocol; }
            }
            public int PortNumber
            {
                get { return _PortNumber; }
            }
        }
    }

    using System;
    
    namespace MyNamespace
    {
        internal class Program
        {
            private static void Main(string[] args)
            {
                foreach (ProcessPort p in ProcessPorts.ProcessPortMap.FindAll(x => x.ProcessName.ToLower().Contains("skype")))
                    //extension is not needed.
                {
                    Console.WriteLine(p.ProcessPortDescription);
                }
    
                foreach (ProcessPort p in ProcessPorts.ProcessPortMap.FindAll(x => x.PortNumber == 4444))
                {
                    Console.WriteLine(p.ProcessPortDescription);
                }
    
                Console.WriteLine("Press any key to continue...");
                Console.ReadLine();
            }
        }
    }

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

    2. Обернуть WinAPI. Штука не для слабонервных:
    //local port in decimal
        int LocalPort = (((int)buffer[nOffset])<<8) + 
            (((int)buffer[nOffset+1])) + 
            (((int)buffer[nOffset+2])<<24) + (((int)buffer[nOffset+3])<<16);

    Этот код я запускать не пробовал и адаптировать его будет значительно сложнее. Но для production-кода он по идее подходит больше.
    Ответ написан
    1 комментарий
  • Можно ли написать интерпретатор PHP на C#?

    @user4291
    Получится интерпретатор на интерпретаторе. Такое лучше на C/C++ писать.
    Ответ написан
  • Как правильно ставить задачи программистам?

    @Vampiro
    1. не устраиваться работать подобным образом.
    2. подойти к программистам с макетом и функциональными требованиями, и обсудить с ребятами как лучше по их мнению реализовать тот или иной функционал. Сайт должен выполнять какую-то роль, там и есть интерактив.
    2.а. Постараться в процессе обсуждения выделить "куски" независимых частей и обсудить возможность использования уже готовых кусков кода.
    3. если на этапе два программисты будут говорить, что все нужно писать с нуля, что задача уникальная и процесс займет полгода-год - уволить программистов, это недообученные студенты. Вы должны услышать от них ключевые слова (Yii, codeigniter, "рельсы" или им подобные). Кстати, если услышите "Битрикс" - тоже можете менять, скорее всего они также раньше работали маркетологами )))))))

    ЗЫ. Спасибо, что не устроились врачом)
    Ответ написан
    Комментировать
  • Какой Российский ВУЗ лучший для дистанционного образования в IT направлении

    @AlexP11223
    Да сколько ж можно одни и те же вопросы задавать? По тегу toster.ru/tag/%D0%B4%D0%B8%D1%81%D1%82%D0%B0%D0%BD... куча таких

    Вообще такого, чтоб "научили" не существует даже не дистанционно. В вузах дают фундаментальные знания toster.ru/q/69326, но без постоянного самообучения (и до, и во время, и после вуза) ничего не выйдет.
    Ответ написан
    Комментировать
  • Какую выбрать тему диплома по специальности АСОИУ?

    У нас диплом всегда совпадал с дипломной практикой. Чем на практике занимался - то и защищаешь.
    Ответ написан
    Комментировать
  • Языки разметки и декларативные языки

    Все языки транслируются. И не важно, декларативные это языки или императивные.

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

    Например, Markdown и Wiki транслируются в HTML. JSP - в Java. Си - в ассемблер, объектный код, исполнимый код.

    Языки разметки можно назвать частным случаем декларативных языков. Но чаще - это лишь формат представления данных, который транслируется в некоторое внутреннее представление (интерпретация), но не в исполнимый код (компиляция). JSP - одно из исключений.
    Ответ написан
    Комментировать
  • Может ли байт состоять из не восьми битов?

    Monnoroch
    @Monnoroch
    В велосипедной псевдоархитектуре процессора Кнута байт 6 бит, например.
    Ответ написан
    Комментировать
  • Где-нибудь есть понятное, простое объяснение графов (в программировании) и простые примеры задач на графы?

    @mcleod095
    Так смотрите графы в математике.
    Дискретная математика.
    Главное понять что это и зачем
    Я давно изучал, уже все позабыл, но например графы используются для нахождения кратчайшего пути в алгоритме Дейкстры. Программка на Си будет в строк 30-50.
    Ответ написан
    Комментировать
  • Какими знаниями должен обладать хороший и востребованный SEO-специалист?

    GM2mars
    @GM2mars
    Думаю что сеошник должен в общем разбираться в трендах интернет (так как куда идет тренд, туда идут и поисковые алгоритмы). Хороший сеошник должен ещё и разбираться в алгоритмах поисковых систем на техническом уровне (семантика, роботы/боты, карта сайта, httpaccess и так далее). Ну а очень хороший сеошник, должен не только знать все выше сказанное, но ещё и понимать целевую аудиторию своего продукта/сервиса.
    Ответ написан
    Комментировать
  • Как отладить ruby gem в rails окружении?

    @t0pep0 Автор вопроса
    Разобрался, отладка, хоть и в не очень удобном режиме, проводиться с помощью гема "debugger" путем добавления в код, на места бряков, "debug". Ошибка была в неверном наследовании
    Ответ написан
    2 комментария
  • Macbook pro озу 8гб или 16гб?

    dmkuznetsov
    @dmkuznetsov
    ZCE
    Стоял такой же выбор, когда девушке (она архитектор) покупали ноут.
    В итоге купили с 8гб и ни сколько не жалеем. Тормозов никаких не наблюдается, с учетом параллельного использования фотошопа и архикада.
    Так же могу добавить, что сам являюсь обладателем air с 4гб. Всегда запущен virtualbox (в фоновом режиме, без gui, 2гб озу), открыто огромное кол-во вкладок в хроме, какая-нибудь документация и PhpStorm. Тормозов нет, хоть и по системному монитору использована почти вся оперативка. Могу параллельно еще запустить виртуалку с Windows XP, тормоза не появляются.
    У товарища (у него air, 4гб) появляются тормоза, когда он работает с 3 запущеными виртуалками vmware, но оно в принципе и понятно.
    Ответ написан
    Комментировать
  • Как лучше спроектировать базу MySql на несколько ТБ?

    edinorog
    @edinorog
    Троллей не кормить!
    Социальные сети зло. Не нужно их множить. =)
    Ответ написан
    1 комментарий