Latest Event Updates

JetBrains meetup with Dmitri Nesteruk

Posted on

Byłem na http://www.meetup.com/NNUGOslo/events/134859912/
Z pierwszej części nie wyniosłem wiele nowego, już teraz dużo korzystam z R#.

Druga była ciekawsza:

Fast Code Craft

a talk about speeding up the processes of actually creating code by using mnemonic templates, code generation and domain transformations

Mnemonics opisane fajnie przez Gutka (http://blog.gutek.pl/2013/08/08/resharper-8-mnemonics-live-templates), ważna uwaga to że działają też przed wersją 8, trzeba je doimportować.

Przypomniały mi się czasy gdy operowałem na Excelach i trzeba było sobie jakieś toole dopisywać. Przypomniało mi się, że pisanie tooli to fajna praca 🙂
Dmitri dał też trochę nowej motywacji do pushowania kodu publicznie.

Dmitri’s blog at JetBrains

Advertisements

Line endings (CR LF)

Posted on

Jeśli masz z tym problemy, bo nie zawsze da się wyczuć co się dzieje to polecam zajrzeć w źródła problemu. Bruteforce debugging. Cytat z Show all characters:

In Notepad++, clicking View > Show Symbol > Show All Characters produces the following:

  • Spaces are materialized with dots
  • TABs are materialized with right arrows
  • CR/LFs are displayed with CR/LF icons
  • Probably more cases that I’m not aware of
notepad++ with all characters
notepad++ with all characters

Różne metody HTTP

Posted on Updated on

Chciałem skorzystać z metody Delete

$.ajax({
    url: "/api/ShoppingBagApi",
    contentType: "application/json; charset=utf-8",
    data: {id:11},
    type: "Delete"
}).done(function() {
    alert("done");
}).fail(function() {
    alert("fail");
});

niestety nie mapowało mi się to id w kontrolerze.

[HttpDelete]
public HttpResponseMessage Delete(int id)
{
    return null;
}

Problemem było korzystanie z data. To jest wykorzystawane gdy korzystamy z POST. Wystarczyło zmienić na coś takiego:

$.ajax({
    url: "/api/ShoppingBagApi/" + 11,
    contentType: "application/json; charset=utf-8",
    type: "Delete"
}).done(function() {
    alert("done");
}).fail(function() {
    alert("fail");
});

Korzystałem z domyslengo routing dla WebApi

protected override void RegisterRoutes(System.Web.Routing.RouteCollection routes)
{
    base.RegisterRoutes(routes);
    routes.MapHttpRoute(
        "API Default",
        "api/{controller}/{id}",
        new {id = RouteParameter.Optional}
        );
}

Nie muszę korzystać z action, wystarczy mieć po jednej akcji dla każdego typu metody HTTP i się dobrze zmapuje.

Update

Powyżej się myliłem, rozwiązanie działało rykoszetem(łapało się na id = RouteParameter.Optional).

public class ShoppingBagDeleteItemRequest
{
    public int Id { get; set; }
}

[HttpDelete]
public HttpResponseMessage Delete(DeleteItemRequest deleteItemRequest)
{
    return null;
}
$.ajax({
    url: "/api/ShoppingBagApi",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({ Id: item.id }),
    type: "Delete"
})

Po tych zabiegach wszystko dobrze się mapuje. Jest to zdecydowanie lepszy, bardziej przejrzysty sposób.

Favorites w Windows Explorer

Posted on

Po lewej w Exploratorze mamy skróty do folderów z których najczęściej korzystamy. Sa one nam dane z systemem, a dodatkowo niektóre aplikacje się tam instaluja. Jednak mało osób zdaje sobie sprawę, że moga całkowicie pozmieniać te foldery.

Favorites

windows explorer favorites
Add current location to Favorites

Dodanie kilku folderów, z których korzystamy codziennie na pewno przyspieszy nasza prace.

Libraries

Poniższy obrazek pokazuje nam jak dodać folder do Libraries. Różnica między nimi jest taka, że czasem inny program (np przegladka, lub jakiś program do obrabiania plików) chce coś pobrać zapisac na naszym dysku i wtedy otwiera sie okienko Exploratora i mamy do pomocy albo obywda Favorites i Libraries albo tylko jedno.

Create new library in Windows Explorer

Windows 8 skrót na Desktop

Posted on

Skrót klawiszowy, który musisz poznać

Ile przekleństw już poleciało gdy nagle znika Desktop (otworzyliśmy inną apkę) i nie można go prosto przywrócić. Ten (…) Windows 8.
A można tak:

Win + d (pokaż pulpit)
Działa z dowolnego miejsca.

Windows 8 ogólnie

System po miesiącu użytkowania bardzo mi się podoba. Jak coś nie działa dobrze (jak ten Desktop) to przecież wyszukiwarka pomoże. Korzystam tylko z wersji Desktop, nie mam tableta Windowsowego, żeby korzystanie z metro miało sens. Omijam więc metro gdzie się da, ustawiając otwieranie zdjęć za pomocą np. IrfanView zamiast domyślnego.

Brak osławionego „Start Menu” też nie jest problemem. Od dawna już nie używałem. Klikam „Win” i piszę co ma się otworzyć.

Outlook

Posted on

Wyszykuj domyślnie we wszystkich folderach

File -> Options -> Search

Search all folders in outlook

Źródło

Skróty klawiszowe

Ctrl+K – sprawdza i dopełnia pełne emaile w pasku wysyłania Do, CC itd.

Ctrl+E – szukaj
Ctrl+N – nowy mail
Alt+S – wyslij
Ctrl+R – odpowiedz
Ctrl+Shift+R – odpowiedz wszystkim
Ctrl+F – forward

Ctrl+1 – maile
Ctrl+2 – kalendarz

Częściowa inspiracja, ale to zawsze najpierw sam widzę potrzebę, gdzie mnie myszka wkurza i dopiero potem szukam skrótu.

Workflow

Email to przeprocesowaniu (załatwieniu czego ode mnie w nim chciano) staram się kasować lub archiwizować. Granicę między dwoma każdy sam sobie musi wymyślić. Lepiej więcej kasować, rzadko wraca się do już załatwionych spraw.

Jeśli dotyczy aktualnego projektu to wrzucam do katalogu przeznaczonego na to (chyba, że jest do skasowania). Sprawdzam czy to będzie działać.

“The ServicePointManager does not support proxies with the https scheme” problem

Posted on

Chodzi o Nuget ‘NuGet official package source’ z adresu https://nuget.org/api/v2/. Już drugi raz wrócił do mnie ten problem. Kiedyś jakoś rozwiązałem, ale teraz nie potrafiłem trafić na tamto rozwiązanie, więc opiszę nowsze (może lepsze).

I’m not behind a corporate proxy, so the error message made absolutely no sense to me. What helped, though, was to replace the default NuGet package source. I did this by:

  1. Going into NuGet settings and adding a new package source pointing to http://nuget.org/api/v2/ (no ‘s’ in the scheme)
  2. Disabled the default source
  3. Enabled my newly added source

Źródło