Jump to content

Juan Valdez

Члан
  • Број садржаја

    7695
  • На ЖРУ од

  • Последња посета

  • Број дана (победа)

    25

Everything posted by Juan Valdez

  1. Juan Valdez

    Krugman: Obama, spremi taj novčić

    Obama Announces Plan to Forgive All Student LoansAug 22, 2013 President Obama announced a plan today to forgive 100 percent of all federal student loans in the country. In a speech in Scranton, PA the president told an assembled crowd that it was unfair to hold college graduates to promises they made as students and outlined his vision for ending all student loan payments by the end of the year. "Just because someone borrowed a bunch of money doesn't mean they have to pay it back," he explained to a friendly crowd at Scranton University. "This isn't 19th century England. This is America. And in America we've always believed in second chances. "In today's economy a university education is more important than ever. Where would successful people like Bill Gates, Steve Jobs, Tom Hanks, Brad Pitt or Mark Zuckerberg be without their college diplomas? These days skipping college just isn't an option, but neither is continuing to pay for increasingly expensive tuition. "We need colleges to teach our young people useful skills like sociology, gender studies and postmodern Moldovan literary analysis. But the most important thing we need to teach them is responsibility. And what better way to teach responsibility than to hold these banks accountable for the terrible loans they've made." Nor a Lender Be The student loan burden in America is estimated at over $1 trillion, with most of that in the federal government's hands. There are an estimated 40 million student loan borrowers who hold an averageof $24,000 of debt between them. The cost of a college education in the U.S. has risen 600% since 1980, much faster than inflation. Although since the financial crisis the level of other types of debt such as mortgages and credit cards has fallen, student loan debt has continued to rise alarmingly. Some economists have called this trend a crisis, as heavy loan burdens discourage consumer spending and housing sales among the young. Many liberal activists have called for the type of loan forgiveness Obama announced today. Conservative economists, however, have called for the government to leave the market altogether, noting that cheap government loans allow students to artificially bid up the price of higher education. Under Obama's plan all $900 billion in federal student loans will be wiped out on Nov. 1, and no further payments need be made after that date. The loss of revenue will add significantly to the U.S. government's deficit, although the cost would be spread out over several years. The reaction among recent college graduates to the program has so far been ecstatic. Ryan Howard, a local paper salesman and graduate of Scranton University's MBA program, says he can't wait to have his debt forgiven. "My wife, Kelly, has expensive tastes and we have another baby on the way," he explains. "I could really use the money." Izvor 4chsmu1
  2. Па пази, ни ово није сасвим тачно. Можеш ти да волиш живот и да верујеш у, рецимо, некакву реинкарнацију. То би исто било ”логично”. Уосталом, погледај библијску историју. Имаш старозаветне људе који су веровали и следили правила и (ако се не варам), уопште нису веровали у вечни живот. Онда је дошао Христос и рекао им да постоји вечни живот кога ће кроз Њега да наследе. Тек тада је један мањи број почео да (након тог сазнања) воли живот, а већина су били и остали тешки депресивци и поштоваоци правила, само сад неких нових. Даље, неко може да има не знам какву љубав према жживоту и да из тога извуче веру да је живот вечан. Али ако тај исти одбије цркву, јер му се ни најмање не свиђа, сва му је та вера потпуно узалудна. Црква (тј. задобјање вечног живота по учењу цркве) јесте сведена на сува правила. Без обзира што се стално говори о некаквој суштини, до ње је једино могуће доћи кроз гомилу правила и кроз један начин живота који мораш да прихватиш. Мени се свиђа твој поглед на свет, да ме не схватиш погрешно. Само што сам (изгледа за разлику од тебе) свестан да тај поглед није православни поглед на свет кога црква проповеда од самог почетка, чак и да занемаримо којекаква каснија скретања у фанатизам. Оно што ти признајем је да такав поглед вероватно (уз можда мање одступање) можеш да извучеш из самог Светог Писма и Христових речи. Ту заиста скоро да нема правила и заиста се све може свести на суву љубав. Али из учења цркве нема шансе. Ту је толико тога додато почевши од апостола, па надаље, да потпуно логички и још више практично искључује већуну ствари о којима пишеш. Остаје ти отприлике да верујеш да је црква вођена Светим Духом, прихватиш сво њено учење и будеш православни хришћанин или да будеш некакав протестант или индивидуални хришћанин и упражњаваш то о чему говориш.
  3. Еееее, ал да није тих 200$ зарадио, могуће је да би у наредним данима липсао од глади и све ово остало онда не би било могуће.
  4. Заборавили су да напишу да је и нићпор снимио у почетку (то му је била прва филмска улога) - 200$ за два дана. Чисто комплетности ради. 4chsmu1
  5. Е, а има ли овде неко са сасвим обичном и досадном животном причом? Знате оно, родио сам се, био послушно дете, одличан ђак у школи, добар комшија, радник, шеф, дечко, муж... После сам чуо о православљу и само на свој претходни живот лагано додао то ново. Све бре неко жестоко лутање, трагање, нихилизам, Фројд, ово, оно... 4chsmu1
  6. А Хришћанство каже да је = Христос Оно открива ко је та савршена личност о којој говориш. И све би било поприлично једноставно када би ти до те савршене личности могао да дођеш неким својим сопственим методом, да тако кажем, неким својим сопственим начином живота, где би једино ограничење било да не смеш да повредиш другу личност која је позвана да достигне исти тај лимес и једини захтев да мораш свакога да волиш или бар да се трудиш. Али ако хоћеш да будеш православан, онда мораш да верујеш да се до савршене личности долази само кроз Цркву и да живиш онако како ти Црква каже. Ћао, слободо, ћао креативности...
  7. Juan Valdez

    iOS Development

    Иначе, Objective-C нема стандардну библиотеку. Одакле онда долазе NSString и NSArray које смо користили у примеру? Одговор је Cocoa за OS X и Cocoa Touch за iOS. Иза ових имена се крије гомила библиотека груписаних у frameworks. NSArray NSString су део Foundation framework-a, док је све што има везе са корисничким интерфејсом у UIKit. Преглед свих framework-a и свих технологија у iOS можете наћи у iOS Technology Overview. Али откуд компајлер зна за ове framework-е, нигде нисмо написали #include ”Foundation.h”, нити било шта слично. Xcode користи precompiled headers. Када започињете нови пројекат, Xcode за вас направи фајл "ime projekta-Prefix.pch". Ево како изгледа садржај тог генерисаног фајла. #import <Availability.h> #ifndef __IPHONE_5_0 #warning "This project uses features only available in iOS SDK 5.0 and later." #endif #ifdef __OBJC__ #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> #endif Сви header-и наведени у овом фајлу се кеширају и потом аутоматски укључују у све друге фајлове током компајлирања. Пошто је Foundation неопходан у практично сваком фајлу, а UIKit бар у половини, они су по дифолту убачени. Можете додати шта год вам је потребно. Приметите да се овде користи #import уместо #include. #import ради исто што и #include, само мало софистицираније. За Objective-C фајлове увек користите #import. Овде је добар тренутак да објасним @class директиву из примера. У питању је forward declaration класе. Ако се још неко сећа, написао сам следеће: @class ZRUPost; @class ZRUTopic; @class ZRUMember; Ово значи следеће: ”Драги компајлеру, веруј ми на реч да ове класе постоје. Допусти ми да их овде користим у декларацији, а ја се обавезујем да ћу ти њихове header фајлове показати у имплементацији.” У имплементацији ћемо морати да напишемо #import "ZRUPost.h" #import "ZRUTopic'h" #import "ZRUMember.h"
  8. Juan Valdez

    iOS Development

    Ево мало линкова. Programming with Objective-C Concepts in Objective-C Programming Object-Oriented Programming with Objective-C http://nshipster.com http://oleb.net http://www.objc.io http://petersteinberger.com
  9. Yap. Једини излаз је да постанеш милијунаш.
  10. Сакупи хиљаду евра... Ћутаћу. Не говорим о похлепи, него о неким свакодневним стварима. Сигурно нећу да узмем кредит да бих купио јахту. Али ајде плати сутра ћерки студије на иоле бољем универзитету, без да се задужиш (само немој да ми одговориш са ”шта ће јој универзитет”, то је губљење времена). Можда и имаш довољно за то, не знам баш колико си тежак, али не дај Боже да се разболиш озбиљно, све што имаш ти не би било довољно.
  11. Зависи где живиш и шта радиш. Не можеш према себи да судиш. У Београду одласци код лекара таксијем могу да буду 2000 (повратна), па и више. Економски је куповина најисплативија ако повремено одеш у мегамаркет и накупујеш све што ти треба. То не можеш пешке или бициклом. А тамо где Звонко живи без аута не можеш да урадиш апсолутно ништа.
  12. А на коју фору онда да купиш ауто? О евентуалном стану да и не говорим... А како да предвидиш како ће да се крећу валуте? Пола Србије узело кредит у францима и сад им рата већа него плата... У Србији немаш где да се окренеш и да одеш. Свуда је исто.
  13. Juan Valdez

    iOS Development

    Овако се декларишу методи. + (ZRUMember *)adminWithUserName:(NSString *)userName displayName:(NSString *)displayName; - (BOOL)postMessage:(ZRUPost *)message inTopic:(ZRUTopic *)topic; + и - нам говоре да ли се ради о class или instance method. Class methods се позивају директно на класи, на следећи начин: ZRUMember *theDejo = [ZRUMember adminWithUserName:@"Chuck Norris" displayName:@"Dejan Bicanic"]; Instance method се позива на конкретном објекту, инстанци класе. [theDejo postMessage:someMessage inTopic:someTopic]; Након + и - се наводи тип од returned value. После тога долази назив метода са аргументима. У већини језика методи изгледају некако овако: postMessageInTopic(aMessage, aTopic) Objective-C разбија име метода на онолико делова колико има аргумената. Ово је већини људи у почетку чудно, али се брзо навикнете. Предност је то што се позивање метода чита скоро као енглески језик и што се тачно види шта који аргумент представља. - (void)doSomething; - (void)doSomethingWithArgument:(ArgumentClass *)argument - (void)doSomethingWithArgument1:(Argument1Class *)argument1 inArgument2:(Argument2Class *)argument2 Видели сте у мом претходном посту метод који проверава да ли дати објекат имплементира одређени метод. if ([object respondsToSelector:@selector(fly)]) { [object fly]; } Селектор је у Objective-C терминологији просто име метода. Када напишете [theDejo postMessage:someMessage inTopic:someTopic]; Компајлер то преводи у нешто овако objc_msgSend(theDejo, @selector(postMessage:inTopic:), someMessage, someTopic); Онда ова функција (током извршавања, не компајлирања) тражи имплементацију метода postMessage:inTopic: Можете чак и ручно позвати objc_msgSend. То практично никада нећете радити. О овој и другим low level функцијама можете прочитати у Objective-C Runtime Reference и Objective-C Runtime Programming Guide Оно што вам хоће требати је selector. Као што рекох, selector је просто име метода које Objective-C Runtime користи да пронађе имплементацију током извршавања. Наићи ћете ту и тамо на метод који вам тражи selector као аргумент. Проследите му @selector(imeMetoda). Веома је важно обратити пажњу на то шта је заправо име метода. У нашем горњем примеру имена су редом: doSomething doSomethingWithArgument: doSomethingWithArgument1:argument2: Ако ово сад запамтите, поштедећете себе бројних главобоља, јер нисте видели да сте додали две тачке где не треба или нисте где треба. Толико о методама за сада. Следећи пут ћу објаснити properties. Properties су само пречица да бесплатно добијете декларацију и основну имплементацију accessor метода (getters и setters). Има их и у разним другим језицима.
  14. Како јадан и покварен наслов. Ову теми ни ни новинари не би боље осмислили...
  15. Juan Valdez

    iOS Development

    Objective C има све примитивне типове које има и C. У горњем примеру сам користио BOOL, NSInteger и NSUInteger. То су исто обични примитивни C типови. BOOL je typedef signed char и има вредности YES и NO (1 и 0). NSInteger и NSUInteger су зависно од платформе long и unsigned long односно int и unsigned int. Има пуно таквих опскурних типова који се ту и тамо појављују, али све је то само typedef неког примитивног типа, ништа фенси. Сви објекти у Objective-C су allocated on the heap и приступа им се преко показивача. Овде се Objective-C разликује од C++, који дозвољава алокацију објеката on the stack. Приметите горе у примеру звездице кад год метод враћа или узима као аргумент неки објекат, док за примитивне типове нема звездица. Ево још једног примера како би се NSString објекат могао користити унутар неког метода. //Deklaracija promenljive tipa NSString NSString *string; //Koriscenje promenljive string string = @"ZRU"; //Deklaracija nove NSString promenljive i dodela vrednosti u jednoj liniji NSString *newString = [string stringByAppendingString:@" - Zive reci utehe"]; Кога збуњују показивачи или било шта у вези са C-ом, може да прелиста ”The C Programming Language” by Dennis Ritchie. Занимљив и користан тип из примера је id. id је показивач на било који објекат, нешто слично као void * у C. Уз овај тип се не користи звездица, зато што је већ садржана у дефиницији (дефиниција типа је typedef struct objc_object *id;). Пошто је Objective-C изузетно динамичан језик у коме се што је могуће више одлука одлаже до момента извршавања програма, id тип је веома користан (иако захтева већи опрез, наравно, јер одузимате компајлеру могућност да вам помогне). Осим тога, id тип је користан код колекција. NSArray, на пример, може у себе да спакује објекте било које класе, па и објекте потпуно различитих класа. Када затражите објекат на одређеној позицији, вратиће вам се id. Замислите сад да правите неку игрицу са животињама и да је свака животиња описана посебном класом (неке могу да наслеђују једна од друге, али није толико битно за овај пример) и да су животиње у одређеној шуми спаковане у NSArray allForestAnimals. Желите да све животиње које могу да лете, то и ураде. Најлошија варијанта је да испитамо да ли објекат из низа припада класи за коју знамо да зна да лети. for (id animal in allForestAnimals) { if ([animal isKindOfClass:[ZRUBird class]] || [animal isKindOfClass:[ZRUBat class]]) { [animal fly]; } } Замислите на шта би личило кад бисмо имали 50 класа које знају да лете. Боља варијанта је дефинисати протокол ZRUFlying који декларише метод fly и захтевати од класа које желе да лете да га имплементирају. for (id animal in allForestAnimals) { if ([animal conformsToProtocol:@protocol(ZRUFlying)]) { [animal fly]; } } Ово је боље. Али опет, зашто захтевати да објекат имплементира протокол, кад можда ту има сто неких обавезних метода, а нама треба само fly. Можда, рецимо, у шуми постоји чувар Дејан Бићанић који има неку скаламерију за летење, али није животиња, те не имплементира ZRUFlying, који је само за животиње. Уместо тога можемо да захтевамо баш то, да објекат имплементира метод fly. Није битно уопште којој класи припада објекат. Можда је нека животиња, можда човек, можда и нека летелица. Само је важно да зна да лети. for (id object in allForestObjects) { if ([object respondsToSelector:@selector(fly)]) { [object fly]; } } Две напомене. Прво, овде смо користили синтаксу за брзу енумeрицију низа (for (id animal in animals)) која је додата у Objective-C. Може се користити и класична C енумерација, али је спорија. Друго, за треће решење је неопходно декларисати метод fly, најбоље у приватној имплементацији класе коју пишете (касније ћу о имплементацији класе). Ово је неопходно јер је компајлер мора да зна који тип метод враћа и које типове узима као аргументе да би добро одрадио аутоматски менаџмент над меморијом. За први и други случај то није потребно јер одговарајуће класе и протокол већ декларишу метод. Као што рекох, ово није курс језика. Овде сам отишао мало унапред чисто да покажем како неке ствари изгледају, а које можда нисте срели у другим језицима. За почетак је довољно запамтити само то да је id показивач на објекат било ког типа.
  16. Juan Valdez

    iOS Development

    Интерфејс класе се дефинише унутар header фајла са екстензијом .h (наследство C-a). Иако није обавезно, обично се дефинише једна класа по фајлу и фајл носи исти назив као и сама класа. Све декларације иду између @interface и @end. @interface ZRUMember : NSObject значи да дефинишемо класу ZRUMember која наслеђује NSObject. Сам језик вас не тера да наследите било коју класу, али у пракси свака класа наслеђује NSObject или неку од њених подкласа. На тај начин се бесплатно добија да вам објекти добро функционишу са Objective-C Runtime Library (срце језика). Све Apple-oве класе наслеђују NSObject, осим NSProxy, али ова класа имплементира NSObject protocol (protocol је практично иста ствар што и Java interface, касније ћу о њима и њиховом коришћењу), што јој омогућава да се лепо и правилно понаша. Наслеђивање од NSObject није имплицитно, увек се мора назначити. Класа је изведени тип, а изведени типови се по конвеницији именују великим почетним словом. Али шта значи ово NS свуда? И зашто сам ја стављао префикс ZRU у имена класа. Зашто не само Member, Topic и Post? Objective-C нема ништа налик на namespaces или packages (да би остао строги надскуп C-a), те имена класа морају да буду јединствена. Зато име увек треба да почне двословним или трословним префиксом (ваши иницијали, почетна слова имена ваше компаније, скраћеница за име апликације итд). Apple је резервисао бројне префиксе од којих је један NS (историјски разлог). Ако се деси да две класе имају исто име, мислим да није дефинисано која од њих ће бити коришћена. Увек стављајте што јединственији префикс испред назива класе. Кад смо код конвенција, оне овде имају тежу вредност него иначе. Да бисте лако и безбрижно користили одређене Apple APIs, строго пратите конвенције. Обично ништа не кошта, а добија се пуно.
  17. Тај рад. Још имају и објашњење. Кључ који отвара сваку браву је добар кључ. Брава коју отвара сваки кључ је лоша брава.
  18. курва - женска која даје свима проклета курва - женска која даје свима осим мени
  19. Ма то све стоји, само нико не може да порекне да су ови клинци рођени деведесетих нагло одлепишка на неки нови начин раније непознат. До те мере да их ја више уопште не разумем. Али добро, нек иде живот.
  20. Juan Valdez

    iOS Development

    "+" је class method (налик на, али не исто што и Java static method) за чије позивање није неопходна инстанца дате класе, већ се позива на класи директно као ”topicWithName:” из претходног поста (мада је испод хаубе чак и класа објекат у Objective-C, инстанца метакласе), а "-" је обичан instance method. Касније ћу мало више о томе.
  21. Juan Valdez

    iOS Development

    Навикнеш се брзо. Делимично је синтакса преузета из Smalltalk-a и она наглашава да се је позивање метода у ствари веома динамички message passing ( о томе нешто касније). Поред тога, синтаксом се жели постићи да језик буде помало налик на енглески. Дугачка имена променљивих и метода су пожељна. Ево како се позива горе декалрисани метод. ZRUTopic *topic = [ZRUTopic topicWithName:@"iOS Development"]; [feeble postMessage:@"Ух, баш је ружна синтакса!" inTopic:topic];
  22. Juan Valdez

    iOS Development

    Ми капиталисти смо познати као доброчинитељи.
  23. Juan Valdez

    iOS Development

    Овако изгледа дефиниција (декларација, интерфејс) једне једноставне Objective-C класе. Иако је пример једноставан, на њему се многе основне ствари могу показати (синтакса, конвенције, основни типови итд.). Касније ћу објашњавати све ово корак по корак и показати како се пише имплементација. P. S. Игноришите дизајн класа (на пример, да ли ZRUMember треба да зна како да постује или то треба да чини нека ZRUPostMenager класа). Ово је само демонстрација. // ZRUMember.h @class ZRUPost; @class ZRUTopic; @class ZRUMember; typedef NS_ENUM(NSInteger, ZRUUserType) { ZRUUserTypeOrthodox = 0, ZRUUserTypeNonOrthodoxCrhistian = -1, ZRUUserTypeAgnostic = -2, ZRUUserTypeAtheist = -3, ZRUUserTypeNonChristianBeliever = -4, ZRUUserTypeArtemit = -100, ZRUUserTypeModerator = 1, ZRUUserTypeAdministrator = 2, ZRUUserTypeTechnicalAdministrator = 3, ZRUUserTypeDejanBicanic = 1000 }; @interface ZRUMember : NSObject @property (nonatomic, readonly) NSString *userName; @property (nonatomic) NSString *displayName; @property (nonatomic, readonly) NSUInteger numberOfPosts; @property (nonatomic, readonly) NSArray *friends; @property (nonatomic, readonly, getter = isBanned) BOOL banned; - (id)initWithUserType:(ZRUUserType)userType userName:(NSString *)userName displayName:(NSString *)displayName; + (ZRUMember *)adminWithUserName:(NSString *)userName displayName:(NSString *)displayName; - (BOOL)postMessage:(ZRUPost *)message inTopic:(ZRUTopic *)topic; - (void)becomeFriendWithMember:(ZRUMember *)member; - (NSArray *)usersTopics; - (NSArray *)usersPosts; @end
×
×
  • Креирај ново...