A Simply Neat Example of Function Pointers in C - <AUTHOR> http://stoneship.org/journal/2007/a-c-function-pointer-example/ <comment><USER2> Example of function pointers in the linux kernel: <http://lxr.linux.no/linux+v2.6.32/include/net/sock.h#L297>

The cool thing about this is that, if you want to make your kernel socket 'event-driven', you can actually use this method to overwrite them and 'hijack' the callback. Then, when you're doing doing what you wanted to do, you can punt to the original callback (which you, hopefully, saved)

Example of this taking place: [http://lxr.linux.no/linux+v2.6.32/drivers/scsi/iscsi_tcp.c#L...](http://lxr.linux.no/linux+v2.6.32/drivers/scsi/iscsi_tcp.c#L195)

</comment><comment><USER3> Function pointers are a good means of allowing "flexible" finite state patterns, by making each function a state, directing all program flow to a "next" function pointer, and using conditionals within each state to begin transitions:

      /* an "active" state where a timer decrements unless the user hits a key. */
      if (timer<1) {prep_for_idle(); next = idle;}
      else if (user_hit_key) {timer+=100; next = active;}
      else {timer--; next = active;}

I use this pattern in haXe and Python, not C, but it applies equally well.

<comment><USER4> What do you compile your haXe to?

<comment><USER3> Flash 10, mostly. Sometimes Neko.

<comment><USER4> What is neko used for mostly?

</comment></comment></comment></comment><comment><USER5> That's a pretty design, but a rather typical function pointer demonstration. It's at least more unusual if you change main to this:

        int main(void) {
            char *sayings[] = {
                "I know a secret!", "WHAT", "WHAT again", NULL
            };
            int i = 0;

            for (i = 0; sayings[i]; i++) {
                (i ? say_loud : say_soft)(sayings[i]);
            }
        	return 0;
        }

</comment><comment><USER6> I modified the program so that the main function looks like:

      say = NULL;
      say("OH NOES");

When compiled with all warnings on, there are none. When run, it immediately segfaults. (The same would happen with any assignment from void*, like 'say = malloc(42)'. Nice.)

Edit: I knew this would get downmodded :) Why does any post implying that type safety is good get downmodded?

<comment><USER7> Maybe because people know by now that C doesn't hold your hand :). The compiler did exactly what you told it to do. And, in fact, since C is frequently used for writing operating system code, what you wrote may actually be a valid operation if the OS maps critical functions into page 0 (which I believe some older systems did).

<comment><USER6> _what you wrote may actually be a valid operation if the OS maps critical functions into page 0_

Then you'd better not call it NULL. "0 and NULL are the same" was how I first got root on my phone ;)

<comment><USER8> In C++ 0 and NULL are the same by definition. Just look at Stroustrup's C++ Style and Technique FAQ.

<comment><USER9> Assigning the value 0 or NULL to a pointer does not necessarily set it to address 0.

</comment></comment></comment></comment></comment><comment><USER10> A common use of function pointers is in a dispatch table. For example, in a text editor, every ASCII character value, including control-characters and printable characters, is used as an index into an array of function pointers, each one of whom represents a function. For example the ^N character retrieves a function pointer for the moveToNextLine() function. The printable characters all are insertSelf() function.

Use of typedefs make the code more readable.

Instead of: int (* var_pointer_to_function)(int)

one must first do: typedef int (* funcptr)(int)

which is initially equally messy, but then allows one to declare function pointer variables in a simple succinct manner: funcptr foo

</comment><comment><USER11> More importantly, function pointers can be used (especially in type definitions) as a way for polymorphism and object oriented code in C.

If you have a struct, and it has type definition pointers in it, you can create a set of initialization functions that set the function pointers to the correct "class functions" of that type.

I use function pointers in C everyday and it makes coding more robust and extremely easy to get the performance out of OOP code in a procedural environment when C++ isn't an option.

<comment><USER12> I think it's safe to say that most uses of function pointers in C fall into one of two categories: 1. Objects; 2. Continuations; 3. Callbacks from generic algorithms.

A classic example of the first category is in the VFS layer of BSD UNIX: Filesystems provide a standard set of functions for open/read/write/ioctl/stat/close/etc, which all sit in a structure, and the upper layers of the kernel generally invoke those functions without knowing which underlying filesystem is handling them.

A classic example of the second category is event-driven loops: You register "when there's data on socket N, please call this function with this cookie", and the event loop doesn't need to know what the function does or what sort of data you have stored in the cookie. In this way, you can have several different things going on, passing control back and forth by registering "what happens next" and returning.

A classic example of the third category is qsort: There is no requirement for qsort to know what sort of data it is quicksorting, since it invokes the provided callback function whenever it needs to compare two values.

<comment><USER13> isn't your event-driven loop an example of a callback function? i'm no expert on continuations, but i thought they involved somehow packaging up the 'rest of the computation' in some structure and then running it. your example seems to be an ordinary callback.

<comment><USER14> He did say there were only two categories. They're just numbered 1 through 3 for some reason ;-)

</comment></comment></comment></comment><comment><USER15> Another favorite is simple embedded languages where every statement or function has an entry in a table with a pointer to the function for execution.

That makes for a very simple parser.

</comment><comment><USER16> Real world usage: an event-based architecture like the one employed in Keyspace [1]. We have an abstract class Callable, which has a member virtual void Execute() and a global convenience function Call(Callable) which just calls ->Execute(). So a Callable is something that can be called, ie. a function pointer. We then have two concrete implementations, one for global (C) function pointers and one for class member (C++) function pointers. The whole thing is in Callable.h and is <100 lines of code, hence very lightweight.

Then, in the framework layer, we register callbacks using Callables in the IOProcessor. So if you create a TCP server with a TCP listening socket, you have a TCPRead object and you set its onComplete member, which is a Callable, to &TCPServer::OnConnect and analogously for onClose. Then, once a connection is establised you post TCPRead or TCPWrite objects for the new socket to IOProcessor to receive read notifications or perform writes, again with members onComplete and onClose.

Then, in the application layer you have actual database code which uses the network abstractions in the framework layer (which abstract away I/O), but they also use Callables to have themselves get called back when, for example an entire message has been read (eg. command is then parsed and executed) from the TCP stream or a client connection is terminated (eg. commands are canceled).

The whole program is then one big infinite loop, each iteration IOProcessor::Poll() being waken up by the O/S because something has happened, and Callables being called in turn. (On BSD, we kqueue, on Linux epoll and on Win32 Completion Ports to receive readyness notifications.) We also have support timers, which are just a linked list of Callables, and when IOProcessor::Poll() blocks we pass in the amount of time until the next timer must be executed as the timeout.

Or you can use libev/libevent, but they're not lightweight and will force you to do things their way.

[1] AGPL source is at <http://scalien.com>

</comment><comment><USER17> The same site has an interesting example of reference counting:

