RSS
środa, 25 kwietnia 2012
Programowanie iPhone / iOS - aplikacja Lista Zadań - ToDo - część 2B
Zapraszam na część B, drugiej części tutorialu o tworzeniu kompletnej aplikacji iOS - Listy Zadań (Ze względu na ograniczenie długości wpisu tutorial został podzielony na części A i B). W tej części dokończymy rozpoczęte wcześniej, zmiany naszej aplikacji. Z wykorzystaniem protokołów zaimplementujemy proces komunikacji pomiędzy widokami detail i master naszej aplikacji, reagując odpowiednio na akcje użytkownika aktualizując, dodając bądź usuwając rekordy. Zapraszam na część B... :)
Programowanie iPhone / iOS - aplikacja Lista Zadań - ToDo - część 2A
W drugiej części tutorialu będziemy kontynuować prace nad naszą aplikacją - Listą Zadań. Rozbudujemy nasz projekt, przedstawiony w części pierwszej, o możliwość dodawania nowych zadań oraz usuwanie i edycję zadań istniejących. Każde zadanie będzie miało swoje właściwości: tytuł, opis, priorytet i znacznik mówiący o tym czy jest wykonane, czy nie. Rozbudujemy i usprawnimy również interfejs naszej aplikacji. Ze względu na ograniczenie długości wpisu tutorial został podzielony na części A i B. Zapraszam na część A... :)
wtorek, 24 kwietnia 2012
Bezpieczeństwo iOS 5.1 + (iPhone, iPod, iPad)
      Bezpieczeństwo iOS 5.1 +       Jakiś czas temu Australijski Departament Obrony opublikował na swoich stronach ciekawy dokument na temat bezpieczeństwa urządzeń iOS (iPod Touch, iPhone, iPad) działających pod kontrola systemu iOS 5.1 lub nowszego. Jeśli jesteś zainteresowany tę tematyka, przewodnik, w języku angielskim, możesz pobrać tutaj.
wtorek, 17 kwietnia 2012
Programowanie iPhone / iOS - aplikacja Lista Zadań - ToDo - część 1
Po krótkiej przerwie wracam znów do programowania iOS. W kolejnych trzech, może czterech postach postaram się opisać krok po kroku, jak stworzyć aplikację iOS - Listę Zadań - ToDo umożliwiającą dodawanie nowych zadań do wykonania, ich edycję, zaznaczanie jako wykonanych oraz usuwanie. Nasza aplikacja wykorzystywać będzie możliwości oferowane przez najnowszą wersję systemu iOS - Storyboards i Automatic Reference Counting (ARC) oraz bazę danych SQLite jako backend. Na koniec serii opiszę również, w jaki sposób przygotować aplikacje do publikacji na AppStore oraz jak je promować. Dziś jednak zaczynamy od prostego szkieletu aplikacji master - detail...
piątek, 13 kwietnia 2012
Oracle - komentarze w widokach

Dodawanie większego bloku komentarza w widoku Oracle w taki sposób, aby pozostał on widoczny po kompilacji w bazie danych, może wydać się nie do końca intuicyjne (może to być na przykład standardowy nagłówek, którego używamy we wszystkich modułach naszej aplikacji).



W moim wypadku chciałem mieć możliwość szybkiego sprawdzenia, jaka wersja kodu (widoku) działa/została zainstalowana na danej instancji bazy danych i w niektórych wypadkach, do szybkiego zorientowania się, do czego dany widok jest wykorzystywany.



Moje pierwsze podejście wyglądało tak. Do widoku dodałem standardowy komentarz nagłówkowy używany w kodzie.




/***************************************************************************
Copyright (c) information.
                            
** $Workfile$
** $Project$
** $Date$
** $Author$
** $Id$
** Description: 

** $Log[10]$
****************************************************************************/
CREATE OR REPLACE FORCE VIEW EXDUAL_V
(
   VALUE
)
AS
SELECT   1 VALUE
  FROM   DUAL
/




Niestety, gdy sprawdziłem źródło w aplikacji TOAD po moim komentarzu nie ma śladu (nie powinno być to zaskoczeniem):


Oracle - komentarze w widokach

 

...podobnie w SQL*Plus:

 

Oracle - komentarze w widokach

 

