<alexgordon>
between lines 53 and 66 that variable is never assigned anything, so it's the empty string
<AP>
Are you saying initialize it as string phoneNumber = 0 in line 53?
<AP>
I'm seriously just missing this.
<alexgordon>
ok, what do you WANT to have in the variable?
<alexgordon>
the phone number you type in right?
<AP>
yes, the cin from the user
<alexgordon>
which is returned from enterPhoneNumber()...
<AP>
Yes
<alexgordon>
so yeah, you need to put the result of enterPhoneNumber() into the variable...
<AP>
Which I thought is then the parameter for isValid
<alexgordon>
if you never put anything in a variable, it will never have anything in it
<AP>
can you give me an example?
<devyn>
Nuck: well it's still a bootloader; it loads the kernel and initrd obviously
<devyn>
and configures the kernel
<devyn>
:p
<Nuck>
devyn: Well yeah, but it's builtin to Linux
<alexgordon>
brb
<alexgordon>
devyn: explain the concept of variables to AP
micahjohnston has quit [Ping timeout: 246 seconds]
micahjohnston has joined #elliottcable
<AP>
please.
<alexgordon>
AP: I don't know how else to explain it. If a variable is a box, you put stuff in the box by doing `a = 42;` and you take stuff out of the box by using its name. You haven't put anything in the phoneNumber box, so it's empty
<AP>
Okay. So let me walk through this one.
<Nuck>
And when you declare the variable, you're finding a box that fits that type of storage data
<AP>
enterPhoneNumber() asks for a value and returns it to main
<AP>
Right?
<alexgordon>
no...
<alexgordon>
it returns it, it's up to you to do something with it
<AP>
And in main I've merely initialized it.
<AP>
as string phoneNumber;
<alexgordon>
yes...
<AP>
So what do I do from there?
<alexgordon>
well you need to put the value that enterPhoneNumber() returns into the phoneNumber variable in main
<AP>
So do I need 'phoneNumber = 0' to recieve the returned value?
<alexgordon>
noo
<AP>
Agh
<AP>
I feel as if Ive done this before but I'm forgetting
<alexgordon>
maybe I should point out that the variable on line 53 has absolutely no connection to the variable on line 113 even though they have the same name
<AP>
Okay.
<AP>
Do they have no connection since theyre in seperate functions?
<alexgordon>
separate scopes
<AP>
right
micahjohnston_ has joined #elliottcable
<AP>
So in my do loop in main I need phoneNumber = enterPhoneNumber();
<micahjohnston_>
whitequark: what were you going to say about kernel theory?
<Nuck>
But unless they're hooked into Libclang, it sucks
<gkatsev>
Nuck: intellij's completion is better.
<Nuck>
I doubt that. libclang is *perfect* completion
<sanitypassing>
I was only considering poking around with Android as I want to get back into programming, and now that I actually have an Android tablet, I thought it would be interesting to attempt to write apps for it.
<Nuck>
Ever since they added that (XCode... 4?), the response has been great
<sanitypassing>
Also, vim > everything
<alexgordon>
except for chocolat
<alexgordon>
duh
<Nuck>
Not to mention IntelliJ can't edit .xib or .nib files
<sanitypassing>
Unless you're one of those "emacs" people.
<Nuck>
-kick alexgordon NOPE.
<purr>
Nuck: No one named `alexgordon NOPE.` in the channel.
<Nuck>
-kick alexgordon
<purr>
Nuck: No one named `alexgordon` in the channel.
<gkatsev>
Nuck: appcode can which is what I just said.
<Nuck>
Wat.
<Nuck>
gkatsev: I doubt that.
<sanitypassing>
alexgordon: chocolat?
<alexgordon>
I'm invincible!
<gkatsev>
Nuck: it can, that's the whole point of appcode.
<alexgordon>
sanitypassing: chocolatapp.com
<Nuck>
gkatsev: The .xib and .nib files are still undocumented
<sanitypassing>
ah, mac only.
<gkatsev>
Nuck: and while the intellisense might be good, that doesn't mean that the editor is actually good.
<sanitypassing>
I don't own a Mac.
<Nuck>
gkatsev: The editor for XCode is impossible to beat for Objective C
<sanitypassing>
Oh, and it's $49?
<Nuck>
Just, there's nothing better because it was *designed* for Obj. C
<sanitypassing>
Yeah, I don't like to pay for my editing software.
<Nuck>
Vim FTW.
<gkatsev>
Nuck: no, the editor in xcode is crap.
<Nuck>
gkatsev: What was the last version of XCode you used?
<alexgordon>
sanitypassing: you're a bit of a jerk then
<gkatsev>
Nuck: you are confusing the editor part of xcode with the IDE features of xcode.
<sanitypassing>
I'll stick with vim, kthnx
<sanitypassing>
alexgordon: how so?
<sanitypassing>
I
<sanitypassing>
I'm not implying I pirate the software
<sanitypassing>
I just use free alternatives.
<Nuck>
There's not much to be good or bad about an editor minus the IDE features
<Nuck>
It's a glorified text box (outside of things like vim or emacs)
<alexgordon>
sanitypassing: I don't have an issue with piracy, I have an issue with people avoiding stuff because they're too cheapskate
<Nuck>
And you can get vim stuff for XCode (and I think there's even a plugin for Vim that integrates with XCode)
<Nuck>
alexgordon: I'm too poor to pay $50 for a glorified text box.
<Nuck>
So yeah, I'll avoid paying that.
<alexgordon>
I mean, most carpenters pay for their hammers
<sanitypassing>
I agree. I can't afford $49 for a text editor.
<alexgordon>
lol you guys can't be serious
<purr>
lol
<Nuck>
I'd pay $10 for a text editor, but $50 is way too rich for my wallet.
<sanitypassing>
I'm a college student with no oncome.
<Nuck>
^
<sanitypassing>
s/oncome/income/
<sanitypassing>
I don't exactly have money to be throwing around.
<gkatsev>
there's a guy who's working on getting xcode stuff working scripts for working in vim
<sanitypassing>
I'm barely going to be able to afford the new laptop I'm buying, and even then, I'm only able to justify it because I use computers for school.
<Nuck>
Exactly my situation, why I bought a Mac (I needed a sturdy laptop that'd last more than two years and had a Unixy OS)
<gkatsev>
alexgordon: have you considered having an OSS license? something like what jetbrains does?
<alexgordon>
sanitypassing: it's OK if you actually don't have money, but saying "I don't pay for my editing software" annoys me
<Nuck>
I don't pay for my editing software because vim master race.
<sanitypassing>
alexgordon: okay, allow me to recast that sentence: I do not like to pay for things that I cannot reasonably justify.
<sanitypassing>
also vim master race.
<gkatsev>
yeah, I dont pay for editing software because I'm not going to be switching from vim any time soon.
<Nuck>
gkatsev: I like the Sublime Text way — subtle nagware
<Nuck>
Best solution
<sanitypassing>
Nuck: I was considering buying a Mac, but they're too expensive.
<Nuck>
Guilts people into buying
<alexgordon>
my way is better
<gkatsev>
also, vim is techincally donationware
<Nuck>
Nope
<Nuck>
Charityware
<Nuck>
Don't donate to vim, donate to Uganda
<sanitypassing>
Charityware is best ware.
<gkatsev>
Nuck: yeah, I was thinking of it that way.
<Nuck>
sanitypassing: They definitely are. I spent $1200 on mine, but I think it was worth it — I can actually work on Obj C stuff
<gkatsev>
Nuck: I miswrote. I meant charityware.
<sanitypassing>
Oh, I definitely think Macs are worth the price.
<Nuck>
I seeee
<sanitypassing>
I'm just not able to acquire the money to purchase one at the moment.
<Nuck>
sanitypassing: I saved up for a few years, pinching pennies and asking for money for christmas and shit
<gkatsev>
like, you donate to a uganda if you want to pay for vim was my though process
<Nuck>
"donate to a uganda"
<gkatsev>
lol
<purr>
lol
<Nuck>
"I'd like to donate to Uganda Number 170 please"
<gkatsev>
long day, brain not work
<sanitypassing>
Nuck: I'll probably do that, if I can avoid spending it all on Magic: The Gathering cards.
<Nuck>
sanitypassing: hahaha
<gkatsev>
sanitypassing: sell your cards use proxies.
<sanitypassing>
which honestly, I don't spend all that much on stuff like that. Just a bit here and there.
<sanitypassing>
gkatsev: lol proxies.
<gkatsev>
sanitypassing: also, what laptop are you looking at?
<Nuck>
BUY A DILDO.
<sanitypassing>
eh, some Asus laptop my mom found for herself. I played around with it, and it's pretty alright.
<sanitypassing>
lemme see if I can find the link again
<Nuck>
Asus is probably the only PC company I have any respect for right now
<gkatsev>
sanitypassing: for casual play, there's absolutely no reason to not use proxies. Unless you are playing with assholes that really care. In which case, stop playing around with anal assholes.
<sanitypassing>
Nuck: it's an Asus laptop. <3
<gkatsev>
Nuck: eh? what about lenovo?
<sanitypassing>
gkatsev: my playground doesn't care.
<Nuck>
They're a bit crazy and bulky, but they've generally got good specs
<sanitypassing>
but I'm hoping to go competitive in the future.
<gkatsev>
lenovo's thinkpad is definitely the best
<Nuck>
gkatsev: Lenovo's got some good ones, sure, but it's really just the thinkpad series
<Nuck>
Their other shit is REALLY bad
<gkatsev>
the ideapads are decent
<Nuck>
Eh, I guess
<gkatsev>
but yeah, the thinkpad are the good ones
<gkatsev>
they are beasts. Frankly, much more durable than asus.
<gkatsev>
not to even mention dell or hp.
<sanitypassing>
not the best buy in the world, but like I said, my mom just bought one, and I've played around with it. It's fairly decent, and has pretty damn good battery life
<Nuck>
Well yeah, but Dell and HP don't matter
<Nuck>
And Asus is sturdy enough and well-specced
<sanitypassing>
which is what I'm looking for out of a laptop right now, mostly. I use my laptop to take notes in class right now, but I have to plug it in, or it will die
<Nuck>
Thinkpads sell on their durability, Asus sells on their specs
<sanitypassing>
and I'd rather like to avoid doing that.
<sanitypassing>
as it looks a little ridiculous, and the cable is annoying.
<Nuck>
I'm not even plugged in right now lol
<purr>
lol
<Nuck>
And I'm just sitting in my room. I forgot to crawl into my bed where the cables are
<gkatsev>
sanitypassing: fyi, with battery and cable, it'll weigh like 6 or 7 lbs. And the battery life will probably be like 4 hours.
<sanitypassing>
my current laptop has ~40 minutes of battery life.
<Nuck>
35% battery, 2 hours left
<Nuck>
and that's with a good 200 tabs on Chrome
<Nuck>
Yay Macs
<gkatsev>
also, why is that resolution so terrible for a 15" monitor?
<sanitypassing>
because no one is trying to put good resolutions on budget laptops
<gkatsev>
my 15" monitor was 1680x900 or whatever the 16:10 resolution around it was
<sanitypassing>
it makes the screen cost more, I suppose.
<Nuck>
gkatsev: If you want a good battery life outside of Mac, you're basically stuck with 6-7 pounds
<sanitypassing>
the Intel HD 4000 could certain handle a 1920x1080 resolution
<gkatsev>
Nuck: eh, not quite
<Nuck>
I wonder how much my laptop weighs actually
<Nuck>
gkatsev: I've been consistently unimpressed by the weight-to-life ratio of most laptops
<sanitypassing>
I'm thinking I'm going to end up buying an SSD for this laptop though
<sanitypassing>
improve the loading and startup times a little.
<Nuck>
My Mac is still going strong a year later, with about 6-8 instead of 7-9 as it was originally
<Nuck>
The biggest problem Apple fucks up on their stuff is the cables
<Nuck>
NEVER TRUST APPLE CABLES
<Nuck>
Seriously
<Nuck>
NEVER.
<sanitypassing>
gkatsev: benefits of that model?
<Nuck>
I've seen better-constructed cables from random chinese companies
<sanitypassing>
yeah, the cable for my old iPod is all torn to shreds by now.
<gkatsev>
sanitypassing: pro: lighter, smaller, (powernotebooks also doesn't make you pay for your OS, so you can get it shipped to you for without an os). con: smaller.
<sanitypassing>
Yeah, I'd prefer to have the extra screen space.
<gkatsev>
sanitypassing: same resolution though
<sanitypassing>
though not having to pay for the OS sounds nice.
<sanitypassing>
I'm not much a fan of bloatware.
<gkatsev>
so, you won't really be getting much screen space
<gkatsev>
sanitypassing: also, powernotebooks usually can preinstall a linux of your choice on there as well
<devyn>
Nuck: hot damn, that is beautifully efficient
<Nuck>
Isn't it?
<Nuck>
I actually doubled the width and height and lowered the spacing
<Nuck>
And increased accuracy
<Nuck>
And it still ran at 30fps at least
malia has joined #elliottcable
<whitequark>
micahjohnston: well
<whitequark>
I've read a thesis on VMKit, LLVM's MRE infrastructure
<whitequark>
(managed runtime environment)
<whitequark>
the prior art section in the thesis has reviewed existing MREs in great detail, and noted a peculiar property
<whitequark>
industrial MREs most often provide: abstraction from the lower level, isolation of unrelated threads of execution and restriction and accounting of access to resources
<whitequark>
in other words, MREs are surprisingly similar to OSes. (Indeed, there are OSes which implement/are implemented on an MRE. KaffeOS, MSR Singularity, that bare-xen Erlang thingy)
<whitequark>
now, I need to talk about Foundry for a bit.
<whitequark>
right now, there is a discrete correspondence of languages to MREs, or lack thereof
<whitequark>
one extreme is C++: everything is compiled statically to machine code, a runtime is nonexistent, you can even live without a memory allocator
<whitequark>
the other is Java, and Hotspot-like JVMs: everything is compiled, resolved and linked dynamically (and lazily); the runtime is very significant in size and features (bytecode verifier, JIT, GC, instrumentation...) and is required to be present in its entirety
<whitequark>
.NET is somewhere in the between, leaning to the Java side: for example, .NET does support AOT compilation FOR EXTRA SPEED (ahem) (startup time), and e.g. stdlib is indeed compiled via AOT in .net
<whitequark>
I think that the fault in all these cases is that the semantics of the language dictates what a runtime must, or must not, perform
<whitequark>
the point is, it's all very similar. a compiler translates input, whether it is bytecode or source, to some kind of IR. a code generator then emits machine code for that IR. none of this is related to whether it is JIT or AOT
<whitequark>
(and indeed, VMKit's JVM, J3, is able to emit code in either JIT or AOT mode, demonstrating the viability of this approach)
<whitequark>
now, there is also type system, and one of the more important consequences of that, the optimizations possible
<whitequark>
one does not need to choose between static and dynamic typing; it is, in fact, possible to freely mix statically and dynamically typed code with insignificant changes to the source code and programming paradigms
<whitequark>
(Tobin-Hochstadt and Felleisen, '08)
<whitequark>
sooo... I think, what the hell? let's make a compiler a library. there's nothing special in a compiler, it's a damned chunk of code.
<whitequark>
let's make the runtime a library. GC, a library, memory manager, a library, execution engine, a library.
<whitequark>
not only this modularization enhances the architecture of your VM (Wimmer, Haupt, Van De Vanter et al, '13), but it also enables one to swap the components easily
<whitequark>
and, of course, if you absolutely, totally do not want GC, just leave it out. the semantics of the language does not require GC.
malia has quit [Quit: malia]
<whitequark>
such a language and environment could cover all the contiguous spectrum from C++ to JVMs.
<whitequark>
now, back to OS architecture.
<whitequark>
JVM or .NET is like a monolithic kernel: threads share address space when they want to communicate, there's not much compartmentalization
<whitequark>
Go or Erlang are like microkernels: threads communicate by message passing
<whitequark>
then, my idea is similar to an exokernel!
<whitequark>
everything is a library.
<Nuck>
This textwall looks too heavy
<Nuck>
So here's something to lighten it up
<Nuck>
PENISES PENISES EVERYWHERE
* Nuck
lets out a sigh of relief
<Nuck>
Also, that's actually a very interesting analysis and subsequent idea, whitequark
<whitequark>
heh
<whitequark>
marry 2
<whitequark>
*@snipeyhead
malia has joined #elliottcable
malia has quit [Client Quit]
<devyn>
so I made a dashboard widget to track my mining pool http://cl.ly/NuG0
<devyn>
have I officially gone too far?
<devyn>
:p
<Nuck>
Yes
<Nuck>
After reading the Bitcoin wiki I've actually come to hate them more
<Nuck>
It's a really ingenious P2P system, I'll give it that, but the ideas behind it are just laughable
<Nuck>
Especially since a number of their citations are inaccurate as fuck
<Nuck>
Like, this one is an interview with an economist, and he makes the prediction that "oh, we'll be fine for another 10-20 years thanks to Austrian school"
<Nuck>
Not to mention the fact that it lacks good automatic resolution of chain splits
<Nuck>
Or even semiautomatic through weighting, etc.
<Determinist>
somebody kill that stupid fucking platform already
<Determinist>
getting sick and fucking tired of playing in all of those corporate sandboxes and their stupid fucking "platforms".
<Determinist>
wtf happened to software development? everybody's building gizmos that hook into "platforms" like FB and twitter and shit.
notalexgordon_ has quit [Ping timeout: 258 seconds]
<Determinist>
</rant>
dnyy has quit [Ping timeout: 258 seconds]
sephr has quit [Ping timeout: 256 seconds]
<micahjohnston>
whitequark: ooh yeah I was thinking exokernel halfway through your explanation
<micahjohnston>
whitequark: your spectrum thing makes me think of paws to a degree
micahjohnston_ has quit [Quit: micahjohnston_]
<micahjohnston>
of course paws is 100% dynamic language no matter what
<micahjohnston>
but elliott was planning some ecosystem thing, where most things are in lib-space, and the interpreter is minimal
<micahjohnston>
so kind of exokerneley
<whitequark>
micahjohnston: yeah it looks related
<whitequark>
essentially being able to swap out the gc isn't really a result of a design decision to make stuff modular or whatever
<whitequark>
it is the result of a desire to leave out GC details from a language specification
<whitequark>
that is, it does seem sensible to me to only have value and reference types in the core
<micahjohnston>
hm yeah
<micahjohnston>
not sure how I feel, but it's a solid idea
<whitequark>
Java doesn't have user-defined value types and it sucks, everything else has value & reference types and it really doesn't seem that there is something else that people really want and need in the core.
<whitequark>
on the other hand, EVERYTHING has its own GC
<whitequark>
or several
<micahjohnston>
C++ tries to do that with the std pointer types :p
<whitequark>
or no GC, or refcounting GC, etc
<whitequark>
or another Java wtfeature
<whitequark>
locks inside every object
<whitequark>
adds lots of overhead if you're allocating a lot of small objects, which happens like ALL OF THE TIME, because goddamned java doesn't have value types
<whitequark>
I really, really love C++'s "you only pay for what you use"
<whitequark>
everything should be designed that way. (well not really, but most of the things probably should.)
<micahjohnston>
yeah, I just wish it were much, much cleaner
<whitequark>
they're adding _more_ stuff in C++14
<micahjohnston>
you can probably accomplish that without ending up with such a mess
<whitequark>
micahjohnston: "such a mess" is an expected result of an explicit and unchanged design decision
<whitequark>
"if there are multiple ways to do X, C++ should accomodate *all*."
<micahjohnston>
well, even then I think it could avoid being such a mess
<micahjohnston>
C++ has a foundation of rubble
<whitequark>
well, kinda
<whitequark>
but then throw in design by committee
<micahjohnston>
if you have a better foundation you could do that better
<whitequark>
:3
<micahjohnston>
yeah
<micahjohnston>
:p
<whitequark>
also C++ OOP is a joke
<whitequark>
to quote Alan Kay, who coined the term "OOP", "when I said OOP I did not have C++ in mind"
<micahjohnston>
yeah haha
<micahjohnston>
I mean you can sorta accomplish sorta what he had in mind
<micahjohnston>
I like to think I approximated it in my recent game project in C++ :P
<micahjohnston>
but idk
owenb has joined #elliottcable
<whitequark>
hrm maybe
<whitequark>
we can only ask elliottc1ble if we want to know if that's what he had in mind or not.
<micahjohnston>
hm?
<micahjohnston>
elliottc1ble designed OOP?
<whitequark>
ahhh, I thought you were talking about Paws
<whitequark>
hrm
<whitequark>
do you have message forwarding in your game project?
<whitequark>
because that is *the* key property of Kay's OOP which is missing in C++
<whitequark>
the second one is late binding but C++ kinda has it with virtual methods
yorick has joined #elliottcable
<Nuck>
I love Kay's OOP
<Nuck>
Much better than the shit that Java or C++ spat up
<whitequark>
word.
Determinist has quit [Read error: No route to host]
Determinist has joined #elliottcable
<trolling>
smalltalk
<trolling>
small
<trolling>
talk
<whitequark>
also self *runs
Guest41671 has quit [Ping timeout: 240 seconds]
gozala_ has joined #elliottcable
Guest73391_ has joined #elliottcable
notalexgordon_ has joined #elliottcable
dnyy has joined #elliottcable
Determinist has quit [Read error: Connection reset by peer]
gozala_ has quit []
gozala_ has joined #elliottcable
gozala_ is now known as gozala
gozala has quit [Client Quit]
<micahjohnston>
whitequark: yeah I don't have message forwarding, though I use virtual things a lot
<micahjohnston>
whitequark: I guess I just meant I tried to capture the spirit of it, idk if I really did
<whitequark>
guess no, without forwarding it's not really Kay's OOP.
<whitequark>
he really stresses that moment in his papers
<micahjohnston>
well yeah because he framed oop in terms of message passing
<micahjohnston>
I tried to do the type of duck-typing polymorphism that you can do in smalltalk by just making a bunch of interfaces everywhere and treating them as boilerplate
<whitequark>
in his view, oop = message passing
<micahjohnston>
yeah
<micahjohnston>
earlier versions of smalltalk, however, had async message passing, I think
<micahjohnston>
so that term is rather overloaded
<whitequark>
hmmm not sure about that
<micahjohnston>
anyway it seems that alan kay's main point of oo is not necessarily message forwarding and is more encapsulation where the only way to interact with data is through message passing, and late binding
<micahjohnston>
based on different pages with quotes from him :p
<micahjohnston>
but yeah c++ is really far from those things
<whitequark>
message forwarding is crucial because it allows you to do proxying
<whitequark>
including network-transparent one
<Nuck>
!best message passing
<whitequark>
it was A Thing back in the '90s (Steve Jobs demonstrated such technique on one of his NEXTstep demos, and it was uber cool. we don't really have anything like that in 2013)
<Nuck>
-best message passing
<purr>
MESSAGEPASSING IS BESTPASSING
<micahjohnston>
-best mes sagepassing
<purr>
MESSAGEPASSING IS BESTSAGEPASSING
<micahjohnston>
-best mess agepassing
<purr>
MESSAGEPASSING IS BESTAGEPASSING
<FireFly>
-best DPR Korea
<purr>
DPRKOREA IS BESTKOREA
<whitequark>
-best wat
<purr>
WAT IS BESTWAT
<vil>
-best best best
<purr>
BESTBEST IS BESTBEST
<vil>
-bork bork bork
<vil>
I'd like to submit a bug report
<vil>
that should totally do something
malia_ has joined #elliottcable
malia_ has quit [Quit: malia_]
sephr has joined #elliottcable
<Nuck>
Thinking of adding a "minimal" branch to my dotfiles which will contain a smaller subset that I can use on servers
<Nuck>
So lacking most of the plugins on vim and the autocomplete fanciness