Free Pascal Compiler Version 3.0.0 - <AUTHOR> http://www.getlazarus.org/release/ <comment><USER5> Pascal falls into an unfortunate niche:

\- It's nowhere near new and trendy enough to have a bandwagon (e.g. Node, Go, Rust)

\- It's not obscure enough to have a retro-cool following (e.g. Tcl, Forth)

\- It doesn't blaze any theoretical trails in computer science today (e.g. Haskell)

\- It's not associated with any evil corporate entity, allowing you to praise it "ironically" (e.g. C#)

However, I find it to be a really pleasant language to work with, at least for side projects and the occasional cross-platform GUI app. It's a clean, easy- to-learn imperative style throwback... with respectable support for object- orientation ( _NOTE: Everything in this comment is directed toward Free Pascal 's support for Delphi-compatible Object Pascal. I haven't written old school non-OO Pascal since the 1980's_).

In a nutshell... the language syntax feels like Golang dropped its curly braces, and finally added generics!

I believe that the Lazarus IDE and GUI libary for Free Pascal ([http://www.lazarus-ide.org](http://www.lazarus-ide.org)) is by far the most compelling option out there for this common use case:

\- You want to write a desktop GUI application, supporting OSX, Windows, and Linux from the same codebase.

\- You strongly prefer static-typed languages. You don't want to cobble together a GTK app with Python or Ruby, and you REALLY don't want to embed three-quarters of Chrome and have to write your app in HTML and JavaScript.

\- You want AOT compilation down to a standalone executable. You don't want to depend on the target machines having a Java VM or Mono installed. You don't want to wait another several years for Java AOT or .NET Native to become serious reality, and you don't want to deal with the flakiness of Mono's "mkbundle" tool.

\- Life's too short to install a couple gigabytes worth of Qt, or try to make wxWidgets build properly on a Windows machine, and become proficient with C++.

If at least a few of the bullet-points above apply to you, then Free Pascal and Lazarus are definitely worth a look!

<comment><USER6> >> \- It doesn't blaze any theoretical trails in computer science today (e.g. Haskell)

Which is probably a good thing. As much I'm fascinating by functional programming (type system, lambda calculus, etc etc), I find it kinda difficult to program on :p

<comment><USER7> You get to know another paradigm which is very important. Object orientation already evolved into an ideology. So it's very good to get to know something so totally different.

</comment></comment></comment><comment><USER8> In China, Pascal is a very popular language for high school beginners of Olympiad in Informatics (see [http://www.ioinformatics.org/](http://www.ioinformatics.org/) for the international competition). And it's probably the most used language in the provincial level competition, National Olympiad in Informatics in Province. Yet those who reach the national level will likely switch to C++ for many reasons (STL, performance, etc.).

I myself started programming in this way. And even now I'm glad that Pascal was my first language. It's an excellent educational language, which was its original purpose. It doesn't have "absurd" syntax; keywords are long but straightforward; and its type system is static and strong, which I believe is something that a serious programmer has to master.

By the way, although probably not as powerful as Delphi (especially in terms of widgets), Lazarus will give you a taste of the Rapid Application Development, which Delphi was famous for.

<comment><USER9> Same in Lithuania.

Everyone who intends to do a degree in computer science is taught Pascal, olympiads are in Pascal/C++.

Whether it's a good language to teach highschoolers (students in general, not preparing for olympiads) or not, I am not so sure. On one hand, yeah, it's pretty simple.

On other hand, I'd lean towards Python simply because it's more widespread in industry, as a result you have tons of well documented libraries for pretty much everything a highschooler will care about. Therefore, making it much easier to develop something useful, which results in higher motivation. And REPL, ipython notebooks are really neat for learning.

But that's the theory. In real life, you have loads of teachers who know only the very basics of Pascal and teaching them a new language might be... challenging (I've witnessed enough teachers struggling with basics of Pascal).

So all in all, it seems like Pascal is a reasonable option.

<comment><USER10> To be honest they should teach JavaScript instead of Python in highschools. Websites ('web apps'..) are a big deal in, atleast, teenager's life, so they could atleast install Tampermonkey plugin and script some functionality for their favorite websites.

Meanwhile after learning python if you won't work in IT is useless. Plus requirement to install Python, include python in PATH and use CMD to launch .py scripts is a detterant, while with Javascript you just press F12 in browser and bam - development environment ready and lets you to manipulate open web page, which is also more exciting than console applications.

<comment><USER11> That's a very Windows-centric view of the world. Macs are increasing popular in education and come with Python pre-installed. Linux comes with Python pre- installed. iOS / Android require installing an app to do local programming either way, and I'd argue the Python writing apps are better than their javascript writing apps.

Microsoft should fix the "bug" that its operating system is missing interpreters for Perl, Python, etc... (Oddly enough, this list also includes javascript!)

<comment><USER12> Windows actually has a Javascript (well, the JScript dialect of ECMAScript) interpreter out of the box in the form of Windows Script Host. It also supports VBScript. You can play with it on the command line using the cscript command.

<comment><USER13> The most interesting part is that you can script applications with it. I recall writing a script that played Google's running game during the Olympics a while back when I was learning to program.

</comment></comment></comment></comment></comment></comment><comment><USER14> For people who are going to ask "Do people still use pascal?", long story short-> yes they do, and Free Pascal Compiler is not only the traditional Pascal that we used to lean in school, it's also an Object Pascal compiler, and has many many libraries for modern programming :)) I started learning programming with Pascal when I was a child, it helped me to understand many things, lately I had a look at Python, which I love it a lot, but when I took a look back at Pascal (Object Pascal this time) I understood that everyone should start programming with Object Pascal and learn about the basics (then use what ever you want, .NET, Java, C++, Ada, etc). BUT I found out about this amazing language Oberon-2, and I should say that in schools we should move not to Python/Java, but to Oberon-2 (it's again a Wirthian language). Sorry for my bad English, just wanted to share my view, and I'd like also to say that (IMHO) making GUI programs using Lazarus is much easier than, well, anything else :))

<comment><USER15> If you want to dive into the world of Oberon you should check the PDFs available at Niklaus Wirth web site and AOS.

[http://www.ethoberon.ethz.ch/books.html](http://www.ethoberon.ethz.ch/books.html)

[http://www.ocp.inf.ethz.ch/wiki/Documentation/Front](http://www.ocp.inf.ethz.ch/wiki/Documentation/Front)

You can also have a look how the OS used at ETHZ were like:

[http://progtools.org/article.php?name=oberon&section=compile...](http://progtools.org/article.php?name=oberon&section=compilers&type=tutorial)

We already had it quite good on the PC with Turbo Pascal and later Delphi, which is why I find a bit sad that it took us almost 20 years to get .NET Native, instead of it being the default toolchain from day one.

<comment><USER16> To be fair, most of the benchmarks I've seen from end-users don't have .NET Native outperforming the CLR except in huge number crunching situations[1,2]. As one would imagine in those scenarios using your standard stack of C++ with the GNU GSL[3] (which includes your BLAS, GMP, PDE, and standard lin. alg. stuff) is still pretty much king with MPL (based on MPI) with some (often modest, sometimes incredible OpenCL gains). In numerical methods, Fortran w/ a modern Intel MKL and MPI still reign for SIMD. I guess what I'm saying is, for your day to day Rapid App Dev (which Borland Delphi + the VCL was absolutely _king_ at up until MS put out Lightswitch) you weren't really crunching away. Likewise, especially with modern JIT'ing if you _do_ crunch with a language that hit's the CLR hard, you still get performance similar to .NET Native (contrary to MS claims of "performance similar to C++). I've been a MS advocate for ages and admire what they've been doing since ~2005 at MSR all the way to the production cash cows[MS SQL Standard gives you a ~LOT~ of bang for your buck with SSDT/SSAS/SSRS] (check my 8 year post history - <USER2> everyone was __rails rails! iOS! MBP!! __I was silently C#3 'ing along); I say all this as a long preface to pose this question - what exactly did .NET Native bring that presumably made it catch up to TP/Delphi?

[1] [http://code4k.blogspot.com/2014/06/micro-benchmarking-net- na...](http://code4k.blogspot.com/2014/06/micro-benchmarking-net-native-and- ryujit.html) [2] [https://dzone.com/articles/net-native-performance- and](https://dzone.com/articles/net-native-performance-and) [3] [http://www.gnu.org/software/gsl/](http://www.gnu.org/software/gsl/)

<comment><USER15> 30 years ago I was discussing these arguments between those using Assembly and those that dared to use C, Pascal, Basic and Modula-2 in home computers.

20 years ago I was discussing these arguments between those using C, Turbo Pascal and those that dared to use C++, Object Pascal features in Turbo Pascal/Delphi.

So I still envision the day managed languages get to the next discussion cycle.

> what exactly did .NET Native bring that presumably made it catch up to > TP/Delphi?

Static binaries, integration with the Visual C++ backed (it is not used in JIT/RyuJIT/NGEN).

Pushing C# for more use cases where they still make use of C++. If you look at the C# 7 roadmap there are still more features coming into that direction.

One of the reasons they made .NET Native, which came from Singularity actually, was that the C++/CX uptake is not take big. Most developers only reach out to C++/CX instead of C#/VB.NET for the APIs not exposed to .NET, like DirectX.

I was a big fan of TP and eventually made the jump to C++, which is also very dear to my heart.

But I would rather have a full stack language that offers me the safety of Algol languages, without C underpinnings.

With .NET Native and the integration of System C# features into .NET, it is becoming quite appealing.

<comment><USER16> I apologize if I came off snarky; my intention wasn't to be argumentative. All of my questions were posed with genuine curiosity rather than with the passive-aggressive tone I may have unintentionally conveyed. I certainly am not in that group of language warriors. I don't have any allegiances to languages, platforms, styles of languages, or even architectures (I'll use a Harvard based over von Neumann if it gets the job done better).

Most of the people I know choosing C++ over C# are using it for the ability to get soft-real-time guarantees w/r/t performance. E.g. the gaming development guys have a "this next framebuffer ~must~ be done within 16.6 or 33.3 ms" or "I need a deterministic 'buy/sell/hold/not-enough-information-to-say-with-a- high-confidence-factor, defer-to-safety-net-policy'". At CppCon '15 most of the people I spoke to fell into a similar camp. I don't think I even spoke with one engineer who's day job involved using C++ because <insert CLR language here> failed to have interop capabilities w/ DX or what not. Of course, those who attend conferences will bias in a certain way so I'm not making an appeal to that demographic as in any way representative of the C++ user-body.

My assertion was simply : those who are using C++ are using it out of the benefits of predictable behavior. They can't afford that situaiton of: your GC won't decide this is the appropriate time to move all those marked as Gen0->1 over and oh by the way they're all a few bits big and fragmented so no pre- fetching help for you. What makes those guys different from the guys who were ASM guys who refused to use C back in the day is that the compiler eventually outperformed the hand-rolled stuff - but even then the ASM guys were steadfast. You make some real interesting points though and you're right - <USER3> haven't looked at the C#7 roadmap. Hell, to be honest I haven't even written enough code to take advantage of Roslyn's introspective capabilities. Thanks though, insightful comment as always. (Please keep on posting and don't disappear like the good posters of yesteryear (edw519, grellas, etc)).

<comment><USER17> _(Please keep on posting and don 't disappear like the good posters of yesteryear (edw519, grellas, etc))_

Thanks, Andrew. I didn't disappear. Just spending more time building and less time posting.

</comment></comment></comment></comment></comment></comment><comment><USER18> For a big, modern, highly successful product written in Pascal (Delphi), see FL Studio. A high performance entry-level DAW, complete with a fully scalable vector based UI.

[https://www.image-line.com/flstudio/](https://www.image-line.com/flstudio/)

They even started porting in to OS X, which was problematic before as they had to wait for Pascal on OS X to get up to par -- it's now in beta stage (available for end-user testing), and should be released sometime around late next year.

Details here: [https://support.image- line.com/knowledgebase/base.php?ans=11...](https://support.image- line.com/knowledgebase/base.php?ans=114)

(The in-development OS X version is with fully NATIVE Pascal code, NOT to be confused with their earlier attempt to ship the PC version + WINE libraries).

<comment><USER19> Now that is impressive. I had absolutely no idea Pascal was so powerful!

<comment><USER18> Before C caught on fully in the mid-80s, for lots of commercial "powerful" apps, Pascal was a common choice. And in a lesser degree it continued to be, with Delphi et al, until late nineties, although loosing ground fast.

It's as low level as C/C++, can inline assembly easily, and offers the same, or even more, functionality out of the box. And back in the day it had excellent compilers too.

Actually, in the eighties, Mac OS used to be written in Pascal. And TeX was written in Pascal too, by Knuth. A more modern example of an app would be Skype (Delphi Pascal).

</comment></comment></comment><comment><USER20> Pascal always takes me down memory lane...to the very young me, family just got the first PC. I wrote the first "programs" in good old QBasic but that couldn't create executable files so I bought a random book on Pascal (yellow book, something with 7.0?) I saw in a store which came with a floppy that had a compiler (and thus allowed me to create the magical .exe files). Thinking about this makes me smile for multiple reasons (one of which is that back then for me computers were exclusively Microsoft OS based). The program that I wanted to write? A password protection for the new PC (loaded from autoexec). Highly insecure by design but I was pretty happy to get it working :P The other genius idea from that era was randomly outputting sound (length, frequency etc.). My young self figured that I only had to let the program run for a while until some cool sound effects would be found...well the result was rather unpleasant :D

One of the more enlightening moments of my early development as a programmer was looking at assembler output for Pascal vs. C. It never occurred to me before that C-style is just one way of doing it and I had assumed that parameters are always right to left because "that's how it is" :) [must have been around the time when the Phrack with "Smashing the Stack for Fun and Profit" was released as that was when I got interested in assembly]

<comment><USER21> I have almost exactly the same memories of Pascal. Being a kid tinkering with QBasic (and later QuickBasic that also created the mystical executables).

It was when I started tinkering with computer graphics I realized that QBasic was not that performant and stumbled upon Pascal. It was in Borland Pascal I first learned about pointers, vectors, memory management etc.

<comment><USER12> Funny, that's exactly how I moved from Basic to Pascal... And eventually to C since I realized that my awful self-implemented 2d graphics library would never have the performance nor the set of features of for example the Allegro game programming library.

I also tinkered a lot in Delphi after that and I'd really like to give Lazarus a try now that I'm an adult who actually knows how to program.

</comment></comment></comment><comment><USER22> I've been using Lazarus 2.6 for a free time project since August as I've used Delphi 1.0 in the early nineties and I wanted to see if this was any good.

I've been blow away with it, it's Delphi brought from the dead :)

It has been a real pleasure to use and I've come to appreciate the productivity that it brings, as this open source IDE is on par with what I remembered from early Delphi versions and, amazingly, I feel this is the cleanest way to target mac and linux GUI apps today (YMMV).

It's a shame that there is no support on SWIG for freepascal but it will get there eventually.

So, kudos to the freepascal and lazarus teams and thank you very, very much!

<comment><USER23> ...Delphi's not dead - <USER4> [http://www.embarcadero.com/products/delphi](http://www.embarcadero.com/products/delphi), now it's cross platform, modern language features - generics, lambdas etc etc. Writing a Mac app in it right now :-)

<comment><USER24> "cross platform" to whatever they feel like. I remember in college my teacher bought the new version for that. Turned out "Native Android support" was phonegap which isn't native.

<comment><USER25> Absolutely false:

[http://blog.marcocantu.com/blog/compiling_android_apps_delph...](http://blog.marcocantu.com/blog/compiling_android_apps_delphi.html)

<comment><USER24> College was before 2013 and I haven't looked at it since.

</comment></comment></comment></comment></comment><comment><USER26> The Lazarus IDE and GUI component library is simply fantastic, and the most productive native cross-platform GUI toolkit for the big three desktop OSes (OS X/Windows/Linux) that you'll probably find.

We needed small helper tool developed as a cross platform desktop app at the university recently, and had an extremely rewarding experience developing it in Lazarus/FPC:

After building the app on Ubuntu, I opened my Windows virtual machine, imported the project, and pressed "Run", and I had a working native windows application, without a single change! (Only on OS/X, there were some missing import of cthreads or something, that needed to be added, amounting to 1LOC).

Based on this, today, to anyone developing native cross-platform desktop apps, my number 1 recommendation is Lazarus.

Btw, I find the new JVM and Dalvik [1] and Android [2] targets very very interesting!

[1] [http://wiki.freepascal.org/FPC_New_Features_3.0#Support_for_...](http://wiki.freepascal.org/FPC_New_Features_3.0#Support_for_the_Java_Virtual_Machine_and_Dalvik_targets)

[2] [http://wiki.freepascal.org/FPC_New_Features_3.0#Support_for_...](http://wiki.freepascal.org/FPC_New_Features_3.0#Support_for_the_Android_target)

</comment><comment><USER27> I think it's cool that a Pascal extension was one of the first to appear for Visual Studio Code:

[https://marketplace.visualstudio.com/items/Wosi.omnipascal](https://marketplace.visualstudio.com/items/Wosi.omnipascal)

</comment><comment><USER28> It's strange, the more new languages I learn, and the more complexity things like C++ acquire, the more I'm starting to feel like we lost something with simple straightforward languages like pascal and even C

<comment><USER29> C isn't simple. It has few parts, yes, but it requires you to combine them in ghastly ways. It also has the worst typing I can imagine.

Try using calloc, then you can tell me that C is simple.

</comment></comment><comment><USER30> Borland's Delphi (now Embarcadaro) was a platform that made apps faster than C/C++, easier to read, less crashes, less undefined behavior, easy to extend, and so on. The properties of Pascal made it the closest thing to an ideal language for future-proof apps back then. I predicted that, if Borland failed, it would be straight-forward enough to create a replacement stack due to Pascal's focus on simplicity. It was good to see each iteration of Free Pascal do exactly that.

Not sure if I'd recommend Pascal today given whats available. It's still one of easiest to pick up and should be effectively future-proof. Way better than ending up with COBOL, C, etc codebases. Maybe those will be its legacy. Another part is Pascal/P showing how to do portability "like a boss." :)

</comment><comment><USER24> Free Pascal in my limited experience has been ironically better than the commercial Delphi.

FPC has the ability to read arrow keys from a CLI, Delphi required some awful lump of Win32 code. Oh and FPC actually generated numbers random enough to make a simple game of Tic Tac To work :')

(Delphi did not, making the game unplayable without adding my own version of a random number generator)

</comment><comment><USER31> Do people code in Pascal still?! I remember it from years ago in high school and it seemed like it was already ancient then.

Nothing against the language itself, it was straightforward and easy to learn on. Just surprised to see a new compiler for it coming out.

<comment><USER32> I used it a few months ago to develop some HPC code for analyzing the timelines of a cosmological instrument (ESA Planck/LFI), and I was quite happy with the result. I even wrote a blog post about my experience ([http://ziotom78.blogspot.fr/2015/01/lfi-data-analysis- with-f...](http://ziotom78.blogspot.fr/2015/01/lfi-data-analysis-with- fpc.html)).

<comment><USER25> Great blog post. One point, though: the reason that you got a segfault with your FillChar on the array isn't because you used a dynamic array instead of static array. Dynamic arrays are just like pointers in terms of how the compiler handles them (the element count is a negative offset from the actual start of the elements, and there are other things like reference counts there also). The reason you got the segfault is because FillChar operates _directly_ on the passed variable. In other words, your FillChar zeroed out the first 4 bytes of the pointer (not good) and then kept right on zeroing out memory that didn't belong to it (definitely not good). The reason the:

array[0]

notation worked is because subscript references are equivalent to referencing the first element in the array like a variable. Therefore the FillChar started from there and properly filled the rest of the array.

<comment><USER32> Many thanks for this clarification! I have added a link to your explanation at the end of my post.

</comment></comment></comment></comment><comment><USER33> If only they would embrace modern code managing methods, e.g. Github to make contributing easier. And, maybe, divide the 'pascal universe' in easier digesteable parts: compiler, non-visual core code, core ui components, additional code, Ide. Try to unify documentation, language style etc. Use Markdown (or reStructuredText) with Github documentation projects. Now everything looks so dated. - But I don't complain, great that people still work on Pascal, since decades, and if it works for them, fine. - Anyway, congratulations and thanks :-)

</comment><comment><USER34> Seriously old school:

> Powerful user friendly Wordstar compatible multi file editor

Plus OS/2 Warp and DOS compatibility.

I was a huge fan of Turbo Pascal back in the day. Before that it was BASICA and I spent days tracking down bugs by spreading printouts on the floor and tracing my GOTOs. Then Dad brought home Turbo, I tried it out by writing Conway's Life, and it ran without bugs on the first successful compile. Never looked back.

Based on some of the other comments here, it might be worth trying out again!

</comment><comment><USER35> In Brazil, one of the big universities at the south of the country teaches Pascal as the first language in the Computer Science course. And we use the compiler Free Pascal there. The language is very didactic and still good to beginners. The fact that Pascal isn't widely used is counted as a bonus, because this will force you to learn another language as soon as you get approved in the subject that teaches programming and basic algorithms.

</comment><comment><USER36> My first foray into "real" PC programming was done in via Kahn/Borland's fairly awesome Turbo Pascal compiler back in the the early 80's for IBM's DOS OS.

Pascal introduced me to pointers, free-form editing (I came from interpreted BASIC where line numbers and such forced format) and good CS techniques. I built a true circular linked-list as one of my first projects.

I can remember at the time being awed at how fast the compiled executables ran on the PC, and quickly started writing Blackjack and Poker simulations using the language.

It's good to see efforts in releasing this...Pascal has been of course outshined by Python, Go etc etc but it's always fun to trip down memory lane.

</comment><comment><USER6> Glad to hear FPC is still well alive and kicking.

BTW, AFAIK Wirth's work is not limited to Pascal (there are Oberon and Modula, for example). Wonder why those languages don't gain as much exposure as Pascal does?

<comment><USER37> It's not like Pascal has an insane amount of exposure, I fail to remember any news here that _wasn 't_ about a new FPC/Lazarus release. Whereas the Oberon/Modula compiler space seems pretty defunct. And sadly, the same is true for Modula-3, the language that could've been a better Java/C#...

The only other language from the family that one reads about here (very) occasionally is Ada.

Unless one counts Go as some kind of Algol68-Ratfor.

</comment></comment><comment><USER38> The crt and graph libraries in Pascal are awesome and I guess the Turbo Pascal compiler as well. In the span of two weeks I went from non even being aware of the concept of "programming" to writing a platformer with only basic understanding of loops, if/switch conditions and procedures. I don't think it gets easier than that as far as imperative programming goes. It's kind of like the scheme of imperative languages.

</comment><comment><USER39> I've never used FPC, but my interactions with/what I've heard from a couple of its devs about their engineering decisions consistently leads me to think that they have high standards, so I have a lot of respect for the project!

</comment><comment><USER40> Good times.

I often wondered if there is an OSS project/example that just aims to run the same code on as may platforms as possible..

You know an example? Please share here. :)

My followup question would be if they test regressions for all the target platforms manually?

</comment><comment><USER7> Best news I heard for a long time. 3.0 is almost groundbreaking especially for those designing distributed but lightweight architectures just to mention one advantage among many you get.

</comment><comment><USER41> I am currently working on a project that I will be using at home between my laptop and (not so powerful) Raspberry PI. I am well versed in C and this project is written in it, with very minimal dependencies (currently talloc, libbsd and makeheaders). I am trying to keep resource usage at a bare minimum on the server side (Raspberry PI) for obvious reasons.

I've never worked with Pascal, and I've been looking for an alternative to C that solves some of the issues I'm having without sacrificing too many of its advantages. Since fpc is available for armv6, I am wondering if someone could give me advice on whether moving this project to Pascal would be beneficial, especially compared to the following points:

\- A proper module system, without having to keep .h and .c files in sync when the interfaces aren't stable yet. I am currently using makeheaders to make things less annoying for me.

\- Compiler warnings, cppcheck and scan-build offer me great feedback. Emacs integration of these tools is priceless.

\- The ability to do things like recv() into the middle of a buffer. That is just too efficient to let go of. I think this is something many people overlook when comparing C to other programming languages, many times you can turn O(2n) into O(n) by taking advantage of this. Not theoretically different, but in practice it can pay off.

\- Emacs integration and support. Nice to have would be support for auto- completion, static analysis, etc...

\- Documentation. Man 2, 3 and 3p are priceless. Emacs man integration is great.

\- Number types that are exactly the same across architectures. eg, I've had issues because off_t was ulong on one machine and ulonglong on the other.

\- Memory management, error handling and everything you need to do that has nothing to do with the task at hand. It gets old quickly.

\- Optionally high-level, I am comfortable working with pointers and addressing memory directly, but sometimes I look for elegance where I know performance is not going to be affected _too much_ (ie, the trade-off is acceptable). This also means that when I'm working with higher-level constructs, I'd like to have easy access to the inner workings so that I can make such a judgement myself (either through documentation or other means).

\- I don't care too much about compilation speed.

\- Easy semantics and simplicity of things. I really don't think I can put that into words, it's better understood through experience. But this is one of the biggest reasons I stick with C rather than C++ or Rust.

\- The availability of a widely approved guide that doesn't go into the very basics of programming to explain the language (maybe some sort of Pascal for C people kind of thing).

\- There are probably a few more points I could talk about but can't think of right now. I could write them down some time later if anyone is interested.

Thank you in advance, I would really appreciate if anybody can help me with these points, I'm looking for new adventures :)

<comment><USER42> Pascal will cover a few of your points and move you sideways on others. For example you do have a required forward declaration but it's all in a single module file. FPC is a good compiler and should cover most concerns around tooling. And it's all been documented in depth at some point, although you might be studying from pretty old sources.

But because it remains a pretty simple language, it's not going to have so many nifty time saver features. If you're going for that you might be better served with a "new and hyped" language like D or Nim - those languages aren't as convoluted as C++ but they are still complex.

</comment></comment><comment><USER43> The amount of time's I've said "No, that's Haskell with an H!". First world problems I guess :-)

</comment><comment><USER44> Are there any good resources for someone who already knows how to code to get productive with (Free) Pascal quickly?

<comment><USER25> My recommendation would be to download/install Lazarus, even if you don't want to write a GUI application:

[http://www.lazarus-ide.org/](http://www.lazarus-ide.org/)

You can pop into the IDE and start coding/compiling/running things right away.

I haven't seen the FP/Lazarus docs lately, so I can't comment on their quality, but this is a good resource for getting up to speed with Delphi, and a lot of it is exactly the same in FP/Lazarus:

[http://www.delphibasics.co.uk/index.html](http://www.delphibasics.co.uk/index.html)

</comment></comment><comment><USER45> Pattern background. Is this page from 1998?

I used to love Pascal, but as it has no decent hash tables, regexes and dynamic size vectors, I can't take it seriously any more.

<comment><USER46> > dynamic size vectors

Do you mean run-time sized arrays?

[http://wiki.freepascal.org/Dynamic_array](http://wiki.freepascal.org/Dynamic_array)

> regexes

Seems a bit odd to complain about that missing as a language feature of a pretty low-level language, however:

[https://github.com/BeRo1985/flre](https://github.com/BeRo1985/flre) or: [http://regexpstudio.com/TRegExpr/Help/About.html](http://regexpstudio.com/TRegExpr/Help/About.html)

Might work?

> hash tables

[http://wiki.freepascal.org/Data_Structures,_Containers,_Coll...](http://wiki.freepascal.org/Data_Structures,_Containers,_Collections) ?</comment></comment>


Caching object code - <AUTHOR> http://blog.pyston.org/2015/07/14/caching-object-code/ <comment><USER2> I wish they targeted py3 from the beginning, by the time they get it usable to the mainstream developer (if...) py2 will be lagging a lot of features. That kinda sucks :/

<comment><USER3> Dropbox is py2 only (along with 80% of Python users as a whole). Business needs win out in this case.

<comment><USER4> If "business needs" was a real consideration, they'd just contribute to PyPy instead of writing a new implementation.

They have yet to present strong case for this project.

<comment> rudi-c Could you explain why you think contributing to PyPy would better achieve the goal of replacing the Python implementation in Dropbox's codebase?

<comment><USER4> Because it's mature, fast and proven and has good comparability (Achilles hill: C extension support + numpy) , and it would benefit a lot from a high- profile contributor.

I suspect that Dropbox has a bunch of custom C extension code (Pyston puts C extension support as a high priority), which may have been a contributing factor here.</comment></comment></comment></comment></comment>


Don't complicate your billing - <AUTHOR> http://cooking.fourbeansoup.com/post/265425704/dont-complicate-your-billing <comment><USER2> Don't write your own billing system. :)

To elaborate, these recommendations are backwards. They're _business decisions_ that are being influenced by technical considerations for a non- core product. Users might prefer to be billed on the same day every month than every 30 days. Choosing not to prorate in favor of waiting 'til the next cycle is basically throwing money away. Relying on the gateway to handle refunds takes a crucial part of your data out of the system that otherwise reports on your money. Freemium vs free trials isn't a decision anyone should make based on the capabilities of their billing systems.

Billing is a pain in the ass and it's not a core feature for most companies. And unlike most things, it's reasonably uniform between companies, making third party billing packages fantastically useful.

<comment><USER3> Meant to hit the up arrow. Hit the down arrow by accident. My apologies.

I agree completely. There are now so many subscription billing providers, writing your own, for such a small service none the less, is a big waste of time.

</comment></comment><comment><USER4> I wrote the billing system for onehub.com, and we had to deal with each issue mentioned in this article. ActiveSupport makes some of the date problems melt away, but we ended up implementing pro-rated upgrades and downgrades, free trials, and discounts.

There are some _super_ fun edge cases: \- Handling the case when someone upgrades or downgrades after we've billed three days in advance for the next month's service

\- Handling the case when someone downgrades during a free trial (you don't want to pro-rate money back to their account that they never paid in the first place)

If I had to do it all over again, I would probably use one of the services that handles this exclusively. Unfortunately, when we started out, none were available.

</comment><comment><USER5> Having written a billing system that relied on a third-party recurring billing solution (which I later ripped out), I would advocate rolling your own subscription system for anything but the simplest case. The article has some suggestions on how to keep it simple:

1\. Charge everyone on the 1st of each month. 2\. Keep refunds out of your system 3\. Run the billing as a batch job based off of cron

Once you've made those decisions, writing a subscription service really isn't very difficult.

It's a lot easier than dealing with multiple API calls to modify a user's subscription, any one of which may fail _.

Plus you don't have to deal with polling the recurring billing service to find out a transaction's status nor the race conditions inherent in such a setup.

Finally, when you want to get more complicated and deal with promotional periods, billing on different dates for different customers, etc., you will find that it's much easier to modify your own code to fit your business requirements than it is to retrofit your interface with a third-party (not to mention any possible data migration issues).

_ This could be solved by an excellent recurring billing API, but most suck.

<comment><USER6> As mentioned in the other post linked below, I'm the product manager for the FreshBooks API. We are extremely aware there are many problems with the recurring billing market right now, and we are currently committed to doing a better job serving it. We are committed painless billing for web apps too.

If you can please forgive the shilling, I'm very interested in hearing what sucks about the recurring billing APIs on the market and specifically what sucks about ours (<http://developers.freshbooks.com>). I'm sure our competitors in the market would also be interested so we can all do a better job.

This isn't so much about us, but letting you know that at least one vendor is here listening, and maybe others.

Thanks for anything you can throw at me, good or bad.

(And you can't hurt my feelings except by being quiet. I _need_ to know.)

 _NOTE_ I rewrote this comment to be less self-conscious.

<comment><USER2> My information may be out-dated, but Freshbooks seemed like it wouldn't have been a good fit for subscription billing back when we were looking.

Basically, it wasn't possible to create a signup form that resulted in a recurring invoice with credit card data attached. So you'd end up with janky situations where you're either invoicing people and waiting for them to pay, or charging them through another gateway, then hoping they enter payment information before the next cycle.

There's also no callback mechanism from Freshbooks to an outside site, making it extremely difficult to keep track of expiring subscriptions/cancellations/etc.

I would love, love, love for Freshbooks to also be a drop in subscription billing platform. It seems like most of the bits are there, but there's no guiding force trying to make sure it works well for that purpose.

<comment><USER6> Thanks for your help!

Callbacks and credit cards are the top two problems with the existing API. At least callbacks are a problem with a clear solution (HTTP postback, aka webhooks).

As for credit cards through the API, we debate about that one extensively. The concern we have is that ideally, our customers would prefer not to touch credit cards because of the liability of credit cart theft. That's why for now we take on the risk of managing credit cards by letting you punt the customer to our invoice page.

What's preferable to you?

1\. Never touching the credit card ever, but redirecting the customer to a good payment experience

2\. Taking the credit card on your own sign up form and sending it through our API

3\. Taking the credit card through a FreshBooks https iframe on your website

Or any other solutions?

<comment><USER2> I'd prefer to have both #1 and #2, actually. #1 for quick implementation, #2 for later when it's worth controlling the signup flow more granularly.

<comment><USER6> Thanks. That's actually very helpful.

</comment></comment></comment></comment></comment></comment><comment><USER7> Arithmetically challenged - "The biggest difference is that going every 30 days means you get an extra payment every 10 years… Yes, 10 years, shrug." It's 6 years. If you're going to emphasize something in your writing, for example by repeating it, you really ought to get it right.

</comment><comment><USER8> Interesting to see this in contrast to <http://news.ycombinator.com/item?id=968943></comment>


Beyond Machine Learning: Capturing Cause-And-Effect Relationships - <AUTHOR> https://blogs.wsj.com/cio/2019/01/11/beyond-machine-learning-capturing-cause-and-effect-relationships/ <comment><USER2> exactly, i refer to this myself as A.L. or ideally artificial sentience. [A.S] with the proviso: the script or algorithm that simply parses input against a database is not intelligent, or smart, it is a parser by another name. when a {insert term} can conduct thought experiments and manipulate the environment to compare to the thought experiment, that is , IMO an artificial learning. when a [system] expresses forbodings about being turned off, or upgraded this is looking like A.S. {artificial sentience]</comment>


The Saddest Map In America - <AUTHOR> http://dish.andrewsullivan.com/2013/02/21/the-saddest-map-in-america/ <comment><USER2> I never understood the concept of missed connections on craigslist. Honestly, what's the chance of two people meeting each other, forgetting to swap numbers, and then both going onto craigslist to search/post in the missed connections category?

It just seems like such an overwhelming statistical improbability that such a missed connection would ever be fulfilled through craigslist, I don't see why anyone would even bother posting.

<comment><USER3> I posted a missed connection once, and about 2 hours later got a reply from a person who was in the exact same circumstances (ie same time, same place, same details about furtive glances) - but she was looking at some other dude who was there and thought I was him. At the same time, I actually wasn't looking at her, but at another girl who was at the same event.

So it fizzled cause we weren't looking for, but looking "past" each other.

Moments of extreme awkwardness after flirting madly mutually verifying locational/timing/happenstance details followed by absolutely wrong physical descriptions of each other. Yah that conversation dried up fast.

I suppose it could have been a romantic start to some kinda relationship, but that ship sunk before it even had a chance.

<comment><USER4> You absolutely should have gone on a date. Think of it this way, if by some chance it worked out you'd probably have the best "how we met" story of your entire social circle.

<comment><USER5> I feel that having a good "how we met" story is a big boost for a potential relationship. At least early on, when you have nothing else to go on. It says, "the odds of this meeting were low; this isn't a thing that happens every day, therefore it's more valuable".

</comment></comment></comment></comment><comment><USER6> Why is this sad? Because Walmart is the most cited location?

Seems great to me. People are reaching out. Would be more depressing if they just decided to not do anything about it.

Plus this only has relevance to craigslist users. Seems like a fun conversation piece but certainly isn't the anything-est anything in America.

<comment><USER7> _It is, in some ways, a sign of where we are now most likely to see people we don't know in various parts of the country._

One could say the places listed are sad. "What ever happened to <insert social setting>?". You could take it as evidence that we are becoming less social, and withdrawing into our own shells.

 _It's also a sign of male loneliness or romance: men seeking to find a possible love-mate outnumber women 86 – 14._

How is this not sad?

<comment><USER8> >>It's also a sign of male loneliness or romance: men seeking to find a possible love-mate outnumber women 86 – 14.

>How is this not sad?

That's probably more a side effect of socialization that teaches men to take the active role.

<comment><USER9> Or, the result of Feminism, which teaches women to take the active role.

<comment><USER10> Feminism doesn't teach women to take the active role. It teaches them to hate men.

To be clear, I think women should be treated equally under the law. I'm a big supporter of natural rights. Feminists are not big supporters of natural rights. They are generally leftists, and the truly intellectually dedicated members are generally far leftists.

<comment><USER11> Feminists are generally leftist and the more intellectual the more progressive/far left, generally speaking.

However I know some women that are intellectually dedicated feminists and they don't hate men. They love men. They hate the patriarchy.

<comment><USER10> There is no patriarchy. This is a good example of the reality distortion that happens in feminism.

Yes, women may have a slightly harder time rising in a company. Just like who is less attractive, or less good at socializing, or isn't a fan of the same sports team as others in the company.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Indiana's most cited location for a missed connection is "at home." How does that make sense?

<comment><USER13> I'm hoping they are frugal and have parties with non-family members at their homes. Maybe a barbecue where neighbours invite their friends... and they invite friends of friends...

<comment><USER14> As someone who lives in Indiana, this is probably it. Big gatherings usually end up with a few people that the host doesn't know (of course, that's true most places).

</comment></comment></comment><comment><USER15> There's a serious selection bias in this study; it also requires that the person thinks the object of their fascination is likely to check Craigslist. So,... yeah.

</comment><comment><USER5> I'll take a crack at explaining the Colorado label.

People here leave the Denver/Boulder area and head west into the mountains every weekend. The Sunday afternoon drive back is a miserable jam.

Some of those mountain destinations are a pretty far drive, so if you're one of those who came here for the skiing, climbing and mountain biking (and judging by dating sites, most people here are) then you're making some stops for fuel and caffeine in some mountain town, wearing your ski outfit or bike shorts.

If that's the explanation, I don't know why the label wouldn't be "trail" though.

<comment><USER16> >> If that's the explanation, I don't know why the label wouldn't be "trail" though.

Probably because there are many ways to say it eg. "ski trail", "ski mountain", "ski run", "on the slopes", "chairlift" etc. whereas a gas station is just a gas station. Also, it's pretty hard to have a "missed connection" on a ski trail, seeing as how both parties tend to be in motion and ski goggles obscure eye contact :)

<comment><USER5> Fair enough. I was thinking of all the times I've passed attractive people on hiking trails. People going downhill yield to people going uphill. Sometimes you stop and chat, ask about directions, the weather. I could easily see people wishing they'd gotten a number on occasions like that.

</comment></comment></comment><comment><USER17> Pennsylvania's "convenience store" label should just say Wawa. That's half the missed connections posts in Philadelphia.

<comment><USER18> That would exclude the Sheetz half of the state. Presumably the map combined Wawa, Sheetz, and the odd central PA Unimart into one.

</comment></comment><comment><USER19> I was just shocked that Nevada wasn't "Playa". Seriously, the missed connections post-Burning Man are amazing.

"You were wearing a flamethrower with bright pink hair and green blinking boots while you were riding on top of the bus made to look like a disco elephant..."

</comment><comment><USER20> Proud to live in South Carolina.

<comment><USER21> Mama said I could find a nice girl at church, so I tried a bigger stretch of holy ground.

</comment></comment><comment><USER22> What I don't get is the states where it's at a bar. I can understand how it's weird to talk to people in some of those other places but a bar is an explicitly social environment. If people didn't want to talk to others, they'd be drinking at home for far less money. As cliche as it is, "hey, can I buy you a drink" still works as an ice breaker.

<comment><USER23> Bars per capita -- [http://1.bp.blogspot.com/_7wbbZeG9jwI/S1uUPYQCImI/AAAAAAAAAF...](http://1.bp.blogspot.com/_7wbbZeG9jwI/S1uUPYQCImI/AAAAAAAAAF0/WXEuSyB6VbM/s1600/us_bars_groceries_100122.jpg)

</comment></comment><comment><USER24> Seems like a pretty small sample size - only 100 per state? I'm not familiar with how Craigslist works for this, but is there any reason why you couldn't select thousands and get better results (look for common words, rank them, etc). Seems like the variation would be pretty high...

</comment><comment><USER25> How is "the car" Georgia's most common missed connection? Hitchhikers? I can't think of anything else.

<comment><USER26> Stopped traffic. A couple of decades ago, the only road from Silicon Valley to Skyline in the hills was blocked by construction equipment repairing a washout. My wife got out and walked up the line to see what was going on. She started talking to a man standing there. Turns out he was a freelance developer and my wife said, "My son knows how to program.", which lead to his firs job as a programmer in high school. In this case a connection made in stopped traffic.

<comment><USER27> Ha, I was hoping that the freelance developer was you :)

<comment><USER26> No. The freelancer was Jim Normile in between stints at Apple.

</comment></comment></comment></comment><comment><USER28> Here is a higher resolution image: [http://www.psychologytoday.com/files/slideshow/2013/02/11869...](http://www.psychologytoday.com/files/slideshow/2013/02/118690-116662.png)

</comment><comment><USER29> "You prefer 91 octane for your car as well? Nice"

<comment><USER30> Yeeaaah Colorado. I'm actually kinda confused about that. It's not like have have that many more gas stations than other people or anything, right?

</comment></comment><comment><USER31> Dammit, Indiana, there you go making me cringe in the news again. At home? What does that even _mean_?

<comment><USER32> Couple examples I could think of:

"I saw your at home. You were walking down the street talking to your friend in the pink shirt on Sunday by the intersection of Oak & Grove."

"Me: In my garden working on my herbs. You: In the red SUV listening to Lady Gaga with the windows down. We made eye contact."

"Saw you, cute redhead, at your home. Peeping in your window."

</comment></comment><comment><USER33> Why do they say "California is an actual self-parody"?

I'd much prefer to meet someone at 24 Hour Fitness than Wal*mart...

</comment><comment><USER34> That is a depressing depressing map.

</comment><comment><USER35> Rhode Island always keeps it classy. Though I'm honestly surprised it wasn't Dunkin Donuts.

</comment><comment><USER36> This is Reddit Material, sad to see it Making Page 1 on HN :(

<comment><USER37> Borderline. It is derived from data, the data is suggestive, and given the number of comments from HN regulars, interesting enough.

It could even lead to some "hacking"!

Anyway, its a Friday in most of the world by now... :)

</comment></comment><comment><USER38> Chicago's keeping it classy with "TRAIN".

<comment><USER39> For Chicago, I'd expect "at the crime scene" to be more common.

<comment><USER38> Chicago is behind the following in terms of murder/manslaughter per capita:

New Orleans, Detroit, Newark, Baltimore, Oakland, Kansas City, Philadelphia, Atlanta, Cincinnati, Stockton, Cleveland, Memphis, DC, and Miami (in that order, from most deaths/capita to least) [0].

You were saying?

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

<comment><USER39> I was saying Chicago's a hellhole, just like all those other hellholes you listed--it's just that the GP mentioned Chicago particularly.

<comment><USER40> Staying safe in that suburb somewhere?

</comment></comment></comment></comment></comment><comment><USER41> Next, we should see a map with the worst traffic. Who funds these studies? Are they really necessary? Especially with the bias towards craigslist users?

<comment><USER42> The study was done by Dorothy Gambrell, who I know better as the author of the Cat and Girl webcomic, and published in _Psychology Today_ , a popular magazine. I doubt there was any funding other than whatever _Psychology Today_ paid her for the piece.

</comment></comment><comment><USER43> This is only sad for 3 reasons:

1) Somebody spent the time, effort and likely funding to do an aggregate study of a craigslist Missed Encounters board.

2) This foolishly unrepresentative sample of the american populace is being referred to as a "scholarly study".

3) The author of this article is using this to make broad generalizations about the american social atmosphere based on the aforementioned unrepresentative sample.

I suppose i should sit back and watch this silliness get plastered around facebook ad nauseum as people who don't know anyone who knew craigslist has a "missed encounters" page talk about the facts of their states' social climate.

<comment><USER44> Yes, I agree, you should stay on Facebook and do whatever.</comment></comment>


Ask HN: How do you use Twitter to stay up-to-date? - <AUTHOR> I really wonder if you could recommend a list or users to follow. I find it very upsetting that you cant filter twitter for interests. <comment><USER2> Now that Twitter is also trying to use algorithms to feed me what stories they think I will find important, it's become a lot less useful. I used to use it to follow local news and weather feeds, like the excellent National Weather Service office in Fort Worth. but after Twitter's changes, it's more likely to show me advertisements and sponsored tweets and other useless stuff instead of just doing what I want it to do, which is show me tweets in a purely chronological order.</comment>


Why Musicians Need Philosophy - <AUTHOR> http://www.futuresymphony.org/why-musicians-need-philosophy/ <comment><USER2> I think the writer fundamentally misunderstands Schoenberg's approach, and the approach of many avant-garde composers.

Schoenberg was engaged in an experiment. His polemic was not an absolute statement on the future of music, but a hypothesis. It is a framework for experimentation, like the Dogme 95 movement in film. The point of an artistic manifesto is to push a particular idea to an extreme and see what happens.

To quote Vi Hart: "It's a tool for breaking free of old musical habits ... to get your brain to stop following the same, well-worn neural pathways and think something you haven't thought before."

Schoenberg's legacy wasn't a generation of musicians who dogmatically stuck to serialist principles, but a generation who had a deep intuition about the limits of tonality. Eisler studied under Schoenberg, combining serialist ideas with jazz and folk music. He created some of the most remarkable and powerful music of the 20th century.

The work of the classical avant garde fed into jazz in a profound way. George Russell's _Lydian Chromatic Concept of Tonal Organisation_ was integral to some of the most important jazz works of the post-bop period. Most notably, that includes Miles Davis' _Kind of Blue_ , by far the most popular and accessible jazz album of all time.

Music is a conversation played out over centuries, a back-and-forth of ideas. Sometimes a conversation needs polite consensus, sometimes it needs daring new ideas, sometimes it needs someone to say "this is all bollocks".

Music needs people like Schoenberg, just as software needs people like RMS. The progress of culture depends on the grand pronouncements of obsessive lunatics.

<comment><USER3> > Music needs people like Schoenberg, just as software needs people like RMS. > The progress of culture depends on the grand pronouncements of obsessive > lunatics.

Maybe culture also needs people like Roger Scruton, for the same kind of reason.

</comment></comment><comment><USER4> This essay is written in a stuffy academic style so the author's main idea can get lost in his sea of words. Here's my attempt to understand it:

First the title,

      "Why Musicians Need Philosophy"

can be mentally rewritten as

      "Why Musicians Need [An Aesthetic] Philosophy [to understand and counteract the Modernist Philosophy]"

Essentially, he's saying that music that is created from emphasizing the "meta" aspect (e.g. modernism or abstraction) rather than composing aural landscapes that please the ear is a form of _second rate philosophy_.

To support his position, he's claiming that something like the diatonic scales with its divisions is deeply rooted in humanity and not purely arbitrary culture. One can create music that works with this, or one can go "meta" and deliberately avoid it (e.g. atonal for ambiguity's sake). John Cage's "4'33"[1] seems to be the common go-to example of meta music.

This same type of "meta" philosophy argument can be applied to art and literature. Art that "obviously" pleases the eye (such as Michelangelo and da Vinci) isn't all there is to art. The artists can "break the 4th wall" (aka "meta") and push the boundaries of abstractions. The art can draw attention to its medium and materials or try to ignore it. An artist can put a rectangle on the wall with a layer of silver particles covered by a sheet of glass and insist this is _art_. You as the viewer just see "a ordinary mirror". The artist (and his high-brow allies) then explains that you don't "get it" because there's more to the "reflection". You can see your face in an infinity of Mona Lisas etc. You as a viewer should not be constrained by a "canvas" or "pigments". Other examples might be a plain white canvas with a single dot in the middle. Or it could be a painted line -- and it happens to sell for $44 million[2]. The famous urinal[3] is another piece that invites analysis and commentary. Is all of this "art"? Or "philosophy" packaged as art? You decide.

Discussing avante garde art/music/literature can get really weird and you don't know if people are trolling each other with Poe's Law.[4]

[1][https://en.wikipedia.org/wiki/4%E2%80%B233%E2%80%B3](https://en.wikipedia.org/wiki/4%E2%80%B233%E2%80%B3)

[2][http://twentytwowords.com/canvas-painted-blue-with-a- white-l...](http://twentytwowords.com/canvas-painted-blue-with-a-white-line- sells-for-nearly-44-million-4-pictures/)

[3][https://en.wikipedia.org/wiki/Fountain_(Duchamp)](https://en.wikipedia.org/wiki/Fountain_\(Duchamp\))

[4][https://en.wikipedia.org/wiki/Poe%27s_law](https://en.wikipedia.org/wiki/Poe%27s_law)

</comment><comment><USER5> Reading this, I become sure that I lack some vital pieces of background. I'm an adequate musician, and I know a little philosophy, but very nearly every sentence of this piece seems to assume an awful lot of knowledge. (It would seem it's not aimed at people like me.) Does anyone know of a source which explains this background?

For example:

> Very few composers have philosophical gifts, and fewer still attempt to > justify their music in philosophical terms – the great exception being > Wagner, who, despite his vast literary output, always allowed his > instinctive musicianship to prevail when it conflicted with his > philosophical theories.

How did Wagner justify his music in philosophical terms? Why did he even feel the need to justify it? What would such a justification look like? What would a _competent_ justification look like? How can I identify a composer who has philosophical gifts?

> But it is precisely the absence of philosophical reflection that has led to > the invasion of the musical arena by half-baked ideas.

What half-baked ideas? For me, this also wants a [citation needed]. Has the musical arena been invaded by half-baked ideas? By what mechanism did philosophical reflection keep out those ideas in years past?

I could go on like this through the entire piece: I lack the training to understand it, and I suspect most people on HN do too.

<comment><USER6> > How did Wagner justify his music in philosophical terms? Why did he even > feel the need to justify it? What would such a justification look like? What > would a competent justification look like? How can I identify a composer who > has philosophical gifts?

Wagner (and most other composers) were highly influenced by their contemporary philosophy. The wikipedia article lists a lot of this and Wagner is a very good example for this as he had rather intense and highly influential conversations with philosophers: many books have been written about Wagner and Nietsche's relationship alone. Wagner also changed his ideas (and consequently his music) over time, most prominently embracing first germanic mythology and later christianity.

About the "competence" and "half-bakedness" of musical theories held by composers over the time you can probably entertain many prolonged spirited conversations. Personally - having read some classical and pre-classical aera musical theory books - I think you can find excellence and mediocracy distributed rather equally over the centuries.

And yes, this piece seems to expect the reader to know a bit about music history, especially that of musical theory.

</comment></comment><comment><USER7> Very pleased to see Roger Scruton is answering the same question a lecturer of mine once posed as a curveball essay question. I'm not convinced he answers it very well though, it sounds more like "Why musicians need 19th century philosophy," or perhaps, "Why musicians need to return to the past."

To HN: what do you think Harman's object oriented ontology has to offer composers and performers of classical music? Or what about speculative realism? Or effective altruism?

</comment><comment><USER8> "the banal melodic and harmonic content of popular music"

Is there an objective scientific definition of the word "banal" as applied to music?

What I read is the author saying: "Other people like pop music, but I don't".

</comment><comment><USER9> In short: drone music is basically communism. Got it.

</comment><comment><USER10> This is the most ignorant piece I've ever read in this site. Ignorant about music, ignorant about philosophy and even architecture gets its fair share of ignorance. His comments about the music of the past are completely off ("the repertory was neither controversial nor specially challenging"), as are those about the present music (" our music has either floated into the modernist stratosphere, where only ideas can breathe, or remained attached to the earth by the repetitious mechanisms of pop.")

This crap is pedantic second rate "family values" conservatism disguised as a piece on music and philosophy.

<comment><USER11> You may be right, but this comment doesn't help the reader understand why, and the indignation is static in the channel. It would be better to edit that out, then add in specific information about why each of those things is wrong. Then we all learn something.</comment></comment>


(x', y', t') = (x, y, t - y) - <AUTHOR> http://vimeo.com/7878518

<comment><USER2> Ahah so funny. How hard is the post processing?

<comment><USER3> I'd guess you need a little bit of RAM, since you need the last y frames, but there is probably not much computation. Just copy line n from n frames back into current new frame. Maybe somebody could make an app, which does it in realtime? Current smartphones should be powerful enough.</comment></comment>


Ask YC: Enhanced Index Funds - <AUTHOR>

Fidelity offers these so called "Enhanced Index Funds" that claim to offer better returns than a traditional Index fund. According to their site, "The funds' managers use computer-aided, quantitative analysis of historical valuation, growth, profitability, and other factors to select a broadly diversified group of stocks that may have the potential to provide a higher total return than that of the benchmark index." Doesn't this defeat the point of an index fund and is more like a traditional mutual fund or am I missing something? <comment><USER2> the point of an index fund is to buy and hold a specific group of stocks for a long period. because of this, it means that you don't have to pay much to own the fund, because its not being actively managed.

enhanced index funds do a little more shifting around, from what i can tell, and because of that, the expense ratio is higher. based on the (admittedly cursory) research i did on enhanced index funds, they don't really provide you any truly better performing stock picks, but they do provide you with some different ones.

they're slightly more like traditional mutual funds, but only a bit.

edited to add: save your money and just buy normal index funds, unless you have some serious money and really want to diversify.</comment>


ViDock Open Letter - Help show demand for Thunderbolt ViDock - <AUTHOR> http://www.facebook.com/topic.php?uid=89321949134&topic=17768

<comment><AUTHOR> ViDock currently makes ExpressCard to External PCI-Express docks. These allow for desktop class graphics cards to be connected to your laptop and run multiple monitors. They are currently considering a thunderbolt based dock but need to see a strong enough demand for one before they take the time/money to build it.</comment>


LSD helps to treat alcoholism - <AUTHOR> http://www.nature.com/news/lsd-helps-to-treat-alcoholism-1.10200 <comment><USER3> LSD is also known for it's use in treating migraines (about a 1/4 of a recreational dose is effective). I used to keep a supply for this purpose as I was unable to afford the prescription drugs that provide me relief. Unfortunately, LSD carries such a heavy penalty that I no longer do this and usually just shut myself in a dark room for a day or two when I get migraines. I'm lucky that I get them very rarely as opposed to those that get them monthly or even weekly.

I remember a short blurb in a Cary Grant [auto?]biography about his use of the drug in therapy and how it changed his life and perspective for the better.

It bothers me that a drug like this is so demonized that its possible therapeutic values are almost completely ignored. I know that there are some researchers still doing work in the area, but they are very few due to the huge legal obstacles at the federal levels.

I see this as just one more area where prohibition has harmed us. It's so sad that science has become subject to government after so many hundreds of years working to free it from the yoke of religion.

Edit: BTW, LSD is listed as a Schedule I drug (the most serious according to US law) and is listed with other such threats as MDMA, heroin, and mankind's worst enemy: Marijuana. It also carries a life sentence in federal prison upon a second trafficking offense.

<comment><USER4> It is demonized as it wakes the user up to the bullshit of the system. If you see the universe in all its natural glory, you flatly reject the idea that you should pay fealty to the faulty systems of corrupt humans.

LSD is illegal because it creates more Humanity in humans, Humanity which is more closely connected with reality.

<comment><USER5> This sentiment is so romantic that I almost chose not to reply about how inaccurate it is.

<comment><USER6> When the military tested cannabis and LSD on soldiers, it made them lose discipline indefinitely. They probably thought of it more as "turning them into hippies" than "waking them up to the bullshit", but either way they didn't like it.

Prohibition makes a lot of sense from the point of view of an army that might need to draft a lot of men and make good soldiers out of them quickly.

<comment><USER7> Funny, a Liberal Arts education can have a similar effect on people. Bell Telephone ran a program where managers were given a humanities education, and by the end of it most of them wanted to work less and spend more time with their families:

<http://www.nytimes.com/2010/06/16/opinion/16davis.html>

Maybe I should post this to "new", it's a pretty interesting article; slightly off topic here.

</comment></comment></comment></comment></comment><comment><USER8> This is my understanding of the schedule I drugs: they're listed as schedule I because they're not medically usable, and they're not medically usable because they're listed as schedule I.

<comment><USER9> You got it! Except it's a bit confounded because a few of the schedule 1 drugs really, truly aren't medically usable because they are trumped by substances proven to be less harmful.

</comment></comment><comment><USER10> So yet another "illegal" drug that could have been improving/saving countless lives for years needlessly prevented from being used by idiot US prohibitionists.

</comment><comment><USER11> LSD helps with just about everything.

</comment><comment><USER12> Morphine cured alcohlism in 1817. Cocaine cured morphine addiction in 1884. LSD cured alcoholism in 1960.

Detect the pattern.

<comment><USER13> The destructive consequences of alcohol or morphine addiction are in no small regard caused by the fact that it's possible to indulge in the drug daily, and therefore it is easy to completely lose yourself in the cycle of drug use.

This problem does not occur with LSD, since LSD tolerance builds up incredibly fast. It is simply not practical to use it more often than once a week, and even this frequency is unusual with most users, since longer periods of abstinence between trips have a very direct and positive influence on the quality of the experience. Most regular users are very well aware of this, and their usage patterns reflect this fact.

There is no pattern to be found in what you described, since LSD is a dramatically different kind of drug compared to the other two you mentioned.

<comment><USER12> Taking acid once a week will do bad things to you. Worse than morphine.

</comment></comment></comment><comment><USER12> LSD is amazing stuff in that it makes bullshit real, thus expanding the mind's ability to waste time.

</comment><comment><USER14> On a similar note, has anyone here had success getting therapeutic effect from MDMA?

<comment><USER15> There's the MAPS MDMA study.

I'm also personally familiar with several (> 10) people who used MDMA to treat depression (other than PTSD), both independent of conventional psychotherapy and in a few cases in conjunction with it (by telling the doctor after independently dosing; since he's an MD he has a duty to care for the patient even if he's "on an illegal drug" at the time, but isn't at personal legal risk).

I would consider the long-term risks of 1-5 doses of MDMA over a year FAR lower than the side effects of prescribed antidepressants or other psychiatric medications on an ongoing or permanent basis. (I'm not a doctor, though. Just going based on observation of a not statistically significant number in both groups.)

<comment><USER14> Interesting. What are your thoughts on how to make sure what you're getting is actually MDMA and not rat poison or something? Or is this concern just baseless media hysteria?

<comment><USER16> You can buy a testing kit online.

</comment></comment></comment></comment><comment><USER17> According to the Wikipedia article on LSD, the US DEA claims that the drug among other things "produces...no lasting positive effect in treating alcoholics."

The TSA chimed in, noting that LSD also produces no safeguard against "things that go BOOM!"

<comment><USER17> Just to be clear, the first comment was not a joke: "[http://en.wikipedia.org/wiki/Lysergic_acid_diethylamide#Pote...](http://en.wikipedia.org/wiki/Lysergic_acid_diethylamide#Potential_uses)

</comment></comment><comment><USER18> heck I'd rather take a 'trip' with one little pill then have to down 3L of anything (outside of Maotai - 375ml's enough)

</comment><comment><USER19> Can't help thinking, "There's a hole in my bucket, dear Liza, dear Liza..." ;-)

</comment><comment><USER20> Burn the house to kill the termites?

<comment><USER21> Not at all actually. LSD seems to quite a safe drug, and I'm beginning to question why it is illegal. Alcohol on the other hand seems to be much more dangerous.

This graph of active dose to lethal dose ratio and dependence risk serves as a fairly good measure for the risk of various drugs in my opinion: [https://upload.wikimedia.org/wikipedia/commons/a/a5/Drug_dan...](https://upload.wikimedia.org/wikipedia/commons/a/a5/Drug_danger_and_dependence.svg)

<comment><USER12> Temporary insanity is viewed as dangerous. LSD is a particularly harsh substance, so on the scale of psychedelics... I would legalize it right before PCP.

<comment><USER22> Evidence based dear sir... evidence based. We don't really want to start legalizing drugs based on subjective perception, we want to start having studies and publishing numbers, and make decisions based on them.

<comment><USER12> True. I'm basing this on outcomes in my peer group.

</comment></comment></comment></comment></comment><comment><USER23> Secrets of LSD...

Are you ready for this?

When humans and most mammals give birth the female body produces a drug that produces psychedelic effects as a counter to pain of child birth on the baby.

And guess what? That replay of effects is what we call the illusion of near death experiences that some experience later in life..

Is not the biological machine fascinating? :)

<comment><USER24> Just to clarify, the drug is produced to counter the pain that the baby feels or the pain that the mother feels?

Also, I'm very curious about this...is there a source I can read that you know of?

<comment><USER25> There's some evidence that ketamine, at least is released in near death experiences. Having taken ketamine twice, this is not something that I wish to happen to me. I wouldn't be surprised if it happened in chidbirth also, but I don't know of any evidence pointing towards that.

[http://scholar.google.co.uk/scholar?q=ketamine+and+near+deat...](http://scholar.google.co.uk/scholar?q=ketamine+and+near+death+experience&hl=en&btnG=Search&as_sdt=1%2C5&as_sdtp=on)

</comment></comment></comment><comment><USER26> I know this is the type of comment that gets downvoted, but when I first saw the article title I thought, "Isn't that nice of the Mormon church."

</comment><comment><USER12> I wonder how many of those alcoholics moved on to psychedelics after treatment :)

You guys are downvoting me, but at the time addiction and alcoholism were considered separate phenomenon. Psychedelics being new, nobody predicted the 1970s and burnt out hippies, thus the study doesn't seem to take into account alcoholics becoming drug addicts.

<comment><USER27> Good point if you've grown up around addicts you'll know that it's VERY common for them to simply substitute one drug for another.

In the lucky cases they substitute meth with alcohol, tobacco and coffee but I could totally picture someone going for cannabis, LSD instead of alcohol.

Essentially, it's a psychological thing and it's rarely about the substance itself. LSD is just a replacement for the god experience.

However I'd take this opportunity to recommend the documentary Ibogaine - <USER2> rite of passage.

<comment><USER14> What can you tell me about Ibogaine? Mind telling me more? :)

<comment><USER28> Hey - put it into Google scholar search. Essentially, around 100 addicts take the substance while trying to get off of heroin, most of them never get a withdrawal symptom from Heroin, and are off it. Some go straight back to Heroin and a guy dies, I think.

They draw plenty of conclusions, you'll see if you do that Google search.

<comment><USER14> Yeah I know what it is. I was wondering if you had some personal experience? :)

<comment><USER28> Hey, no, sorry. No experience of either substance.</comment></comment></comment></comment></comment></comment>


Ask HN: iCloud forces usage of phone number for 2 factor authentication? - <AUTHOR> I switched from an Android device to an iPhone recently and was asked to setup an iCloud account. I went through the setup process and realized that my phone number was setup as a 2nd factor with no option to disable it [0]. Seriously? For all the talk about Apple devices being the most secure, not many people seem to be complaining about how Apple forces a phone number as a 2nd factor + account recovery method. Most people backup very personal data to their iCloud accounts and forcing a phone number as a 2FA is ridiculous. IMO Google gets 2FA right : I can setup a Yubikey + Authenticator + backup codes and remove my phone number as a 2FA method. And I also realized that there's no way to delete an iCloud account. wtf?<p>(First time using an Apple device, so I might be misunderstanding the 2FA situation, correct me if I'm wrong.)<p>[0] https://support.apple.com/en-us/HT204915 <comment><USER2> I switched from 2 Step Auth to 2 Factor Auth recently and saw the same thing. A trusted phone number is required (and verified with that code you received) but in the future you'll receive 2FA codes on your trusted devices. But to setup that first device, you've gotta setup at least one trusted phone number. More information here[0]. Relevant bits:

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----

With two-factor authentication, your account can only be accessed on devices you trust, like your iPhone, iPad, or Mac. When you want to sign in to a new device for the first time, you'll need to provide two pieces of information—your password and the six-digit verification code that's automatically displayed on your trusted devices.

...

A trusted device is an iPhone, iPad, iPod touch with iOS 9 and later, or Mac with OS X El Capitan and later that you've already signed in to using two- factor authentication.

...

A trusted phone number is a number that can be used to receive verification codes by text message or automated phone call. You must verify at least one trusted phone number to enroll in two-factor authentication.

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----

In my case, I switched my iPhone to 2FA first and it sent me the SMS code. Once I started switching over my other devices to 2FA, I started seeing the code popping up (along with the location of the device being logged into, like in the photos from[0]) on my device instead of being sent via SMS.

[0]: [https://support.apple.com/en-us/HT204915](https://support.apple.com/en- us/HT204915)

<comment><AUTHOR> The verification codes popup on trusted devices but it's possible to have them sent to the trusted phone number instead. There's no way to remove the trusted phone number as a 2nd factor. From the FAQ :

\</comment></comment><comment>

What if I don't have access to a trusted device or didn't receive a verification code?

If you're signing in and don't have a trusted device handy that can display verification codes, you can have a code sent to your trusted phone number via text message or an automated phone call instead. Click Didn't Get a Code on the sign in screen and choose to send a code to your trusted phone number. You can also get a code directly from Settings on a trusted device.

\</comment><comment></comment>


The World's Most Polluted Cities Map - <AUTHOR> http://osm2.cartodb.com/viz/ae212b90-38cf-11e3-aaae-6805ca04cef1/embed_map?title=true&description=true&search=false&shareable=false&cartodb_logo=true&layer_selector=true&legends=true&scrollwheel=true&sublayer_options=1&sql=SELECT%20the_geom,%20the_geom_webmercator,%20cartodb_id,%20city,%20annual_mean_pm10::int%20as%20annual_mean_pm10%20FROM%20cities_poluttion%20ORDER%20BY%20annual_mean_pm10%20DESC&zoom=2&center_lat=23.986252599841873&center_lon=93.779296875

<comment><AUTHOR> Here is a video on how it was made [https://vimeo.com/77289264](https://vimeo.com/77289264)</comment>


Twitter creator Jack Dorsey illuminates the site's founding document.  - <AUTHOR> http://latimesblogs.latimes.com/technology/2009/02/twitter-creator.html <comment><USER2> > Tune in tomorrow for the second part of the interview, in which Dorsey talks > about ...

What?! This isn't a tv show with a cliffhanger ending, this is a fluff interview. You didn't interview him in two parts, so don't give it to me in two parts.

It's crap like this that's killing old media.

<comment><USER3> Agreed. It was interesting to see original Twitter sketch, but it provides about as much insight into the company and as the first mock up of the Google homepage would about them.

<comment><USER4> If you haven't read this interview with Ev:

"His specialty is taking a tiny, almost nonsensical idea and turning it into a cultural phenomenon. "He's like a master craftsman," says Naval Ravikant, a serial entrepreneur who is an angel investor in Twitter. "There are entrepreneurs who are financial geniuses, and there are raw coders. Evan is the master of creating a product where there wasn't one before." If Williams's art is the conception of inconceivable products, then Twitter is his chef-d'oeuvre."

[http://www.inc.com/magazine/20080301/anything-could- happen_P...](http://www.inc.com/magazine/20080301/anything-could- happen_Printer_Friendly.html)</comment></comment></comment>


Hardware Graph Prefetchers - <AUTHOR> http://www-dyn.cl.cam.ac.uk/~tmj32/wordpress/hardware-graph-prefetchers/ <comment><USER2> Oddly enough, my PhD thesis was on the same subject, and the solutions also seem to have something in common. Look for example at figure 5.1 on page 95 of [http://akkartik.name/akkartik-phd07.pdf](http://akkartik.name/akkartik- phd07.pdf).

I haven't fully internalized OP's approach yet (and this was many years ago, so I'm no longer very knowledgeable), but they seem to be making more assumptions about what the data structure looks like, where I had a compiler distilling arbitrary pointer traversals out of large programs.

</comment><comment><USER3> How about rearrange the graph to take advantage of the CPU's existing prefetch logic? The problem is that even with pointer chasing prefetch logic there are other device limitations: for example DRAM will deliver higher performance with sequential access.

<comment><USER4> Here's a paper from Facebook about how they rearrange their data to improve locality. The paper is about distributed systems, but it's interesting and maybe relevant to graph locality on a single machine…

[https://blog.acolyer.org/2016/05/25/socialhash-an- assignment...](https://blog.acolyer.org/2016/05/25/socialhash-an-assignment- framework-for-optimizing-distributed-systems-operations-on-social-networks/)

</comment></comment><comment><USER5> Nice. I am sure this can be extended to object graphs too.

Now, if only we(or the compiler) has a way of hinting to the cpu how to prefetch the objects, it would give us awesome performance.

<comment><USER6> Most modern architectureshavs prefetch instructions. I'm not surprised compilers don't have this (they optimise for the average program), but I am surprised that specialised libraries like Boost aren't doing this.

<comment><USER7> Prefetch instructions are difficult to get right from a compiler perspective. If you prefetch too early, you might kick useful data out of the cache. If you do it too late, it's obviously useless, plus you just wasted an entire instruction: I-cache space, one fetch slot, one issue slot, one ROB entry, etc.

Plus, they're not portable, even if you get the timing right now, it won't work on the next generation of the microprocessor or on a slightly different memory subsystem. You might be able to tune it just right on your desktop, but it probably won't work as well on your laptop, and it certainly won't work as well on a cluster.

IMO prefetch instructions are a useful hack when you have a very specific machine on which you're hand-tuning assembly to get the most performance. There aren't too many scenarios where this is useful - maybe scientific workloads on huge supercomputers are one - but they're otherwise kinda useless.

<comment><USER5> > Plus, they're not portable, even if you get the timing right now, it won't > work on the next generation of the microprocessor or on a slightly different > memory subsystem. You might be able to tune it just right on your desktop, > but it probably won't work as well on your laptop, and it certainly won't > work as well on a cluster

I think using Java or any other JIT system will solve this problem.

</comment></comment></comment></comment><comment><USER8> Graph analytics are my business but hardware is not. What is the tldr?

<comment><USER9> If you give the processor a cache that is tailored to graphs you can get a significant speed up because the processor knows what to cache .</comment></comment>


Epic Games beta registration blocks man for being a potential terrorist - <AUTHOR> http://linuxgamenews.biz/2016/01/14/epic-games-beta-registration-blocks-man-for-being-a-potential-terrorist/ <comment><USER2> Now terrorists are denied the right to play games? Wow, I don't think the 72 virgins promised in paradaise are worth that!!!</comment>