Taki sam efekt uzyskamy próbując umieścić komentarz wewnątrz widoku (tym razem, rezultat nie jest tak do końca oczywisty):

 

CREATE OR REPLACE FORCE VIEW EXDUAL_V
(
/***************************************************************************
Copyright (c) information.
                            
** $Workfile$
** $Project$
** $Date$
** $Author$
** $Id$
** Description: 

** $Log[10]$
****************************************************************************/
   VALUE
)
AS
SELECT   1 VALUE
  FROM   DUAL;

 

I w tym wypadku, po kompilacji znów niczego nie zobaczymy:

 

I w tym wypadku, po kompilacji znów niczego nie zobaczymy:

 

Ostatnie podejście (kluczowy jest tu forward slash na końcu skryptu):

 

CREATE OR REPLACE FORCE VIEW EXDUAL_V
(
   VALUE
)
AS
SELECT   1 VALUE
  FROM   DUAL
/***************************************************************************
Copyright (c) information.
                            
** $Workfile$
** $Project$
** $Date$
** $Author$
** $Id$
** Description: 

** $Log[10]$
****************************************************************************/
/

 

I nareszcie mamy to, o co nam chodziło :)

 

Oracle - komentarze w widokach

 

Przykladowy kod można pobrać tutaj.

 

wtorek, 10 kwietnia 2012
Tworzenie oprogramowania iPhone / iOS bez komputera Mac
Najłatwiej (czyt. bezproblemowo) oprogramowanie iOS (iPhone/iPod/iPad) tworzyć można na komputerach MAC. Nie są one tanie, ale do programowania nie jest potrzebny model z najwyższej polki, nawet dwu- trzy- letnia używana maszyna powinna do tego w zupełności wystarczyć. Jeśli jednak takową nie dysponujemy i/lub nie mamy wystarczających funduszy na zakup dodatkowego sprzętu poniżej prezentuje kilka alternatyw.
poniedziałek, 09 kwietnia 2012
Centrala Apple – Cupertino, Caifornia

 

Jeśli chcesz wiedzieć jak wygląda w środku centrala Apple, polecam zdjęcia opublikowane przez Applegazette: http://bit.ly/HBWwLe.

wtorek, 03 kwietnia 2012
Oracle pusty string - coś, czego nie wiedziałem

Może niektórym wyda się to trywialne, ale sam o tym nie wiedziałem. Oracle traktuje pusty string, jako wartość NULL, co jeśli się o tym nie wie/nie pamięta, może prowadzić to dziwnego zachowania kodu :)



Pracowałem nad funkcją, która musiała na podstawie przekazanego typu i ciągu wejściowego stworzyć na wyjściu string będący polaczeniem ich obu. Zadanie trywialne. Moje pierwsze podejście pokazuje poniższy kod (zakomentowana cześć), poniżej niezakomentowane jej już poprawne rozwiązanie wykorzystujące IS NULL.




FUNCTION f_typespecificlinenote (
   ps_type           VARCHAR2,
   ps_linenote       VARCHAR2
IS
   vs_linenote         VARCHAR2(50) := '';
BEGIN

   /*
      ...
Super skomplikowany, tajny kod generujący line note na postawie przekazanego typu :)
...
   */
   
   /* to nie dziala, NVL moznaby tu uzyc z innym – nie pustym stringiem --
   IF NVL(ps_linenote, '') != '' AND NVL(vs_linenote, '') != '' THEN
      vs_linenote := vs_linenote || ',';
   END IF;
   */

   -- ok dziala
   IF ps_linenote IS NOT NULL AND vs_linenote IS NOT NULL THEN
      vs_linenote := vs_linenote || ',';
   END IF;
  
   RETURN SUBSTR(vs_linenote || ps_linenote, 1, 50);   --max 50 znakow.

END;




Okazuje się, że początkowa inicjalizacja nie jest w tym wypadku konieczna:

 

linie:

 

vs_linenote         VARCHAR2(50) := '';



można zastąpić przez:

 

vs_linenote         VARCHAR2(50);




Tagi




PowerBuilder Tetris
D - Tetris



Programowanie iOS

C# ToolBox

SQL / TSQL / PLSQL ToolBox

Linux / Unix ToolBox





Zaprzyjaznione Strony

Sprite Bandits

Cake Time