[http://stoneship.org/journal/2007/c-reference-counting- and-y...](http://stoneship.org/journal/2007/c-reference-counting-and-you/)

</comment><comment><USER18> welcome to 1988

</comment><comment><USER19> I'd like to congratulate you on your C function pointer hello world.

Not how he avoided using & or deref in the first snippet.</comment>


Ask HN: Anyone up for a HN meetup in Portugal? - <AUTHOR>

<comment><USER2> Sure. Drop me an email to set the details.</comment>


12 Coders Get Naked for a Good Cause - <AUTHOR> http://coderswithoutclothes.org <comment><USER2> Who says gender inequality doesn't have consequences?

</comment><comment><USER3> Look how the light catches the delicate pubic hairs. The skin dry from too much air-con and not enough moisturiser.

"I want a naked coder calendar" said nobody ever.

A better idea would have been to photograph coders at their messy workspaces, or portraits of coders taken immediately after resolving a tricky bug. Or just something that won't scare little kids.

<comment><USER4> There's a series of videos of 30 Linux kernel developers in their workspaces if you're interested:

[https://www.youtube.com/watch?v=04VpdhLccqk](https://www.youtube.com/watch?v=04VpdhLccqk)

<comment><USER3> Yep interested, thanks.

</comment></comment></comment><comment><USER5> Are only male coders included or female as well?

</comment><comment><USER6> OT: I'm wondering what that big screen in the back of the header video on their company website is for and how it works. [http://reaktor.com/](http://reaktor.com/)

<comment><USER7> It's a huge multi-user touchscreen. Nasdaq's got one as well: [http://reaktor.com/work/nasdaq/](http://reaktor.com/work/nasdaq/) We (I work at Reaktor) use it to keep tabs on our projects and see who's doing what: [http://multitouch.reaktor.com/visual-asset-management- tool](http://multitouch.reaktor.com/visual-asset-management-tool)

The actual screen is built by Multitaction ([http://www.multitaction.com/](http://www.multitaction.com/)) and Reaktor creates custom software for it.

<comment><USER6> nice, thx larry!

</comment></comment></comment><comment><USER8> Reminds me of that IT Crowd episode.

"Cavort!"

</comment><comment><USER9> When the rowing team at Oxford does this they post the pictures on the website.

<comment><USER10> Let's admit it, we just want to see the pictures and compare them to ourselves.

</comment></comment><comment><USER11> OK, but really, who is going to buy this? Reddit did something similar and it was a disaster.

</comment><comment><USER12> I saw this and was a bit sad "100% of the profits (post-shipping, post-tax)"

Does Finland tax charitable donations? Seems like governments would want to encourage things like giving money to help kids with cancer.

<comment><USER13> The Economist argues that it makes sense to tax charitable donations: [http://www.economist.com/node/21556570](http://www.economist.com/node/21556570)

<comment><USER12> "The idea that the state should subsidise giving to good causes..."

Their argument starts with the idea that letting people keep their own money is a subsidy, and that giving to charity is a form of personal consumption.

Those are non-starting opinions for lots of people, including me. The government works for the people and taxes are the only equitable way for it to generate income. And giving away to charity is the exact opposite of personal consumption, since a person is helping society, not themselves, in ways they find most meaningful.

Ugh, just turns my stomach "gives the wealthiest taxpayers a disproportionate role in allocating public resources." A person's income is not a public resource, it's their income, which we vote to tax a portion of.

<comment><USER14> I think it's reasonable to say that it's a subsidy to tax everything except one thing, since it makes investment in that one thing relatively more attractive than it otherwise would be.

<comment><USER12> But charities are, by their very definition, not an investment. The only attraction is how you think it will help society.

This is a philosophical question at its heart, and really balances on is government best at spending your labor, or are you?

</comment></comment></comment></comment></comment><comment><USER15> Rebol with a cause.

</comment><comment><USER16> mindlessly clicked, so my fault, but NSFW tag would be nice

<comment><USER17> It would have been nice —having noticed your mindlessness after clicking— that you not mindlessly comment too.

If you work at the sort of place where a "bit of knee" isn't tolerated, I think you need to stop working in the Victorian times.

If you're just worried about the words, "without clothes" is in the title here. That should be enough for anybody infer that there might at least be discussion about nudity.

</comment></comment><comment><USER18> > for a good cause

Right, because there's such a big market for calendars with naked coders. You totally don't have to guilt-trip people into buying them with some leukemia sap story.

</comment><comment><USER19> Stole it from the Dice ads all over town

</comment><comment><USER20> But will it blend?

</comment><comment><USER21> Isn't there an old Dilbert about this?

</comment><comment><USER22> But it's a hardware problem.</comment>


Show HN: Stay healthy & fit at your desk job - <AUTHOR>

A project I have been slowly working on for about a year is finally getting out of the gate. The natural evolution of my own practices of finding ways to stay healthy while being a programmer and the evils of sitting all day. Would love any feedback/criticism from the HN community, and hope you find it useful and appealing... as each and every one of you can benefit mentally & physically from using it!<p>FitBolt - www.fitbolt.com <comment><USER2> I love this. Reminders sound so trivial but in actuality are powerful.

I am releasing a health app and have over 5000 ppl in my waiting list. When it's out I wAnt to do a cross promotion with you as I love what you have here.

<comment><AUTHOR> Thanks for the feedback, I would love to hear more about your app!

</comment></comment><comment><USER3> good idea...we all face it

<comment><AUTHOR> agreed - I'm hoping to solve a problem that most people don't even realize they have, but sure is real!</comment></comment>


Android Ice Cream Sandwich Features - <AUTHOR> http://www.android.com/about/ice-cream-sandwich/

<comment><AUTHOR> One interesting feature that I didn't know about in Ice Cream Sandwich was Face Unlock. Make sure you scroll to the bottom to read about it.

<comment><USER2> It would be a more impressive feature if it didn't fail to work during the keynote, not to mention that it can be thwarted by a picture of the person.

The general refinement of the Android UX is by far the most impressive feature of 4.0. Face Unlock is just a lame, poorly thought out gimmick IMO.

<comment><USER3> Almost all reviews have been rather glowing about the feature, noting it's fast. And Google themselves have said that it could be faster, but that people didn't believe it was doing anything without adding a delay.

<comment><USER2> If speed to unlock is what's so important, what is the point in locking it at all?

<comment><USER3> Is this is a serious question? The "lock" is to prevent pocket presses... yes, my warm legs set off the screen rather often on accident. Normally you have to slide to unlock, this is actually faster, surprisingly.

Most people I know don't use a pattern, pin or password. If you're doing it for a security reason, then face unlock is just silly.

(For what it's worth, it would be much easier to grab a complete stranger's phone and get the pattern unlocked than the face unlock. The finger marks for the screen unlocks are incredibly easy to see)

<comment><USER2> Yes, it was. Silly me, I figured that if Google was piling features on to Android devices, that they would be important. If it's just an alternative to slide to unlock, then it really is a pointless stupid gimmick. I guess I gave them too much credit.

You know what the antithesis of good mobile development is? Piling on gimmicky features just because. IMO, Face Unlock is indicative of everything that is still wrong with the direction of Android, which is such a shame because overall Android 4.0 is indicative that they are trying to shake that image by focusing more on the core experience.

</comment></comment></comment></comment></comment></comment><comment><USER4> What's wrong with the Roboto font? I am seeing this using Chrome 15 and Windows XP: <http://i.imgur.com/BYq1J.png>

In Firefox it improves, but it's still weird: <http://i.imgur.com/c606f.png>

<comment><USER5> I am seeing the samething on Chrome 15 and Windows XP. I wonder if there is some issue with the font rendering engine on XP. Additionally, if you zoom in 3 or 4 times on the page the font suddenly clears up.

</comment></comment><comment><USER6> They've also redesigned the whole Android.com site.

</comment><comment><USER7> I really only care about one feature: Does it still lock up and stall for multiple seconds at a time randomly?

</comment><comment><USER8> Looks great but loads terribly slow.</comment>


Excuse Me, May I Have Your Seat? (The Other Milgram Experiment) - <AUTHOR> http://www.nytimes.com/2004/09/14/nyregion/14subway.html?_r=1&ex=1096182581&ei=1&en=94045b6c2b736591

<comment><USER2> I find Milgram very interesting, but I've never heard of this particular experiment. What is really thought provoking to me is how social mores dictate behavior such as this.

In my home country of Croatia, for instance, it is completely normal to ask someone for their seat. If the person doing the asking is older, it's almost a given that the person being asked will give up the seat without much thinking or comments.

I wonder now: can a few thousand miles make such difference in personal interaction?

</comment><comment><USER3> I get a login screen.

Can access it through Google though.</comment>


Airbnb settles lawsuit with New York over short-term rental law - <AUTHOR> https://www.engadget.com/2016/11/24/airbnb-settles-lawsuit-with-new-york/ <comment><USER2> This is an old article (from 11/24/16), which talks about Airbnb's suit against NY State, and says that their other suit against NY City is still pending. However, the latest news is that Airbnb has now dropped its suit against NY City. See, for example, this article in today's NY Times:

 _Airbnb Ends Fight With New York City Over Fines_

[https://news.ycombinator.com/item?id=13094963](https://news.ycombinator.com/item?id=13094963)

This means that Airbnb will not challenge the law that allows people who post illegal listings on Airbnb (rentals less than 30 days) to be fined $7,500.</comment>


When 'Gentrification' Isn't About Housing - <AUTHOR> https://mobile.nytimes.com/2018/01/23/magazine/when-gentrification-isnt-about-housing.html <comment><USER2> This whole article seems baffling to me. It has a tone of urgency, but I don't really think a problem exists.

> Once a specialty of uptown bodegas, the sandwich had caught the attention of > novelty-seeking foodies: Whole Foods was selling them for twice what they > cost in the Bronx, where they went for $4 and still do.

Why would an item cost the same at a Whole Foods versus the Bronx?

> The poor are still gentrification's victims, but in this new meaning, the > harm is not rent increases and displacement — it's something psychic, a > theft of pride.

I don't believe the people they claim to be victims of "cultural gentrification" would consider themselves victims in this sense. Do people in lower socio-economic class really concern themselves if something they had enjoyed is being enjoyed by a larger audience?

<comment><USER3> Yep, completely agree.

"Cultural gentrification" is the usual hand-wringing nonsense; it's virtually certain that the only people complaining about this are precisely those that are unaffected by these changes.

The economic impact is a bigger problem. The idea that property sits empty, while prices and rents continue to increase, definitely indicates that something is wrong.

It's not unreasonable to think that the free market has failed in this case, and that perhaps preventing speculation through regulation might be an effective approach.

<comment><USER4> > The idea that property sits empty, while prices and rents continue to > increase, definitely indicates that something is wrong.

Does it? People still have to pay taxes on that property, there will still be a mortgage that has to be paid, that means there will be fewer people living there, which in some ways makes it better for everyone else who lives there. Of course, it is in some ways an "artificial" restriction of supply.

However I question how many of these places actually sit "empty". I can't imagine owning property, not living there, and not renting it out. Of course rentals offer their own hurdles, but there are plenty of property management companies out there that would do it for a fee. Seems like a totally missed opportunity cost to me that would be economically foolish. It wouldn't be the first time a wealthy person has done something economically foolish, but it could be the last for that person.

>It's not unreasonable to think that the free market has failed in this case, and that perhaps preventing speculation through regulation might be an effective approach.

Ultimately with speculation, people are taking a risk by buying the property, while it may be a hip and cool place today, will it be that way in 10 years? Will there be more housing built that will undercut any kind of appreciation you might be accumulating. Real estate has historically been a pretty good investment, however it isn't like it has never seen a downturn.

<comment><USER5> It looks like you've been using HN primarily for ideological battle. That's an abuse of this site, because it can't coexist with the intended purpose: intellectual curiosity. We ban accounts that do this, so would you please (re-)read [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html) and use the site as intended from now on?

<comment><USER4> Is there some kind of objective criteria for this? I've made a legitimate effort to comment in a variety of threads. I suppose you don't think that is enough.

<comment><USER5> Yes, the criterion is the one the site guidelines state: using Hacker News "primarily for political or ideological battle". For more on what that means and why it's worded that way, see [https://news.ycombinator.com/item?id=16185062](https://news.ycombinator.com/item?id=16185062).

In practice there's a huge gap between users who come to HN to gratify intellectual curiosity, who in the course of being interested in a bunch of things occasionally comment on a political topic, versus accounts that only are interested in divisive flammable issues and use HN to prosecute their views on them.

</comment></comment></comment></comment></comment></comment><comment><USER6> How exceptionally Baudrillardian, or maybe the word is meta.

A class, in their search for authenticity, have "gentrified" the authentic experiences -- and hardships -- of an originating lower class into trendy symbols.

The social metamorphosis is complete when the symbol replaces the experience entirely, to the annoyance of the originating class; in part because the experience was a symbol of their own identity.

The effect is then highlighted in language ostensibly for the gentrifying class, on a virtual property catering to the same, and posted for discussion on another such virtual property.

Finally, like the author who pretentiously signals a more authentic worldview through the symbolic understanding and condemnation of the effect, so this poster signals the same through bemused expression of its symbolic and recursive nature.

</comment><comment><USER7> That's so New York. The upscale food fad thing is amusing, but not a serious problem.

What's more of a problem is the downscale food fad of putting cheese in everything. That didn't happen by accident. It's a plot by Dairy Management, Incorporated.[1] US cheese consumption per capita has doubled since 1980. This is a major contributor to the obesity epidemic.

[1] [https://www.bloomberg.com/news/features/2017-07-19/the- mad-c...](https://www.bloomberg.com/news/features/2017-07-19/the-mad-cheese- scientists-fighting-to-save-the-dairy-industry)

</comment><comment><USER8> Poutine is an example gentrified food. I guess sometimes you can't stop the spread of a good idea.

</comment><comment><USER9> Awesome, now I have the words to describe my victimhood.

My particular plight is the people who think it's trendy to visit my formally really bad neighborhood to eat and take up all parking. Damn food tourists.

It's a tragedy...

</comment><comment><USER10> It the spoiled kid "look at me"-ness that has made gentrification more annoying in the last decade.

I have William Shatner singing " Common People" in my head now.

</comment><comment><USER11> Someone please gentrify giardiniera

Spicy advocates demand it</comment>


Project Gutenberg bans anonymisers, proxies, VPNs and Tor - <AUTHOR> http://pastebin.com/8PYBPNYu

<comment><USER2> Why don't they explain _why_ they have these restrictions? Their books are all in the public domain so what difference could it possibly make who downloads them?

The 24 hour download limit could possibly be defensible if they explained it -- for example they might encourage you to cache a copy of a book you'd like rather than refetch it every time. But they don't bother to explain.

I agree with coding4all: avoid this crap by simply going to the Internet Archive.

<comment><USER3> I suspect they just have a small amount of money and a large amount of load. You have to do something to try to keep load manageable while still serving the most users.

</comment></comment><comment><USER4> It's interesting to see one of my favorite sites doing this. There's always [https://openlibrary.org/](https://openlibrary.org/) which is ran by [https://archive.org/](https://archive.org/) . I imagine Open Library has many of the same books.

</comment><comment><USER5> Interestingly enough they have a link to Tor hidden service in their ToS: [http://www.gutenberg.org/wiki/Gutenberg:Terms_of_Use](http://www.gutenberg.org/wiki/Gutenberg:Terms_of_Use)

> If you think that TOR gives you the anonymity you want, go here for a hidden > mirror of our text files: > [http://libraryhvopfiqnp.onion/gutenberg/](http://libraryhvopfiqnp.onion/gutenberg/)

<comment><USER6> quote from the onion link :-DD At the moment this server only mirrors PoC||GTFO.

</comment></comment><comment><USER7> Project Gitenberg: [http://gitenberg.github.io](http://gitenberg.github.io)

<comment><USER8> Would be nice to see a decent webinterface hosted nowhere by zeronet [1] serving torrent magnet links of individual books or small collections.

That way a free library of public domain books could be hosted without server costs by the people for the people.

<comment><USER7> Thanks for the pointer to zeronet, [https://github.com/HelloZeroNet/ZeroNet](https://github.com/HelloZeroNet/ZeroNet)

</comment></comment></comment><comment><USER6> Eric Schmidt said in an interview once that once you have access to entire worlds knowledge governments would like to know who you are

<comment><USER9> Interesting quote. Where can I find this interview (website/youtube/etc) ?

<comment><USER6> unfortunately I could not find it again it was newspaper like Atlantic or something like that maybe it was censorship.</comment></comment></comment>


Chibi-Scheme - <AUTHOR> http://code.google.com/p/chibi-scheme/ Chibi-Scheme is a very small library intended for use as an extension and scripting language in C programs. In addition to support for lightweight VM-based threads, each VM itself runs in an isolated heap allowing multiple VMs to run simultaneously in different OS threads. The default language is R7RS Scheme, including first-class continuations and low-and-high-level hygienic macros. <comment><AUTHOR> Don't know am I too optimistic, but I think that R7RS large will be great success. I hope rest of the community share same enthusiasm. (young lisper)

<comment><USER3> Hopeful as well. - from another new Schemer

<comment><USER4> Yes. I've enjoyed playing around with gambit, but the module system is a huge headache, and the documentation is quite sparse. R7RS, I hope, will at least give a better baseline for a newcomer like myself. (For the curious, C integration and speed are necessary for the project. Gambit is great for this.)

<comment><USER3> I am looking for a Scheme to implement inside an iOS app. I was looking into TinyScheme and Gambit, but was leaning towards TinyScheme due to its size.

<comment><USER5> Chibi is about the same size, and unlike TinyScheme is a real Scheme with hygienic macros and a fast VM (TinyScheme is hopelessly slow). It also has features like Huffman compressed immediate symbols to further reduce runtime heap usage - the raw image size isn't the whole story.

<comment><AUTHOR> Can Chibi(R7RS) be used in real world applications ?, and I am curious do you know when can we expect R7RS large spec to be finish.

<comment><USER5> It depends on what you mean by real world applications, but Chibi has many features including threads, networking and an FFI suitable for any application. R7RS large will have even more libraries. It will be complete when it's completed, but many of the individual libraries will be usable before then.

<comment><AUTHOR> Thanks for answer, I want to make a simple game in scheme, so I am considering chibi, maybe I need to try somehow to add opengl binding. I know there is other implementations but I want to try chibi (r7rs) :)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Interesting! I will evaluate this for my online board game that I am remaking in this moment but it does look good :)

</comment><comment><USER7> Anyone has comments on the implementation?

<comment><USER5> I'm the author, if anyone has questions feel free to ask. 0.6 should be released this month with a lot of improvements.

<comment><USER8> How large does the heap need to be for the garbage collector to work effectively? Could this theoretically run on something like the TI Stellaris LaunchPad, which is an ARM chip with 256KB of Flash and 32KB of RAM?

<comment><USER5> The default heap is 2MB, but will run with 756KB. If you want to skip the init.scm file (-q command-line option) it will run with just 10KB providing only definitions and C primitives, but I haven't tested this extensively - <USER2> had no idea they still made devices with such little memory :)

</comment></comment></comment></comment><comment><USER9> If you don't care about the small footprint then go with Gambit/Bigloo as they play nicely with C too.

<comment><USER10> If you don't care about Gambit's C integration, go with Racket, it's very beginner friendly and has lots of libraries.

Or:

If you don't care for Rackets IDE, go with Guile, it's the official GNU extension language.

TL;DR find a Scheme implementation that is good at what you need and use it.

<comment><USER11> Apart from Racket, Chicken Scheme is the most active Scheme and it has a lot of libraries (eggs as they call it) from OS interface to amazon web services and web frameworks.

</comment></comment></comment><comment><USER12> The actual manual seems to be down from going over capacity.

<comment><USER13> The source for the manual is still up, and is quite readable despite the few style annotations:

[http://code.google.com/p/chibi- scheme/source/browse/doc/chib...](http://code.google.com/p/chibi- scheme/source/browse/doc/chibi.scrbl)

Note: I don't have access to the original manual link either, so I can't confirm that it's exactly the same document. It describes the language in details.

<comment><USER12> Oh hey, it's in scribble! Neat, I thought that that was an only a Racket thing...

</comment></comment></comment><comment><USER14> Works on iOS? Too bad it's not allowed.

<comment><USER15> Wasn't that rule changed some years ago?

<comment><USER16> Not as far as I know. We haven't seen flash for iOS yet which would seem to suggest it's still in effect.

<comment><USER17> We haven't seen Flash for Android anymore, either.</comment></comment></comment></comment>


An Analysis of Pre-Installed Android Software [pdf] - <AUTHOR> http://eprints.networks.imdea.org/1959/1/An_Analysis_of_Pre-installed_Android_Software_2019_EN.pdf <comment><USER2> Interesting paper. I didn't fully read it yet, but according to the figures :

\- Samsung looks worst than any other vendors (incl. Huawei) about permissions granted to pre-installed apps

\- Apps probably set many hidden cookies and identifiers in logs, possibly share information with other apps and bypassing permissions ?

Quick note :

\- figure 1 is not much readable

\- figure 3 looks broken or misaligned

</comment><comment><USER3> I skimmed through the paper. I m thinking of keeping it to give it to anyone who asks me why I bother replacing stock ROMs with LineageOS on my devices.

<comment><USER4> Unfortunately installing a custom ROM voids Google's SafetyNet, which stops many important apps from working, like Google Pay, Netlix, Snapchat and a ton of banking apps.

Before this was a thing I used a custom ROM on every device, but now it's quite difficult.

<comment><USER3> Not really, It depends on your ROM.

As a rule of a thumb if you install pure lineageOS+openGAPPS+fdroidPriviligedExtension you will have a working safetyNet. That means no root module (but you can get root by enabling adb if you really want it, e.g. for GSAM battery monitor I give it the battery stats permission from adb). With this setup my phone has google pay working.

</comment></comment></comment><comment><USER5> This is way better than any iPhone ad for an informed customer. Until Librem 5 becomes a reality, that is.</comment>


Higher-order organization of complex networks – Science - <AUTHOR> http://science.sciencemag.org.ezp-prod1.hul.harvard.edu/content/353/6295/163 <comment><USER2> pay-walled?</comment>


Cray XK6 System - <AUTHOR> http://www.cray.com/Products/XK6/XK6.aspx <comment><USER2> Check out this page: <http://www.cray.com/Products/XK6/Technology.aspx> The network hardware is connected directly to the HyperTransport bus!

</comment><comment><USER3> So Cray used to make unique, iconic supercomputers and now their secret sauce has been reduced to some interconnect for gluing together mass-market bits like the next ODM?

Who drove them out of the supercomputer market? I know IBM still sells a bunch of mainframes running operating systems you and I have never heard of or used.

<comment><USER4> You can no longer make a supercomputer the old Cray way, by having Seymour Cray design the fastest, most optimized CPU he possibly can and sticking it in a box. Now you take thousands of processors (with an increasing trend toward low-power low-heat processors rather than just the most powerful ones) and glue them together--and the interconnect becomes one of the most important parts!

Huge companies like IBM can afford to make their own custom chips for their supercomputers (see Blue Gene L, P, and Q), but Cray isn't in that category. They do create a lot of software for using their systems, and the hardware is very well integrated, which is probably why they still do pretty good selling to national labs.

We're realizing that now while you _can_ buy a bunch of computers and a 10 GbE switch, it can be worth it to get a nice fully-integrated supercomputer shipped to your door. It's ready to go, the software is installed, the cables are the right length (and neatly arranged!), and when a node burns out you just mail it back to Cray for a replacement.

</comment></comment><comment><USER5> These days racks are so standardized it would be difficult, but it would be cool if they made more of a nod to their past designs.

</comment><comment><USER6> That shit cray.

<comment><USER7> Darn. You beat me to it.</comment></comment>


Show HN: An iOS app for building and tracking your habits - <AUTHOR> https://metricalapp.com <comment><AUTHOR> MetriCal is a collection of calendars in which you can track everything you might think of. It can read data from Health app for several metrics and has shortcuts support (you can track values obtained from other apps). It has a set of 15 predefined metrics like Reading, Meditation, Wake-up time, Steps, Heart rate and more. You can also have your own custom metric for free and with a small subscription you can create unlimited metrics, with support for metric and imperial units. You can also sync it on multiple devices using Sign in with Apple. The app is built with privacy in mind, sign up is optional and just for sync purposes, I don't get any username, email or demographics, and it has no ads or 3rd party analytics. Get all Pro features for free, for two weeks using promo code HN2020.

</comment><comment><USER2> I'm more likely to buy an app then a subscription. I really don't understand why developers that don't deliver substantial content through their app think this model is necessary. It in fact discourages me from even testing the app in the first place.

<comment><AUTHOR> Thank you for your feedback. You can do a lot with the app, for free. The subscription offers some extra features at a small price (2$/month or 12$/year) and helps me pay for the backend servers costs and ideally it will provide a cashflow to continue investing in it. You can do a lot without paying anything. Using the promo code doesn't require a subscription, it is like a paid app, but free. After the promo code expires you can still use most of the features of the app. Would you be more inclined to pay let's say 25$ for the full feature app without having the chance of testing it?

<comment><USER2> Got it. Wasn't aware of the backend supporting the app! Regardless, I'd rather pay upfront. The app can be offer limited time usage with all the features for testing.</comment></comment></comment>


Show HN: API to detect abusive content in 27 languages - <AUTHOR> Hello HN,
I am Vadim of Tisane Labs (http://tisane.ai). We build text analytics APIs.
My natural language processing journey started over a decade ago, when I built an NLP engine with an emphasis on scalability across languages. The engine served as a foundation of a startup I cofounded in 2010 (https://en.wikipedia.org/wiki/LinguaSys), which had Mark Cuban as an investor and was acquired in 2015.
Utilizing our expertise, we're trying to tackle one of the most painful issues with the Internet today: abusive content. Hate speech, sexual harassment, cyberbullying are difficult to detect. Today's solutions mostly look for obscenities; correlation with training datasets only works with limited demos as the patterns of abuse are too many. Hate speech is more than just ethnic slurs.
The API is a generic analytical engine, so it may be used for other purposes as well, but abusive content is our main focus.
We'd love to hear your feedback, ideas, wishes, and complaints. <comment><USER2> Looks interesting, but I couldn't get the code samples to work. Would be good to have all languages available in the demo on the website.

<comment><AUTHOR> Thanks, Web64.

What was the issue? Any error messages or you just didn't get the output you wanted?

I imagine you're interested in Norwegian?

EDIT: I forgot to mention that you don't need to code to test-drive. You can simply dump your JSON in the console (the "Try it" button: [https://dev.tisane.ai/docs/services/5a3b6668a3511b11cc292655...](https://dev.tisane.ai/docs/services/5a3b6668a3511b11cc292655/operations/5a3b7177a3511b11cc29265c/console)).

<comment><USER2> Yes, I would like to test for Scandinavian languages as there are not many multilingual NLP apis available. Not even Google/Microsoft/AWS has multilingual support.

The error I'm getting is:

      Request Error
      The server encountered an error processing the request. The exception message is 'Invalid JSON string literal format. At line 1, column 1.'. See server logs for more details. The exception stack trace is:
      at System.Runtime.Serialization.Json.JavaScriptReader.ReadStringLiteral()
      at System.Runtime.Serialization.Json.JavaScriptReader.ReadCore()
      at System.Runtime.Serialization.Json.JavaScriptReader.Read()
      at System.Json.JsonValue.Load(TextReader textReader)
      at Tisane.Server.Parse(Stream json)
      at SyncInvokeParse(Object , Object[] , Object[] )
      at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
      at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
      at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
      at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
      at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

using these parameters:

      $parameters = array(
         'content'  => "Babylonians should not be allowed at managerial positions.",
         'language' => 'en'
      );

<comment><AUTHOR> Thank you!

I will need the entire client code though. Let's switch to email - the one you logged on with is OK, right?

EDIT: sent.</comment></comment></comment></comment>


Ask HN: What are your thoughts on the pinebook? - <AUTHOR> Just received the email offer to buy one and I wanted to know what hacker news thought about it. <comment><USER2> I guess it's a glorified terminal or a webbrowsing device? It comes with 16 GB storage; I assume most of it taken by the OS. It's expandable to 64, but I think it's best to do so when buying, so take that into account when pricing it out.

Personally, I feel it would be even better if it was powered through USB-C.</comment>


Ask HN: Is it possible to get PhD without completing bachelors - <AUTHOR> Hello! I have been an employed software engineer for a bit more than 8 years, after dropping out of a traditional bachelors degree program in 2012, due to financial and personal reasons.
I have been the "theory guy" in every job I've had in the last 6 years, and I would really like to be able to learn more theoretical math-and-computer-science-related subjects, since I am more financially stable and seeing a therapist regularly. I don't have much interest in completing my gen-Ed's, but I genuinely would like to learn more theoretical math/compsci, and I can only get so far buying used textbooks on eBay.
Is it possible to get a graduate degree without a bachelors (in the US)? If anyone here has done that, can you give any advice on how? <comment><USER3> CS Professor here: Depending on the institution, it's possible to get a PhD without an undergrad or meet alternative requirements to get an undergrad along the way.

The trick is you need to get admitted to the program. This is harder but doable. To get into a very good PhD program, you typically need some demonstrable track record of research and/or a letter of recommendation from a professor vouching for your interest/ability/potential. Of course, others do get in just on transcript and test scores, but it's rarer.

You could get a job as a programmer in a research lab and then leverage the relationships from there. Or you could try working with a professor informally (perhaps starting with software engineering for some project) and go from there. Once someone knows you and knows you have interest and aptitude, the lack of an undergrad degree should be solvable for at least some universities.

Finally two pieces of advice: Ph.D.s are supposed to be paid. Not that well (think 25 to 30k a year for a low cost of living area, 45k for say NYC), but if not it's a major red flag. Second, the quality and trust you have in your PhD advisor is way more important than the institution. A Ph.D. is almost an apprenticeship under someone. It goes badly if that person treats you badly

<comment><USER4> > try working with a professor informally (perhaps starting with software > engineering for some project) and go from there.

I've been wanting to do this for years. Any tips on how to find a project and a willing professor? I've emailed interesting professors but I've never heard back.

(I was even curious to start a website to match up researchers with volunteer programmers.)

<comment><USER3> Its hard, we get a lot of emails and ignore most of them. You need to find some interesting insight or question, not "can you work with me." Making me think about research is a welcome thing. Making me think about managing people, not so much.

Couple of tricks: try not engaging via email. Twitter works (but again, make it a stimulating conversation, not a "work work" one). Or if they have code on github under active development, try contributing there.

<comment><USER4> Thanks. I like those ideas. I'll give it a try.

</comment></comment></comment></comment><comment><USER5> Hello! Math professor in the US here. Maybe, but probably not.

What might be easier to do is to audit a university course. Do you live in a city with a decent university? Find a course that interests you, and for which you think your background would be sufficient. Usually university course schedules are open to the public, and individual professors are easily Googleable. Professors who have personal webpages with lots of recently "cool stuff" tend to be better teachers on average, and also maybe more approachable. (This is, of course, a vague trend, not an ironclad rule.)

Anyway, it's okay to cold-email a professor and ask for permission to audit their course. _Keep it brief_ ; introduce yourself, say a sentence or two about your background, a sentence or two about why you find their course interesting. Be prepared to move on to someone else if they say no or don't respond.

If you end up excelling in the course, then this would might further doors for you; the professor might be willing to give you advice as to next steps, or to introduce you to other people who could help you.

Good luck to you!

<comment><USER6> How might that be affected with the recent quarantine orders? Do you know if it's possible to audit a "zoom class"?

<comment> codemonkey-zeta If I was a betting man I would say it will not be possible. The odds of universities publishing zoom links in light of the zoom bombings[0] seems pretty low to me. Most likely students will be contacted directly by their professors/administration with the link(s) for their classes.

[0][https://en.wikipedia.org/wiki/Zoombombing](https://en.wikipedia.org/wiki/Zoombombing)

<comment><USER5> The odds of universities publishing zoom links are essentially zero. You might find individual faculty posting syllabi with Zoom links somewhere online that anyone can see -- this would likely fly under the radar.

To do this, you would definitely want to contact the professor in advance. Email addresses for individual faculty are in general published and very easy to find.

</comment></comment></comment></comment><comment><USER7> Mortimer Adler (1902-2001) recounted in his (first) autobiography:

Nonattendance resulted in a series of F's on my record. At the end of my senior year in 1923, after I had already been awarded a Phi Beta Kappa key and had paid twenty dollars for my diploma, I received a note from Dean Hawkes saying that I might attend the commencement exercises but that I would not get my bachelor's degree because I had neither passed my swimming test nor fulfilled the physical education requirement for graduation. Having earned 135 points of credit (120 points sufficed for graduation), I was, however, permitted to enter the graduate school without a B.A. degree. Six years later, without having bothered to stop for an M.A. on the way, I received a Ph.D.—I say "received" rather than "earned" because the doctorate fell on me in spite of myself and what I did or failed to do. How that happened is a story to be reserved until later, but that it happened gives me the rare distinction, I believe, of being possibly the only Ph.D. in the country without a master's degree, a bachelor's degree, or even a high school diploma.

<comment><USER8> Aside: Swimming test? Apparently he went to Columbia, I wonder why they would have such a requirement.

<comment><USER9> Before Air travel became the norm, people used to travel by water, and unless you know how to swim, you may drown for whatever reason.

The educational institutions didn't want all that effort wasted so they started requiring swimming education for people.

Or something like that, don't quote me haha

</comment></comment></comment><comment><USER10> > I don't have much interest in completing my gen-Ed's, but I genuinely would > like to learn more theoretical math/compsci, and I can only get so far > buying used textbooks on eBay.

Most people in academia are pretty big on publishing so it's not terribly hard to find out what everybody is working on. The notion that doing a PhD program will get you access to a lot of otherwise unavailable knowledge is for the most part false. You may just get it a little earlier for your area of specialization.

You can publish and collaborate with others without a PhD or institutional backing too.

</comment><comment><USER11> I got an answer and a non-answer for you.

The answer is in line with most of this thread: possible, yes, probable, no. All cases I know are from people who made enormous contributions to their respective fields before they could enrol in a PhD program.

Most important is my non answer: Why do you want to do a PhD? Just because you want to learn more theoretical compsci? Do you fully understand what a PhD program entails?

I'm not trying to discourage you here, I want you to understand what you would get yourself into before you spend a lot of time, effort and energy, and possibly months/years of your life into something that won't fulfil your life interests.

<comment><USER12> > All cases I know are from people who made enormous contributions to their > respective fields before they could enrol in a PhD program.

This is highly dependent on the field and the particular group you work with. Most PhD students I know came straight from bachelor's and did maybe a year of research in undergrad but with no significant contributions, some did actual research with a group, some have a paper or two published. But yeah, it's pretty much impossible to get into a PhD program without a bachelor's degree.

<comment><USER13> I read that as "All cases I know [of Ph.D. students who did not complete their bachelors] are...".

<comment><USER12> Ah, that makes a lot more sense.

</comment></comment></comment></comment><comment><USER14> In theory perhaps, but in practice no. To get a phd position at a reputable institution, you have to compete with people who have both Master's degrees and often have published multiple papers. Oh, and _getting_ a phd position is the easy part - _finishing_ it is the difficult one!

<comment><USER15> I would add that if anyone really wants and is capable of enduring a PhD program and capable of getting said PhD, completing a BA is by far the easiest and simplest part of the whole process. Thus there is really no reason to avoid getting those qualifications under your belt.

In the very least you might be forced to waste some part of your PhD program to learn 101-level stuff just to catch up with your starting point.

</comment></comment><comment> non-entity For all practical purposes I doubt it. I suppose there is the occasional genius who is able to obtain credentials without going the traditional route, but from what I've read these sort of situations are highly situational. Y ou can find a few existing threads on the subject with google.

I've heard of people getting into masters programs without and undergrad, often persuading a school too take into account their work experience in a respected field, but it's still not very common.

Also my understanding (I may he wrong) is that a PhD is not about the classes as much as the research you do.

<comment><USER15> > Also my understanding (I may he wrong) is that a PhD is not about the > classes as much as the research you do.

That's correct. A PhD is a program that culminates in a candidate being able to defend a thesis based on his original research when challenged by a jury of reputable academics.

That's what a PhD boils down to: conduct research that is deemed acceptable and holds to scrutiny of fellow academics.

In fact, IIRC it's possible to complete a PhD program by having a series of papers accepted in reputable journals that follow a coherent theme, as long as they can be used to support a thesis.

</comment></comment><comment><USER16> Stephen Wolfram ([https://en.wikipedia.org/wiki/Stephen_Wolfram](https://en.wikipedia.org/wiki/Stephen_Wolfram)) dropped out of high school and college before getting his PhD.

All it takes is being someone who

* Writes three books on particle physics by the age of 14

* Gets into, then drops out of Eton because of boredom. He instead ...

* Gets into, then drops out of Oxford because of boredom. He instead ...

* Gets into graduate school at Caltech

* Receive a PhD

* Do all of the above by the age of 20

See? Easy!

Despite my sarcasm above, the above shouldn't be (entirely) taken as discouragement. A one-in-a-century genius like Wolfram can do the above before turning 21. It's not impossible that you are the, say, one-in-a-decade genius who can, without being so young, as impendia said impress a professor with your insight. That professor might be able to, in turn, see whether his department's graduate program can admit someone on a non-degree basis (not unusual at all), taking a class or two at a time for a grade but not in a formal program.

If you're not "good enough", you'll likely be able to apply the classes toward a bachelor's degree. If you impress the right people in the right way _and_ if the university does not formally restrict admission to a graduate program to bachelor's degree holders, it's not impossible that you could be formally admitted. Or perhaps a professor will be able to recommend you to a program at a university that does not have such a restriction. There are a _lot_ of "if"s, but it's also not completely impossible.

PS - Yale Law School admitted someone without a bachelor's degree a while back. He was a very successful corporate executive who late in life decided to go to law school and did very well on the LSAT.

</comment><comment><USER17> You will need the knowledge which the Bachelor would have taught you. If you've already got that knowledge through other means, to the level that a PhD requires, then actually getting that degree should be pretty trivial. Do it as distance learning, and treat it as a refresher to make sure you're as sharp as you think you are.

<comment><USER8> Is that really true though? My school offered the equivalent of CS 101 to CS grad students, so presumably some came from other disciplines and lacked the fundamentals.

</comment></comment><comment><USER18> If it were to happen, I would expect the requirements to be similar to what's typical for graduate programs that accept people with an unrelated undergraduate degree. Basically, on top of the standard graduate level courses, the individual student takes all the usual undergraduate courses or their equivalent while enrolled as a graduate student.

For random advice from the internet I'd say that getting a bachelor's degree via a conventional route will save you vast amounts of heartache and pain relative to trying to convince a hierarchy of gatekeepers to give you a pass through all the academic and bureaucratic gates you want to skip. There is a 0.0001 probability of passing through ten gates of 50:50 odds and none of the gates you will need to pass through are likely to be 50:50 and the number of gatekeepers is likely to be more than ten.

Or to put it another way, you are describing a goal that is almost entirely out of your control, almost certain to be unachievable, and where persistence is likely to irritate the people who you would need as allies for it to succeed. Though it is logically possible to get a Phd without a bachelors, it is an eminently unreasonable expectation.

The steps to getting a bachelor's degree are enumerable and the there are institutional structures in place to facilitate doing so...and if you start today in a few years you can make one happen. To me, that's a happier plan than one completely outside your control.

In the meantime, you could work your way through Knuth without running out of things to learn from a book. Good luck.

</comment><comment><USER19> Yes! You could approach a Professor at a public university here in the U.S. (like the University of Colorado at Denver in Denver, Colorado) who mentors PhD candidates and explain the kind of on-the-job experience you have relevant to the industry in lieu of a Bachelors degree and request a formal recommendation letter to be included in your application to the PhD program. You will need between 10-20 years of professional experience, preferably team leadership. Although I heard most people are rejected anyways for things that can't be covered on-the-job like knowing how to write a proper academic research paper.

Edit: I just remembered that the measure of success in addition to writing a thesis is being able to explain your argument in as much detail as you can in front of panel of experts while answering their questions for at least a couple of hours up to several hours. Something you will likely encounter trying to convince a mentor you're ready for the PhD program.

</comment><comment><USER20> This conversation took a big leap from "I want to learn more", into "PhD". If you just want to learn more, forget grad school and go audit the courses you want. There is no need to go through the hassle of any degree if all you want to do is learn, and don't actually have a goal of getting an advanced degree.

</comment><comment><USER21> I have met one person who did it. Even then they were a certifiable genius, still had to jump through an enormous amount of bureaucracy with an enormous amount of sponsorship from many faculty whos grant funding was directly tied to this person working on their project.

So in practice, no.

If you want to learn more theory, I do think it's possible to apply and get an MS. Especially now since MS programs are bleeding people due to remote learning.

<comment><USER22> > Especially now since MS programs are bleeding people due to remote learning.

Can you elaborate on this? Are they just losing students? Why do you think it's happening?

<comment><USER23> Paying $40,000 to watch a professor give a dry Powerpoint talk over a box in Zoom ain't the deal universities think it is.

I can get a better education with a textbook and a Youtube for free, let alone real online courses.

Universities have neglected teaching-and-learning for the better part of a century, and with COVID19, it's coming back to bite most of them. For a lot of programs, enrollment numbers are dead. Professors have viewed teaching as what they have to do in order to do research, and many approach it with all the vigor and intellectual rigor that entails. You show up. You talk at students for an hour. You hand out last semester's homework. You go back to your real job. Anything beyond that, you hire someone for near-minimum-wage to do for you -- a graduate student who doesn't want to be there, or an instructional designer who can barely tie their own shoelaces (note: there are some really good IDs; just not at most universities. No one qualified would work at that salary or position in the social pecking order).

Universities which have strongly invested in online, blended, virtual, and pedagogy are surging, though. Why would I pay a $40k tuition when I can get GA Tech, ASU, SNHU, or what not which give better quality education for a fraction of the cost?

</comment></comment></comment><comment><USER24> I don't know the system in the US very well, but here in Germany it is already very hard to start an PhD as a bachelor student. One would need high/perfect grades and a supervisor which already supports him/her.

A PhD is not just learning something about theory but also applying theory and creating some new theory. I highly recommend you to start a theory oriented bachelor.

</comment><comment><USER25> It is, but good luck finding yourself in that situation. I received an offer during my bachelors which was not contingent on me completing the degree, but it came after a helluva unusual story that I can't repeat here.

Display exceptional creativity and promise in the field in which you're looking to study, attract a lot of attention for it, and then maybe, just maybe.

</comment><comment><USER26> On a slight tangent, what if you dropped out similarly, went back some years later, improved your grades at the end, but ended up with an undergraduate GPA of slightly < 3.0? What challenges/possibilities would there be in getting into a masters or PhD program after over a decade working? Assuming for the sake of discussion a good GRE score.

</comment><comment><USER27> In the US, yes, one of my friends did it. He was already working in a lab during high school and had published papers with them before he applied. They were first author at the top conference and he was ridiculously smart and focused on his work. But it's definitely possible. Bit different from your case but should give you some hope.

</comment><comment><USER28> I'm not sure about the US system, but here in Norway you'd probably have a hard time getting a PhD without a masters degree - but you _can_ get a masters degree without a bachelor degree.

I'm not sure why you'd want to try for a PhD directly - but it might be possible to get into an MSc program?

<comment><USER29> In the US you typically pay for masters programs but not for PhD. (And most if not all PhD programs don't require a masters degree. Sometimes a masters degree is given during the PhD, depending on the school).

<comment><USER28> Oh, so it's typical to go from bachelor's to _either_ master's or PhD, then?

Sounds a bit odd from a Norwegian perspective - our former (German modelled) cand.mag + cand.scient was a bit like integrated master's + PhD - although we also had a PhD which was more like a post doc (depending a bit on subject - <USER2> medical doctor had a pretty "conventional" path without much research). The old cand.scient. was 2 years of mostly research.

We do, of course, generally not pay for college over here, so it's a bit difficult to compare in terms of "cost" \- but PhD is generally a salaried position.

These days it's normally bachelor's > master's > PhD - which are 3.5, 2 and 2 years respectively iirc.

Ed: it's not uncommon for an employer to fund a master's degree though - especially one based on experience rather than a straight bachelor degree. Eg you might write a compiler for a custom language, or do some machine learning or ux research as a masters while an employer pay for the work.

<comment><USER29> Yes, the European model of master's + shorter PhD is different from the US model of a longer PhD. There might be exceptions in less sciency disciplines (e.g. social work or public policy).

And yeah, PhD programs in the US are typically funded (no tuition, stipend usually enough to cover cost of living) while Master's programs usually are considered cash cows for universities. Of course there are indeed people who get a Master's and then a PhD (sometimes because they're not sure they want to do a PhD, sometimes because getting a Master's might help someone get into a better PhD program than they would have otherwise).

</comment></comment></comment></comment><comment><USER30> Don't listen to anyone here. Just contract some advisors that interest you and see what happens and don't get discouraged. Don't waste your time going through the application process until you have developed a relationship with an advisor and they'd like to have you on. Good luck.

<comment><USER5> I'm a professor at a PhD-granting math department. I wish I could endorse this comment, but unfortunately it's incorrect.

In general I'm not available to "develop a relationship" with people outside the system, and with no apparent credentials. I have too many demands on my time, so I prioritize developing relationships with students enrolled at my university.

The one exception is if someone were to bring a genuinely useful idea to my attention. If someone had a good idea for improving the error terms in the Davenport-Heilbronn theorem, clearly understood the related literature, and brought this to my attention -- then I'd cheerfully work with them, even if they were an unemployed high-school dropout. But in practice this does not happen.

I also am happy to answer questions about our graduate program, or my discipline, from strangers. For example if a stranger wrote and asked "How can I best learn analytic number theory" then I would answer them. But for people who seek out some sort of advisor relationship, then all I can really do is to encourage them to apply to our PhD program.

<comment><USER23> > If someone had a good idea for improving the error terms in the Davenport- > Heilbronn theorem, clearly understood the related literature, and brought > this to my attention -- then I'd cheerfully work with them, even if they > were an unemployed high-school dropout. But in practice this does not > happen.

Yes, it does. That's the exact approach I used to get into grad school, and what I encourage others to do. Find a professor you like. Read their literature and get up-to-speed on their field. Engage with them around their work.

It's rare for people to do this, but it works. Sometimes you might need to do this with 2-3 professors to find one who is hiring grad students that semester (and be careful about programs where one professor can't hire but students are brought into a program), but it's a much better approach than spending a decade optimizing to GPAs, GREs, and what-not.

When someone does this, professors can have complete confidence the candidate can do the work, since they already are...

<comment><USER5> Can I ask what field you're in?

In mathematics in the US, "hiring grad students that semester" is not a common thing, and "programs where one professor can't hire but students are brought into a program" describes every program of which I'm aware.

But, I stand corrected that my experience doesn't generalize as extensively as I had imagined.

<comment><USER23> I'm in electronic engineering, but most of the experience is from computer science departments.

There are programs like Caltech where students do rotations and aren't admitted into a lab. But for example, at the MIT Media Lab, a professor can explicitly pull in a student for their group (and it's bloody hard to switch, if there's an advisor-advisee conflict).

And some departments are a hybrid, where a professor can pull someone in by writing an appropriate recommendation note to the admissions committee. If a professor says in a rec "I've worked with Alice for the past few months. If you admit Alice, we have a project defined together, and I have funding to pay for it," that's more-or-less an automatic admit, barring exceptional circumstances.

<comment><USER5> Interesting.

My guess is that in EE and laboratory-based CS, professors have a lot of work that they can readily farm out to people working under their supervision. This is less true in math, where it typically requires a big effort to get a student up to speed.

</comment></comment></comment></comment></comment></comment><comment><USER31> CS PhDs are normally 4-5 years long. I powered through bachelors to PhD in 7 years (the short duration mostly motivated on keeping costs down). What you are describing is possible. I'm not convinced it is the best idea. A strong CS university undergrad may be 95% redundant, but that 5% matters. I expect your colleagues with degrees might have gotten less from their educations then you might in the same classrooms. We teach a lot more than people actually seem to remember. Don't discount going back for the bachelors. It might be worth it. A lot of your classwork for your PhD will be forcing you to take many of the same classes anyway.

</comment><comment><USER32> Another, lower-risk option: at some universities, it's quite possible for undergraduates to take graduate classes, especially if they've had the relevant background. So you could try applying to be an undergrad at such an institution. And you might not need to take that many gen ed. requirements if you find a university with flexible requirements (e.g., google 'open curriculum')

This is likely to be the easiest way to learn more theoretical math-and-CS subjects, though it'll probably be more expensive than just getting into a phd program.

</comment><comment><USER33> You could just follow Ed Fredkin's path and skip all the degrees and go straight to professor. I've been told he endowed a chair and then named himself the first recipient but I've been afraid to ask him (seems rude to ask if that is just a mean story. But great to ask if it was a clever hack).

In any case, however he came to become a professor, he was a good choice: [https://en.wikipedia.org/wiki/Edward_Fredkin](https://en.wikipedia.org/wiki/Edward_Fredkin)

</comment><comment><USER34> I have no interest in the gen-ed bits myself, but you might take a look at the Coursera/University of London CS degree program. It's a 3 year program if you do it full time and it's _entirely_ CS content.

</comment><comment><USER35> Not a direct answer but you will probably get more answers on academia stackexchange: [https://academia.stackexchange.com](https://academia.stackexchange.com)

</comment><comment><USER36> Based on the comments in this thread.

Could someone buy a way into a PhD? Provide funding with a requirement 'x' person must lead or be part of or funding will dryup?

<comment><USER24> Money opens some doors, yes, but this will be large sums of money. Not something like 1 000 dollars. Add two or three zeros. This also won't pass unnoted. If somebody in the future wants to find out how the PhD was achieved, he/she will find out.

</comment></comment><comment><USER37> I would strongly advice against it.

It seems like you are looking at a PhD like "the diploma to have" but not realizing what a PhD is in practice. Read a lot of what a PhD consist in: At least, expect to be lonely and work a whole lot of hours by yourself without much guidance or external motivation, you are becoming the expert during a PhD, so you will not find a lot of people that can help you when you have a problem. (I don't say that good and knowledgeable advisors do not exist! but they also have a lot to do in 24h a day!)

IMO, nothing prevent you from studying after your work like if you are already a PhD student, give it a try: Take any advanced CS theory book or better, a Math book in your area of interest and work it out until you managed to do most of the advanced exercises. If you think this is not a healthy/sane life/work balance.. For a lot of people a PhD is not either. Take your time and be sure to understand everything in the book at its full extent. While you are doing this or after having done a couple of books, take high quality research papers in your field (lots of them are free), and try to understand them, implement them and try to reproduce their results. If you want a PhD in Deep Learning, do not expect that the PhD will consist in implementing a network, testing it, and start again. You may need to understand a lot of information theory, statistics, inference, math theory, etc. Also, for a lot of research level interesting ideas: implementing them is not possible in current frameworks, Expect to make a lot of coding. In any other research areas, usually (advanced) math is still a requirement: P/=NP kind of stuff in computability, graph theory, formal (type) logic (eg look at the rules for the Julia subtyping system[3] pg. 12), game theory (AI), category theory (for functional PhDs), stochastic calculus for finance, etc.. You don't need to know it all, only the part that are relevant to your interest, but still!

This may take month with long days to finish. but..

If you like this experience, you have two choices: 1) You feel that you are ready to do your research on your own, and in that case you don't need a PhD as you can continue to advance by yourself by taking any resources available. 2) You really need the diploma for whatever reason, give a shot at online universities, or try to find fast-tracks to obtain a master degree. Finally find an advisor that is willing to follow you and find funds for your PhD position.

In any case, after the PhD acceptance is where all the difficulties start: You need to study a lot, learn to master rapidly new material even if it is not the material you like, experiment a lot, report results, publish in high impact journals, review papers, read papers, prepare presentations, give presentations, give lectures, give exercise sessions, find fundings, write proposals, manage students, manage several urgent overlapping deadlines, prepare datasets, long hours, poor salary, etc. Don't expect that the PhD is related in any way to a bachelor/master program in my experience.

And don't think this will never apply to you if you find the right advisor, several studies study the link between a PhD and mental illnesses (~30%) [1][2], this is not exactly related to your capacity to work hard but more to the capacity of managing so many sources of anxiety while still being productive and often lonely.

All in all, this can be an extremely amazing experience or the worst experience in your life depending of your personality and ability to manage your time! I didn't write to discourage you to do it, but try in baby steps what it is like to be a PhD and after that decide for yourself. If you are convinced, find good advisors that are willing to follow you or guide you to a fast track that can suit you before applying!

[1] [https://www.sciencedirect.com/science/article/abs/pii/S00487...](https://www.sciencedirect.com/science/article/abs/pii/S0048733317300422)

[2] [https://www.nature.com/articles/d41586-019-03489-1](https://www.nature.com/articles/d41586-019-03489-1)

[3] [http://janvitek.org/pubs/oopsla18a.pdf](http://janvitek.org/pubs/oopsla18a.pdf)

</comment><comment><USER38> Yes. Or at least it was in 1981. tl;dr I was accepted into two Ivy League CS Ph.D. graduate programs with them knowing I wouldn't have a bachelor's when I got there and wouldn't get one.

Longer version. At a "public Ivy" university, I had finished all the requirements for a CS B.S. in three years...except I needed one full semester's course load in, well, anything. Number of hours was all that was between me and a Bachelor's. I checked with a fair number of schools that had "Must have Bachelor's degree or reasonable equivalent" in their catalog, explained my situation, and said I had three professors who knew my situation and would write recommendations for me. Most said "No, but you sound interesting. Try us next year if you don't pull this off". Two Ivies and a Canadian university said I could apply. The Ivies both accepted me and I withdrew my application from the Canadian one before they decided.

Didn't manage to pull off the Ph.D. though; my inexperience at 19 had me not realize it's important to find out about personalities and reputations among faculty for grad school, and it turned out my advisor/dept. chair liked to flush a majority of his students (I was the fifth of my entrance year). It turned out to be relatively simpler to get my graduate hours transferred down to my undergrad school and pick up the Bachelor's that way and then get admitted elsewhere.

Things have changed significantly for graduate CS admissions at good schools in the last 40 years though. Generally you're now expected to have already done some research, and you should have a really positive recommendation from whatever faculty you did that research with/under. I suspect your best approach would be to first get a "professional Master's", but since those usually don't involve research, also get on a research project while there and impress the professor(s) running it.</comment>


Ask HN: What do start-ups need seed money for? - <AUTHOR>

Is it server costs? Is it to rent a space somewhere and start building the business?  Hiring/Contracting??  what is the primary reason a start-up would need capital? <comment><USER2> Well, first getting seed money is a small validation of your start-up idea and team that helps raising more capital in the future.

The idea of seed funding is to help you create a prototype that you can show to customers and determine what is the right product market fit for your company. Typically, this process will last six months or so (however, every company is different. Getting seed funding helps you quit your job, focus on building the company and set things up the right way, right from the start.

You can get seed funding from angels, super angels, friends and family, crowd funding, universities or seed stage VCs.

</comment><comment><USER3> I would say most of them need money so they can quit their day job(s) and focus on building the product.

<comment><AUTHOR> Thanks for the reply. So, to clarify, raised capital goes into the pockets of the founders? There is not typically a contract involved that requires company registration (i.e. incorporated), or suggestion on where to put the money?

Thanks again!

<comment><USER3> I have not raised money myself, but everyone I know who raised a seed round, incorporating was one of the stipulations. There is always a contract (term sheet), which spells out certain requirements. But typically the bulk of the money raised, goes toward supporting the founders as they build/launch the product.</comment></comment></comment>


Thoughts on Physical Social Networking (hello my name is E) - <AUTHOR> http://paulstamatiou.com/2008/06/18/thoughts-on-physical-social-networking

<comment><USER2> There was a company back in the 1st boom that was making apparels and other gear with your "ID" printed on it boldly. And you could take someone's ID and put it on the site and communicate with that person. Seemed like a roundabout way of just walking up to the person and saying "hello my name is E".

But to answer your question, a hardware-aided webapp could take off if it was backed by the right "webapp". If facebook, linkedIn, Match, etc. came out with a hardware (although why wouldn't you just write an iPhone app nowadays), that facilitated physical social networking then it might work. Although IMO, people still like to keep a difference between their online and offline lives.

We are going to see a large numbers of mobile social networking companies in the next few years. It is the only logical next step for social networks, to go from in front of computers to location aware.

</comment><comment><USER3> I think it could work, but I think it would have to marketed differently. Right now it seems aimed towards the twenty-something web developer who might be more casual. I think there's an equally large opening for a device like this marketed towards more traditional businessmen. Replace the Rolodex, make migrating to social networking apps easier, etc.

The device is certainly a limitation too. Maybe think about ways it could be implemented as a mobile phone app? The hardware infrastructure for mobile apps already exists, and people are already comfortable with it. Bluetooth would be nice, but I don't know how easy it is to leverage that sort of technology.

<comment><AUTHOR> I had the same thoughts about mobile phone app implementation but there would no doubt be some large issues to overcome. Not all phones can have apps, etc, not everyone has bluetooth..

<comment><USER4> Phone apps have a few problems:

* How many models and manufacturers and OS revisions for phones are there? Do you have time to create and support 80 versions of your application?

* No phone can communicate peer-to-peer, so you are reliant on the carrier network or if you are lucky, 802.11abgn access.

* Phones are locked down. Even the glorious iPhone has a direct reference forbidding peer-to-peer applications in the developer docs.

* Even if all of the above was feasible, extremely few people would install your application on their phone. Sorry.

All the above hassle leads to companies such as Brightkite saying "screw it, we're going to use SMS and webpages to be dodgeball++"

</comment></comment></comment><comment><AUTHOR> I posted this here to ask - can a hardware-aided web app really take off? Seems like it's just a limitation, regardless of application. Imagine if your OpenID account asked you for a 6-digit RSA key token everytime you logged in? Okay I take that back, that'd be pretty neat.

</comment><comment><USER4> We're doing almost the same thing (except better).

We considered going with a no-screen-sync-at-your-computer model, but it's not useful for very much.

The version we came up with enables arbitrary direct peer-to-peer communication within a few hundred feet (or larger distances with our mesh routing). We gave it a handheld form-factor with its own screen and network connectivity too.

We're working on driving the price down and making it as small as possible but still usable.

<comment><AUTHOR> do you have a company name that's public?

<comment><USER4> We are genetic gestures, inc (as is in my profile). Looks like I should get around to updating the website with details of our upcoming product.</comment></comment></comment>


This Is Your Brain on Silence (2014) - <AUTHOR> http://nautil.us/issue/38/noise/this-is-your-brain-on-silence-rp <comment><USER2> I can't live in noisy towns all time. Sometimes my head felt like it was about to explode. I need to make time for myself every week. But it is quite difficult because of baby cry, car signals or night lusty singing of my neighborhoods. That's how my city lives. And I know that I'm not alone who needs in silence. That why it can be selling. We take houses far away from cities, walk in quiet and picturesque places or scale the peak of the mountain. All these efforts are focused on loneliness. When we'll have lost in our thought and meditate a little.</comment>