← All posts tagged программирование

В ублюдочном ЯваСценарии всего две функции для таймеров (setTimeout, setInterval) а в няшном .NET для правильных пацанов есть 5 разных способов:

• System.Threading.Timer
• System.Windows.Forms.Timer
• System.Timers.Timer
• System.Windows.Threading.DispatcherTimer
• System.Web.UI.Timer

В документации к System.Timers.Timer цела страница оговорок типа
The Timer component catches and suppresses all exceptions thrown by event handlers for the Elapsed event. This behavior is subject to change in future releases of the .NET Framework. Note, however, that this is not true of event handlers that execute asynchronously and include the await operator (in C#) or the Await operator (in Visual Basic). Exceptions thrown in these event handlers are propagated back to the calling thread, as the following example illustrates. For more information on exceptions thrown in asynchronous methods, see Exception Handling.

youtube.com

Нужно запретить использовать слово приложение (application) из–за того что это заимствование создаёт ещё больше неразберихи в среде малообразованного населения. И у нас уже есть слово «программа» которое в контексте программирования и ЭВМ обозначает комьютерную программу. А ещё «приложение» звучит отвратительно. В англицкой Wikipedia ( en.wikipedia.org ) напечатано что application это программа для ЭВМ созданная для решения пользователем неких своих задач а если почитать эту же статью в переводе, то выясняется что application это прикладная программа. Теперь о якобы взаимозаменяемости application и web site. Нет, блять, это разные понятия. Есть такое замечательное слово как web–узел, web site то есть, узел всемирной, блять, сети. И если вы открываете web–узел www.mazafucka.com, то открываете вы web–узел а не application. И уже через этот узел вы используете, если они есть, ваши прикладные, блять, программы (например, прости господи, текстовый редактор на JavaScript) с помощью которых вы решаете какую–то свою задачу. К сожалению многие senior upper-intermidiate-english javascript-ninja software engineer`ы этого не понимают и говорят «когда я говорю приложение, я не совсем знаю точно что занчит вообще приложение… я долго над этим думал и попытался сформулировать в чём собственно разница между приложением и сайтом…» и выдают размытое определение: вэб–аппс хэв комплэкс интэрэкшнс энд мэйнт э стэйт он зэ клайэнт вайл, вэб сайтс мостли рэндэр стэйтик информэйшн.». Стэйтик информэйшн выдаётся потому ты, web–программист, написал программу которая и выдаёт мостли стэйтик информэйшн (или же ты ничего не писал и её выдает какой–нибудь apache).

Я хуею. Один из возможных способов отправить HTTP запрос это написать код типа
HttpWebRequest r = WebRequest.Create(url) as HttpWebRequest;
r.Method = "POST";
r.ContentType = "application/json";
System.Byte[] jA = Encoding.UTF8.GetBytes(jsonStringToSend);

Stream rStream = r.GetRequestStream();
rStream.Write(jA, 0, j.Length);
HttpWebResponse re = r.GetResponse() as HttpWebResponse;

А где же происходит отправка запроса? А во время вызова GetResponse и происходит. Для сравнения код на Ruby:
uri = URI.parse("http://localhost:3000/users")

header = {'Content-Type': 'text/json'}
user = {user: {
name: 'Bob',
email: 'bob@example.com'
}
}

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri, header)
request.body = user.to_json

# Send the request
response = http.request(request)

Не могу получить данные с сайта по HTTPS из программки на .NET в Windows XP ({"Unable to read data from the transport connection: Удаленный хост принудительно разорвал существующее подключение."}). А вот в случае программы на Python такой проблемы нет. Сука–а!