« first day (1356 days earlier)      last day (3125 days later) » 

12:27 AM
New features in Mathematica 10.3
http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn103.html
6
 
 
1 hour later…
1:55 AM
DateListStepPlot but still no DateListBarChart?
 
 
1 hour later…
3:24 AM
I see UpTo at the top of the list. I've wondered about the default errors M gives in those situations for a while. Many languages implicitly do an "up to" behavior if a list is too short. Also, many languages do things like automatic int to string conversions when doing 3<>" is a number". Curious why they've shied away from that considering the goal to make their functions as intelligent as possible.
The benefit of TextGrid compared to Grid isn't immediately apparent to me. It seems it defaults to a little extra space between rows.
 
3:43 AM
My vote for the coolest new stuff: TextStructure, WordTranslation, TravelDirections (I thought W|A didn't even support this yet. Would be great to see M getting ahead of W|A again.), new math stuff (maybe eventually internal algorithms will be more exposed through things like MathematicalFunctionData), and SocketConnect.
 
4:06 AM
Eh, 10.3? I think someone from WRI was "almost certain" there wouldn't be one.
 
 
1 hour later…
5:17 AM
If they're charging ~100 euros for home user upgrade again, I'm starting to feel a bit tense...
 
 
2 hours later…
7:31 AM
It's funny that functions get added to the global namespace with such speed and without worry, yet some basics such as ToPackedArray or MachineIntegerQ are still hidden in underdocumented namespaces.
 
8:00 AM
What happened 1994?
 
8:20 AM
@Szabolcs It could be worse, especially if naming scheme would be less verbose. Nonetheless, keeping non-core functionalities outside global namespace would make sense in my opinion.
I wonder if injecting this stuff to the global namespace is partially driven by less wonderful reasoning, such as being able to give fancy demonstrations without clutter.
Also, what kind of purpose adding a function like IntegerReverse does serve? It sounds like some sort of demonstration piece, because defining the same functionality is pretty trivial for anyone with good basis in using Mma...
Several such functions added since v9 or so really seem like special-purpose trinkets that often have very little use in serious mathematics, and on the top of that, would be trivial to reimplement by anyone that know how to program. I can't quite comprehend the possibility that Mma design is getting geared towards computationally illiterate...
And all in global namespace...
Seeing these trinket functions added is definitely one of my pet peeves when it comes to Mma. Sure, they're mostly harmless... ;)
 
8:37 AM
@kirma When I remember correctly, someone of WRI lately said that namespaces are too complicated to be understood by most users. That seems to be one reason.
 
@halirutan I think that's a different way to state almost the same thing as my suspicions on it.
I certainly understand the concern of unnecessarily steep learning curve due to technicalities. Just think of learning concepts of programming with C++ or Java, for instance. Almost all time there must be spent on coping with technicalities of the language, instead of actual programming on abstract level.
 
@kirma Probably, but this is no argument for me. Learning to program is hard. Try it or leave it, but cluttering the language for it is just not the right way.
 
I do agree...
 
 
3 hours later…
11:59 AM
Ubuntu's default "shopping lens" is just ridiculous. I didn't take the time to disable it because I only use Ubuntu occasionally in VirtualBox. Then its launcher suddenly starts showing me female lingerie hits from Amazon when I'm at work just because I searched for programs to start! (Searched for the updater.) How do they get away with this?
 
12:31 PM
I've been doing an interesting exercise in programming education over the weekend. A girl asked me for help with a programming assignment for her class. Implement a simple operating system job scheduler in Python (input: list of jobs, arrival times, execution lengths. Needs to simulate simple first come first serve, shortest job first, round robin, etc). So I sent her a Mathematica snippet that did the first come first serve part with the intent to guide her through translating it to Python.
Maybe she actually understood the high level logic of it, because then she asked if I could help with the shortest job first part. So I said that's the same as FCFS, but you sort the waitlist first.
Then the next day she asked again what language this is, so I explained again and said I could help her get unstuck as she tries to translate it.
And I told her the basics of Mathematica syntax: and/or, function definition, lists, parts, function call, etc
So things she's gotten stuck on so far:
Needed to clarify that list syntax applies to nested lists too. I defined sample input as a list of lists.
She guessed that Which/Switch needed to be transformed into if/elses but got stuck.
 
@halirutan But why not put new functions in some separate contexts that would, by default, be on $ContextPath? Then inexperienced users could use them exactly like if they were in System context, but advanced users could switch them off if needed.
 
Had to either explain classes or how to use global variables in Python. Apparently Mathematica is more intuitive there. She definitely needed help filtering lists. I explained it in terms of converting a Select[] to a filter() instead of Python's list comprehensions because even though I hate having to stick the work lambda in her code, I think it is a broadly used pattern in many languages.
 
@jkuczm That is something I don't understand as well. For instance let's say BoundaryMeshRegion. This is in System` but then again, other not directly exposed functionality is hidden for instance in Region`Mesh.
Look at this answer here:
18
A: Convert binary voxel image to geometric region

ilianThere is a marching squares/cubes implementation in Mathematica 10.2 or later, which is used internally by BoundaryDiscretizeRegion and DiscretizeRegion. For the example given, try the following undocumented interface data = Transpose[0.5 - Reverse[ImageData[img]]]; bmr = Region`Mesh`MarchingCe...

@jkuczm It uses the function Region`Mesh`MarchingCells. So the question stands, what is the advantage of throwing everything into one namespace, when you could just automatically load all necessary namespaces
 
Increment/decrement operators. How some languages index starting with 0 and others with 1. I thought Python's indentation based syntax might be more natural for her, but she ended up indenting the main evaluation loop so that it was part of a function. Then she needed help fixing up some parentheses and didn't understand why the output of filter() needed to be converted from an enumerable to a list.
So I'd say programming education and language design still has a ways to go.
 
@halirutan I guess those are questions only WRI can answer.
 
12:55 PM
@jkuczm Sometimes I really wonder whether it is OK to have such a strong opinion about the direction Mathematica takes. I don't know all the internals and I'm probably missing a lot of information. On the other hand, I have let's say 5 topics that are on the hit list of things that I don't like in the way Mathematica evolves since a few years.
One of the things I consider really bad is, that all Dynamic functionality is bound to the front end the Wolfram provides. This means you have core functionality, that cannot be used when you are using a kernel alone. Why is this bad? Because it completely destroys the possibility to write your own Front End.
I was always thinking about, whether it wouldn't be nice to have a very specialized Front End for specific topics. For instance, I (what a surprise) would like to have a special Front End for image processing. You could include so much nice stuff and make it possible to work with large image/volume data etc.
But this is never going to happen, because too much of the new public Wolfram Language is not public. You would have to completely reverse engineer the Dynamic framework because, although the function's placeholder like Manipulate, etc are part of the kernel, they cannot be used without the WRI front end.
Another big no-go is that the Debugger and the creation of real Documentation is not publicly available.
The the whole issue with publishing millions of new functions in every new version just for marketing purpose. A lot of them are not polished and optimized methods, but only highlevel wrapper that have awful performance.
 
@halirutan It would be interesting. If creating separate FrontEnd would be too much, maybe at least make it more user programmable.
 
@jkuczm But who is using a front end that doesn't support Dynamic evaluation?
It's a dead end.
 
1:13 PM
@Vitaliy Community is having a severe Korean spam problem today ...
@halirutan When WRI sales reps came to my university, I had the impression that they're advertising Mathematica to an audience who might decide to pay for it, but will never ever use it, beyond maybe playing for half an hour ... There was very little shown about how Mathematica can be actually useful, and a lot of demonstrations of cool looking features that are of little use for everyday work and aren't that robust anyway.
 
1:52 PM
@kirma Which is why both of them are horrible languages, with C++ an easy winner in terms of most horrible design, but Java a solid runner-up.
 
@LeonidShifrin Which makes teaching basics of programming in these languages (well, mostly Java on recent years) a strange pursuit in futility of getting the message delivered.
In contrast, I think Scheme as used in SICP was quite good fit for the task at hand.
 
Sure, and I would never do that. These languages are really bad for teaching. C++ is only still alive because it fits nicely into the niche of writing efficient engines with small memory footprint (possibly embedded), and Java is alive because it is used in the enterprise to mostly have a bunch of mediocre programmers work on some boring stuff and not hurt each other (although, there are few applications of Java as high-performance language, which are different and where it is not a bad tool).
@kirma Yes, agree also with this. Recently I was asked by a professor I know, to suggest the plan for 3-semester university course on beginnings of programming, and I suggested the progression Python -> C -> Scheme (although this is certainly not the only possibility).
 
In my professional life, I write plain C. Also, I know quite many people that consider C++ an abomination looking from that side. I wish there would be a modern replacement for C (and C++), eventually taking over, but I'm not convinced there's one yet.

All this is unrelated to using any of thse languages for teaching. To an extent I feel that plain C is actually not that bad - to teach system-level programming. Not many people nowadays need that skill, though.
 
2:08 PM
@kirma I actually love plain C, although it so happened that I didn't have a chance to write C for the last 3 years. But I do hope to get back to it some day. I spent a year in an enterprise Java shop, and while I learned a lot there - in particular OO thinking / design mode applied to large projects, plus Java the language - but I also felt that verbosity of Java and its lack of expressiveness was driving me mad all the time.
@kirma I only regret that I didn't have the time to properly learn Java reflection and concurrency, which are useful - may be someday. C++ I only touched very little, and I hope to keep it that way.
 
@kirma @LeonidShifrin My first introduction to programming was reading a book called "Teach Yourself C++ in 21 Days". I didn't know enough about computers to set up the compiler and IDE, but after my dad did that I could follow the book easily enough. It did make the road to my goal of 3D game programming seem long indeed though. One of my friends who was recently looking to get back into programming chose to learn Go.
 
@kirma There are several strong contenders for modern C replacement - Go, Rust, D, perhaps some others I am not aware of (actually, they are more C++ replacements). But I don't believe C will ever be replaced - it fits its niche just too well.
 
I must say there are two languages I handle properly these days: C and... ehm, "Wolfram language". The first I use to get my income, second for almost everything else. There's a bit too little time in the world to spread interest wider... :(
 
@MichaelHale Oh yes, by Jesse Liberty - I read this one too. Nice book
 
@MichaelHale I haven't looked too much at Go, but I have gotten a sour taste from some of its' design philosophy (basically, developers are idiots). I should pay more attention to Rust, but its' spec seems to still contain a lot of handwaving. Also, I would really want to see a full Common Lisp strength macro facility, and as far as I understood Rust macros, they're not quite designed that possibility (code-as-data) in mind.
 
2:15 PM
@kirma I did professional work in Java, C, Mathematica (obviously), Python and js, and among those, these days I would prefer Python, C, js, Mathematica - in this order. Depends on the problem, of course. But if I had the time, I'd gladly learn and use other languages. The ones I'd like to master are some dialect of Lisp (Clojure may be, but I'd also like to get a taste of CL / Scheme), Ml / Ocaml, and a few less known ones (Red / Rebol, Shen). But, these are pipe dreams at the moment :)
 
@kirma Yeah, I think he just picked it up quickly to mess around with writing a small AI for my puzzle game. Then he mentioned maybe he should learn JS. I don't think he's done anything since then. He has a lot more money than me, so he could just talk to me if he ever really needs a computer to do something.
 
I have sort of skipped rise and fall of C++ and Java (and some other languages) entirely. I think I wrote my first "professional" piece of C at 1992 or so, and never quite got interested of those two languages. I did write Scheme professionally for couple years, though...
 
@kirma That sounds cool ("write Scheme professionally for a couple of years"). What was your feeling about it?
 
@MichaelHale My introduction to programming was "Teach Yourself PHP in 10 Minutes". Somehow 21 days seems like a more achievable target.
 
@LeonidShifrin Weeelll... it was used as a glue language between various C language components, really, and I can't say I would have been a particularly grown up as a developer at that point. But it was sort of interesting, but I would probably do things very differently nowadays.
 
2:23 PM
@kirma I see. Looking back, probably most of us would do things differently after getting more experience. Certainly true for me as well.
@blochwave The longer I program, the more I agree that it's more like 10 years
2
 
2:43 PM
posted on October 05, 2015 by Rob Morris

Welcome to the first in a series of posts on using the Wolfram Language in the classroom! Each day this week my colleagues and I will share some of our thoughts about how to use the Wolfram Language in various classroom settings. Each post will focus on a different subject and will provide an example [...]

 
A radically new use case for Mma!
 
3:23 PM
@Szabolcs Vitaly's on a vacation, I think
 
acl
3:48 PM
@kirma It's a New Kind of Use, one might say
 
:)
 
 
5 hours later…
8:54 PM
Is it known that on 10.2 MacOSX Export["test.pdf", Cell[" fl", "Title"]] crashes it? Will it be fixed in 10.3?
2
Of course, on Windows this is no problem.
Could someone on MacOSX (I am using "El Capitan") re-check?
I am very much disappointed by all these MacOSX-specific bugs.
BTW: This will not crash ...: Export["test.pdf", Cell[" f\[InvisibleSpace]l", "Title"]]
 
9:27 PM
@RolfMertig You have to work more on Linux to really appreciate how stable it runs on OSX
 
@halirutan Sometimes I do, but mostly related to webMathematica. Does my minimal example (which came from a real world example ...) crash for you on Mac?
 
@RolfMertig I'm at home. Linux here :-)
 
@halirutan You leave your MacBook at work? Or you put Linux on it?
 
10:09 PM
Maybe I make it into a self-answered question, maybe not, in any case, if anybody else ever has the desire to produce non-crashing (invisibly) PDFs by GeneratedDocument under Mac, here is my simple workaround: `nonCrashingGenerateDocument =
If[$OperatingSystem === "Windows" ,
GenerateDocument[#1, #2,
{"ProgressIndicator" -> False, "HeadlessMode" -> True}
]&
,
(GenerateDocument[#1, #2, {"ProgressIndicator" -> False, "HeadlessMode" -> True}
] /.
(s_String /; StringMatchQ[s, "* *fl*"] && StringLength[s] < 200) :>
I also wonder why "HeadlessMode" is not documented. Will it be in 10.3?
 
10:39 PM
@RolfMertig Ohh, you mean I should get off my chair and take the MacBook from the shelf?
That's a lot to ask for on a Monday night :-)
@RolfMertig Yep, crashes.
 

« first day (1356 days earlier)      last day (3125 days later) »