Skip to content

Instantly share code, notes, and snippets.

@cprieto
cprieto / Autoreleasepool.m
Last active August 29, 2015 13:57
Samples for retain/release structure
int main(int argc, const char *argv[]) {
// First way, using the language
@autoreleasepool {
// A new pool is created and released outside this, we can nest pools as well
}
// Using the class
NSAutoreleasePool *pool;
pool = [NSAutoreleasePool new];
@cprieto
cprieto / gist:4016672
Created November 5, 2012 11:08
Capitulo 2.5 - Runtime y lenguaje

Capitulo 2.5

Intro

Bien, estaba leyendo tus notas del capitulo 3 y muchas cosas me parecieron interesantes, mas que todo algunas preguntas y comentarios del capitulo, antes que ahondemos un poco en las preguntas y comentarios de ese capitulo queria profundizar un poco en algo clave e importante acerca de la framework, es tan importante que comprendiendo las diferencias y el porque veras mas claro la evolucion y avance del lenguaje como tal. Es tan crucial que a muchos programadores 'experimentados' al entrevistarlos y preguntarles acerca de ello demuestran no solo que no lo conocen si no que andan mas perdidos que el hijo de la llorona...

El runtime, el lenguaje y las librerias - Porque Microsoft nos complica la vida

La verdad, que muchos programadores contesten una pregunta tan simple como 'que versiones de la framework existen' y al mismo tiempo fallen al comentar 'que versiones del runtime existen' no es su culpa, si no de Microsoft y su equipo de marketing al confundir a millones de programado

@cprieto
cprieto / gist:4011791
Created November 4, 2012 12:54
Capitulo 2 - Delegados, Eventos, Heap and Stack, Tipos por Valor y Referencia

Capitulo 2

Lenguaje - Delegados

Es sumamente dificil que uno vea la importancia de los delegados inmediatamente cuando se comienza a aprender C#, recuerdo que la primera vez que los vi y lei sobre ellos pense que habia comprendido como funcionaban y no podia ver el porque eran tan interesantes o importantes, o bueno, ver la razon de su existencia.

Como menciona el capitulo, un delegado no es nada mas que un nivel de abstracion hacia una operacion algo que es similar a un puntero hacia una funcion en C , sin embargo van un poco mas alla, tomare en cuenta o por sentado que conoces las implicaciones y usos de un puntero a una funcion en C, si no, quizas refrescar el concepto te ayude Pointer to functions y nunca puede faltar el link de Wikipedia Function pointer.

Sin embargo, el concepto de un puntero a funcio

Capitulo 1

El inicio del capitulo es importante, Skeet menciona como C# pasaba mas a una version bonita de Java que un lenguaje revolucionario. Recordemos que estamos hablando del anio 2001 donde muchos pensaban que en el area de lenguajes fuertemente tipificados todo estaba escrito.

Cuando se menciona que algo es first-class feature en un lenguaje involucra que esa caracteristica esta a la par de otras cosas ofrecidas en el lenguaje como variables o metodos.

Personalmente por un ultimo chance que me toco he tenido que regresar a programar un par de cosas, y creeme, aun en la ultima version de Java se siente como un lenguaje totalmente arcaico comparado con C# (y nisiquiera estoy comparandolo con C# 5.0 si no contra C# 3.0), espero que al final del libro te des cuenta de como es posible que el lenguaje como tal avance tan rapido contra la maquina virtual comparado con el modelo usado por Java.

Algo importante que menciona Skeet es _but always in a carefully considered way, and with little backwa

using System;
using System.Linq;
using NSubstitute.Core;
using NSubstitute.Specs.Infrastructure;
using NUnit.Framework;
namespace NSubstitute.Specs
{
public class CallInfoFactorySpecs : ConcernFor<CallInfoFactory>
{
ISampleComInterface sampleInstance;
HRESULT error = CoCreateInstance(CLSID_Sample, NULL, CLSCTX_INPROC_SERVER, IID_ISampleComInterface, (void**)&sampleInstance);
sampleInstance->AddRef();
// Use your stuff here...
sampleInstance->Release();
public static class SessionExtractor
{
private static readonly Regex sessionRegex = new Regex("ASPNET_SessionId=(?<session>[^;]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
public static string GetSessionId(string cookie)
{
var match = sessionRegex.Match(cookie);
if (match.Success)
return match.Groups["session"].Value;
[ActionName("search")]
public Task<ActualFlightSearchResult> GetFlightAsync(FlightSearchQuery query)
{
var parameters = AssembleSearchParameters(query);
var task = Task.Factory
.FromAsync<ContrailFlightSearchResponse>((callback, state) =>
_data.BeginFindFlights(parameters, callback, state),
_data.EndFindFlights, null);
[TestClass]
public class SessionExtractorTests
{
[TestMethod]
public void ItCanFindSessionIdFromPartialCookie()
{
const string cookie = "ASPNET_SessionId=xyz123";
const string expected = "xyz123";
var session = SessionExtractor.GetSessionId(cookie);
try {
$.datepicker.parseDate('dd/mm/yy', dateText);
} catch (e) {
alert(e);
};